Вход | Регистрация
Вы здесь: Главная / Форум / Главный форум по Asterisk / Конфигурация и настройка / Обработка вызова

Обработка вызова

Обработка состояния абонента
Откуда: Moscow-Minsk
Сообщений: 18

Обработка вызова

Добрый день.
Пишу, потому что толком ничего не нашел (или может плохо искал)
Интересует как правильно делать обработку состояния клиентов (через DIALSTATUS либо HANGUPCAUSE), чтобы к примеру: если клиента не существует - проигрывало бы PlayBack(invalid), а если клиент существует, но просто не зарегестрирован в данный момент - Playback(unavailable)
Просто включал дебаг, при двух звонках код ошибки один и тот же - 20
WARNING[2974]: app_dial.c:1745 dial_exec_full: Unable to create channel of type 'SIP' (cause 20 - Unknown)
Т.е. хочется аналог того, как в операторах связи работает. Или все это реализуется посредством AGI уже?

И еще после возник вопрос, если юзер прописан в sip.conf - отбой сразу происходит, если не прописан - ждет секунд 5 и появляется еще вдобавок
WARNING[2975]: chan_sip.c:5344 create_addr: No such host: 1113
что в принципе логично. В двух случаях юзер не подключен к астеру
Можно ли как-то уменьшить время? или где-то в настройках ошибся?
Версия астера - 1.6.2
2010-01-15 15:36

Avatara of litnimax
Откуда: Москва
Сообщений: 3421

Re: Обработка вызова

CLI> show function DEVICE_STATE (DEVSTATE)
5 sec на DNS резолвинг!? Поправьте DNS!
http://pbxware.ru - все для Asterisk! || Switchvox - сделано на Asterisk! Подробности на http://switchvox.ru
2010-01-15 21:41

Откуда: Moscow-Minsk
Сообщений: 18

Re: Обработка вызова

да-да )) вот тока хотел написать про это =) все равно спасибо!

нет, не днс, че-та мне подсказывает, что связано это с qualify =)
но это обошел, если кому интересно просто, такой вот макрос (вернее заготовка)

macro localcall(ext,dev,tmo) {
NoOp(SIP/${ext} has state ${DEVICE_STATE(SIP/${ext})});
switch (${DEVICE_STATE(SIP/${ext})}) {
case RINGINUSE:
NoOp(User is busy);
Playback(zanjat);
HangUp();
break;
case UNKNOWN:
NoOp(Invalid);
Playback(pbx-invalid);
HangUp();
break;
case UNAVAILABLE:
NoOp(Offline);
Playback(abonent);
HangUp();
break;
default:
Dial(${dev}/${ext},${tmo},t);
}
Set(CDR(userfield)=${CDR(userfield)} Hangupcause:${HANGUPCAUSE});
};

Кстати, Максим привет, это Паша с LVEE =)

P.S. почему-то табуляция слетает =)
2010-01-15 21:56

Добавить страницу в закладки:  Delicious Google Slashdot Yahoo Yandex.ru Reddit Digg Technorati Bobrdobr.ru Newsland.ru Smi2.ru Rumarkz.ru Vaau.ru Memori.ru Rucity.com Moemesto.ru News2.ru Mister-Wong.ru Myscoop.ru 100zakladok.ru