Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
caosy
/
fun-admin
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
349b5da6
authored
Jul 20, 2018
by
Huang Linyu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新增手机对手机的拨号方式
parent
454c1c0a
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
71 additions
and
10 deletions
src/main/java/com/ctrip/fun/admin/controller/callcenter/SipPhoneControl.java
src/main/java/com/ctrip/fun/admin/controller/callcenter/SipPhoneControl.java
View file @
349b5da6
...
...
@@ -189,18 +189,18 @@ public class SipPhoneControl {
/**
* 【发起呼叫】
* @param absoluteTimeout
* @param src
* @param srcGateway
* @param srcAccessNumber
* @param absoluteTimeout
通话超时时间(秒)。超时后自动挂断
* @param src
第一路呼叫的号码
* @param srcGateway
第一路呼叫所需要走的gateway。若src不是内部分机,则此字段必须填写
* @param srcAccessNumber
第一路呼叫所需要用的主叫号。若src不是内部分机,则此字段必须填写
* @param srcCallerIdName
* @param srcCallerIdNumber
* @param srcAnnounceMediaUrl
* @param dst
* @param dstGateway
* @param dstAccessNumber
* @param dstAnnounceMediaUrl
* @param userData
* @param srcAnnounceMediaUrl
第一路呼叫接通后所听到的提示音(仅支持8000赫兹、16位、单声道的wav音频文件)
* @param dst
第二路呼叫的号码
* @param dstGateway
第二路呼叫所需要走的gateway。若dst不是内部分机,则此字段必须填写
* @param dstAccessNumber
第二路呼叫所需要用的主叫号。若dst不是内部分机,则此字段必须填写
* @param dstAnnounceMediaUrl
第二路呼叫接通后所听到的提示音(仅支持8000赫兹、16位、单声道的wav音频文件)
* @param userData
用户自定义数据。此数据会在之后的event中原封不动地带回来
* @return
*/
@RequestMapping
(
value
=
"/originateFull"
,
method
=
RequestMethod
.
POST
)
...
...
@@ -263,6 +263,67 @@ public class SipPhoneControl {
return
originateResponse
;
}
/**
* 用手机呼叫 , 可用呼叫内部分机或者手机号码
* @param dst
* @return
*/
@RequestMapping
(
value
=
"/originateTwo"
,
method
=
RequestMethod
.
POST
)
@ResponseBody
public
OriginateResponse
originateTwo
(
@RequestParam
(
"src"
)
String
src
,
@RequestParam
(
"dst"
)
String
dst
){
// UserDetails user = (UserDetails)SecurityContextHolder.getContext().getAuthentication().getPrincipal();
// String userName = user.getUsername();
String
userName
=
SpringSecurityUtil
.
getCurrentUserName
();
String
dstGateway
=
null
;
String
dstAccessNumber
=
null
;
String
srcGateway
=
null
;
String
srcAccessNumber
=
null
;
IsExtenResponse
isres1
=
sipPhoneService
.
isExten
(
src
);
if
(!
isres1
.
getIsExten
()){
GetMobileInfoResponse
srcResponse
=
sipPhoneService
.
getMobileInfo
(
src
);
//如果是上海的手机号码,不需加0,非上海手机号码, 需在手机号码前面加0代表区号
if
(
"0"
.
equals
(
srcResponse
.
getErrCode
())
&&
"021"
.
equals
(
srcResponse
.
getAreaCode
())){
}
else
{
src
=
"0"
+
src
;
}
}
//判断dst是否是内部exten
IsExtenResponse
isres2
=
sipPhoneService
.
isExten
(
dst
);
if
(!
isres2
.
getIsExten
()){
//不是内部分机号码
GetMobileInfoResponse
dstResponse
=
sipPhoneService
.
getMobileInfo
(
dst
);
//如果是上海的手机号码,不需加0,非上海手机号码, 需在手机号码前面加0代表区号
if
(
"0"
.
equals
(
dstResponse
.
getErrCode
())
&&
"021"
.
equals
(
dstResponse
.
getAreaCode
())){
}
else
{
dst
=
"0"
+
dst
;
}
}
//获得全部网关信息
GetGatewayStatusResponse
gateways
=
sipPhoneService
.
getGatewayStatus
();
if
(
"0"
.
equals
(
gateways
.
getErrCode
())){
Map
<
String
,
GatewayStatus
>
map
=
gateways
.
getResult
();
for
(
String
key
:
map
.
keySet
()){
GatewayStatus
gateWayStatus
=
map
.
get
(
key
);
if
(
"Registered"
.
equals
(
gateWayStatus
.
getRegistyStatus
().
getStatus
())){
//如果有多个可用网关,可用优先使用匹配网关,最后使用默认网关(该功能暂定)
dstGateway
=
gateWayStatus
.
getGatewayName
();
Gateway
gateway
=
gateWayStatus
.
getGateway
();
if
(
gateway
!=
null
){
dstAccessNumber
=
gateway
.
getRegUsername
();
}
}
}
}
OriginateResponse
originateResponse
=
sipPhoneService
.
originate
(
40
,
src
,
dstGateway
,
dstAccessNumber
,
null
,
null
,
null
,
dst
,
dstGateway
,
dstAccessNumber
,
null
,
null
);
return
originateResponse
;
}
/**
* 【获取指定SipPhone的当前Channel】
* @param sipPhoneName
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment