当FreeSWITCH节点ESL服务器已经桥接到另一个端点时,以编程方式在该服务器内转移呼叫

时间:2019-07-15 12:07:18

标签: node.js sockets websocket freeswitch

我正在尝试转移连接到node-esl的呼叫。我已成功将该呼叫桥接到另一个端点。现在,我想以编程方式将该呼叫转移到另一个分机或另一个号码,而不会中断呼叫流程。

我已将桥接后的挂断设置为false。但是,我无法转接电话。我使用的npm包是“ modesl”。 我还尝试过桥接呼叫(这不是必需条件,因为在转移呼叫时该呼叫应处于活动状态)。 我有该调用的UUID,可以将其作为conn进行传输。执行或作为conn.api。

var esl = require('modesl');


var esl_server = new esl.Server({port: 8085, myevents:true}, function(){
    console.log("esl server is up");
});

esl_server.on('connection::ready', function(conn, id) {

conn.execute('answer');
conn.execute('set',"hangup_after_bridge=false");
conn.execute('bridge','name_of_the_bridge'); `
// conn.api('uuid_transfer',uuid,'-bleg or both',description,dialplan, context
conn.api('uuid_transfer',id,'-bleg',1000,'XML','default');}

随着命令执行,呼叫将断开连接。请调查一下,让我知道您的答案。

1 个答案:

答案 0 :(得分:0)

您需要将参数附加为一个字符串参数。喜欢:

esl_server.on('connection::ready', function(conn, id) {
    conn.execute('answer');
    conn.execute('set',"hangup_after_bridge=false");
    conn.execute('bridge','name_of_the_bridge'); `
    conn.api('uuid_transfer',id + ' -bleg 1000 XML default');
}