云服务器内容精选

  • 短信通知接口 1 2 3 4 5 6 7 8 91011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 /** * 短信通知 * 客户平台收到 隐私保护通话 平台的短信通知的接口通知 *///短信通知样例var jsonBody = JSON.stringify({ 'appKey': '****', 'smsEvent': { 'smsIdentifier': '****', 'notificationMode': 'Block', 'calling': '+86138****0001', 'virtualNumber': '+86138****0000', 'event': 'Text SMS ', 'timeStamp': '2018-09-13T09:46:16.023Z' }});console.log('jsonBody:', jsonBody);/** * 短信通知 * @brief 详细内容以接口文档为准 * @param jsonBody */function onSmsEvent(jsonBody) { var jsonObj = JSON.parse(jsonBody); //将通知消息解析为jsonObj if (!jsonObj.hasOwnProperty('smsEvent')) { console.log('param error: no smsEvent.'); return; } //console.log('appKey:', jsonObj.appKey); //商户应用的AppKey var smsEvent = jsonObj.smsEvent; //短信通知信息 /** * Example: 此处以解析notificationMode为例,请按需解析所需参数并自行实现相关处理 * * 'smsIdentifier': 短信唯一标识 * 'notificationMode': 通知模式 * 'calling': 真实发送方号码 * 'called': 真实接收方号码 * 'virtualNumber': 隐私号码(X号码) * 'event': 短信状态事件 * 'timeStamp': 短信事件发生的系统时间戳,UTC时间 * 'subscriptionId': 绑定ID * 'smsContent': 用户发送的短信内容 */ if (smsEvent.hasOwnProperty('notificationMode')) { if ('Block' === smsEvent.notificationMode) { //收到隐私保护通话平台的短信通知,若为Block模式,请参考接口文档回消息指示下一步操作 var actions = { 'operation': 'vNumberRoute', //操作类型:转发短信/丢弃短信 'message': { 'called': '+86138****7022', //真实接收方号码 'calling': '+86138****7021' //真实发送方号码 } }; var resp = JSON.stringify({'actions': [actions]}); //Block模式响应消息 console.log('resp:', resp); } else if ('Notify' === smsEvent.notificationMode) { //收到隐私保护通话平台的短信通知,若为Notify模式,请回HTTP状态码为200的空消息 //var statusCode = 200; console.log('This is AXB sms Notify mode.'); } else { console.log('notificationMode param error.'); } }}//短信通知处理onSmsEvent(jsonBody);
  • 呼叫事件通知接口 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 /** * 呼叫事件通知 * 客户平台收到隐私保护通话平台的呼叫事件通知的接口通知 *///呼叫事件通知样例var jsonBody = JSON.stringify({ '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': '****' }});console.log('jsonBody:', jsonBody);/** * 呼叫事件通知 * @brief 详细内容以接口文档为准 * @param jsonBody */function onCallEvent(jsonBody) { var jsonObj = JSON.parse(jsonBody); //将通知消息解析为jsonObj var eventType = jsonObj.eventType; //通知事件类型 if ('fee' === eventType) { console.log('EventType error:', eventType); return; } if (!jsonObj.hasOwnProperty('statusInfo')) { console.log('param error: no statusInfo.'); return; } var statusInfo = jsonObj.statusInfo; //呼叫状态事件信息 console.log('eventType:', eventType); //打印通知事件类型 //callin:呼入事件 if ('callin' === eventType) { /** * Example: 此处以解析sessionId为例,请按需解析所需参数并自行实现相关处理 * * 'timestamp': 呼叫事件发生时隐私保护通话平台的UNIX时间戳 * 'sessionId': 通话链路的标识ID * 'caller': 主叫号码 * 'called': 被叫号码 * 'subscriptionId': 绑定关系ID */ if (statusInfo.hasOwnProperty('sessionId')) { console.log('sessionId:', statusInfo.sessionId); } return; } //callout:呼出事件 if ('callout' === eventType) { /** * Example: 此处以解析sessionId为例,请按需解析所需参数并自行实现相关处理 * * 'timestamp': 呼叫事件发生时隐私保护通话平台的UNIX时间戳 * 'sessionId': 通话链路的标识ID * 'caller': 主叫号码 * 'called': 被叫号码 * 'subscriptionId': 绑定关系ID */ if (statusInfo.hasOwnProperty('sessionId')) { console.log('sessionId:', statusInfo.sessionId); } return; } //alerting:振铃事件 if ('alerting' === eventType) { /** * Example: 此处以解析sessionId为例,请按需解析所需参数并自行实现相关处理 * * 'timestamp': 呼叫事件发生时隐私保护通话平台的UNIX时间戳 * 'sessionId': 通话链路的标识ID * 'caller': 主叫号码 * 'called': 被叫号码 * 'subscriptionId': 绑定关系ID */ if (statusInfo.hasOwnProperty('sessionId')) { console.log('sessionId:', statusInfo.sessionId); } return; } //answer:应答事件 if ('answer' === eventType) { /** * Example: 此处以解析sessionId为例,请按需解析所需参数并自行实现相关处理 * * 'timestamp': 呼叫事件发生时隐私保护通话平台的UNIX时间戳 * 'sessionId': 通话链路的标识ID * 'caller': 主叫号码 * 'called': 被叫号码 * 'subscriptionId': 绑定关系ID */ if (statusInfo.hasOwnProperty('sessionId')) { console.log('sessionId:', statusInfo.sessionId); } return; } //disconnect:挂机事件 if ('disconnect' === eventType) { /** * Example: 此处以解析sessionId为例,请按需解析所需参数并自行实现相关处理 * * 'timestamp': 呼叫事件发生时隐私保护通话平台的UNIX时间戳 * 'sessionId': 通话链路的标识ID * 'caller': 主叫号码 * 'called': 被叫号码 * 'stateCode': 通话挂机的原因值 * 'stateDesc': 通话挂机的原因值的描述 * 'subscriptionId': 绑定关系ID */ if (statusInfo.hasOwnProperty('sessionId')) { console.log('sessionId:', statusInfo.sessionId); } return; }}//呼叫事件处理onCallEvent(jsonBody);