FreeSwitch ESL:NodeJS / JS / Freeswitch语法冲突

时间:2019-03-17 08:57:58

标签: node.js api events syntax freeswitch

我正在使用Node.JS中的Modesl构建类似Twillio的Dialer API,以将命令和参数发送到Freeswitch控制台。

编辑:我已经将问题缩小为语法问题,其中我用来输入变量的javascript与FreeSwitchs语法冲突。 uuid_send_dtmf 必须在其前面有一个',而uuid是一个NodeJS参数,需要在一个空格后传递,就像dmtf一样,并且api_on_answer要求在传递参数后需要一个'来关闭

语法一直是我的弱点,任何帮助将不胜感激。

,api_on_answer='uuid_send_dtmf ' + uuid  + ' ' + dmtf +' ' }
    conn.api('originate {
                  origination_uuid=' + uuid 
                  + ',origination_caller_id_number=' + cid 
                  + ',api_on_answer=uuid_send_dtmf ' + uuid  
                  + ' ' + dmtf +' }
              sofia/external/' + pnumber + '@provider', function(res) {

当前,该命令给出了非常模糊的错误,几乎没有帮助:

  

2019-03-17 08:53:22.755065 [DEBUG] switch_ivr_originate.c:2204解析全局变量   2019-03-17 08:53:22.755065 [ERR] switch_ivr_originate.c:2209解析错误!   2019-03-17 08:53:22.755065 [DEBUG] switch_ivr_originate.c:3941源于错误的原因:27 [DESTINATION_OUT_OF_ORDER]

做我需要的正确方法是什么?

2 个答案:

答案 0 :(得分:0)

使用“ \”输入“内联”固定。

var onanswer ='\''+ uuid +''+ dmtf;

答案 1 :(得分:0)

尝试一下

conn.api(`originate {origination_uuid=${uuid},origination_caller_id_number=${cid},api_on_answer='${uuid_send_dtmf} ${uuid} ${dtmf}'}sofia/external/${pnumber}@${provider}`, function(res) {

模板文字或字符串,用反引号括起来,这将为您提供所需的格式,加油:)