OrlovEvgeny
@OrlovEvgeny
golang developer / DevOps

Asterisk. Как получить номер звонящего + номер оператора поднявшего трубку?

В общем есть наипростейший екстеншн следующего типа
exten => s,1,Answer()
exten => s,n,Wait(5)
exten => s,n,Dial(SIP/100&SIP/101&SIP/102,25,mt(ss_moh))


Ситуация - входящий звонок, один из трех операторов первым отвечает на звонок.
Как в момент ответа на звонок налету вытащить входящий номер абонента, и внутренний номер оператора ответившего на звонок?
И как после завершения звонка отловить Hangup()?
  • Вопрос задан
  • 3215 просмотров
Решения вопроса 1
@maddimons
Инженер связи
Christian, воспользуйтесь приложением Queue(). В нем есть отличные параметры для вас:
с - ловит положенную трубку со стороны звонящего (продолжает диалплан). Можно, например, стандартным MySQL() приложением положить нужные переменные канала в базу.
AGI или перевод на Macro с нужным AGI - далее в скрипте вы вылавливаете переменные канала и кладете их в базу или используете на свое усмотрение.
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
@torr2009
И как после завершения звонка отловить Hangup()?
Для этого есть специальный extension h.
Ответ написан
@goodcat32
А можно поинтересоваться, почему вы такую задачу решаете не по средствам очередей?
И где вы хотите отловить это все? В консоли или в некий лог вывести?
Ответ написан
mvlbrn
@mvlbrn
Если необходимо использовать именно Dial() то номера можно отловить в макросе при соединении (параметр M(x) команды Dial) а завершение можно отловить в экстеншне h при использовании параметра 'e' команды Dial

Описание команды - www.voip-info.org/wiki/view/Asterisk+cmd+Dial
Ответ написан
@Taksist410
Это легко сделать на стороне оператора, если у него стоит "самодельный" софтфон написанный на VoIP SDK (например www.portsip.com/portsip-voip-sdk). Тогда всё, что вы спрашиваете это события и параметры событий программы софтфона.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Золотое Яблоко Екатеринбург
До 70 000 руб.
До 100 000 руб.
SAYMON Санкт-Петербург
от 100 000 до 200 000 руб.
21 янв. 2020, в 21:09
4000 руб./за проект
21 янв. 2020, в 20:23
4000 руб./за проект