文档首页> > API参考> 语音回呼API> 语音回呼场景API

语音回呼场景API

分享
更新时间: 2019/08/21 17:13

接口变更

修改日期

修改说明

2018/3/6

新增呼叫记忆功能,相关变更点如下:

  • 新增可选请求参数“callBackTone”
  • “recordFlag”参数功能变更为设置语音回呼及呼叫记忆回呼通话过程是否录音。
  • 前提条件中新增呼叫记忆相关内容。

2017/1/3

  • 新增可选请求参数“returnIdlePort”,响应参数“idlePort”,支持空闲端口查询功能。
  • 新增可选请求参数“playPreVoice”“preVoice”,支持接通被叫前给主叫播放提示音功能。

典型场景

当应用要实现语音回呼功能时,可以调用语音回呼场景API。

接口功能

主叫用户通过应用拨打被叫用户,RTC业务平台呼叫主叫和被叫,使主叫和被叫能够互相通话。

图1 语音回呼体验流程

语音回呼业务体验描述:

  1. 用户A通过应用呼叫用户B,请求上报到SP。
  2. SP调用语音回呼场景API。
  3. RTC业务平台呼叫用户A的号码,用户A接听,并听到提示音。
  4. RTC业务平台呼叫用户B的号码。
  5. 用户B接听,用户A和用户B通话。

使用说明

  • 前提条件
    1. 通过“应用管理”页面获取该语音回呼能力的app_key和APP接入地址
    2. 已调用“大客户SP简单认证API”登录鉴权,获取access_token。
    3. 已向RTC平台申请以下号码:
      • 已申请CallEnabler业务号码(bindNbr)。
      • 若使用定制化主叫端来电显示号码,请确认已申请displayNbr。
      • 若需隐藏主叫号码,使用定制化被叫端来电显示号码,请确认已申请displayCalleeNbr。
    4. 若需使用通话录音功能,请确认已向RTC平台申请该功能。
    5. 若需使用呼叫记忆功能,请确认已向RTC平台申请该功能。
    6. 若使用个性化放音,请确认已按要求制作并通过放音文件管理页面向RTC平台提交放音文件,包括最后一分钟提示音(lastMinVoice),主叫提示音(preVoice),主叫等待音(waitVoice),录音提示音(recordHintTone),回呼提示音(callBackTone)。
    7. 若需订阅呼叫状态和话单通知,请确认已通过应用管理向RTC平台提交呼叫状态通知URL(statusUrl)和话单通知URL(feeUrl)。若未提交,调用接口时填写也可以。

  • 注意事项

    无。

  • 使用限制

    无。

接口类型

表1 接口类型说明

请求方法

POST

访问URI

商用环境

/rest/httpsessions/click2Call/v2.0

测试环境

/sandbox/rest/httpsessions/click2Call/v2.0

通信协议

HTTPS

应用商用后,不能调用测试环境的URL。

请求参数

表2 请求URL参数说明

参数名称

是否必选

参数类型

默认值

说明

app_key

String(1-32)

语音回呼能力唯一标识。从“应用管理”页面获取

access_token

String(1-128)

此参数值必须是调用“大客户SP简单认证API”即fastlogin鉴权接口,在RTC业务平台成功登录后,由RTC业务平台返回成功响应消息的access_token参数值。

表3 请求Headers参数说明

参数名称

是否必选

参数类型

默认值

说明

Content-Type

String

固定填 application/json; charset=UTF-8。

表4 请求Body参数说明

参数名称

是否必选

参数类型

默认值

说明

bindNbr

String(4-31)

此字段定义CallEnabler业务号码,用于RTC业务平台呼叫主叫用户,需要提前申请该号码。

  • 手机号码格式:国家码+手机号码。示例:+8613500000000
  • 固话格式:国家码+区号+固话,其中区号需去掉首位的0。示例:国家码+86,区号0755,固话号码28000000,填写为+8675528000000。

不携带该参数时,系统会从与app_key绑定的CallEnabler业务号码中随机选择一个作为bindNbr。

displayNbr

String(4-31)

此字段定义主叫用户收到RTC平台的呼叫时,主叫用户手机终端的来电显示号码。

SP向主叫用户显示定制化的来电显示号码时,需要提前申请该号码,然后在调用接口时携带该参数。

号码格式:

  • 手机号码格式:国家码+手机号码。示例:+8613500000001
  • 固话格式:国家码+区号+固话,其中区号需去掉首位的0。示例:国家码+86,区号0755,固话号码28000001,填写为+8675528000001。

callerNbr

String(4-31)

此字段定义用户在SP开发的应用中,通过语音回呼功能发起呼叫时所使用的主叫号码。

  • 手机号码格式:国家码+手机号码。示例:+8613500000002。
  • 固话格式:国家码+区号+固话,其中区号需去掉首位的0。示例:国家码+86,区号0755,固话号码28000002,填写为+8675528000002。

