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

переключение между двух провайдеров

если не доступен первый.
1 234>
Avatara of burder
Откуда: 00-1D-09-C7-73-99
Сообщений: 289

переключение между двух провайдеров

Решал-ли кто-нибудь проблему переключения между 2 провайдеров на исходяшие звонки при не доступности первого?
Или хотя-бы поскажите где почитать если вам доводилось находить такое чтиво.

exten =>_8.,1,Dial (sip/${EXTEN}@sipnet,45)
exten =>_8.,n,Dial (sip/${EXTEN}@другой пров,45)

Такой диалплан пробовал не не устраивает он меня.
2009-04-19 15:05

Откуда: Kiev
Сообщений: 801

Re: переключение между двух провайдеров

Я бы попробовал анализировать в макросе переменную CHANUNAVAIL, команды Dial. Как вариант...
Лучший способ предвидеть будущее - изобрести его (Алан Кей, "Apple")
2009-04-19 15:50

Avatara of burder
Откуда: 00-1D-09-C7-73-99
Сообщений: 289

Re: переключение между двух провайдеров

show application ChanIsAvail
-= Info about application 'ChanIsAvail' =-

[Synopsis]
Check channel availability

[Description]
ChanIsAvail(Technology/resource[&Technology2/resource2...][|options]):
This application will check to see if any of the specified channels are
available. The following variables will be set by this application:
${AVAILCHAN} - the name of the available channel, if one exists
${AVAILORIGCHAN} - the canonical channel name that was used to create the channel
${AVAILSTATUS} - the status code for the available channel
Options:
s - Consider the channel unavailable if the channel is in use at all
j - Support jumping to priority n+101 if no channel is available



искал вот нашёл.
Осталось посмотреть пример приминения или самому опробовать.

Вот примеры тоже нашёл:

exten => _X.,1,ChanIsAvail(SIP/sipnet&Zap/1)
exten => _X.,2,Cut(theChannel=AVAILCHAN,,1)
exten => _X.,3,Dial(${theChannel}/${EXTEN})
exten => _X.,4,Hangup
exten => _X.,102,Playback(all-circuits-busy-now)
exten => _X.,103,Hangup


А это макрос
Код:
exten => _X.,1,Macro(mydial,${EXTEN})

[macro-mydial]
exten => s,1,ChanIsAvail(Zap/2&Zap/1)
exten => s,2,Cut(theChannel=AVAILCHAN,,1)
exten => s,3,Dial(${theChannel}/${ARG1})
exten => s,4,Hangup
exten => s,102,Playback(all-circuits-busy-now)
exten => s,103,Hangup
2009-04-19 16:10

Сообщений: 156

Re: переключение между двух провайдеров

burder:

Такой диалплан пробовал не не устраивает он меня.
Чем плох такой диалплан, спрашиваю. Я такой у себя использую - нормально работает (правда с ZAP и mISDN каналами)
2009-04-20 12:34

Avatara of burder
Откуда: 00-1D-09-C7-73-99
Сообщений: 289

Re: переключение между двух провайдеров

alphil:

burder:

Такой диалплан пробовал не не устраивает он меня.
Чем плох такой диалплан, спрашиваю. Я такой у себя использую - нормально работает (правда с ZAP и mISDN каналами)
А у меня SIPnet и ZAP/1 будет использоватся.
Как Вы говорите у Вас реализовано -можно поподробней?
2009-04-20 13:25

Сообщений: 866

Re: переключение между двух провайдеров

Ну так а какая разница какие у вас каналы?

exten =>_8.,1,Dial (sip/${EXTEN}@sipnet,45)
exten =>_8.,n,Dial (Zap/1/...${EXTEN},45)

Вы скажите чем он "не устраивает" вас...
2009-04-20 13:43

Avatara of burder
Откуда: 00-1D-09-C7-73-99
Сообщений: 289

Re: переключение между двух провайдеров

alphil:

burder:

Такой диалплан пробовал не не устраивает он меня.
Чем плох такой диалплан, спрашиваю. Я такой у себя использую - нормально работает (правда с ZAP и mISDN каналами)
Как Вы говорите у Вас реализовано -можно поподробней?
Живые примеры может кто-нибудь привести?
2009-04-20 14:18

Сообщений: 866

Re: переключение между двух провайдеров

ну так что конкретно вы хотите увидесь? Такие два Dial'а один за другим - это вполне живой пример. Если первый звонок не бриджится то dial выходит и выполняется второй.

Единственно что стоит сделать это после первого звонка - посмотреть на переменную DIALSTATUS - если там BUSY то большого смысла звонить вторым каналом нет.

Ну и вообще посмотреть какие у вас DIALSTATUS'ы бывают в каких ситуациях и решить в зависимости от этого при каких статусах продолжать а при каких нет. Но тут все очень индивидуально ибо зависит от того что возвращает провайдер/шлюз - но это надо вам по месту смотреть просто. Добавьте Noop(${DIALSTATUS}) после Dial'а и экспериментируйте...
2009-04-20 19:18

Сообщений: 1573

Re: переключение между двух провайдеров

burder:

Живые примеры может кто-нибудь привести?
например так:

...
exten => _X.,n(check),ChanIsAvail(SIP/prov1&SIP/prov2|j)
exten => _X.,n,Dial(${AVAILORIGCHAN}/${EXTEN},45)
exten => _X.,check+101,Hangup (или здесь то, что вы хотите сделать при недоступности обоих)
...
2009-04-21 01:48

Сообщений: 866

Re: переключение между двух провайдеров

Chanisavail будет возвращать успех для случая SIP/1.1.1.1/ext - всегда. А в случае нормально прописанного в sip.conf пира думаю что тоже почти всегда. Не уверен будет ли он на qualify смотреть но даже если будет - пир может быть доступен но звонок реджектнуть по каким-то своим внутренним причинам. Поэтому имхо если у товарища цель - забэкапить провайдера и застраховаться от того что он какие-то звонки откажется проводить то решение с chanisavail не самое удачное. И два dial'а подряд будет лучше.
2009-04-21 02:05

1 234>
Добавить страницу в закладки:  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