首页 > 解决方案 > FreeSwitch ESL:NodeJS/JS/Freeswitch 语法冲突

问题描述

我正在使用 Node.JS 中的 Modesl 构建一个类似 Twillio 的拨号器 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 Originate 导致错误原因:27 [DESTINATION_OUT_OF_ORDER]

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

标签: node.jsapieventssyntaxfreeswitch

解决方案


尝试这个,

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) {

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


推荐阅读