displayCalleeNbr

String(4-31)

此字段定义被叫用户收到RTC业务平台的呼叫时,被叫用户终端的来电显示号码。

SP向被叫用户显示定制化的来电显示号码时,需要提前申请该号码,然后在调用接口时携带该参数。

该号码可以与displayNbr配置为同一个号码,也可以配置为不同号码。

号码格式:

  • 手机号码格式:国家码+手机号码。示例:+8613500000003
  • 固话格式:国家码+区号+固话,其中区号需去掉首位的0。示例:国家码+86,区号0755,固话号码28000003,填写为+8675528000003。

calleeNbr

String(4-31)

此字段定义终端用户在SP开发的应用中通过语音回呼业务发起呼叫时所拨打的被叫号码。

号码格式:

  • 手机号码格式:国家码+手机号码。示例:+8613500000004。
  • 固话格式:国家码+区号+固话,其中区号需去掉首位的0。示例:国家码+86,区号0755,固话号码28000004,填写为+8675528000004。

maxDuration

Integer

0

此字段用于设置允许单次通话进行的最长时间,通话时间从被叫接通的时刻开始计算。

取值范围:0~1440分钟

  • 0:系统不主动结束通话,由主被叫双方结束通话。
  • 1~1440:当通话时长达到此配置值,系统主动结束通话。

不携带时,参数值默认为0。

lastMinVoice

String(1-128)

当maxDuration字段设置为非0时此参数有效。

此参数用于设置最后一分钟放音提示音,此值填写SP定制的放音文件名,例如lastmin_voice1.wav,参数取值有以下两种场景:

  • SP无需定制个性化放音,无需配置此参数,系统将使用默认放音文件,放音内容为:“本次通话时长还剩1分钟”
  • SP需要定制个性化放音,接口消息中携带此参数,参数值携带定制的放音文件名,请提前制作放音文件并通过放音文件管理页面提交到RTC业务平台。

lastMinToUE

String(枚举)

both

当maxDuration字段设置为非0时此参数有效。

此字段用于设置最后一分钟放音的播放对象。

  • toa:仅对主叫用户放音。
  • tob:仅对被叫用户放音。
  • both:同时给主叫和被叫用户放音。

不携带时,参数值默认为both。

playPreVoice

String(枚举)

false

此字段用于设置主叫(callerNbr)应答语音回呼后,呼叫被叫(calleeNbr)前,是否向主叫(callerNbr)播放提示音。

当该参数设置为true时,播放完主叫提示音(preVoice)后才播放主叫等待音(waitVoice)并呼叫被叫(calleeNbr)。

  • true:播放提示音。
  • false:不播放提示音。

不携带时,参数值默认为false。

preVoice

String(1-128)

当playPreVoice字段设置为true时此参数有效。

此字段用于设置主叫(callerNbr)应答语音回呼后,呼叫被叫(calleeNbr)前向主叫播放的提示音,此值填写放音文件名,例如pre_voice1.wav。

  • SP无需定制个性化放音文件,接口消息中无需携带此参数,系统将使用默认放音“正在为您转接中,请稍后”。
  • SP需要定制个性化放音文件,接口消息中携带此参数,请提前制作放音文件并通过放音文件管理页面提交到RTC业务平台。

waitVoice

String(1-128)

此字段用于设置主叫应答语音回呼后的等待音,此值填写放音文件名,例如wait_voice1.wav。

  • SP无需定制个性化放音文件,接口消息中无需携带此参数,系统将使用默认放音,系统边给主叫放音(循环放音)边拨打被叫用户;被叫应答才中止放音。
  • SP需要定制个性化放音文件,接口消息中携带此参数,请提前制作放音文件并通过放音文件管理页面提交到RTC业务平台。

waitVoice可结合calleeMedia使用。

callBackTone

String(1-128)

此字段用于设置呼叫记忆回呼时被叫接听前主叫侧等待音,填写放音文件名,例如callback_wait_voice1.wav。

  • SP无需定制个性化放音文件,则接口消息中无需携带此参数,系统透传被叫侧铃声。
  • SP需要定制个性化放音文件,则接口消息中携带此参数,请提前制作放音文件并通过放音文件管理页面提交到RTC业务平台。

若携带的放音文件名错误或该放音文件没有上传到平台,则回呼时被叫接听前主叫侧无任何放音(若被叫未应答或拒接则系统播放失败音)。

calleeMedia

String(枚举)

all

