隐私保护通话 PrivateNumber-AXE模式:呼叫事件通知接口

时间:2025-02-12 14:52:30

呼叫事件通知接口

  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 99100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
/** * 呼叫事件通知 * 客户平台收到 隐私保护通话 平台的呼叫事件通知的接口通知 *///呼叫事件通知样例var jsonBody = JSON.stringify({    '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': '********'    }});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': 被叫号码         */        if (statusInfo.hasOwnProperty('sessionId')) {            console.log('sessionId:', statusInfo.sessionId);        }        return;    }    //collectInfo:放音收号结果事件,仅AXE模式下的A被叫场景携带    if ('collectInfo' === eventType) {        /**         * Example: 此处以解析digitInfo为例,请按需解析所需参数并自行实现相关处理         *         * 'timestamp': 呼叫事件发生时隐私保护通话平台的UNIX时间戳         * 'sessionId': 通话链路的标识ID         * 'digitInfo': AXE场景中携带收号结果(即用户输入的数字)         */        if (statusInfo.hasOwnProperty('digitInfo')) {            console.log('digitInfo:', statusInfo.digitInfo);        }        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);
support.huaweicloud.com/devg-PrivateNumber/privatenumber_01_0019.html