帮助与文档

全部产品

语音通话服务
  • 产品介绍

    • 语音回呼能力介绍
  • 用户指南

  • API开发指南

    • JAVA

      • 请求通话接口(startcall)
      • 结束通话接口(stopcall)

产品介绍

最近更新时间:2017-12-29 11:40:55

语音回呼能力介绍

用户调用API发出呼叫请求,海翕云平台接收请求并处理,拨通主被叫双方,实现点对点语音通话。平台接收到请求后,首先拨通主叫方,主叫方接听后,再拨通被叫方;任意一方挂断或未接来电,通话则结束。

主要通话方式分透传通话和非透传通话。

透传通话指,电话拨通时,主叫方来电显示固定的一个四川移动号码,被叫方显示主叫的号码,相当于主叫号码单向透传给了被叫方。

非透传通话指,电话拨通时,主叫方和被叫方的来电显示都显示相同的一个固话显示号码,双方的号码不显示给对方。该固话号码需要提前申请。

非透传通话还包括了一种特殊的通话方式:SIP通话。需要申请SIP号码作为主叫号码。需要提前申请SIP号码,然后自主实现SIP客户端,以SIP号码作为账号登陆,以替代主叫方的手机或固定电话。

使用场景

  • 快递服务:订单生成后,一键拨通对方,准确高效,费用易管理。
  • 网站咨询:用户在网页上可实现点击呼叫,简单易用,提升客户粘性。
  • 在线医疗:根据患者预约的时间,平台自动拨通双方号码,提升沟通效率。

语音功能用户操作指南

最近更新时间:2018-09-25 09:36:10

一.注册/登录

打开浏览器,在浏览器地址输入www.eiisys.com

已有53快服账号的,直接填写53快服账号密码登录即可。
没有账号,点击马上注册,跳转至53官网,注册53账号即可。

二.填写公司资料

点击 “语音通话服务->免费开通

弹出“语音服务申请表”,包括填写业务说明以及上传营业执照,申请开通透传服务。

填写业务说明表,上传扫描附件,点击“下一步”。

继续填写剩余的业务说明,最后点击“保存”,进入预览页面。

确认填写内容无误,点击提交审核按钮,等待审核结果。

三.进入语音服务控制台

点击“控制台”,进入语音服务控制台界面。

可以看到透传功能已开通。如果想申请固话可以点击“申请固话号码”进入固话管理页面。

申请管理页面,填写号码申请资料提交,等待审核完成。审核通过后,分配的固话显示号码会显示在“语音服务|概览”页面中。

四.申请SIP号码

进入“语音服务->SIP号码管理->号码申请”,点击“申请号码”,填写申请数量后提交。

申请通过后,进入语音服务->SIP号码管理->号码管理,可以看到所有分配下来的SIP号码。SIP号码可以在VOIP客户端上作为账号登陆,调用语音通话接口时作为主叫号码。

五.调用语音通话接口

点击“语音服务->密钥管理”,点击“创建App Key”,生成App Key和App Secret

使用App Key和App Secret调用语音通话API接口,具体参照文档“API参考”

请求通话接口

最近更新时间:2018-09-27 14:01:35

用于发送通话请求,拨通主被叫双方,实现点对点语音通话

请求参数
参数列表 参数类型 必填与否 样例取值 参数说明
appKey String 必填 412c971xxxxxxxxxxxxxxxx0858c 接入使用的身份校验,可在www.eiisys.com上的 秘钥管理 中获得。注意:请勿随意删除或重置
appSecret String 必填 09b48xxxxxxxxxxxxx6423586d 接入使用的身份校验,可在www.eiisys.com上的 秘钥管理 中获得。注意:请勿随意删除或重置
domain String 必填 callweb.eiisys.com 语音服务的域名:callweb.eiisys.com
displayNbr String +8657156340001 显示号码,用来设置申请的固话号码,在通话时,作为来电显示的号码。如果不传此参数,则作为透传通话请求发送。例:+8657156340001
callerNbr String 必填 +8613588971234 主叫号码,可以是手机号码或固话号码
例:+8613588971234(手机号)或+8657156889923(固话)
calleeNbr String(1-128) 必填 +8613588971234 被叫号码,可以是手机号码或固话号码
例:+8613588971234(手机号)或+8657156889923(固话)
statusUrl String(1-256) http://********/receive/callback 通知URL,用于设置接收通话状态上报的URL。平台将在通话结束时将通话信息推送到此服务器。最大128字节。返回参数参考通话状态上报
userData String(1-256) customerId123@st@comment 设置用户的附属信息,该参数可以携带用于标识用户的信息,如customerId123@st@comment。如果开发者传入此参数,平台会在后续通话状态上报时携带该参数值。最大256字节。
响应参数
参数名称 参数类型 样例取值 参数说明
result Boolean true 请求处理结果。true:成功 false:失败
code String 200001 响应码
message String 成功 消息
mapData Map<String,String> - 返回参数, 参考mapData
mapData
参数名称 参数类型 样例取值 参数说明
uniKey String xxx66f5f2f61246cdbcc62dc3e740m3 唯一标识符。调用成功时返回,用于结束通话时,定位通话
通话状态上报
参数名称 参数类型 样例取值 参数说明
uniKey String xxx66f5f2f61246cdbcc62dc3e740m3 唯一标识符。调用成功时返回,用于结束通话时,定位通话
userData String a@b@c 用户的附属信息。来自调用通话接口的参数
displayNbr String +8657156340001 显示号码
callerNbr String 8613588971234 主叫号码
calleeNbr String 8613588971234 被叫号码
callEndTime String 2018-08-31 14:18:57 通话结束时间
callOutAnswerTime String 2018-08-31 14:16:57 主叫接起电话时间
fwdAnswerTime String 2018-08-31 14:17:57 被叫接起电话时间
对接步骤
1:下载SDK工具包