该参数用于指定被叫的媒体音播放方式,参数取值范围如下:

  • all:透传被叫端的所有放音。当被叫端返回振铃音等媒体音,则终止主叫的等待音,播放被叫的媒体音,如彩铃音等。
  • none:不透传被叫所有放音,一直播放主叫的等待音,直到被叫应答或挂机。
  • fail:只有在被叫回失败放音时(带reason原因值),才终止主叫的等待音、播放被叫的失败放音。

不携带时,参数值默认为all。

statusUrl

String(1-128)

此字段用于设置SP接收状态上报的URL。

RTC平台将业务触发过程中通话的状态信息(包括呼出、振铃、摘机和挂机信息)推送至此服务器,SP根据通话状态信息确定用户状态。

此参数要求使用BASE64编码,如推送URL为https://www.huawei.com:9330/status,则参数值应该携带的是经过BASE64编码的aHR0cHM6Ly93d3cuaHVhd2VpLmNvbTo5MzMwL3N0YXR1cw==。

URL必须填写域名,且该域名对应多个服务器,避免单点故障无法接收通知。

URL只能由大小写字母(a-z、A-Z),数字(0-9),中划线(-),英文冒号(:),英文点号(.),以及英文斜杠(/)组成,不支持其它字符。最大128字节。

feeUrl

String(1-128)

此参数用于设置SP接收话单上报的URL。

RTC平台将业务产生的话单推送至此服务器。

此字段要求使用BASE64编码,如推送URL为https://www.huawei.com:9330/fee,则参数值应该携带的是经过BASE64编码的aHR0cHM6Ly93d3cuaHVhd2VpLmNvbTo5MzMwL2ZlZQ==。

URL必须填写域名,且该域名对应多个服务器,避免单点故障无法接收话单。

URL只能由大小写字母(a-z、A-Z),数字(0-9),中划线(-),英文冒号(:),英文点号(.),以及英文斜杠(/)组成,不支持其它字符。最大128字节。

recordFlag

String(枚举)

false

此字段设置语音回呼及呼叫记忆回呼通话过程是否录音。

  • true:开启录音,请添加应用开启录音功能。
  • false:不开启录音。

不携带时,参数值默认为false。

录音相关API包括“刷新访问Oceanstor的证书”“录音文件获取API”

recordHintTone

String(1-128)

此字段在recordFlag为true时才有效。

此字段用于设置使用录音功能的提示音,参数传值为指定的放音文件名,例如recordhint_voice1.wav。

  • 无需定制个性化放音时,接口消息中无需携带此参数,此时系统可能会放默认提示音,也可能不放,请与管理员确认
  • 需要定制个性化放音文件,接口消息中携带此参数,请提前制作放音文件并通过放音文件管理页面提交到RTC业务平台。

partyTypeRequiredInDisconnect

String(枚举)

false

该参数用于指定RTC业务平台给开发者发送disconnect的呼叫状态时,通知消息是否需要携带通话主动挂机的用户类型(主叫挂机、被叫挂机、平台挂机)。

该参数取值范围如下:

  • true:需要携带
  • false:不需要携带

不携带该参数时,默认值为false。

returnIdlePort

String(枚举)

false

指示是否需要返回平台空闲呼叫端口数量。

  • true:需要返回
  • false:不需要返回

不携带该参数时,默认值为false。

userData

String(1-256)

此字段用于SP开发者自定义呼叫发起时,设置用户的附属信息,应用场景可以是当开发者想要对每一次呼叫的用户进行跟踪时,该参数可以携带用于标识用户的信息,如customerId123.

RTC业务平台不对此参数做强制要求,如果开发者传入此参数,RTC业务平台会在后续发给SP的通知消息中携带该参数值。

不允许携带以下字符:“{”,“}”(即大括号)。

响应参数

表5 响应消息参数说明

参数名称

是否必选

参数类型

默认值

说明

resultcode

String(1-32)

请求返回的结果码。

resultdesc

String(1-128)

请求返回的结果描述。

sessionId

String(1-256)

请求返回的会话sessionId,用于标记一路会话。如果请求失败,则sessionId为空表示会话建立失败。

idlePort

Integer

请求参数中returnIdlePort为true时响应消息携带该参数。

该参数表示平台呼叫端口空闲可用数量,取值范围0~65535。

结果码

表6 结果码说明

响应码

结果码

英文描述

中文描述

处理方法

200

0

Success.

成功。

无需处理。

500

1010001

Internal system error.

系统错误。

请联系管理员处理。

1020001

Parameter error.

参数错误。

检查请求携带的参数格式是否都合法。

1020002

Internal error.

内部错误。

请联系管理员处理。

1020150

The app_key is invalid.

app_key无效。

检查请求携带的app_key是否填写正确,若填写正确,请检查请求携带的app_key所属应用状态是否正常

1020154

Insufficient voice ports.

语音端口不足。

请稍等一分钟后再试,并联系管理员申请扩容语音端口。

