云服务器内容精选

  • A回呼场景请求参数 表6 请求Headers参数说明 参数名称 是否必选 参数类型 说明 Content-Type 是 String 固定填写为application/json;charset=UTF-8。 Authorization 是 String 固定填写为WSSE realm="SDP",profile="UsernameToken",type="Appkey"。 X-WSSE 是 String 取值为UsernameToken Username="APP_Key的值", PasswordDigest="PasswordDigest的值", Nonce="随机数", Created="随机数生成时间"。 PasswordDigest:根据PasswordDigest = Base64 (SHA256 (Nonce + Created + Password))生成。其中,Password为APP_Secret的值。Nonce、Created、Password直接进行字符串拼接即可,无需包含+号和空格。 Nonce:客户发送请求时生成的一个随机数,长度为1~128位,可包含数字和大小写字母。例如:66C92B11FF8A425FB8D4CCFE0ED9ED1F。 Created:随机数生成时间。采用标准UTC格式,例如:2018-02-12T15:30:20Z。不同编程语言中将UTC时间戳转换为普通时间时使用的格式不同,部分语言可参考表7。 表7 不同编程语言的时间格式 编程语言 时间格式 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()转换后的时间格式去除毫秒后即为本接口要求的时间格式。 表8 请求Body参数说明 参数名称 是否必选 参数类型 说明 eventType 是 String(枚举) 该参数标识通知的事件类型。 取值范围如下: fee:话单事件 feeLst 否 FeeInfo[1-50] 呼叫话单事件的信息,参数取值为列表,最大50条。 当eventType参数为fee时携带。
  • A被叫场景请求参数 表2 请求Headers参数说明 参数名称 是否必选 参数类型 说明 Content-Type 是 String 固定填写为application/json;charset=UTF-8。 Authorization 是 String 固定填写为WSSE realm="SDP",profile="UsernameToken",type="Appkey"。 X-WSSE 是 String 取值为UsernameToken Username="APP_Key的值", PasswordDigest="PasswordDigest的值", Nonce="随机数", Created="随机数生成时间"。 PasswordDigest:根据PasswordDigest = Base64 (SHA256 (Nonce + Created + Password))生成。其中,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参数说明 参数名称 是否必选 参数类型 说明 eventType 是 String(枚举) 该参数标识通知的事件类型。 取值范围如下: fee:话单事件 feeLst 否 FeeInfo[1-50] 呼叫话单事件的信息,参数取值为列表,最大50条。 当eventType参数为fee时携带。 表5 FeeInfo定义 参数名称 是否必须 参数类型 描述 direction 是 Integer (0-1) 通话的呼叫方向。 0:其他用户呼叫A。 2:异常场景(如无绑定数据等)。 spId 是 String(1-32) 客户的云服务账号。 appKey 是 String(1-128) 隐私保护通话 应用的app_key。 icid 否 String(1-64) 呼叫记录的唯一标识。 bindNum 是 String(1-32) 隐私保护号码,号码为全局号码格式(包含国家码),比如+86138****0021。 sessionId 是 String(1-256) 通话链路的唯一标识。 callerNum 是 String(1-32) 主叫号码,号码为全局号码格式(包含国家码),比如+86138****0021。 当呼叫场景经过转接时,此参数对应第一路呼叫的主叫号码。 说明: A被叫场景,第一路呼叫为B拨打X号码,callerNum为B号码。 calleeNum 是 String(1-32) 被叫号码,号码为全局号码格式(包含国家码),比如+86138****0021。 当呼叫场景经过转接时,此参数对应第一路呼叫的被叫号码。 说明: A被叫场景,第一路呼叫为B拨打X号码,calleeNum为X号码。 fwdDisplayNum 否 String(1-32) 转接呼叫时的显示号,号码为全局号码格式(包含国家码),比如+86138****0021。 当呼叫场景经过转接时,此参数对应第二路呼叫的主显号码。 说明: A被叫场景,第二路呼叫为X拨打A号码,fwdDisplayNum为X号码。 fwdDstNum 否 String(1-32) 转接呼叫时的转接号码。号码仅支持全局号码格式(包含国家码),比如+86138****0021。 当呼叫场景经过转接时,此参数对应第二路呼叫的被叫号码。 说明: A被叫场景,第二路呼叫为X拨打A号码,fwdDstNum为A号码。 callInTime 是 String(1-128) 呼入的开始时间。 该参数为UTC时间(+8小时为北京时间),时间格式为“yyyy-MM-dd HH:mm:ss”。 fwdStartTime 否 String(1-128) 转接呼叫操作的开始时间。 该参数为UTC时间(+8小时为北京时间),时间格式为“yyyy-MM-dd HH:mm:ss”。 fwdAlertingTime 否 String(1-128) 转接呼叫操作后的振铃时间。 该参数为UTC时间(+8小时为北京时间),时间格式为“yyyy-MM-dd HH:mm:ss”。 fwdAnswerTime 否 String(1-128) 转接呼叫操作后的应答时间。 该参数为UTC时间(+8小时为北京时间),时间格式为“yyyy-MM-dd HH:mm:ss”。 callEndTime 是 String(1-128) 呼叫结束时间。 该参数为UTC时间(+8小时为北京时间),时间格式为“yyyy-MM-dd HH:mm:ss”。 fwdUnaswRsn 否 Integer 转接呼叫操作失败的Q850原因值。详细说明参见Q850原因值说明。 failTime 否 String(1-128) 呼入、呼出的失败时间。 该参数为UTC时间(+8小时为北京时间),时间格式为“yyyy-MM-dd HH:mm:ss”。 ulFailReason 否 Integer 通话失败的拆线点。详细说明参见呼叫拆线点说明。 sipStatusCode 否 Integer 呼入、呼出的失败SIP状态码。 recordFlag 否 Integer (0-1) 该字段用于录音标识,参数值范围如: 0:表示未录音 1:表示有录音 recordStartTime 否 String(1-128) 录音开始时间。 该参数为UTC时间(+8小时为北京时间),时间格式为“yyyy-MM-dd HH:mm:ss”。 recordObjectName 否 String(0-128) 录音文件名。 说明: 参数值为空时,请访问“recordFileDownloadUrl”参数携带的录音文件下载地址下载录音文件。 recordBucketName 否 String(0-128) 录音文件名所在的目录名。 说明: 参数值为空时,请访问“recordFileDownloadUrl”参数携带的录音文件下载地址下载录音文件。 recordDomain 否 String(0-256) 存放录音文件的 域名 。 说明: 参数值为空时,请访问“recordFileDownloadUrl”参数携带的录音文件下载地址下载录音文件。 serviceType 否 String(1-32) 携带呼叫的业务类型信息,取值范围: 005:AXE模式 hostName 否 String(1-128) 该参数用于标识话单生成的服务器设备对应的主机名。 subscriptionId 否 String(1-64) 绑定ID。 extendNumber 否 String(1-4) 分机号E,该参数仅在AXE模式A被叫场景携带。 callOutUnaswRsn 否 Integer Initcall的呼出失败的Q850原因值。 详细说明参见Q850原因值说明。 说明: 预留参数,无需关注。 ttsPlayTimes 否 integer 应用 TTS 功能时,使用TTS的总次数。 说明: 预留参数,无需关注。 ttsTransDuration 否 integer 应用TTS功能时,TTS Server进行TTS转换的总时长。单位为秒。 说明: 预留参数,无需关注。 mptyId 否 String(1-128) 该参数作为预留字段,用于标识Enabler服务器上一条多方通话的链路。 该参数仅在多方通话场景生效。 说明: 预留参数,无需关注。 voiceCheckType 否 Integer(枚举) 录音质检类型,取值如下: Null:无质检 0:无录音质检,表示API指示不录音(即recordFlag取值为false)时进行的质检 1:有录音质检,表示API指示要录音(即recordFlag取值为true)时进行的质检 recordFileDownloadUrl 否 String(1-1024) 录音文件下载地址,可通过该URL在浏览器中下载录音文件。 说明: 使用该参数的场景请联系华为云客服获取。 areaCode 否 String(0-32) 隐私保护号码(X号码)的城市码。 说明: 使用该参数的场景请联系华为云客服获取。 callDuration 否 Integer 呼叫的通话时长,单位为秒。 说明: 使用该参数的场景请联系华为云客服获取。 userData 否 String(1-256) 用户附属信息。 当客户在AXE模式绑定接口中携带了“userData”时,对应的话单通知消息中会携带此参数。 接口示例 POST /fee HTTP/1.1 content-type: application/json;charset=UTF-8 authorization: WSSE realm="SDP",profile="UsernameToken",type="Appkey" x-wsse: UsernameToken Username="************",PasswordDigest="*************",Nonce="ac1c911c4792492687f8f6b2264a491e",Created="2018-05-26T00:35:30Z" content-length:xx {"eventType":"fee","feeLst":[{"direction":0,"spId":"****","appKey":"********","icid":"ba171f34e6953fcd751edc77127748f4.3757289590.338833305.5","bindNum":"+86138****0022","sessionId":"1201_11275_4294967295_20190124033310@callenabler246.huaweicaas.com","subscriptionId":"********","callerNum":"+86138****7021","calleeNum":"+86138****0022","fwdDisplayNum":"+86138****0022","fwdDstNum":"+86138****0021","callInTime":"2019-01-24 03:33:10","fwdStartTime":"2019-01-24 03:33:16","fwdAlertingTime":"2019-01-24 03:33:19","fwdAnswerTime":"2019-01-24 03:33:28","callEndTime":"2019-01-24 03:33:57","fwdUnaswRsn":0,"ulFailReason":0,"sipStatusCode":0,"callOutUnaswRsn":0,"recordFlag":1,"recordStartTime":"2019-01-24 03:33:28","recordDomain":"****.com","recordBucketName":"****","recordObjectName":"********.wav","ttsPlayTimes":0,"ttsTransDuration":0,"mptyId":"********","serviceType":"005","hostName":"callenabler246.huaweicaas.com","extendNumber":"02"}]}
  • 使用说明 前提条件 客户添加应用时需设置呼叫话单接收地址,并确保提供的地址能够正常处理隐私保护通话平台发送的通知消息。 注意事项 若平台给客户推送话单后未收到成功响应,视为推送失败,平台会重新推送话单,直至客户返回成功响应。平台最多重推6次,分别于1分钟、4分钟、9分钟、106分钟、203分钟和300分钟后重推。 若没有收到平台推送请参考收不到呼叫事件和话单通知如何处理? 使用限制 业务平台推送话单信息给开发者应用,仅支持POST方式。
  • 响应参数 客户服务器接收到隐私保护通话平台的短信事件通知后,根据不同的模式返回不同响应消息。 Notify模式 返回无消息体的200响应。 Block模式 响应必须参照表7携带消息体,返回对短信事件的处理操作。 表7 响应消息参数说明 参数名称 是否必选 参数类型 说明 actions 是 SMS ActionType[] 短信操作指示。 表8 SMSActionType定义 参数名称 是否必选 参数类型 说明 operation 是 String(1-32) 操作类型: vNumberRoute:转发短信。 DiscardMessage:丢弃短信。 message 否 MessageInfo 短信操作信息。 仅当operation取值为“vNumberRoute”时有效。 extParas 否 JsonArray 预留参数,当前版本无需关注。 表9 MessageInfo定义 参数名称 是否必选 参数类型 说明 called 否 String(1-64) 真实接收方号码。 号码仅支持全局号码格式(包含国家码),比如+86138****7022。 calling 否 String(1-64) 真实发送方号码。 和请求参数中的calling参数的取值保持一致。 号码仅支持全局号码格式(包含国家码),比如+86138****7021。
  • 接口示例 接口示例仅供参考,请以实际消息为准。 notify模式 请求示例 POST /notify HTTP/1.1 content-type: application/json;charset=UTF-8 authorization: WSSE realm="SDP",profile="UsernameToken",type="Appkey" x-wsse: UsernameToken Content-Type: application/json;charset=UTF-8 { "appKey":"****", "smsEvent":{"smsIdentifier":"********", "notificationMode":"Notify", "calling":"+86138****0001", "virtualNumber":"+86138****0000", "event":"TextSMS", "timeStamp":"2020-12-23T09:06:16.450Z", "extInfo":{"extParas":[{"key":"splitNum","value":"0"},{"key":"direction","value":"2"}]}, "sendResult":2 } } 响应示例 HTTP/1.1 200 OK Block模式 请求示例 POST /block HTTP/1.1 content-type: application/json;charset=UTF-8 authorization: WSSE realm="SDP",profile="UsernameToken",type="Appkey" x-wsse: UsernameToken Content-Type: application/json;charset=UTF-8 { "appKey":"****", "smsEvent":{"smsIdentifier":"****", "notificationMode":"Block", "calling":"+86138****0001", "virtualNumber":"+86138****0000", "event":"TextSMS", "timeStamp":"2018-09-13T09:46:16.023Z", "extInfo":{"extParas":[{"key":"splitNum","value":"2"},{"key": "direction","value": "1"}]}, "sendResult":0 } } 响应示例 HTTP/1.1 200 OK Content-Type: application/JSON;charset=UTF-8 Content-Length: xx { "actions":[{ "operation":"vNumberRoute", "message":{"called":"+86138****0002", "calling":"+86138****0001" } }] }
  • 接口功能 隐私保护通话平台通过此接口向客户服务器推送隐私号短信通知。 通知模式分为Notify和Block模式: Notify:通知模式,Notify模式的短信通知会被推送到客户添加应用时填写的短信通知地址,客户收到通知后返回HTTP状态码为200的空消息即可。 Block:控制模式,Block模式的短信通知会被推送到客户添加应用时填写的短信控制地址,客户收到通知后需按照Block模式响应参数返回响应,指示隐私保护通话平台转发或丢弃短信。 X模式发送隐私号短信的流程如下: A发送短信给X,隐私保护通话平台推送Block模式的隐私号短信通知给客户服务器,此时客户服务器必须返回响应参数对短信事件进行控制。隐私保护通话平台根据客户服务器返回的结果转发或丢弃隐私号短信;如果操作是转发,转发成功后推送Notify模式的隐私号短信通知给客户服务器。
  • 请求参数 表2 请求Headers参数说明 参数名称 是否必选 参数类型 说明 Content-Type 是 String 固定填写为application/json;charset=UTF-8。 Authorization 是 String 固定填写为WSSE realm="SDP",profile="UsernameToken",type="Appkey"。 X-WSSE 是 String 取值为UsernameToken Username="APP_Key的值", PasswordDigest="PasswordDigest的值", Nonce="随机数", Created="随机数生成时间"。 PasswordDigest:根据PasswordDigest = Base64 (SHA256 (Nonce + Created + Password))生成。其中,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参数说明 参数名称 是否必选 参数类型 说明 appKey 是 String(1-32) 隐私保护通话应用的APP_Key。 smsEvent 是 SMSEventInfoType 短信状态事件。 表5 SMSEventInfoType定义 参数名称 是否必选 参数类型 说明 smsIdentifier 是 String(1-64) 短信唯一标识。 若用户发送的是长短信,隐私保护通话平台会将长短信的多个分片合并为一个通知上报。 notificationMode 是 String(1-8) 通知模式: Notify:通知模式。 Block:控制模式。 calling 否 String(1-32) 真实发送方号码。 号码为全局号码格式(包含国家码),比如+86138****7021。 called 否 String(1-32) 真实接收方号码。 仅在隐私保护通话平台转发短信成功后携带。 号码为全局号码格式(包含国家码),比如+86138****7022。 virtualNumber 否 String(1-32) X号码。 号码为全局号码格式(包含国家码),比如+86138****0001。 event 是 String(1-16) 短信状态事件。 TextSMS:文本短信 timeStamp 是 String(1-32) 短信事件发生的系统时间戳,UTC时间。 格式:yyyy-MM-dd'T'HH:mm:ss.SSS'Z' 其中SSS是毫秒,“T”和“Z”为固定字符。 extInfo 是 ExtensionInfoType 拓展信息。 subscriptionId 否 String(1-64) 绑定ID。 smsContent 否 String(1-2000) 用户发送的短信内容。 请参考如何设置才能收到短信内容?开通该功能。 sendResult 是 Integer 发送结果。 0:成功 1:因用户账户冻结,发送失败。 2:因绑定关系不存在,发送失败。 3:因X号码被暂停,发送失败。 4:非商用APP,发送失败。 5:因系统内部错误,发送失败。 8:黑名单管控,发送失败。 9:部分发送成功。 10:全部发送失败。 11:X号码不支持短信能力。 12:短信内容不包含特征关键词。 13:短信内容包含禁止词汇。 areaCode 否 String(0-32) 隐私保护号码(X号码)的城市码。 说明: 使用该参数的场景请联系华为云客服获取。 userData 否 String(0-256) 用户附属信息。 此参数的值与Block模式响应参数中携带的“userData”参数值一致。 说明: 使用该参数的场景请联系华为云客服获取。 若使用该参数,该参数仅在“notificationMode”为“Notify”的时候携带。 表6 ExtensionInfoType定义 参数名称 是否必选 参数类型 说明 extParas 是 JsonArray 扩展信息(Key-Value)列表。 格式如下: "extParas": [{"key": "splitNum","value": "value1"},{"key": "direction","value": "value2"}] Key、Value取值分别不能超过32个字节。 “key”取值为“splitNum”时表示实际短信发送成功数量,即长短信拆分后的短信数量。value1表示“splitNum”的取值。 “key”取值为“direction”时表示短信发送方向。value2表示“direction”取值,固定取值为1。
  • 请求参数 表2 请求Headers参数说明 参数名称 是否必选 参数类型 说明 Content-Type 是 String 固定填写为application/json;charset=UTF-8。 Authorization 是 String 固定填写为WSSE realm="SDP",profile="UsernameToken",type="Appkey"。 X-WSSE 是 String 取值为UsernameToken Username="APP_Key的值", PasswordDigest="PasswordDigest的值", Nonce="随机数", Created="随机数生成时间"。 PasswordDigest:根据PasswordDigest = Base64 (SHA256 (Nonce + Created + Password))生成。其中,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参数说明 参数名称 是否必选 参数类型 说明 eventType 是 String(枚举) 该参数标识通知的事件类型。 取值范围如下: fee:话单事件 feeLst 否 FeeInfo[1-50] 呼叫话单事件的信息,参数取值为列表,最大50条。 当eventType参数为fee时携带。 表5 FeeInfo定义 参数名称 是否必须 参数类型 描述 direction 是 Integer (0-1) 通话的呼叫方向。 0:B呼叫A。 1:A呼叫B。 2:异常场景(如无绑定数据等)。 spId 是 String(1-32) 客户的云服务账号。 appKey 是 String(1-128) 隐私保护通话应用的app_key。 icid 否 String(1-64) 呼叫记录的唯一标识。 bindNum 是 String(1-32) 隐私保护号码,号码为全局号码格式(包含国家码),比如+86138****0021。 sessionId 是 String(1-256) 通话链路的唯一标识。 callerNum 是 String(1-32) 主叫号码,号码为全局号码格式(包含国家码),比如+86138****0021。 当呼叫场景经过转接时,此参数对应第一路呼叫的主叫号码。 说明: 第一路呼叫为B拨打X号码,callerNum为B号码。 calleeNum 是 String(1-128) 被叫号码,号码为全局号码格式(包含国家码),比如+86138****0021。 当呼叫场景经过转接时,此参数对应第一路呼叫的被叫号码。 说明: 第一路呼叫为B拨打X号码,calleeNum为X号码。 fwdDisplayNum 否 String(1-32) 转接呼叫时的显示号,号码为全局号码格式(包含国家码),比如+86138****0021。 当呼叫场景经过转接时,此参数对应第二路呼叫的主显号码。 说明: 第二路呼叫为Y拨打A号码,fwdDisplayNum为Y号码。 fwdDstNum 否 String(1-32) 转接呼叫时的转接号码。号码仅支持全局号码格式(包含国家码),比如+86138****0021。 当呼叫场景经过转接时,此参数对应第二路呼叫的被叫号码。 说明: 第二路呼叫为Y拨打A号码,fwdDstNum为A号码。 callInTime 是 String(1-128) 呼入的开始时间。 该参数为UTC时间(+8小时为北京时间),时间格式为“yyyy-MM-dd HH:mm:ss”。 fwdStartTime 否 String(1-128) 转接呼叫操作的开始时间。 该参数为UTC时间(+8小时为北京时间),时间格式为“yyyy-MM-dd HH:mm:ss”。 fwdAlertingTime 否 String(1-128) 转接呼叫操作后的振铃时间。 该参数为UTC时间(+8小时为北京时间),时间格式为“yyyy-MM-dd HH:mm:ss”。 fwdAnswerTime 否 String(1-128) 转接呼叫操作后的应答时间。 该参数为UTC时间(+8小时为北京时间),时间格式为“yyyy-MM-dd HH:mm:ss”。 callEndTime 是 String(1-128) 呼叫结束时间。 该参数为UTC时间(+8小时为北京时间),时间格式为“yyyy-MM-dd HH:mm:ss”。 fwdUnaswRsn 否 Integer 转接呼叫操作失败的Q850原因值。详细说明参见Q850原因值说明。 failTime 否 String(1-128) 呼入、呼出的失败时间。 该参数为UTC时间(+8小时为北京时间),时间格式为“yyyy-MM-dd HH:mm:ss”。 ulFailReason 否 Integer 通话失败的拆线点。详细说明参见呼叫拆线点说明。 sipStatusCode 否 Integer 呼入、呼出的失败SIP状态码。 recordFlag 否 Integer (0-1) 该字段用于录音标识,参数值范围如: 0:表示未录音 1:表示有录音 recordStartTime 否 String(1-128) 录音开始时间。 该参数为UTC时间(+8小时为北京时间),时间格式为“yyyy-MM-dd HH:mm:ss”。 recordObjectName 否 String(1-128) 录音文件名。 说明: 参数值为空时,请访问“recordFileDownloadUrl”参数携带的录音文件下载地址下载录音文件。 recordBucketName 否 String(1-128) 录音文件名所在的目录名。 说明: 参数值为空时,请访问“recordFileDownloadUrl”参数携带的录音文件下载地址下载录音文件。 recordDomain 否 String(1-256) 存放录音文件的域名。 说明: 参数值为空时,请访问“recordFileDownloadUrl”参数携带的录音文件下载地址下载录音文件。 serviceType 否 String(1-32) 携带呼叫的业务类型信息,取值范围: 007:AXYB模式 hostName 否 String(1-128) 该参数用于标识话单生成的服务器设备对应的主机名。 subscriptionId 否 String(1-64) 绑定ID。 callOutUnaswRsn 否 Integer Initcall的呼出失败的Q850原因值。 详细说明参见Q850原因值说明。 说明: 预留参数,无需关注。 ttsPlayTimes 否 integer 应用TTS功能时,使用TTS的总次数。 说明: 预留参数,无需关注。 ttsTransDuration 否 integer 应用TTS功能时,TTS Server进行TTS转换的总时长。单位为秒。 说明: 预留参数,无需关注。 mptyId 否 String(1-128) 该参数作为预留字段,用于标识Enabler服务器上一条多方通话的链路。 该参数仅在多方通话场景生效。 说明: 预留参数,无需关注。 voiceCheckType 否 Integer(枚举) 录音质检类型,取值如下: Null:无质检 0:无录音质检,表示API指示不录音(即recordFlag取值为false)时进行的质检 1:有录音质检,表示API指示要录音(即recordFlag取值为true)时进行的质检 recordFileDownloadUrl 否 String(1-1024) 录音文件下载地址,可通过该URL在浏览器中下载录音文件。 说明: 使用该参数的场景请联系华为云客服获取。 areaCode 否 String(0-32) 隐私保护号码(X号码)的城市码。 说明: 使用该参数的场景请联系华为云客服获取。 callDuration 否 Integer 呼叫的通话时长,单位为秒。 说明: 使用该参数的场景请联系华为云客服获取。 userData 否 String(1-256) 用户自定义数据。 若客户在调用AXYB模式绑定接口时携带了“userData”,对应此呼叫事件的通知消息中都会携带此参数。 接口示例 POST /fee HTTP/1.1 content-type: application/json;charset=UTF-8 authorization: WSSE realm="SDP",profile="UsernameToken",type="Appkey" x-wsse: UsernameToken Username="************",PasswordDigest="*************",Nonce="ac1c911c4792492687f8f6b2264a491e",Created="2018-05-26T00:35:30Z" content-length:xx {"eventType":"fee","feeLst":[{"direction":1,"spId":"****","appKey":"********","icid":"ba171f34e6953fcd751edc77127748f4.3757223714.337238282.9","bindNum":"+86138****0022","sessionId":"1200_1029_4294967295_20190123091514@callenabler246.huaweicaas.com","subscriptionId":"****","callerNum":"+86138****0021","calleeNum":"+86138****0022","fwdDisplayNum":"+86138****0023","fwdDstNum":"+86138****7021","callInTime":"2019-01-23 09:15:14","fwdStartTime":"2019-01-23 09:15:15","fwdAlertingTime":"2019-01-23 09:15:21","fwdAnswerTime":"2019-01-23 09:15:36","callEndTime":"2019-01-23 09:16:41","fwdUnaswRsn":0,"ulFailReason":0,"sipStatusCode":0,"callOutUnaswRsn":0,"recordFlag":1,"recordStartTime":"2019-01-23 09:15:37","recordDomain":"****.com","recordBucketName":"sp-********","recordObjectName":"********.wav","ttsPlayTimes":0,"ttsTransDuration":0,"mptyId":"****","serviceType":"007","hostName":"callenabler246.huaweicaas.com"}]}
  • 使用说明 前提条件 客户添加应用时需设置呼叫话单接收地址,并确保提供的地址能够正常处理隐私保护通话平台发送的通知消息。 注意事项 若平台给客户推送话单后未收到成功响应,视为推送失败,平台会重新推送话单,直至客户返回成功响应。平台最多重推6次,分别于1分钟、4分钟、9分钟、106分钟、203分钟和300分钟后重推。 若没有收到平台推送请参考收不到呼叫事件和话单通知如何处理? 使用限制 业务平台推送话单信息给开发者应用,仅支持POST方式。
  • 请求参数 AXB模式中,A和B通过X号码形成绑定关系,使用隐私号码X互相通讯。 以下流程和接口示例以A拨打X,呼叫转接至B,B用户接听为例,流程和接口示例仅供参考,请以实际消息为准。 图1 AXB业务流程 表2 请求Headers参数说明 参数名称 是否必选 参数类型 说明 Content-Type 是 String 固定填写为application/json;charset=UTF-8。 Authorization 是 String 固定填写为WSSE realm="SDP",profile="UsernameToken",type="Appkey"。 X-WSSE 是 String 取值为UsernameToken Username="APP_Key的值", PasswordDigest="PasswordDigest的值", Nonce="随机数", Created="随机数生成时间"。 PasswordDigest:根据PasswordDigest = Base64 (SHA256 (Nonce + Created + Password))生成。其中,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参数说明 参数名称 是否必选 参数类型 说明 eventType 是 String(枚举) 该参数标识通知的事件类型。 取值范围如下: callin:呼入事件 callout:呼出事件 alerting:振铃事件 answer:应答事件 disconnect:挂机事件 statusInfo 否 CallStatusInfo 呼叫状态事件的信息。 当eventType参数为callin、callout、alerting、answer、disconnect时携带。 callin:呼入事件 callout:呼出事件 alerting:振铃事件 answer:应答事件 disconnect:挂机事件 CallStatusInfo定义 表5 callin:呼入事件 参数名称 是否必选 参数类型 说明 timestamp 是 String(1-128) 该呼叫事件发生时隐私保护通话平台的UNIX时间戳。 该参数取值为UTC时间(+8小时为北京时间)格式,即为“yyyy-MM-dd HH:mm:ss”。 sessionId 是 String(1-256) 唯一指定一条通话链路的标识ID。 caller 否 String(1-32) 主叫号码。 号码为全局号码格式(包含国家码),如+86138****0021。 说明: 呼入事件的主叫号码为A号码。 called 否 String(1-32) 被叫号码。 说明: 呼入事件的被叫号码为X号码。 subscriptionId 否 String(1-64) 绑定ID。 userData 否 String(1-256) 用户附属信息。 说明: 使用该参数的场景请联系华为云客服获取。 接口示例 POST /status HTTP/1.1 content-type: application/json;charset=UTF-8 authorization: WSSE realm="SDP",profile="UsernameToken",type="Appkey" x-wsse: UsernameToken Username="************",PasswordDigest="*************",Nonce="ac1c911c4792492687f8f6b2264a491e",Created="2018-05-26T00:35:30Z" Content-Length: xx {"eventType":"callin","statusInfo":{"sessionId":"1200_1029_4294967295_20190123091514@callenabler246.huaweicaas.com","timestamp":"2019-01-23 09:15:14","caller":"+86138****0021","called":"+86138****0022","subscriptionId":"****"}} 表6 callout:呼出事件 参数名称 是否必选 参数类型 说明 timestamp 是 String(1-128) 该呼叫事件发生时隐私保护通话平台的UNIX时间戳。 该参数取值为UTC时间(+8小时为北京时间)格式,即为“yyyy-MM-dd HH:mm:ss”。 sessionId 是 String(1-256) 唯一指定一条通话链路的标识ID。 caller 否 String(1-32) 主叫号码。 号码为全局号码格式(包含国家码),如+86138****0021。 说明: 呼出事件的主叫号码为X号码。 called 否 String(1-32) 被叫号码。 说明: 呼出事件的被叫号码为B号码。 subscriptionId 否 String(1-64) 绑定ID。 userData 否 String(1-256) 用户附属信息。 当客户在AXB模式绑定接口、AXB模式绑定信息修改接口中携带了“userData”时,对应此呼叫事件的通知消息中都会携带此参数。 接口示例 POST /status HTTP/1.1 content-type: application/json;charset=UTF-8 authorization: WSSE realm="SDP",profile="UsernameToken",type="Appkey" x-wsse: UsernameToken Username="************",PasswordDigest="*************",Nonce="ac1c911c4792492687f8f6b2264a491e",Created="2018-05-26T00:35:30Z" content-length:xx {"eventType":"callout","statusInfo":{"sessionId":"1200_1029_4294967295_20190123091514@callenabler246.huaweicaas.com","timestamp":"2019-01-23 09:15:15","caller":"+86138****0021","called":"+86138****7021","subscriptionId":"****"}} 表7 alerting:振铃事件 参数名称 是否必选 参数类型 说明 timestamp 是 String(1-128) 该呼叫事件发生时隐私保护通话平台的UNIX时间戳。 该参数取值为UTC时间(+8小时为北京时间)格式,即为“yyyy-MM-dd HH:mm:ss”。 sessionId 是 String(1-256) 唯一指定一条通话链路的标识ID。 caller 否 String(1-32) 主叫号码。 号码为全局号码格式(包含国家码),如+86138****0021。 说明: 振铃事件的主叫号码为X号码。 called 否 String(1-32) 被叫号码。 说明: 振铃事件的被叫号码为B号码。 subscriptionId 否 String(1-64) 绑定ID。 userData 否 String(1-256) 用户附属信息。 当客户在AXB模式绑定接口、AXB模式绑定信息修改接口中携带了“userData”时,对应此呼叫事件的通知消息中都会携带此参数。 接口示例 POST /status HTTP/1.1 content-type: application/json;charset=UTF-8 authorization: WSSE realm="SDP",profile="UsernameToken",type="Appkey" x-wsse: UsernameToken Username="************",PasswordDigest="*************",Nonce="ac1c911c4792492687f8f6b2264a491e",Created="2018-05-26T00:35:30Z" content-length:xx {"eventType":"alerting","statusInfo":{"sessionId":"1200_1029_4294967295_20190123091514@callenabler246.huaweicaas.com","timestamp":"2019-01-23 09:15:16","caller":"+86138****0021","called":"+86138****7021","subscriptionId":"****"}} 表8 answer:应答事件 参数名称 是否必选 参数类型 说明 timestamp 是 String(1-128) 该呼叫事件发生时隐私保护通话平台的UNIX时间戳。 该参数取值为UTC时间(+8小时为北京时间)格式,即为“yyyy-MM-dd HH:mm:ss”。 sessionId 是 String(1-256) 唯一指定一条通话链路的标识ID。 caller 否 String(1-32) 主叫号码。 号码为全局号码格式(包含国家码),如+86138****0021。 说明: 应答事件的主叫号码为X号码。 called 否 String(1-32) 被叫号码。 说明: 应答事件的被叫号码为B号码。 subscriptionId 否 String(1-64) 绑定ID。 userData 否 String(1-256) 用户附属信息。 当客户在AXB模式绑定接口、AXB模式绑定信息修改接口中携带了“userData”时,对应此呼叫事件的通知消息中都会携带此参数。 接口示例 POST /status HTTP/1.1 content-type: application/json;charset=UTF-8 authorization: WSSE realm="SDP",profile="UsernameToken",type="Appkey" x-wsse: UsernameToken Username="************",PasswordDigest="*************",Nonce="ac1c911c4792492687f8f6b2264a491e",Created="2018-05-26T00:35:30Z" content-length:xx {"eventType":"answer","statusInfo":{"sessionId":"1200_1029_4294967295_20190123091514@callenabler246.huaweicaas.com","timestamp":"2019-01-23 09:15:36","caller":"+86138****0021","called":"+86138****7021","subscriptionId":"****"}} 表9 disconnect:挂机事件 参数名称 是否必选 参数类型 说明 timestamp 是 String(1-128) 该呼叫事件发生时隐私保护通话平台的UNIX时间戳。 该参数取值为UTC时间(+8小时为北京时间)格式,即为“yyyy-MM-dd HH:mm:ss”。 sessionId 是 String(1-256) 唯一指定一条通话链路的标识ID。 caller 否 String(1-32) 主叫号码。 号码为全局号码格式(包含国家码),如+86138****0021。 说明: 此处返回号码非真实主被叫号码,真实主被叫号码请以fee事件中的返回值为准。 called 否 String(1-32) 被叫号码。 说明: 此处返回号码非真实主被叫号码,真实主被叫号码请以fee事件中的返回值为准。 stateCode 否 Integer 通话挂机的原因值,仅当eventType为disconnect时携带。 取值范围及表示的含义请参考通话挂机原因值说明。 stateDesc 否 String(1-128) 通话挂机的原因值的描述,仅当eventType为disconnect时携带。 subscriptionId 否 String(1-64) 绑定ID。 userData 否 String(1-256) 用户附属信息。 当客户在AXB模式绑定接口、AXB模式绑定信息修改接口中携带了“userData”时,对应此呼叫事件的通知消息中都会携带此参数。 接口示例 POST /status HTTP/1.1 content-type: application/json;charset=UTF-8 authorization: WSSE realm="SDP",profile="UsernameToken",type="Appkey" x-wsse: UsernameToken Username="************",PasswordDigest="*************",Nonce="ac1c911c4792492687f8f6b2264a491e",Created="2018-05-26T00:35:30Z" content-length:xx {"eventType":"disconnect","statusInfo":{"sessionId":"1200_1029_4294967295_20190123091514@callenabler246.huaweicaas.com","timestamp":"2019-01-23 09:16:41","caller":"+86138****0021","called":"+86138****7021","stateCode":0,"stateDesc":"The user releases the call.","subscriptionId":"****"}}
  • 使用说明 前提条件 客户添加应用时需设置呼叫状态接收地址,并确保提供的地址能够正常处理隐私保护通话平台发送的通知消息。 如果需要单独接收呼入事件(callin),需联系客服,提供呼入事件状态接收地址。 注意事项 若平台给客户推送呼叫事件通知后未收到成功响应,视为推送失败,平台会重新推送呼叫事件通知,直至客户返回成功响应。平台最多重推6次,分别于1分钟、4分钟、9分钟、106分钟、203分钟和300分钟后重推。 若没有收到平台推送请参考收不到呼叫事件和话单通知如何处理? 使用限制 业务平台推送呼叫状态给开发者应用,仅支持POST方式。
  • 使用说明 前提条件 客户添加应用时需启用推送X号码状态功能并设置呼叫状态接收地址或X号码状态接收地址,并确保提供的地址能够正常处理隐私保护通话平台发送的通知消息。 注:若需单独接收X号码状态通知,需填写X号码状态接收地址。若呼叫状态接收地址和X号码状态接收地址都填写了,隐私保护通话平台会向呼叫状态接收地址推送呼叫事件通知,向X号码状态接收地址推送X号码状态通知。 使用限制 业务平台推送呼叫状态给开发者应用,仅支持POST方式。
  • 请求参数 表2 请求Headers参数说明 参数名称 是否必选 参数类型 说明 Content-Type 是 String 固定填写为application/json;charset=UTF-8。 Authorization 是 String 固定填写为WSSE realm="SDP",profile="UsernameToken",type="Appkey"。 X-WSSE 是 String 取值为UsernameToken Username="APP_Key的值", PasswordDigest="PasswordDigest的值", Nonce="随机数", Created="随机数生成时间"。 PasswordDigest:根据PasswordDigest = Base64 (SHA256 (Nonce + Created + Password))生成。其中,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参数说明 参数名称 是否必选 参数类型 说明 eventType 是 String(枚举) 该参数标识通知的事件类型。 取值范围如下: numStatus:X号码状态变化 numInfo 否 numInfo [1-100] X号码状态变化事件的信息,参数取值为列表,最大100条。 当eventType参数为numStatus时携带。 表5 numInfo定义 参数名称 是否必须 参数类型 说明 number 是 String 状态变化的X号码。 status 是 String 号码状态。 5:正常 9:暂停 10:不可用 11:冻结绑定 说明: 各号码状态对业务的影响如下: 正常:无影响。 暂停&不可用:绑定、呼叫和短信都不可用。 冻结绑定:号码不可新增绑定关系,但已存在的绑定关系的呼叫和短信业务不受影响。 cause 否 String 号码不可用原因。仅status为不可用时携带。 1:号码已删除 2:欠费 3:停机 5:X号码被运营商限呼 6:X号码限呼恢复 7:X号码开通了无条件前转业务 8:X号码开通了无应答前转业务 9:X号码开通了被叫忙前转业务 接口示例 POST /Xnumber/status HTTP/1.1 content-type: application/json;charset=UTF-8 authorization: WSSE realm="SDP",profile="UsernameToken",type="Appkey" x-wsse: UsernameToken Username="************",PasswordDigest="*************",Nonce="ac1c911c4792492687f8f6b2264a491e",Created="2018-05-26T00:35:30Z" content-length:xx {"eventType":"numStatus","numInfo":[{"number":"+86156****0000","status":"9"}]}
  • A回呼场景请求参数 A回呼场景是指和隐私号码X绑定的号码A作为通话方中的主叫的场景,即A用户呼叫X,呼叫转接至最近一次通过X呼叫A的用户(如B)。若找不到对应回呼记录,则隐私保护通话平台根据绑定时的设置给A放指定音(callbackTone)后结束呼叫,或将呼叫转接至指定号码(callbackNum)。 注:以下流程以B用户接听为例,流程和接口示例仅供参考,请以实际消息为准。B号码是通过X号码呼叫过A的号码(存在回呼记录)或企业设置的指定转接号码(不存在回呼记录)。 图2 A回呼场景业务流程 表11 请求Headers参数说明 参数名称 是否必选 参数类型 说明 Content-Type 是 String 固定填写为application/json;charset=UTF-8。 Authorization 是 String 固定填写为WSSE realm="SDP",profile="UsernameToken",type="Appkey"。 X-WSSE 是 String 取值为UsernameToken Username="APP_Key的值", PasswordDigest="PasswordDigest的值", Nonce="随机数", Created="随机数生成时间"。 PasswordDigest:根据PasswordDigest = Base64 (SHA256 (Nonce + Created + Password))生成。其中,Password为APP_Secret的值。Nonce、Created、Password直接进行字符串拼接即可,无需包含+号和空格。 Nonce:客户发送请求时生成的一个随机数,长度为1~128位,可包含数字和大小写字母。例如:66C92B11FF8A425FB8D4CCFE0ED9ED1F。 Created:随机数生成时间。采用标准UTC格式,例如:2018-02-12T15:30:20Z。不同编程语言中将UTC时间戳转换为普通时间时使用的格式不同,部分语言可参考表12。 表12 不同编程语言的时间格式 编程语言 时间格式 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()转换后的时间格式去除毫秒后即为本接口要求的时间格式。 表13 请求Body参数说明 参数名称 是否必选 参数类型 说明 eventType 是 String(枚举) 该参数标识通知的事件类型。 取值范围如下: callin:呼入事件 callout:呼出事件 alerting:振铃事件 answer:应答事件 disconnect:挂机事件 statusInfo 否 CallStatusInfo 呼叫状态事件的信息。 当eventType参数为callin、callout、alerting、answer、disconnect时携带。 callin:呼入事件 callout:呼出事件 alerting:振铃事件 answer:应答事件 disconnect:挂机事件 CallStatusInfo定义 表14 callin:呼入事件 参数名称 是否必选 参数类型 说明 timestamp 是 String(1-128) 该呼叫事件发生时隐私保护通话平台的UNIX时间戳。 该参数取值为UTC时间(+8小时为北京时间)格式,即为“yyyy-MM-dd HH:mm:ss”。 sessionId 是 String(1-256) 唯一指定一条通话链路的标识ID。 caller 否 String(1-32) 主叫号码。 号码为全局号码格式(包含国家码),如+86138****0021。 说明: A回呼场景,呼入事件的主叫号码为A号码。 called 否 String(1-32) 被叫号码。 说明: A回呼场景,呼入事件的被叫号码为X号码。 userData 否 String(1-256) 用户附属信息。 说明: 使用该参数的场景请联系华为云客服获取。 接口示例 POST /status HTTP/1.1 content-type: application/json;charset=UTF-8 authorization: WSSE realm="SDP",profile="UsernameToken",type="Appkey" x-wsse: UsernameToken Username="************",PasswordDigest="*************",Nonce="ac1c911c4792492687f8f6b2264a491e",Created="2018-05-26T00:35:30Z" content-length:xx {"eventType":"callin","statusInfo":{"sessionId":"1202_1051_4294967295_20190124070250@callenabler246.huaweicaas.com","timestamp":"2019-01-24 07:02:50","caller":"+86138****0021","called":"+86138****0022"}} 表15 callout:呼出事件 参数名称 是否必选 参数类型 说明 timestamp 是 String(1-128) 该呼叫事件发生时隐私保护通话平台的UNIX时间戳。 该参数取值为UTC时间(+8小时为北京时间)格式,即为“yyyy-MM-dd HH:mm:ss”。 sessionId 是 String(1-256) 唯一指定一条通话链路的标识ID。 caller 否 String(1-32) 主叫号码。 号码为全局号码格式(包含国家码),如+86138****0021。 说明: A回呼场景,呼出事件的主叫号码为X号码。 called 否 String(1-32) 被叫号码。 说明: A回呼场景,呼出事件的被叫号码为B号码。 subscriptionId 否 String(1-64) 绑定ID。 userData 否 String(1-256) 用户附属信息。 当客户在AXE模式绑定接口中携带了“userData”时,对应此呼叫事件的通知消息中都会携带此参数。 接口示例 POST /status HTTP/1.1 content-type: application/json;charset=UTF-8 authorization: WSSE realm="SDP",profile="UsernameToken",type="Appkey" x-wsse: UsernameToken Username="************",PasswordDigest="*************",Nonce="ac1c911c4792492687f8f6b2264a491e",Created="2018-05-26T00:35:30Z" content-length:xx {"eventType":"callout","statusInfo":{"sessionId":"1202_1051_4294967295_20190124070250@callenabler246.huaweicaas.com","timestamp":"2019-01-24 07:02:50","caller":"+86138****0022","called":"+86138****7021","subscriptionId":"********"}} 表16 alerting:振铃事件 参数名称 是否必选 参数类型 说明 timestamp 是 String(1-128) 该呼叫事件发生时隐私保护通话平台的UNIX时间戳。 该参数取值为UTC时间(+8小时为北京时间)格式,即为“yyyy-MM-dd HH:mm:ss”。 sessionId 是 String(1-256) 唯一指定一条通话链路的标识ID。 caller 否 String(1-32) 主叫号码。 号码为全局号码格式(包含国家码),如+86138****0021。 说明: A回呼场景,振铃事件的主叫号码为X号码。 called 否 String(1-32) 被叫号码。 说明: A回呼场景,振铃事件的被叫号码为B号码。 subscriptionId 否 String(1-64) 绑定ID。 userData 否 String(1-256) 用户附属信息。 当客户在AXE模式绑定接口中携带了“userData”时,对应此呼叫事件的通知消息中都会携带此参数。 接口示例 POST /status HTTP/1.1 content-type: application/json;charset=UTF-8 authorization: WSSE realm="SDP",profile="UsernameToken",type="Appkey" x-wsse: UsernameToken Username="************",PasswordDigest="*************",Nonce="ac1c911c4792492687f8f6b2264a491e",Created="2018-05-26T00:35:30Z" content-length:xx {"eventType":"alerting","statusInfo":{"sessionId":"1202_1051_4294967295_20190124070250@callenabler246.huaweicaas.com","timestamp":"2019-01-24 07:02:53","caller":"+86138****0022","called":"+86138****7021","subscriptionId":"********"}} 表17 answer:应答事件 参数名称 是否必选 参数类型 说明 timestamp 是 String(1-128) 该呼叫事件发生时隐私保护通话平台的UNIX时间戳。 该参数取值为UTC时间(+8小时为北京时间)格式,即为“yyyy-MM-dd HH:mm:ss”。 sessionId 是 String(1-256) 唯一指定一条通话链路的标识ID。 caller 否 String(1-32) 主叫号码。 号码为全局号码格式(包含国家码),如+86138****0021。 说明: A回呼场景,应答事件的主叫号码为X号码。 called 否 String(1-32) 被叫号码。 说明: A回呼场景,应答事件的被叫号码为B号码。 subscriptionId 否 String(1-64) 绑定ID。 userData 否 String(1-256) 用户附属信息。 当客户在AXE模式绑定接口中携带了“userData”时,对应此呼叫事件的通知消息中都会携带此参数。 接口示例 POST /status HTTP/1.1 content-type: application/json;charset=UTF-8 authorization: WSSE realm="SDP",profile="UsernameToken",type="Appkey" x-wsse: UsernameToken Username="************",PasswordDigest="*************",Nonce="ac1c911c4792492687f8f6b2264a491e",Created="2018-05-26T00:35:30Z" content-length:xx {"eventType":"answer","statusInfo":{"sessionId":"1202_1051_4294967295_20190124070250@callenabler246.huaweicaas.com","timestamp":"2019-01-24 07:03:03","caller":"+86138****0022","called":"+86138****7021","subscriptionId":"********"}} 表18 disconnect:挂机事件 参数名称 是否必选 参数类型 说明 timestamp 是 String(1-128) 该呼叫事件发生时隐私保护通话平台的UNIX时间戳。 该参数取值为UTC时间(+8小时为北京时间)格式,即为“yyyy-MM-dd HH:mm:ss”。 sessionId 是 String(1-256) 唯一指定一条通话链路的标识ID。 caller 否 String(1-32) 主叫号码。 号码为全局号码格式(包含国家码),如+86138****0021。 说明: 此处返回号码非真实主被叫号码,真实主被叫号码请以fee事件中的返回值为准。 called 否 String(1-32) 被叫号码。 说明: 此处返回号码非真实主被叫号码,真实主被叫号码请以fee事件中的返回值为准。 stateCode 否 Integer 通话挂机的原因值,仅当eventType为disconnect时携带。 取值范围及表示的含义请参考通话挂机原因值说明。 stateDesc 否 String(1-128) 通话挂机的原因值的描述,仅当eventType为disconnect时携带。 subscriptionId 否 String(1-64) 绑定ID。 userData 否 String(1-256) 用户附属信息。 当客户在AXE模式绑定接口中携带了“userData”时,对应此呼叫事件的通知消息中都会携带此参数。 接口示例 POST /status HTTP/1.1 content-type: application/json;charset=UTF-8 authorization: WSSE realm="SDP",profile="UsernameToken",type="Appkey" x-wsse: UsernameToken Username="************",PasswordDigest="*************",Nonce="ac1c911c4792492687f8f6b2264a491e",Created="2018-05-26T00:35:30Z" content-length:xx {"eventType":"disconnect","statusInfo":{"sessionId":"1202_1051_4294967295_20190124070250@callenabler246.huaweicaas.com","timestamp":"2019-01-24 07:03:28","caller":"+86138****0022","called":"+86138****7021","stateCode":0,"stateDesc":"The user releases the call.","subscriptionId":"********"}}
  • A被叫场景请求参数 A被叫场景是指和隐私号码X绑定的号码A作为通话方中的被叫的场景,即A以外的用户呼叫X后根据语音提示输入E,呼叫转接至A的场景。 注:以下流程和接口示例以A用户接听为例(B为A以外的其他用户),流程和接口示例仅供参考,请以实际消息为准。 图1 A被叫场景业务流程 表2 请求Headers参数说明 参数名称 是否必选 参数类型 说明 Content-Type 是 String 固定填写为application/json;charset=UTF-8。 Authorization 是 String 固定填写为WSSE realm="SDP",profile="UsernameToken",type="Appkey"。 X-WSSE 是 String 取值为UsernameToken Username="APP_Key的值", PasswordDigest="PasswordDigest的值", Nonce="随机数", Created="随机数生成时间"。 PasswordDigest:根据PasswordDigest = Base64 (SHA256 (Nonce + Created + Password))生成。其中,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参数说明 参数名称 是否必选 参数类型 说明 eventType 是 String(枚举) 该参数标识通知的事件类型。 取值范围如下: callin:呼入事件 collectInfo:放音收号结果事件 callout:呼出事件 alerting:振铃事件 answer:应答事件 disconnect:挂机事件 statusInfo 否 CallStatusInfo 呼叫状态事件的信息。 当eventType参数为callin、callout、alerting、answer、collectInfo、disconnect时携带。 callin:呼入事件 collectInfo:放音收号结果事件 callout:呼出事件 alerting:振铃事件 answer:应答事件 disconnect:挂机事件 CallStatusInfo定义 表5 callin:呼入事件 参数名称 是否必选 参数类型 说明 timestamp 是 String(1-128) 该呼叫事件发生时隐私保护通话平台的UNIX时间戳。 该参数取值为UTC时间(+8小时为北京时间)格式,即为“yyyy-MM-dd HH:mm:ss”。 sessionId 是 String(1-256) 唯一指定一条通话链路的标识ID。 caller 否 String(1-32) 主叫号码。 号码为全局号码格式(包含国家码),如+86138****0021。 说明: A被叫场景,呼入事件的主叫号码为B号码。 called 否 String(1-32) 被叫号码。 说明: A被叫场景,呼入事件的被叫号码为X号码。 接口示例 POST /status HTTP/1.1 content-type: application/json;charset=UTF-8 authorization: WSSE realm="SDP",profile="UsernameToken",type="Appkey" x-wsse: UsernameToken Username="************",PasswordDigest="*************",Nonce="ac1c911c4792492687f8f6b2264a491e",Created="2018-05-26T00:35:30Z" content-length:xx {"eventType":"callin","statusInfo":{"sessionId":"1201_11275_4294967295_20190124033310@callenabler246.huaweicaas.com","timestamp":"2019-01-24 03:33:10","caller":"+86138****7021","called":"+86138****0022"}} 表6 collectInfo:放音收号结果事件 参数名称 是否必选 参数类型 说明 timestamp 是 String(1-128) 该呼叫事件发生时隐私保护通话平台的UNIX时间戳。 该参数取值为UTC时间(+8小时为北京时间)格式,即为“yyyy-MM-dd HH:mm:ss”。 sessionId 是 String(1-256) 唯一指定一条通话链路的标识ID。 digitInfo 否 String(1-64) AXE场景中携带收号结果(即用户输入的数字)。 接口示例 POST /status HTTP/1.1 content-type: application/json;charset=UTF-8 authorization: WSSE realm="SDP",profile="UsernameToken",type="Appkey" x-wsse: UsernameToken Username="************",PasswordDigest="*************",Nonce="ac1c911c4792492687f8f6b2264a491e",Created="2018-05-26T00:35:30Z" content-length:xx {"eventType":"collectInfo","statusInfo":{"sessionId":"1201_11275_4294967295_20190124033310@callenabler246.huaweicaas.com","timestamp":"2019-01-24 03:33:16","digitInfo":"02"}} 表7 callout:呼出事件 参数名称 是否必选 参数类型 说明 timestamp 是 String(1-128) 该呼叫事件发生时隐私保护通话平台的UNIX时间戳。 该参数取值为UTC时间(+8小时为北京时间)格式,即为“yyyy-MM-dd HH:mm:ss”。 sessionId 是 String(1-256) 唯一指定一条通话链路的标识ID。 caller 否 String(1-32) 主叫号码。 号码为全局号码格式(包含国家码),如+86138****0021。 说明: A被叫场景,呼出事件的主叫号码为X号码。 called 否 String(1-32) 被叫号码。 说明: A被叫场景,呼出事件的被叫号码为A号码。 subscriptionId 否 String(1-64) 绑定ID。 userData 否 String(1-256) 用户附属信息。 当客户在AXE模式绑定接口中携带了“userData”时,对应此呼叫事件的通知消息中都会携带此参数。 接口示例 POST /status HTTP/1.1 content-type: application/json;charset=UTF-8 authorization: WSSE realm="SDP",profile="UsernameToken",type="Appkey" x-wsse: UsernameToken Username="************",PasswordDigest="*************",Nonce="ac1c911c4792492687f8f6b2264a491e",Created="2018-05-26T00:35:30Z" content-length:xx {"eventType":"callout","statusInfo":{"sessionId":"1201_11275_4294967295_20190124033310@callenabler246.huaweicaas.com","timestamp":"2019-01-24 03:33:16","caller":"+86138****0022","called":"+86138****0021","subscriptionId":"********"}} 表8 alerting:振铃事件 参数名称 是否必选 参数类型 说明 timestamp 是 String(1-128) 该呼叫事件发生时隐私保护通话平台的UNIX时间戳。 该参数取值为UTC时间(+8小时为北京时间)格式,即为“yyyy-MM-dd HH:mm:ss”。 sessionId 是 String(1-256) 唯一指定一条通话链路的标识ID。 caller 否 String(1-32) 主叫号码。 号码为全局号码格式(包含国家码),如+86138****0021。 说明: A被叫场景,振铃事件的主叫号码为X号码。 called 否 String(1-32) 被叫号码。 说明: A被叫场景,振铃事件的被叫号码为A号码。 subscriptionId 否 String(1-64) 绑定ID。 userData 否 String(1-256) 用户附属信息。 当客户在AXE模式绑定接口中携带了“userData”时,对应此呼叫事件的通知消息中都会携带此参数。 接口示例 POST /status HTTP/1.1 content-type: application/json;charset=UTF-8 authorization: WSSE realm="SDP",profile="UsernameToken",type="Appkey" x-wsse: UsernameToken Username="************",PasswordDigest="*************",Nonce="ac1c911c4792492687f8f6b2264a491e",Created="2018-05-26T00:35:30Z" content-length:xx {"eventType":"alerting","statusInfo":{"sessionId":"1201_11275_4294967295_20190124033310@callenabler246.huaweicaas.com","timestamp":"2019-01-24 03:33:16","caller":"+86138****0022","called":"+86138****0021","subscriptionId":"********"}} 表9 answer:应答事件 参数名称 是否必选 参数类型 说明 timestamp 是 String(1-128) 该呼叫事件发生时隐私保护通话平台的UNIX时间戳。 该参数取值为UTC时间(+8小时为北京时间)格式,即为“yyyy-MM-dd HH:mm:ss”。 sessionId 是 String(1-256) 唯一指定一条通话链路的标识ID。 caller 否 String(1-32) 主叫号码。 号码为全局号码格式(包含国家码),如+86138****0021。 说明: A被叫场景,应答事件的主叫号码为X号码。 called 否 String(1-32) 被叫号码。 说明: A被叫场景,应答事件的被叫号码为A号码。 subscriptionId 否 String(1-64) 绑定ID。 userData 否 String(1-256) 用户附属信息。 当客户在AXE模式绑定接口中携带了“userData”时,对应此呼叫事件的通知消息中都会携带此参数。 接口示例 POST /status HTTP/1.1 content-type: application/json;charset=UTF-8 authorization: WSSE realm="SDP",profile="UsernameToken",type="Appkey" x-wsse: UsernameToken Username="************",PasswordDigest="*************",Nonce="ac1c911c4792492687f8f6b2264a491e",Created="2018-05-26T00:35:30Z" content-length:xx {"eventType":"answer","statusInfo":{"sessionId":"1201_11275_4294967295_20190124033310@callenabler246.huaweicaas.com","timestamp":"2019-01-24 03:33:28","caller":"+86138****0022","called":"+86138****0021","subscriptionId":"********"}} 表10 disconnect:挂机事件 参数名称 是否必选 参数类型 说明 timestamp 是 String(1-128) 该呼叫事件发生时隐私保护通话平台的UNIX时间戳。 该参数取值为UTC时间(+8小时为北京时间)格式,即为“yyyy-MM-dd HH:mm:ss”。 sessionId 是 String(1-256) 唯一指定一条通话链路的标识ID。 caller 否 String(1-32) 主叫号码。 号码为全局号码格式(包含国家码),如+86138****0021。 说明: 此处返回号码非真实主被叫号码,真实主被叫号码请以fee事件中的返回值为准。 called 否 String(1-32) 被叫号码。 说明: 此处返回号码非真实主被叫号码,真实主被叫号码请以fee事件中的返回值为准。 stateCode 否 Integer 通话挂机的原因值,仅当eventType为disconnect时携带。 取值范围及表示的含义请参考通话挂机原因值说明。 stateDesc 否 String(1-128) 通话挂机的原因值的描述,仅当eventType为disconnect时携带。 subscriptionId 否 String(1-64) 绑定ID。 userData 否 String(1-256) 用户附属信息。 当客户在AXE模式绑定接口中携带了“userData”时,对应此呼叫事件的通知消息中都会携带此参数。 接口示例 POST /status HTTP/1.1 content-type: application/json;charset=UTF-8 authorization: WSSE realm="SDP",profile="UsernameToken",type="Appkey" x-wsse: UsernameToken Username="************",PasswordDigest="*************",Nonce="ac1c911c4792492687f8f6b2264a491e",Created="2018-05-26T00:35:30Z" content-length:xx {"eventType":"disconnect","statusInfo":{"sessionId":"1201_11275_4294967295_20190124033310@callenabler246.huaweicaas.com","timestamp":"2019-01-24 03:33:57","caller":"+86138****0022","called":"+86138****0021","stateCode":0,"stateDesc":"The user releases the call.","subscriptionId":"********"}