SDK&DEMO[下载地址]

2: 编写样例程序
  1. public static void main(String[] args) {
  2. long startTime = System.currentTimeMillis();
  3. String appKey = "412c971xxxxxxxxxxxxxxxx0858c";
  4. String appSecret = "09b48xxxxxxxxxxxxx6423586d";
  5. String domain = "callweb.eiisys.com";
  6. String displayNbr = null;
  7. String callerNbr = "+8613500010001";
  8. String calleeNbr = "+8613500010001";
  9. String statusUrl = "http://www.test.com/status";
  10. String userData = "a@b@c";
  11. IClientProfile profile = DefaultProfile.getProfile(appKey, appSecret);
  12. IAcsClient acsClient = new DefaultAcsClient(profile);
  13. CallClickRequest callClickRequest = new CallClickRequest();
  14. callClickRequest.setDomain(domain);
  15. callClickRequest.setDisplayNbr(displayNbr);
  16. callClickRequest.setCallerNbr(callerNbr);
  17. callClickRequest.setCalleeNbr(calleeNbr);
  18. callClickRequest.setStatusUrl(statusUrl);
  19. callClickRequest.setUserData(userData);
  20. try {
  21. CallResponse callClickResponse = acsClient.getAcsResponse(callClickRequest);
  22. System.out.println("result=" + callClickResponse.getResult());
  23. System.out.println("code=" + callClickResponse.getCode());
  24. System.out.println("message=" + callClickResponse.getMessage());
  25. if (callClickResponse.getResult() == true) {
  26. Map mapData = callClickResponse.getMapData();
  27. System.out.println("uniKey=" + mapData.get("uniKey"));
  28. }
  29. } catch (ServerException e) {
  30. e.printStackTrace();
  31. } catch (ClientException e) {
  32. e.printStackTrace();
  33. }
  34. e.printStackTrace();
  35. System.out.println("Total call time: " + (System.currentTimeMillis() - startTime)/1000 + " seconds.");
  36. }

结束通话接口(stopcall)

最近更新时间:2018-09-27 14:01:35

用于发送终止通话请求,结束主被叫双方的语音通话

请求参数
参数列表 参数类型 必填与否 样例取值 参数说明
appKey String 必填 412c971xxxxxxxxxxxxxxxx0858c 接入使用的身份校验,可在www.eiisys.com上的 秘钥管理 中获得。注意:请勿随意删除或重置
appSecret String 必填 09b48xxxxxxxxxxxxx6423586d 接入使用的身份校验,可在www.eiisys.com上的 秘钥管理 中获得。注意:请勿随意删除或重置
domain String 必填 callweb.eiisys.com 语音服务的域名:callweb.eiisys.com
uniKey String xxx66f5f2f61246cdbcc62dc3e740m3 请求通话成功时,返回的唯一标识符
响应参数
参数名称 参数类型 样例取值 参数说明
result Boolean true 请求处理结果。true:成功 false:失败
code String 200001 响应码
message String 成功 消息
对接步骤
1:下载SDK工具包

SDK&DEMO[下载地址]

2: 编写样例程序
  1. public static void main(String[] args) {
  2. long startTime = System.currentTimeMillis();
  3. String appKey = "412c971xxxxxxxxxxxxxxxx0858c";
  4. String appSecret = "09b48xxxxxxxxxxxxx6423586d";
  5. String domain = "callweb.eiisys.com";
  6. String uniKey = "xxx66f5f2f61246cdbcc62dc3e740m3";
  7. //appKey, appSecret由服务提供者提供
  8. IClientProfile profile = DefaultProfile.getProfile(appKey, appSecret);
  9. IAcsClient acsClient = new DefaultAcsClient(profile);
  10. CallStopRequest callStopRequest = new CallStopRequest();
  11. callClickRequest.setDomain(domain);
  12. callStopRequest.setUniKey(uniKey);
  13. try {
  14. CallResponse callClickResponse = acsClient.getAcsResponse(callStopRequest);
  15. ;System.out.println("result=" + callClickResponse.getResult());
  16. System.out.println("code=" + callClickResponse.getCode());
  17. System.out.println("message=" + callClickResponse.getMessage());
  18. } catch (ServerException e) {
  19. e.printStackTrace();
  20. } catch (ClientException e) {
  21. e.printStackTrace();
  22. }
  23. System.out.println("Total time: " + (System.currentTimeMillis() - startTime)/1000 + " seconds.");
  24. }