1020165

The number of app_key voice call ports exceeds the upper limit.

超出app_key语音呼叫端口数限制。

请稍等一分钟后再试,并联系管理员为该app_key对应的应用申请更多的端口配额。

1023002

Response timeout.

响应超时。

重新发送一次请求,若依然返回响应超时,请联系管理员处理。

403

1010002

Invalid request.

非法请求。

检查请求携带的参数格式是否都合法。

1010003

Invalid app_key.

无效的app_key。

检查请求携带的app_key是否填写正确,若填写正确,请检查请求携带的app_key所属应用状态是否正常

1010004

Invalid access_token.

access_token无效。

检查app_key和access_token的填写是否正确。

1010005

Expired access_token.

access_token已过期。

调用“刷新授权API”重新获取access_token。

1010006

Invalid Rest API.

无效的Rest API。

检查请求方法填写是否正确。

1010008

The status of the app_key is unavailable.

app_key不可用。

请检查请求携带的app_key所属应用状态是否正常

1010009

No more APIs can be invoked.

API达到调用上限。

请稍等一分钟后再试,并联系管理员申请更高的应用使用配额。

1010010

The flow control upper limit is reached on the platform.

平台达到系统流控上线。

请稍等一分钟后再试。

1010011

The app is not allowed to access a commercial address.

APP没有访问商用地址的权限。

请检查请求携带的app_key所属应用状态是否正常

1010021

Application unavailable

应用不可用。

请检查请求携带的app_key所属应用状态是否正常

1010023

Invalid display number.

主显号码不合法。

检查displayNbr和displayCalleeNbr参数的填写是否合法,若合法,请确认该号码是否已申请。

1010024

Invalid caller number.

主叫号码不合法。

检查callerNbr参数的填写是否合法,若合法,请联系管理员确认。

1010040

The app_key is not allowed to invoke the API.

app_key没有调用本API的权限。

请联系管理员确认该app_key对应的应用是否具有语音回呼能力。

1012001

Resource of number is not to be applied.

资源未申请。

app_key和业务号码未绑定,请检查app_key和bindNbr参数的填写是否正确。

1012006

The service number is not applied.

业务号码未申请。

请检查请求携带的bindNbr是否填写正确,若填写正确,请确认该号码是否已申请。

1012012

Application does not open recording function.

应用未开启录音功能。

请确认请求携带的app_key是否开启了录音功能。

1013001

The number of calls exceeds the threshold configured for the SP account, SPID is {}, and the policy name is {}.

呼叫数超过SP的阈值,SPID是{},策略名是{}。

请和管理员确认开发者呼叫数量限制。

1013002

The number of calls exceeds the threshold configured for the application, app_key is {}, and the policy name is {}.

呼叫数超过APP的阈值,app_key是{},策略名是{}。

请和管理员确认应用呼叫数量限制。

1013003

The number of calls exceeds the threshold configured for number {}, and the policy name is {}.

呼叫数超过号码{}的阈值,策略名是{}。

请和管理员确认显示号码呼叫数量限制。

注:若是全局呼叫频次策略组,则不返回具体号码。

1013004

Number {} is included in the blacklist, and the policy name is {}.

用户{}在黑名单里面,策略名是{}。

请和管理员确认被叫黑名单限制。

1013011

Callee is not on the whitelist.

被叫用户不在白名单中。

请和管理员确认被叫号码白名单限制。

1020166

The app client ip is not in ip white list.

对端app IP不在白名单列表中。

联系管理员检查IP白名单是否配置正确。

接口示例

  • 请求示例
    POST /rest/httpsessions/click2Call/v2.0?app_key=dDkf9iXdeCvdujk2034E7A7j0EMk&access_token=MTQ4Mjg5MDIzNjMyMjg5NjMxNTk2MDc3NzIwMTcxMjM0NjY1NjE1ODQ2MTY4QGNhYXMuaHVhd2VpLmNvbQ== HTTP/1.1 
    Date:Wed, 28 Dec 2016 01:56:46 GMT 
    Host:service.example.com 
    Accept:*/* 
    Content-Type:application/json; charset=UTF-8 
    Content-Length:489 
     
    { 
    "bindNbr":"+8675520161204", 
    "displayNbr":"+8675528888888", 
    "callerNbr":"+8613700000001", 
    "calleeNbr":"+8613700000002", 
    "userData":"cwgtest" 
    }
  • 响应示例
    HTTP/1.1 200 OK 
    Content-Type: application/json;charset=UTF-8 
    { 
    "resultcode":"0", 
    "resultdesc":"Success", 
    "sessionId":"1202_566_0_20161228102743@callenabler.home1.com" 
    }     

代码样例

前往代码样例查看。

如果您喜欢这篇文档,您还可以:

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区