Вы не авторизованы

Вы можете читать сообщения. Если вы хотите создать новую тему или присоединиться к обсуждению, пройдите процедуру регистрации или авторизуйтесь.

RSS
Обработка пропущенных вызовов
 
Есть задача формировать электронные письма с уведомлением о пропущенных вызовах. В прикрепленном файле создан типовой маршрут, где "ловятся" пропущенные вызовы. Идея такова, если на входящий вызов никто не ответил по таймауту формируется письмо о пропущенном вызове, если ответ был то он просто завершается. В случае если вызывающий абонент положил трубку до срабатывания таймаута (никто не ответил), письмо не формируется. При этом DIALSTATUS полученный после этого CANCEL. В чем здесь ошибка?

Изменено: Сергей Романовский - 04.04.2013 14:49:19
 
Вчитываюсь уже минут, 10 понять не могу.

Номер 186 - это маршут вызова, отображенный на приложенном изображении.
  • служит для информирования сотрудников организации о пропущенных звонках.
  • анилизирует значение DIALSTATUS на то принят вызов или нет
  • вызов направляется на маршрут по событию Таймаут
Где первичный маршрут?
t - стандартный экстеншен плана набора Asterisk. Он же Timout Extension
http://wiki.askozia.ru/handbook:dialplan

В Вашем случае клиент ложит трубку. Соответственно отрабатывает не таймаут, а Hang Up Extension
в нем DIALSTATUS = CANCEL так как вызов был отменен клиентом.
 
Ну ведь это попадает под условие, которое в маршруте, то есть все что не ANSWER.
 
t extension используется в построении IVR и в связке с  PressExtensionMusic или PressExtension
 
Под условие попадает. Это верно.

Но вопрос - при событии h вызов идет по этому маршруту 186, или завершается?
Не вижу картины в целом.

Приложите пример начального маршрута.
 
Собственно это и есть весь маршрут. Есть входящий городской номер, который на него и попадает Городской номер -> Маршрут вызова номер 186.
 
На ум пока приходит только обработка блоком h :



Но проблема в том, что по этой ветке обработка будет происходить в любом случае.
Использовать переменные канала
http://voip.rus.net/tiki-index.php?page=Asterisk+variables

алгоритм следующий:
  1. устанавливаем переменную канала chan_otnechen = -1 после блока answer
  2. после блока if производим установку chan_otnechen = 1 или chan_otnechen = 0
  3. если абонент сам сбросил трубку и на вызов никто ответить не успел, то до условия дело не дойдет (скорее всего) и значение переменной останется -1
P.S. Пока ничего более "прямого" предложить не могу
Читают тему (гостей: 1)