云服务器内容精选

  • 语音通话使用全流程 任务 操作步骤 备注 入驻华为云 注册华为账号并开通华为云:点击注册页面 企业实名认证:点击进行实名认证 实名认证信息最长3个工作日内审核完成,请耐心等待审核结果,审核成功,即可完成认证。 开通服务 如何开通服务,点击查看开通服务。 开通语音通话服务前,请认真阅读《语音通话服务使用声明》。 业务开通申请将在1~2个工作日审核完成,请耐心等待审核结果。 添加应用 如何添加应用,点击查看添加应用。 不支持接入涉及安全事故的语音通知业务。 添加企业 如何添加企业,点击查看添加企业。 企业名称必须填写全称且和营业执照保持一致。 企业注册资金不得低于50W。 企业审核一般需要2个工作日。 订购号码 如何订购号码,点击查看订购号码。 申请固话号码,资源下发需要10个工作日。 添加放音文件/语音模板 如何添加放音文件,点击查看添加放音文件。 如何添加语音模板,点击查看添加语音模板。 根据应用类型添加放音文件或语音模板。 业务测试 如何业务测试,点击查看业务测试。 - 业务商用 如何业务商用,点击查看商业发布。 -
  • 接口示例 请求示例 POST /rest/httpsessions/callVerify/v1.0 HTTP/1.1 content-type: application/json;charset=UTF-8 authorization: AKSK realm="SDP",profile="UsernameToken",type="Appkey" x-aksk: UsernameToken Username="ZRBRz4bAXoFgEH7o4Ew308eXc1RA",PasswordDigest="****",Nonce="ac1c911c4792492687f8f6b2264a491e",Created="2018-05-26T00:35:30Z" content-length:xx { "displayNbr":"+8675528****88", "calleeNbr":"+86189****0007", "languageType":2, "preTone":"welcome.wav", "verifyCode":"12345678", "times":3, "userData":"cwgtest" } 响应示例 HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 { "resultcode":"0", "resultdesc":"Success", "sessionId":"1200_366_0_20161228102743@callenabler.home1.com" }
  • 结果码 请根据以下结果码进行调测,如果有疑问,可联系管理员进行确认。 表6 结果码说明 响应码 结果码 英文描述 中文描述 处理方法 200 0 Success. 成功。 无需处理。 400 1023006 Authorization not contained in the HTTP header. 鉴权失败,请检查鉴权请求正确性。 请检查消息头中是否携带了Authorization,PasswordDigest字段填写是否正确,携带的app_key填写是否正确,且生成随机数的时间与发送请求时的本地时间不能相差太大。 1023007 realm not contained in Authorization. Authorization字段中未找到realm属性。 请检查Authorization字段中的是否携带了realm属性。 1023008 profile not contained in Authorization. Authorization字段中未找到profile属性。 请检查Authorization字段中的是否携带了profile属性。 1023009 The value of realm in Authorization must be SDP. Authorization中realm属性值应该为“SDP”。 请检查Authorization字段中的realm属性值是否为“SDP”。 1023010 The value of profile in Authorization must be UsernameToken. Authorization中profile属性值应该为“UsernameToken”。 请检查Authorization字段中的profile属性值是否为“UsernameToken”。 1023011 The value of type in Authorization must be app_key. Authorization中type属性值应该为“Appkey”。 请检查Authorization字段中的type属性值是否为“Appkey”。 1023012 type not contained in Authorization. Authorization字段中未找到type属性。 请检查Authorization字段中是否携带了type属性。 1023033 HTTP header not found X-AKSK field. HTTP头未找到X-AKSK字段。 请检查HTTP消息头中是否携带了X-AKSK字段。 1023034 UserName not contained in X-AKSK. X-AKSK字段中未找到UserName属性。 请检查X-AKSK字段中的是否携带了Username属性。 1023035 Nonce not contained in X-AKSK. X-AKSK字段中未找到Nonce属性。 请检查X-AKSK字段中的是否携带了Nonce属性。 1023036 Created not contained in X-AKSK. X-AKSK字段中未找到Created属性。 请检查X-AKSK字段中的是否携带了Created属性。 1023037 PasswordDigest not contained in X-AKSK. X-AKSK字段中未找到PasswordDigest属性。 请检查X-AKSK字段中的是否携带了PasswordDigest属性。 1023038 UsernameToken not contained in X-AKSK. X-AKSK中没有携带UsernameToken。 请检查X-AKSK字段中的是否携带了UsernameToken属性。 401 1010010 Invalid digest. PasswordDigest校验失败。 请检查PasswordDigest字段填写是否正确。 1010013 Time out limit. 时间超出限制。 请确认X-AKSK鉴权时,生成随机数的时间与发送请求时的本地时间不能相差太大(具体差值请与管理员确认) 403 1010002 Invalid request. 非法请求。 检查请求携带的参数格式是否都合法。 1010003 Invalid app_key. 无效的app_key。 检查请求携带的app_key是否填写正确,app_key从应用管理页面获取,若填写正确,请在应用管理页面检查请求携带的app_key所属应用状态是否正常。 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和业务号码未绑定。 1012006 The service number is not applied. 业务号码未申请。 请确认是否申请业务号码。 1012012 Application does not open recording function. 应用未开启录音功能。 请在应用管理页面确认请求携带的app_key是否开启了录音功能。 1013001 Calls exceed the SP limit. 请求次数超过SP配置上限。 请和管理员确认开发者呼叫数量限制。 1013002 Calls exceed the APP limit. 请求次数超过应用配置上限。 请和管理员确认应用呼叫数量限制。 1013003 Calls exceed the display number limit. SP的主显号码受限。 请和管理员确认显示号码呼叫数量限制。 1013004 Callee in blacklist. 被叫用户是黑名单。 被叫号码在运营商黑名单库。 1013010 Caller in blacklist. 主叫用户是黑名单。 主叫号码在运营商黑名单库。 1013011 Callee is not on the whitelist. 被叫用户不在白名单中。 请和管理员确认被叫号码白名单限制。 1013100 Common error code . 未知错误。 请和管理员确认安全管控限制。 1013101 Abnormal call restricted . 呼叫行为异常。 请和管理员确认安全管控限制。 1013111 International callin is forbidden. 国际呼入限制。 请检查请求的号码格式是否为国际号码格式。 1013112 International callout is forbidden. 国际呼出限制。 请检查请求的号码格式是否为国际号码格式。 1013113 Abnormal call duration restricted. 通话时间异常。 请检查请求的号码是否通话时间异常。 1013115 Abnormal call completion rate restricted. 呼叫接通率异常。 请检查请求的号码是否呼叫接通率异常。 1013116 Caller call frequency restricted. 主叫呼叫频次限制。 请检查主叫号码是否有呼叫频次限制。 1013117 Callee call frequency restricted. 被叫呼叫频次限制。 请检查被叫号码是否有呼叫频次限制。 1013118 Service number call frequency restricted. 业务号码呼叫频次限制。 请检查业务号码是否有呼叫频次限制。 1013119 Service number suspend. 业务号码被暂停。 请和管理员确认号码状态。 1013120 Ip address is null. IPv4地址未携带。 请客户接口携带请求发送方IPv4地址。 1013121 Call black time forbidden. 呼叫时段限制。 呼叫时段为休息时段,请工作时段再呼叫。 1013122 Sub enterprise is suspended. 子企业已被暂停。 查看是否因投诉被下线,可查看订购号码时填写的邮箱是否有业务下线通知邮件。 1020165 The number of app_key voice call ports exceeds the upper limit. 超出语音呼叫端口数限制。 请稍等一分钟后再试。建议联系管理员为该应用申请更多的端口配额。 1020166 The app client ip is not in ip white list. 请求发送方app IP不在白名单列表中。 运营商IP地域管控,此地区无法呼通。 1020168 The call is rejected because the login IP of the peer app is blacklisted . 请求发送方app登录IP是黑名单。 运营商IP地域管控,此地区无法呼通。 1020171 The call is rejected because the login IP of the peer app is blacklisted area. 请求发送方app登录IP在受限地域。 运营商IP地域管控,此地区无法呼通。 1020176 Authentication failed, try again later 鉴权失败,稍后重试。 IP因鉴权失败次数过多导致被拉黑,请30分钟后重试,或联系管理员放通该IP。 500 1010001 Internal system error. 系统错误。 请联系管理员处理。 1020001 Parameter error. 参数错误。 检查请求携带的参数格式是否都合法。 1020002 Internal error. 内部错误。 请联系管理员处理。 1020150 The app_key is invalid. app_key无效。 检查请求携带的app_key是否填写正确,app_key从应用管理页面获取,若填写正确,请在应用管理页面检查请求携带的app_key所属应用状态是否正常。 1020151 The bindNum is invalid. 业务号码无效。 业务号码无效,请联系管理员处理。 1020154 Insufficient voice ports. 语音端口不足。 请稍等一分钟后再试,并联系管理员申请扩容语音端口。 1023001 Internal error. 内部错误。 请联系管理员处理。 1023002 Response timeout. 响应超时。 重新发送一次请求。
  • 响应参数 表5 响应消息参数说明 参数名称 是否必选 参数类型 默认值 说明 resultcode 是 String(1-32) 无 请求返回的结果码。 resultdesc 是 String(1-128) 无 请求返回的结果描述。 sessionId 是 String(1-256) 无 请求返回的会话sessionId,如果请求失败,则sessionId为空。 idlePort 否 Integer 无 请求参数中returnIdlePort为true时响应消息携带该参数。 该参数表示平台呼叫端口空闲可用数量,取值范围0~65535。
  • 请求参数 表2 请求Headers参数说明 参数名称 是否必选 参数类型 说明 Content-Type 是 String 固定填写为application/json;charset=UTF-8。 Authorization 是 String 固定填写为AKSK realm="SDP",profile="UsernameToken",type="Appkey"。 X-AKSK 是 String 取值为UsernameToken Username="APP_Key的值", PasswordDigest="PasswordDigest的值", Nonce="随机数", Created="随机数生成时间"。 PasswordDigest:根据PasswordDigest = Base64 (HMAC-SHA256 (Password,Nonce + Created))生成。其中,Password为APP_Secret的值。Nonce、Created、Password直接进行字符串拼接即可,无需包含+号和空格。 Nonce:客户发送请求时生成的一个随机数,长度为1~128位,可包含数字和大小写字母。例如:66C92B11FF8A425FB8D4CCFE0ED9ED1F。 Created:随机数生成时间。采用标准UTC格式,例如:2018-02-12T15:30:20Z。不同编程语言中将UTC时间戳转换为普通时间时使用的格式不同,部分语言可参考表3。 表3 不同编程语言的时间格式 编程语言 时间格式 Java yyyy-MM-dd'T'HH:mm:ss'Z' PHP Y-m-d\TH:i:s\Z Python %Y-%m-%dT%H:%M:%SZ C# yyyy-MM-ddTHH:mm:ssZ Node.js toISOString().replace(/.[0-9]+\Z/, 'Z') 注:Node.js中,使用toISOString()转换后的时间格式去除毫秒后即为本接口要求的时间格式。 表4 请求Body参数说明 参数名称 是否必选 参数类型 默认值 说明 displayNbr 是 String(4-31) 无 固话号码,被叫终端上显示的主叫号码,需要提前在订购号码页面申请该号码。 号码格式(固话):国家码+区号+固话,与号码管理页面的“号显号码”保持一致。 若该号码为“暂停”状态,语音通话平台会从该应用下随机选取一个其他可用的固话号码进行外呼。 calleeNbr 是 String(4-31) 无 被叫号码。 手机号码格式:+{国家码}{手机号码}。示例:+86134****2222。 固话格式:+{国家码}{区号}{固话号码},其中区号需去掉首位的0。示例:国家码86,区号0755,固话号码28****01,填写为+8675528****01。 languageType 是 Integer 无 验证码播放的语言类型。 取值范围: 2:中文 preTone 是 String(1-128) 无 播放语音验证码之前需要播放的放音文件名,放音文件需要提前通过放音文件管理页面上传并审核通过才能使用。 当前系统只支持Wave格式的音频文件,文件名如“pretone.wav”。 verifyCode 是 String(2-9) 无 验证码:只支持0~9的数字,最大8位。 如“12345678”。 posTone 否 String(1-128) 无 播放语音验证码之后需要播放的放音文件名。 如果携带该参数,放音文件需要提前通过放音文件管理页面上传并审核通过才能使用。 当前系统只支持Wave格式的音频文件,文件名如“postone.wav”。 如果不携带该参数,系统将在语音验证码播放完毕后结束通话。 times 否 Integer 3 播放次数:0~9。 0表示无限循环。 如果不携带该参数,默认播放3次。 statusUrl 否 String(1-128) 无 此参数请采用BASE64编码进行加密。 此字段用于设置SP接收状态上报的URL。 语音通话平台将业务触发过程中通话的状态信息(包括呼出、振铃、摘机和挂机信息)推送至此服务器,SP根据通话状态信息确定用户状态。 URL可填写为http://IP:Port或域名,推荐使用域名,支持http和https。且该域名对应多个服务器,避免单点故障无法接收通知。 URL只能由大小写字母(a-z、A-Z),数字(0-9),中划线(-),英文冒号(:),英文点号(.),以及英文斜杠(/)组成,不支持其它字符。 feeUrl 否 String(1-128) 无 此参数请采用BASE64编码进行加密。 此参数用于设置SP接收话单上报的URL。 语音通话平台将业务产生的话单推送至此服务器。 URL可填写为http://IP:Port或域名,推荐使用域名,支持http和https。且该域名对应多个服务器,避免单点故障无法接收话单。 URL只能由大小写字母(a-z、A-Z),数字(0-9),中划线(-),英文冒号(:),英文点号(.),以及英文斜杠(/)组成,不支持其它字符。 returnIdlePort 否 String(枚举) false 指示是否需要返回空闲端口数量。 true:需要返回 false:不需要返回 如果不携带该参数,系统默认该参数为false。 userData 否 String(1-256) 无 用户附属信息,此标识由第三方服务器定义,会在后续的通知消息中携带此信息。 不允许携带以下字符:“{”,“}”(即大括号)。 不允许包含中文字符,如果包含中文字符请采用Base64编码。
  • 接口示例 请求示例 POST /rest/httpsessions/click2Call/v2.0 HTTP1.1 content-type: application/json;charset=UTF-8 authorization: AKSK realm="SDP",profile="UsernameToken",type="Appkey" x-aksk: UsernameToken Username="ZRBRz4bAXoFgEH7o4Ew308eXc1RA",PasswordDigest="****",Nonce="ac1c911c4792492687f8f6b2264a491e",Created="2018-05-26T00:35:30Z" Content-Length:xx { "displayNbr":"+86755****8888", "callerNbr":"+86137****0001", "calleeNbr":"+86137****0002", "displayCalleeNbr":"+86755****8888", "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" }
  • 结果码 请根据以下结果码进行调测,如果有疑问,可联系管理员进行确认。 表6 结果码说明 响应码 结果码 英文描述 中文描述 处理方法 200 0 Success. 成功。 无需处理。 400 1023006 Authorization not contained in the HTTP header. 鉴权失败,请检查鉴权请求正确性。 请检查消息头中是否携带了Authorization,PasswordDigest字段填写是否正确,携带的app_key填写是否正确,且生成随机数的时间与发送请求时的本地时间不能相差太大。 1023007 realm not contained in Authorization. Authorization字段中未找到realm属性。 请检查Authorization字段中的是否携带了realm属性。 1023008 profile not contained in Authorization. Authorization字段中未找到profile属性。 请检查Authorization字段中的是否携带了profile属性。 1023009 The value of realm in Authorization must be SDP. Authorization中realm属性值应该为“SDP”。 请检查Authorization字段中的realm属性值是否为“SDP”。 1023010 The value of profile in Authorization must be UsernameToken. Authorization中profile属性值应该为“UsernameToken”。 请检查Authorization字段中的profile属性值是否为“UsernameToken”。 1023011 The value of type in Authorization must be app_key. Authorization中type属性值应该为“Appkey”。 请检查Authorization字段中的type属性值是否为“Appkey”。 1023012 type not contained in Authorization. Authorization字段中未找到type属性。 请检查Authorization字段中是否携带了type属性。 1023033 HTTP header not found X-AKSK field. HTTP头未找到X-AKSK字段。 请检查HTTP消息头中是否携带了X-AKSK字段。 1023034 UserName not contained in X-AKSK. X-AKSK字段中未找到UserName属性。 请检查X-AKSK字段中的是否携带了Username属性。 1023035 Nonce not contained in X-AKSK. X-AKSK字段中未找到Nonce属性。 请检查X-AKSK字段中的是否携带了Nonce属性。 1023036 Created not contained in X-AKSK. X-AKSK字段中未找到Created属性。 请检查X-AKSK字段中的是否携带了Created属性。 1023037 PasswordDigest not contained in X-AKSK. X-AKSK字段中未找到PasswordDigest属性。 请检查X-AKSK字段中的是否携带了PasswordDigest属性。 1023038 UsernameToken not contained in X-AKSK. X-AKSK中没有携带UsernameToken。 请检查X-AKSK字段中的是否携带了UsernameToken属性。 401 1010010 Invalid digest. PasswordDigest校验失败。 请检查PasswordDigest字段填写是否正确。 1010013 Time out limit. 时间超出限制。 请确认X-AKSK鉴权时,生成随机数的时间与发送请求时的本地时间不能相差太大(具体差值请与管理员确认) 403 1010002 Invalid request. 非法请求。 检查请求携带的参数格式是否都合法。 1010003 Invalid app_key. 无效的app_key。 检查请求携带的app_key是否填写正确,app_key从应用管理页面获取,若填写正确,请在应用管理页面检查请求携带的app_key所属应用状态是否正常。 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和业务号码未绑定。 1012006 The service number is not applied. 业务号码未申请。 请确认是否申请业务号码。 1012012 Application does not open recording function. 应用未开启录音功能。 请在应用管理页面确认请求携带的app_key是否开启了录音功能。 1013001 Calls exceed the SP limit. 请求次数超过SP配置上限。 请和管理员确认开发者呼叫数量限制。 1013002 Calls exceed the APP limit. 请求次数超过应用配置上限。 请和管理员确认应用呼叫数量限制。 1013003 Calls exceed the display number limit. SP的主显号码受限。 请和管理员确认显示号码呼叫数量限制。 1013004 Callee in blacklist. 被叫用户是黑名单。 被叫号码在运营商黑名单库。 1013010 Caller in blacklist. 主叫用户是黑名单。 主叫号码在运营商黑名单库。 1013011 Callee is not on the whitelist. 被叫用户不在白名单中。 请和管理员确认被叫号码白名单限制。 1013100 Common error code . 未知错误。 请和管理员确认安全管控限制。 1013101 Abnormal call restricted . 呼叫行为异常。 请和管理员确认安全管控限制。 1013111 International callin is forbidden. 国际呼入限制。 请检查请求的号码格式是否为国际号码格式。 1013112 International callout is forbidden. 国际呼出限制。 请检查请求的号码格式是否为国际号码格式。 1013113 Abnormal call duration restricted. 通话时间异常。 请检查请求的号码是否通话时间异常。 1013115 Abnormal call completion rate restricted. 呼叫接通率异常。 请检查请求的号码是否呼叫接通率异常。 1013116 Caller call frequency restricted. 主叫呼叫频次限制。 请检查主叫号码是否有呼叫频次限制。 1013117 Callee call frequency restricted. 被叫呼叫频次限制。 请检查被叫号码是否有呼叫频次限制。 1013118 Service number call frequency restricted. 业务号码呼叫频次限制。 请检查业务号码是否有呼叫频次限制。 1013119 Service number suspend. 业务号码被暂停。 请和管理员确认号码状态。 1013120 Ip address is null. IPv4地址未携带。 请客户接口携带请求发送方IPv4地址。 1013121 Call black time forbidden. 呼叫时段限制。 呼叫时段为休息时段,请工作时段再呼叫。 1013122 Sub enterprise is suspended. 子企业已被暂停。 查看是否因投诉被下线,可查看订购号码时填写的邮箱是否有业务下线通知邮件。 1020165 The number of app_key voice call ports exceeds the upper limit. 超出语音呼叫端口数限制。 请稍等一分钟后再试。建议联系管理员为该应用申请更多的端口配额。 1020166 The app client ip is not in ip white list. 请求发送方app IP不在白名单列表中。 运营商IP地域管控,此地区无法呼通。 1020168 The call is rejected because the login IP of the peer app is blacklisted . 请求发送方app登录IP是黑名单。 运营商IP地域管控,此地区无法呼通。 1020171 The call is rejected because the login IP of the peer app is blacklisted area. 请求发送方app登录IP在受限地域。 运营商IP地域管控,此地区无法呼通。 1020176 Authentication failed, try again later 鉴权失败,稍后重试。 IP因鉴权失败次数过多导致被拉黑,请30分钟后重试,或联系管理员放通该IP。 500 1010001 Internal system error. 系统错误。 请联系管理员处理。 1020001 Parameter error. 参数错误。 检查请求携带的参数格式是否都合法。 1020002 Internal error. 内部错误。 请联系管理员处理。 1020150 The app_key is invalid. app_key无效。 检查请求携带的app_key是否填写正确,app_key从应用管理页面获取,若填写正确,请在应用管理页面检查请求携带的app_key所属应用状态是否正常。 1020151 The bindNum is invalid. 业务号码无效。 业务号码无效,请联系管理员处理。 1020154 Insufficient voice ports. 语音端口不足。 请稍等一分钟后再试,并联系管理员申请扩容语音端口。 1023001 Internal error. 内部错误。 请联系管理员处理。 1023002 Response timeout. 响应超时。 重新发送一次请求。 1040001 south ne error with responseCode: %$ and responseMsg: %$. 南部网元错误。 请联系管理员处理。
  • 响应参数 表5 响应消息参数说明 参数名称 是否必选 参数类型 默认值 说明 resultcode 是 String(1-32) 无 请求返回的结果码。 resultdesc 是 String(1-128) 无 请求返回的结果描述。 sessionId 是 String(1-256) 无 请求返回的会话sessionId,用于标记一路会话。如果请求失败,则sessionId为空表示会话建立失败。 idlePort 否 Integer 无 请求参数中returnIdlePort为true时响应消息携带该参数。 该参数表示平台呼叫端口空闲可用数量,取值范围0~65535。
  • 请求参数 表2 请求Headers参数说明 参数名称 是否必选 参数类型 说明 Content-Type 是 String 固定填写为application/json;charset=UTF-8。 Authorization 是 String 固定填写为AKSK realm="SDP",profile="UsernameToken",type="Appkey"。 X-AKSK 是 String 取值为UsernameToken Username="APP_Key的值", PasswordDigest="PasswordDigest的值", Nonce="随机数", Created="随机数生成时间"。 PasswordDigest:根据PasswordDigest = Base64 (HMAC-SHA256 (Password,Nonce + Created))生成。其中,Password为APP_Secret的值。Nonce、Created、Password直接进行字符串拼接即可,无需包含+号和空格。 Nonce:客户发送请求时生成的一个随机数,长度为1~128位,可包含数字和大小写字母。例如:66C92B11FF8A425FB8D4CCFE0ED9ED1F。 Created:随机数生成时间。采用标准UTC格式,例如:2018-02-12T15:30:20Z。不同编程语言中将UTC时间戳转换为普通时间时使用的格式不同,部分语言可参考表3。 表3 不同编程语言的时间格式 编程语言 时间格式 Java yyyy-MM-dd'T'HH:mm:ss'Z' PHP Y-m-d\TH:i:s\Z Python %Y-%m-%dT%H:%M:%SZ C# yyyy-MM-ddTHH:mm:ssZ Node.js toISOString().replace(/.[0-9]+\Z/, 'Z') 注:Node.js中,使用toISOString()转换后的时间格式去除毫秒后即为本接口要求的时间格式。 表4 请求Body参数说明 参数名称 是否必选 参数类型 默认值 说明 displayNbr 是 String(4-31) 无 此字段定义主叫用户收到语音通话平台的呼叫时,主叫用户手机终端的来电显示号码。需提前在订购号码页面申请该号码。 号码格式(固话):国家码+区号+固话,与号码管理页面的“固话号码”保持一致。 若该号码为“暂停”状态,语音通话平台会从该应用下随机选取一个其他可用的固话号码进行外呼。 callerNbr 是 String(4-31) 无 此字段定义用户在SP开发的应用中,通过语音回呼功能发起呼叫时所使用的主叫号码。 手机号码格式:+{国家码}{手机号码}。示例:+86135***0002。 固话格式:+{国家码}{区号}{固话号码},其中区号需去掉首位的0。示例:国家码86,区号0755,固话号码28****02,填写为+8675528****02。 displayCalleeNbr 是 String(4-31) 无 此字段定义被叫用户收到语音通话平台的呼叫时,被叫用户终端的来电显示号码。需提前在订购号码页面申请该号码。 该号码可以与displayNbr配置为同一个号码,也可以配置为不同号码。 号码格式(固话):国家码+区号+固话,与号码管理页面的“固话号码”保持一致。 若该号码为“暂停”状态,语音通话平台会从该应用下随机选取一个其他可用的固话号码进行外呼。 calleeNbr 是 String(4-31) 无 此字段定义终端用户在SP开发的应用中通过语音回呼业务发起呼叫时所拨打的被叫号码。 号码格式: 手机号码格式:+{国家码}{手机号码}。示例:+86135****0004。 固话格式:+{国家码}{区号}{固话号码},其中区号需去掉首位的0。示例:国家码86,区号0755,固话号码28****04,填写为+8675528****04。 maxDuration 否 Integer 0 此字段用于设置允许单次通话进行的最长时间,通话时间从被叫接通的时刻开始计算。 取值范围:0~1440分钟 0:系统不主动结束通话,由主被叫双方结束通话。 1~1440:当通话时长达到此配置值,系统主动结束通话。 不携带时,参数值默认为0。 lastMinVoice 否 String(1-128) 无 当maxDuration字段设置为非0时此参数有效。 此参数用于设置最后一分钟放音提示音,此值填写SP定制的放音文件名,例如lastmin_voice1.wav,参数取值有以下两种场景: SP无需定制个性化放音,无需配置此参数,系统将使用默认放音文件,放音内容为:“本次通话时长还剩1分钟”。 SP需要定制个性化放音,接口消息中携带此参数,参数值携带定制的放音文件名,请提前制作放音文件并通过放音文件管理页面提交到语音通话平台。 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需要定制个性化放音文件,接口消息中携带此参数,请提前制作放音文件并通过放音文件管理页面提交到语音通话平台。 waitVoice 否 String(1-128) 无 此字段用于设置主叫应答语音回呼后的等待音,此值填写放音文件名,例如wait_voice1.wav。 SP无需定制个性化放音文件,接口消息中无需携带此参数,系统将使用默认放音,系统边给主叫放音(循环放音)边拨打被叫用户;被叫应答才中止放音。 SP需要定制个性化放音文件,接口消息中携带此参数,请提前制作放音文件并通过放音文件管理页面提交到语音通话平台。 waitVoice可结合calleeMedia使用。 calleeMedia 否 String(枚举) all 该参数用于指定被叫的媒体音播放方式,参数取值范围如下: all:透传被叫端的所有放音。当被叫端返回振铃音等媒体音,则终止主叫的等待音,播放被叫的媒体音,如彩铃音等。 none:不透传被叫所有放音,一直播放主叫的等待音,直到被叫应答或挂机。 fail:只有在被叫回失败放音时(带reason原因值),才终止主叫的等待音、播放被叫的失败放音。 不携带时,参数值默认为all。 statusUrl 否 String(1-128) 无 此参数请采用BASE64编码进行加密。 此字段用于设置SP接收状态上报的URL。 语音通话平台将业务触发过程中通话的状态信息(包括呼出、振铃、摘机和挂机信息)推送至此服务器,SP根据通话状态信息确定用户状态。 URL可填写为http://IP:Port或域名,推荐使用域名,支持http和https。且该域名对应多个服务器,避免单点故障无法接收通知。 URL只能由大小写字母(a-z、A-Z),数字(0-9),中划线(-),英文冒号(:),英文点号(.),以及英文斜杠(/)组成,不支持其它字符。最大128字节。 feeUrl 否 String(1-128) 无 此参数请采用BASE64编码进行加密。 此参数用于设置SP接收话单上报的URL。 语音通话平台将业务产生的话单推送至此服务器。 URL可填写为http://IP:Port或域名,推荐使用域名,支持http和https。且该域名对应多个服务器,避免单点故障无法接收话单。 URL只能由大小写字母(a-z、A-Z),数字(0-9),中划线(-),英文冒号(:),英文点号(.),以及英文斜杠(/)组成,不支持其它字符。最大128字节。 recordFlag 否 String(枚举) false 此字段设置语音回呼通话过程是否录音。 true:开启录音,请在添加应用时开启录音功能。 false:不开启录音。 不携带时,参数值默认为false。 recordHintTone 否 String(1-128) 无 此字段在recordFlag为true时才有效。 此字段用于设置使用录音功能的提示音,参数传值为指定的放音文件名,例如recordhint_voice1.wav。 无需定制个性化放音时,接口消息中无需携带此参数,此时系统可能会放默认提示音,也可能不放,请联系华为云客服确认。 需要定制个性化放音文件时,接口消息中携带此参数,请提前制作放音文件并通过放音文件管理页面提交到语音通话平台。 partyTypeRequiredInDisconnect 否 String(枚举) false 该参数用于指定语音通话平台给开发者发送disconnect的呼叫状态时,通知消息是否需要携带通话主动挂机的用户类型(主叫挂机、被叫挂机、平台挂机)。 该参数取值范围如下: true:需要携带 false:不需要携带 不携带该参数时,默认值为false。 returnIdlePort 否 String(枚举) false 指示是否需要返回平台空闲呼叫端口数量。 true:需要返回 false:不需要返回 不携带该参数时,默认值为false。 userData 否 String(1-256) 无 此字段用于SP开发者自定义呼叫发起时,设置用户的附属信息,应用场景可以是当开发者想要对每一次呼叫的用户进行跟踪时,该参数可以携带用于标识用户的信息,如customerId123。 语音通话平台不对此参数做强制要求,如果开发者传入此参数,语音通话平台会在后续发给SP的通知消息中携带该参数值。 不允许携带以下字符:“{”,“}”(即大括号)。 不允许包含中文字符,如果包含中文字符请采用Base64编码。
  • 使用说明 前提条件 已通过“应用管理”页面获取该语音回呼能力的APP_Key,APP_Secret和APP接入地址。 已通过“号码订购”页面向语音通话平台申请以下号码: 若使用定制化主叫端来电显示号码,请确认已申请固话号码(displayNbr)。 若需隐藏主叫号码,使用定制化被叫端来电显示号码,请确认已申请固话号码(displayCalleeNbr)。 若需使用通话录音功能,请确认已向语音通话平台申请该功能。 若使用个性化放音,请确认已按要求制作并通过放音文件管理页面向语音通话平台提交放音文件,包括最后一分钟提示音(lastMinVoice),主叫提示音(preVoice),主叫等待音(waitVoice),录音提示音(recordHintTone),回呼提示音(callBackTone)。 若需订阅呼叫状态和话单通知,请确认已通过应用管理向语音通话平台提交呼叫状态通知URL(statusUrl)和话单通知URL(feeUrl)。若未提交,调用接口时填写也可以。 注意事项 无。 使用限制 无。
  • 能力实现流程 Jack在某快递官方网站浏览快递信息,有疑问需要电话咨询客服人员,Jack在网站输入自己的电话号码使用语音回呼业务联系客服人员,整个业务流程如图2所示。 图2 语音回呼能力实现流程 前提条件 快递网站服务器与语音通话平台对接正常,并根据实际情况开启录音功能。 该录音功能涉及个人用户通信内容。建议您只有在所适用法律法规允许的目的和范围内方可启用相应的功能。在使用、存储用户通信内容的过程中,您应采取足够的措施以确保用户的通信内容受到严格保护。 录音功能会涉及用户的通信内容,请确保更换的录音提示音满足当地法律法规的要求。
  • 通信云服务权限 默认情况下,管理员创建的IAM用户没有任何权限,需要将其加入用户组,并给用户组授予策略或角色,才能使得用户组中的用户获得对应的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。 通信云服务部署时通过物理区域划分,为项目级服务。授权时,“作用范围”需要选择“区域级项目”,然后在指定区域(如华北-北京一)对应的项目(cn-north-1)中设置相关权限,并且该权限仅对此项目生效;如果在“所有项目”中设置权限,则该权限在所有区域项目中都生效。访问通信云服务时,需要先切换至授权区域。 如表 通信云服务系统角色所示,包括了通信云服务的所有系统角色。由于华为云各服务之间存在业务交互关系,当通信云服务的角色依赖其他服务的角色实现功能时,给用户授予通信云服务的角色时,需要同时授予依赖的角色,通信云服务的权限才能生效。 表1 通信云服务系统角色 策略名称 描述 依赖关系 RTC Administrator 对消息&短信、隐私保护通话、语音通话的所有执行权限。 - 表2列出了语音通话平台常用操作与系统权限的授权关系,您可以参照该表选择合适的系统权限。 表2 常用操作与系统权限的关系 操作 RTC Administrator 添加/修改/删除企业 √ 添加/修改应用 √ 添加/修改号码订购 √ 添加/修改/删除放音文件 √ 添加/修改/删除语音模板 √
  • 查看业务统计 进入语音通话控制台,选择“业务统计”,进入业务统计页面。 选择“语音回呼”、“语音通知”或“语音验证码”,按需筛选。 可根据应用名称、业务号码、企业名称筛选指定时间(连续不超过六个月)的业务统计数据。 可点击“本月”/“上月”快速筛选查看本月/上月的业务统计数据。 查看业务统计详情。 各业务统计项如下: 语音回呼:统计业务的主被叫呼叫次数、主被叫接通次数、主被叫呼叫时长和主被叫接通率。 语音通知、语音验证码:统计业务的呼叫次数、接通次数、呼叫时长和接通率。 统计表支持添加扩展项“企业名称”统计业务数据,在统计表上方的“查看扩展数据”中选择。 导出统计详情:筛选相关数据后,点击页面右上角按钮即可导出统计详情。
  • 添加应用 语音通话应用是用户使用华为云语音通话服务的载体。请根据您所开展的业务,填写应用信息: 语音通话服务默认可添加5个应用。 应用添加成功后将无法删除且无法修改“业务类型”。 请登录并进入语音通话控制台。 进入“应用管理”页面,点击“添加应用”。 按照页面提示填写应用信息。 应用名称:用户自定义。可以包含中文、英文字母、数字、下划线,不能包含空格,最大长度为64个字符。 业务类型:请根据实际业务场景选择。点此了解各个模式 注:选择业务类型后,若有以下提示,请根据提示执行不同的操作。没有提示请忽略。 提示 说明 您尚未开通权限,去开通 添加应用的业务类型与开通服务时调研表的业务类型不一致,请点击链接跳转到语音通话开通服务调研表页面,填写完成后点击“立即开通”。 业务需审核(1个工作日),请等待审核通过后再添加应用。 您的权限申请还在审核中,请等待 已在语音通话开通服务调研表页面申请开通权限,运营经理审核中,请耐心等待审核结果(1个工作日)。 您的权限申请已被驳回,驳回原因:xxx,去修改 语音通话开通服务调研表页面的某些内容不符合规范,请点击链接跳转到语音通话开通服务调研表页面后按要求修改,修改完成后点击“立即开通”,等待审核通过后(1个工作日)再添加应用。 您的权限已被取消,重新提交 请联系运营经理确认具体情况。确认完成后点击链接跳转到语音通话开通服务调研表页面,填写完成后点击“立即开通”。 业务需审核(1个工作日),请等待审核通过后再添加应用。 是否开通录音: “是否开通录音”选择“是”,并在调用语音通话接口时设置了录音参数,语音通话才会被录音。(已开通录音的应用无法进行“是否开通录音”的修改) “是否开通录音”选择“否”,后续使用应用时若想修改此项,可在该应用对应的“操作”列点击“修改”,“是否开通录音”选择“是”即可。 是否开通语音质检: 该参数仅在“是否开通录音”选择“是”时出现。 只有此处选择“是”,才会开启应用的语音质检功能。 为保证业务合规运营,您授权并同意语音通话服务随机抽查录音进行质检,我们会充分尊重您的隐私,并遵从华为云《隐私政策声明》。 随机抽检录音提示音:用于指定个性化随机抽检录音提示音。 该参数仅在“是否开通录音”和“是否开通语音质检”都选择“是”时出现。 需提前在放音文件管理页面上传并审核通过才可使用。若不设置,则选择“不播放提示音”。 呼叫状态接收地址&呼叫话单接收地址:用于接收语音通话平台推送的呼叫状态或话单的URL地址。 可填写为http://IP:Port或域名,推荐使用域名,支持http和https。 请确保提供的地址正确,且地址前后不要有多余的空格和回车。 被授权通知接收地址:用于接收语音通知业务被授权应用的通知信息的URL地址。如果需要接收被授权通知,则必须填写该地址。 请确保提供的地址正确,且地址前后不要有多余的空格和回车。 企业项目:已开通企业项目,才有该选项。用于设置应用所属的企业项目。若已开通企业管理但无企业项目要求,可选择默认企业项目。点此了解企业管理 企业项目的项目类型分为“商用生产项目”和“测试类项目”,若您的资源是按合同商务扣费,请选择“商用生产项目”类型的企业项目。 已创建的企业项目的类型可进入项目管理页面查看。 若已选择“测试类项目”,请参考测试类项目转商用生产项目将测试类项目转为商用生产项目 点击“提交”。 提交后,点击提示框中的“立即下载”按钮,下载并保存应用APP_Secret。 APP_Secret仅支持首次更新下载,也可在应用管理页面点击“更新”,完成身份验证后下载新的APP_Secret。 应用创建后,可以在应用管理页中查看应用信息,修改应用和添加应用授权。 当“是否开通语音质检”由“是”改为“否”时,需要运营经理审核且审核通过后才能生效,请点击“确认”后耐心等待审核结果。审核结果请在应用详情(点击应用名称左侧的)中查看,如果审核通过,则“是否开通语音质检”显示为“否”,否则仍显示为“是”。 导出应用信息 进入应用管理页面,根据业务类型、应用名称、创建时间、状态,按需筛选,点击页面右上角的按钮导出相关应用信息。
  • Java 注:使用前请务必先仔细阅读使用注意事项。 环境要求 JDK 1.6及以上版本。 引用库 httpclient、httpcore、httpmime、commons-codec、commons-logging、jackson-databind、jackson-annotations、jackson-core、fastjson、log4j 下载链接 点击下载 本文档所述Demo在提供服务的过程中,可能会涉及个人数据的使用,建议您遵从国家的相关法律采取足够的措施,以确保用户的个人数据受到充分的保护。 本文档所述Demo仅用于功能演示,不允许客户直接进行商业使用。 本文档信息仅供参考,不构成任何要约或承诺。 父主题: 语音通知代码样例