Commit 349b5da6 by Huang Linyu

新增手机对手机的拨号方式

parent 454c1c0a
......@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment