Я создаю Twillio-подобный API номеронабирателя, используя Modesl в Node.JS для отправки команд и параметров в консоль 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 Parsing global variables 2019-03-17 08:53:22.755065 [ERR] switch_ivr_originate.c:2209 Parse Error! 2019-03-17 08:53:22.755065 [DEBUG] switch_ivr_originate.c:3941 Originate Resulted in Error Cause: 27 [DESTINATION_OUT_OF_ORDER]
Каков правильный способ сделать то, что мне нужно?





Исправлено использование '\' для ввода ' inline.
var onanswer = '\'' + uuid + ' ' + dmtf;
попробуй это,
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) {
шаблонные литералы или строки, заключенные в обратные галочки, это обеспечит вам требуемый формат, ура :)