@DmitriyMD

Как передать серверу ИС внутренний номер оператора и входящий номер из Asterisk?

Добрый день!
Подскажите, пожалуйста, чайнику, как передать из Asterisk при звонке входящий номер абонента и номер оператора, взявшего трубку?
Это нужно для передачи параметров в URL типа http://ipadress:port/script?id=<внутренний номер>&number=<номер клиента>
Номер клиента определяется переменной ${CALLERID(number)}, а вот для номера оператора пока не нашёл переменной.
Понимаю что это всё в диал-плане нужно прописывать, но сколько не пробовал - не получается ...
  • Вопрос задан
  • 996 просмотров
Решения вопроса 1
Мне кажется, сработает такой вариант

[macro-curl]
exten => s,1,System(${CURL( http://ipadress:port/script?id=${ARG1}...

[incoming]
exten => s,1,Answer
exten => s,n,Dial(SIP/111,,M(curl^${DIALEDPEERNUMBER}))
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
oldbro
@oldbro
${DIALEDPEERNUMBER}
Понятное дело, что он работает, только после поднятия трубки! Так что при построении логики учтите этот момент.
Ответ написан
Комментировать
самое эффективное написать демона, слушающего события AMI и дергающего запросы
это не потребует никаких изменений в диалплане

можно костылить через вызовы Sub-ов в app_Dial (см. параметр U) и app_Queue (см. восьмой параметр)
там уже ловить переменные

для app_Queue будет приметно так
...
same => n,Queue(taxi,t,,,450,,,sub-operator-answer)
...

[sub-operator-answer]
exten => s,1,MSet(AGENTCHAN=${CUT(CHANNEL(Name),\-,1)},CONLINE=${CONNECTEDLINE(number)})
    same => n,NoOp(${CURL(http://ipadress:port/script?id=${AGENTCHAN}&number=${CONLINE})})
    same => n,Hangup()

за работоспособность не ручаюсь, т.к. сочинил толькочто без всяких проверок
Ответ написан
Комментировать
@DmitriyMD Автор вопроса
Про эту переменную тоже читал, но не совсем понял как прописать.
Сейчас в таком виде примерно диал-план:
exten => _X.,1,Answer
exten => _X.,n,Dial(SIP/111,${CALLERID(num)})
exten => _X.,n,System(${CURL( http://ipadress:port/script?id=${DIALEDPEERNUMBER}...
Ссылка не отрабатывается.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы