语音通话 VOICECALL-Node.js:“语音通知场景API”代码样例

时间:2024-09-25 15:29:01

“语音通知场景API”代码样例

/*jshint esversion: 6 */
var https = require('https');
var data = require('./data.js');
var util = require('./reqUtil.js');

/**
 * voiceNotifyAPI
 * @param displayNbr
 * @param calleeNbr
 * @param playInfoList
 * @returns
 */
function voiceNotifyAPI(displayNbr, calleeNbr, playInfoList) {
    if(displayNbr === undefined || displayNbr === null || calleeNbr === undefined || calleeNbr === null) {
        return;
    }
    if(playInfoList === undefined || playInfoList === null) {
        return;
    }

    var method = 'POST';
    var uri = '/rest/httpsessions/callnotify/v2.0'; //v1.0 or v2.0
    var xaksk = util.buildAKSKHeader(data.data.callnotify_appid, data.data.callnotify_secret);

    var options = util.createOptions(method, uri, null, xaksk);

    var body = {
            /* 必填参数 */
            'displayNbr': displayNbr,//主叫用户手机终端的来电显示号码。
            'calleeNbr': calleeNbr,//被叫用户终端的来电显示号码。
            'playInfoList': playInfoList//播放信息列表,最大支持5个,每个播放信息携带的参数都可以不相同。
            /* 选填参数 */
//            'bindNbr': '+86123456789', //CallEnabler业务号码,即绑定号码
//            'statusUrl': 'aHR0cDovLzIxOC40LjMzLjU1Ojg4ODgvdGVzdA==', //要获取通话状态需要在请求中加入statusUrl
//            'feeUrl': 'aHR0cDovLzIxOC40LjMzLjU1Ojg4ODgvdGVzdA==', //要获取话单需要在请求中加入feeUrl
//            'returnIdlePort': 'false', //指示是否需要返回平台空闲呼叫端口数量
//            'userData': 'customerId123' //设置用户的附属信息
    };
    var req = https.request(options, function (res) {
        var resHeaders = JSON.stringify(res.headers);
        res.setEncoding('utf8');
        res.on('data', function (chunk) {
            console.log(chunk);
        });     
    });

    req.on('error', function(e) {
        console.error('problem with request: ' + e);
    });
    console.log(JSON.stringify(body));
    req.write(JSON.stringify(body));
    req.end();
}

/**
 * getPlayInfoList
 * @param notifyVoice
 * @param templateId
 * @param templateParas
 * @returns
 */
function getPlayInfoList(notifyVoice, templateId, templateParas) {
    var playInfoList = [{
        'notifyVoice': notifyVoice,//通知语音的放音文件名
        'templateId': templateId,//语音通知模板ID,用于唯一标识语音通知模板。
        'templateParas': templateParas,//语音通知模板的变量值列表,用于依次填充templateId参数指定的模板内容中的变量。
//        'collectInd': 0, //是否进行收号
//        'replayAfterCollection': 'false', //设置是否在收号后重新播放notifyVoice或templateId指定的放音
//        'collectContentTriggerReplaying': '1' //设置触发重新放音的收号内容
    }];
    return playInfoList;
}

var playInfoList = getPlayInfoList('notifyvoice.wav', 'xxxxxx', ['3', '人民公园正门']);
voiceNotifyAPI('+8653159511234', '+8613500000001', playInfoList);

support.huaweicloud.com/devg-VoiceCall/rtc_04_0021.html