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

Система самотестирования каналов

0

Возникла такая ситуация. Есть куча оборудования в виде шлюзов FXO и GSM и транки на операторов связи. Иногда они отваливаются, причём по-разному. Бывает есть входящие, нет исходящих, или вообще ничего нет, а астер пишет что с каналом всё ок, регистрация есть и т.д. Насколько я знаю, в астериске нет функционала полного тестирования линий, хочу наваять скриптики которые бы периодически создавали call файлы, они звонили с одного транка на другой и принималось какое-то решение если звонок не прошёл. Так вот, как в call файле отследить прошёл звонок или нет? Т.е. если прошёл - то можно перевести на какой-то номер, мне это не надо. Надо если звонок отвечен, т.е. канал функционирует - просто сбрасывался вызов, а если не отвечен - то предпринимались какие-то действия, например запускался bash скрипт. Может это через ж и есть другие пути?

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

спросил 2012-04-23 12:25:06 +0400

asdev Gravatar asdev flag of Ukraine
244 21 5 15

обновил 2012-04-23 12:33:44 +0400

1 Ответ

1

в callfile никак не проследить. я такую систему писал, оценивал ее в 1500usd. пишетсья по той же схеме что и диаллер. тоесть скрипт следит за событиями, генерит на каждый check звонок, дальеш этот звонок идет через local где его подхватывает fastagi скрипт, отмечает еслион был неудачный на прозвоне. другая сторона идет на wait(1000), срипт отмечает ответилься ли звонок и сколько времени получилься. входящие номера для теста отмечают пришел ли звонок с этим CID в это время или нет.

все делается внешними сриптами. метод - fastagi/agi или просто по cdr записям.

простейший дилаплан выглядит так

[out]
exten => _X.,1,Dial(sip/gate/${EXTEN},60)
exten => h,1,Goto(h-${DIALSTATUS},1)
exten => h-CONGESTION,1,Goto(problem,s,1)
exten => h-FAIL,1,Goto(problem,s,1)
exten => h-BUSY,1,Goto(problem,s,1)
exten => h-.,1,Noop(ok);

[problem]
exten => s,1,Noop(we have problem)
exten => s,n,ForkCDR(w)
exten => s,n,NoCDR
exten => s,2,System( /root/scripts/mailproblem ${CDR(uniqueid)})

ну я думаю вы сами догадались что такой диалпалн не гарантирует 100% шанс извещений.иначе не городили бы сложных. в частности он не гарантирует отслеживания кода 16(normal call clearing) и сброса звонка.

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

ответил 2012-04-23 12:35:18 +0400

meral Gravatar meral flag of Ukraine
21228 23 18 169
http://pro-sip.net/

Comments

Я делал через внешний сип-клиент, twinkle. В принципе работало, но тоже есть свои приколы. Теперь вот хочу сделать правильно, но задача конечно не из лёгких

asdev ( 2012-04-23 12:51:25 +0400 )редактировать

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

meral ( 2012-04-23 14:49:59 +0400 )редактировать

Я через твинкл делал так: по крону раз в полчаса звонил им с одного транка на другой, твинкл умеет отслеживать состояние звонка и запускать определённые скрипты при ответе или failed, если звонок отвечен - то запускается скрипт и он завершается. Если нет - то идёт звонок мне на телефон с оповещением через какие транки не прошёл звонок. Хреново что если линия в данный момент занята, что вполне может быть при одноканальных FXO и GSM шлюзах - то есессно статус возвращается failed со всеми вытекающими. Ну и не всегда корректно отрабатывается failed когда шлюз подвисает, почему-то таймаут не срабатывает. Способ довольно простой для реализации, тот же твинкл работает на серваке астериски в фоне, но костыль. Буду теперь пробовать agi скриптами...

asdev ( 2012-04-23 17:08:51 +0400 )редактировать

ну так проще sipp использовать.но это ненадежно.

meral ( 2012-04-23 17:20:46 +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-04-23 12:25:06 +0400

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

Обновлен: Apr 23 '12

Похожие вопросы:

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