VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Выполнение AGI по Hangup если вызываемый не поднял трубу

Проблемы Asterisk без вэб-оболочек и их решения

Модераторы: april22, Zavr2008

Ответить
zoleg
Сообщения: 49
Зарегистрирован: 25 ноя 2011, 12:33
Откуда: UA

Выполнение AGI по Hangup если вызываемый не поднял трубу

Сообщение zoleg »

Подскажите как реализовать такую фичу:

Перед выполнением DIAL выполняется скриптюля, которая создает запись в БД сторонней проги о том кому адресован звонок (с кучей атрибутов).
Задача:
Проставить отметку о том, что звонок был сброшен звонящим, подправив флаг в БД сторонней проги.
Типа так

Код: Выделить всё

exten => call,1,Playback(taxi/general/${language}/calltaxiinprogress)
exten => call,n,AGI(/usr/share/call-taxi/soother-order,${CALLERID(num)},${idsdb},${driver},${drivershift},${phone},${carclass},${stopid})
exten => call,n,Dial(${${OPSOS}}/${phone})
exten => call,n,GotoIf($["${DIALSTATUS}" = "CHANUNAVAIL"]?lbl_CHA:)
exten => call,n,GotoIf($["${DIALSTATUS}" = "CONGESTION"]?lbl_CON:)
exten => call,n,GotoIf($["${DIALSTATUS}" = "NOANSWER"]?lbl_NOA:)
exten => call,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?lbl_BU:)
exten => call,n,GotoIf($["${DIALSTATUS}" = "CANCEL"]?lbl_CAN:)
exten => call,n(lbl_NOA),AGI(/usr/share/call-taxi/no-answer,${idsdb},${driver},${orderid})
Все работает как надо по CANCEL если вызываемый поднял трубу, но как выполнить exten => call,n(lbl_NOA) если этого не произошло ????????????????
Пробовал запустить через " exten => h,1,........... " не цепляется.

Попутно, подскажите пожалуйста, как поставить отсечку по количеству гудков (типа если 4 звонка пропущено - считаем что абонент не отвечает и запускаем его по GotoIf($["${DIALSTATUS}" = "NOANSWER"]?на путь истинный) )
Уникальные решения:
- Диспетчерская такси без диспетчеров.
- CDMA модем ZTE AC7810/AC5710+либа к chan_dongle+Астериск = канал ГТС.
- Бесшумные АТС и серверы (1U-3U 19" 12 Вольт, 35 Ват) разработанные специально для диспетчерских служб такси.
Аватара пользователя
Evgen
Сообщения: 128
Зарегистрирован: 01 сен 2010, 13:10
Откуда: Саратов
Контактная информация:

Re: Выполнение AGI по Hangup если вызываемый не поднял трубу

Сообщение Evgen »

Статус NOANSWER присваивается только при запуске DIAL с опцией таймаута. Команда Dial(SIP/test,45) будет звонить 45 секунд. Если за это время вызывающий абонент не поднимет трубку, то Dial выдаст статус NOANSWER.
zoleg
Сообщения: 49
Зарегистрирован: 25 ноя 2011, 12:33
Откуда: UA

Re: Выполнение AGI по Hangup если вызываемый не поднял трубу

Сообщение zoleg »

Dial(SIP/test,45)
Спасибо.
Уникальные решения:
- Диспетчерская такси без диспетчеров.
- CDMA модем ZTE AC7810/AC5710+либа к chan_dongle+Астериск = канал ГТС.
- Бесшумные АТС и серверы (1U-3U 19" 12 Вольт, 35 Ват) разработанные специально для диспетчерских служб такси.
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH