语音通话 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');
var record = require('./getRecordLink.js');
/**
 * voiceCallAPI
 * @param displayNbr
 * @param callerNbr
 * @param displayCalleeNbr
 * @param calleeNbr
 * @returns
 */
function voiceCallAPI(displayNbr, callerNbr, displayCalleeNbr, calleeNbr) {
    if(displayNbr === undefined || displayNbr === null || callerNbr === undefined || callerNbr === null) {
        return;
    }
    if(displayCalleeNbr === undefined || displayCalleeNbr === null || calleeNbr === undefined || calleeNbr === null) {
        return;
    }

    var method = 'POST';
    var uri = '/rest/httpsessions/click2Call/v2.0';
    var xaksk = util.buildAKSKHeader(data.data.click2call_appid, data.data.click2call_secret);

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

    var body = {
            /* 必填参数 */
            'displayNbr': displayNbr,//主叫用户手机终端的来电显示号码。
            'callerNbr': callerNbr,//发起呼叫时所使用的主叫号码。
            'displayCalleeNbr': displayCalleeNbr,//被叫用户终端的来电显示号码。
            'calleeNbr': calleeNbr//发起呼叫时所拨打的被叫号码。
            /* 选填参数 */
//            'bindNbr': '+86123456789', //CallEnabler业务号码,即绑定号码
//            'maxDuration': 0, //允许单次通话进行的最长时间
//            'lastMinVoice': 'lastmin_voice1.wav', //最后一分钟放音提示音
//            'lastMinToUE': 'both', //最后一分钟放音的播放对象
//            'playPreVoice': 'false', //设置主叫(callerNbr)应答语音回呼后,呼叫被叫(calleeNbr)前,是否向主叫(callerNbr)播放提示音
//            'preVoice': 'pre_voice1.wav', //设置主叫(callerNbr)应答语音回呼后,呼叫被叫(calleeNbr)前向主叫播放的提示音
//            'waitVoice': 'wait_voice1.wav', //设置主叫应答语音回呼后的等待音
//            'calleeMedia': 'all', //指定被叫的媒体音播放方式
//            'statusUrl': 'aHR0cDovLzIxOC40LjMzLjU1Ojg4ODgvdGVzdA==', //要获取通话状态需要在请求中加入statusUrl
//            'feeUrl': 'aHR0cDovLzIxOC40LjMzLjU1Ojg4ODgvdGVzdA==', //要获取话单需要在请求中加入feeUrl
//            'recordFlag': 'false', //与调测信息中的recordFlag保持一致
//            'recordHintTone': 'recordhint_voice1.wav', //设置使用录音功能的提示音
//            'partyTypeRequiredInDisconnect': 'false', //disconnect状态是否需要携带通话主动挂机的用户类型
//            '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();
}
voiceCallAPI('+8653159511234', '+8613500000001', '+8653159511234', '+8613500000002');
var xaksk = util.buildAKSKHeader(data.data.click2call_appid, data.data.click2call_secret);
var location = record.getRecordLinkAPI('1200_366_0_20161228102743.wav', 'ostor.huawei.com', xaksk);
console.log('The record file download link is: ' + location);
support.huaweicloud.com/devg-VoiceCall/rtc_04_0017.html