Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

DIALSTATUS не звоня абоненту

0

Есть голосовое меню, проигрывается приветствие, после него либо перевести звонок на голосовую почту если никого из абонентов нет в сети, либо продолжить проигрывать варианты набора. Если я правильно понимаю то статус возвращается только после попытки набора. То как узнать DIALSTATUS, не выполняя команду DIAL?

Что бы после приветствия редиректить на голосовую почту, мне надо узнать если ли все клиенты в сети. Типа:

exten => bla,1,Dial(...)
exten => bla,n,GotoIf($${DIALSTATUS}=CHANUNAVAIL?voice)
...
exten => bla,n(voice),Voicemail(100@default)

Dial не приемлем, каждый раз что бы узнать в сети ли клиент нужно до него дозваниваться.

удалить закрыть спам изменить тег редактировать

спросил 2012-03-24 20:49:30 +0400

freekode Gravatar freekode
11 2 5

обновил 2012-03-24 21:56:34 +0400

2 Ответа

4

Используйте команду ChanIsAvail

Или используйте фукнцию SIPPEER

ссылка удалить спам редактировать

ответил 2012-03-24 21:10:31 +0400

zzuz Gravatar zzuz flag of Russian Federation
6744 2 6 69
http://line24.ru/

обновил 2012-03-24 21:13:10 +0400

Comments

однако стоит заметитьчто статусы будут немножко другими. в частности статус noanswer ну никак нельзя получить не позвонив))

meral ( 2012-03-24 21:53:51 +0400 )редактировать

Что за день , никто не читает вопросов. "Что бы после приветствия редиректить на голосовую почту, мне надо узнать если ли все клиенты в сети. "

zzuz ( 2012-03-24 22:26:44 +0400 )редактировать

а я что против? я просто уточняю.я даже плюски поставил

meral ( 2012-03-24 23:56:04 +0400 )редактировать

))

zzuz ( 2012-03-25 00:49:18 +0400 )редактировать
0

Не совсем понял, что именно нужно. Если статус завершения звонка без Dial, то можно использовать переменную HANGUPCAUSE. При этом будет выдан код разъединения согласно рекомендациям Q.931.

ссылка удалить спам редактировать

ответил 2012-03-24 21:22:59 +0400

Master135 Gravatar Master135
431 1 3 10

Comments

Если не было Dial , то откуда тогда переменная?

zzuz ( 2012-03-24 21:34:21 +0400 )редактировать

Да, наверное немного не то. Поспешил с ответом). Если стоит Hangup в конце, то выдаст = 16 (NORMAL_CLEARING). Можно и вручную в hangup код разъединения поставить.Вообще так до конца и не понял, статус чего именно нужен?

Master135 ( 2012-03-24 22:00:13 +0400 )редактировать

Подправили вопрос, и стало понятно что было нужно:). Вообщем согласен, не то.

Master135 ( 2012-03-24 22:05:02 +0400 )редактировать

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку
1 закладка

подписаться на rss ленту новостей

Статистика

Задан: 2012-03-24 20:49:30 +0400

Просмотрен: 589 раз

Обновлен: Mar 24 '12

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.