Страница 1 из 1

Несколько sip-транков с одного gsm-шлюза

Добавлено: 29 сен 2019, 14:38
herznaet
Приветствую всех присутствующих!! Попался мне зверек с астериском 11, раздает на него 3 транка gsm-шлюз.
Входящие вызовы я разрулил. Все проходит со всех трех сим-карт. Периодически смотрю админку шлюза, все попадает.
Проблема вот в чем, никак не могу разрулить в диалплане исходящие вызовы, вероятно не хватает знаний.
Необходимо, чтоб при исходящем вызове, если занята первая сим, вызовы шли со второй. Соответственно, если занята вторая, то вызовы шли с третьей. Перепробовал много чего, включая крепкие спиртные напитки, может что-то и недоглядел, ибо с астериском приходится сталкиваться крайне редко
Ниже привожу запись из extensions.conf
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER: extensions.conf
exten => _X.,1,Dial(SIP/gsm2/${EXTEN})
exten => _X.,n,Goto(s-${DIALSTATUS},1)
exten => s-NOANSWER,1,Hangup()
exten => s-CONGESTION,1,Dial(SIP/gsm1/${EXTEN})
exten => s-CONGESTION,n,Dial(SIP/gsm3/${EXTEN})
exten => s-CONGESTION,n,Congestion
exten => s-CANCEL,1,Hangup()
exten => s-BUSY,1,Dial(SIP/gsm1/${EXTEN})
exten => s-BUSY,n,Dial(SIP/gsm3/${EXTEN})
exten => s-BUSY,n,Busy
exten => s-CHANUNAVAIL,1,Dial(SIP/gsm1/${EXTEN})
exten => s-CHANUNAVAIL,n,Dial(SIP/gsm3/${EXTEN})
exten => s-CHANUNAVAIL,n,Hangup()
exten => _s-.,1,Hangup()

Re: Несколько sip-транков с одного gsm-шлюза

Добавлено: 30 сен 2019, 09:00
awsswa
а логи показать, где первая линия занята ?
и call-limit=1 выставьте на каждую линию

Re: Несколько sip-транков с одного gsm-шлюза

Добавлено: 30 сен 2019, 15:41
dimondack
А что если так попробовать

Код: Выделить всё

exten => _X.,1,Dial(SIP/trunk1/${EXTEN},90,ti)
same => n,GotoIf($["${DIALSTATUS}" !="ANSWER"]?mf2:false)
same => n(mf2),Dial(SIP/trunk2/${EXTEN},90,ti)
same => n,GotoIf($["${DIALSTATUS}" !="ANSWER"]?bl:false)
same => n(bl),Dial(SIP/trunk3/${EXTEN},90,ti)
same => n(false),Hangup()
same => n,Hangup()

Re: Несколько sip-транков с одного gsm-шлюза

Добавлено: 30 сен 2019, 16:26
ded
Мобильный телефон абонента занят, прибежит Responce code RC=17 (User busy), и это !=ANSWER
и по этому диалплану пойдёт долбить его же через другие симки.
Как-то различать надо когда занята первая сим, и когда занят абонент, которому через неё звонят.

Re: Несколько sip-транков с одного gsm-шлюза

Добавлено: 30 сен 2019, 16:54
dimondack
Да конечно,
Мой небольшой опыт показывает что в среднем, такой вариант вполне подходит, ну по крайней мере в моем случае...

К примеру на мобильном отбой Красной кнопкой дает 17-ый релиз(ОКС-7) == BUSY
А менеджеру надо дозвониться....

Вот и переходим на другую симку..

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

Конечно этому товарищу никто не мешает переделать под свои нужды

Какие операторы , тарифы...

Код: Выделить всё

exten => _X.,1,Dial(SIP/trunk1/${EXTEN},90,ti)
same => n,GotoIf($["${DIALSTATUS}" ="BUSY"]?mf2:false)
same => n,GotoIf($["${DIALSTATUS}" ="CONGЕSTION"]?mf2:false)
same => n,GotoIf($["${DIALSTATUS}" ="NOANSWER"]?false:false)
same => n(mf2),Dial(SIP/trunk2/${EXTEN},90,ti)
....
same => n(false),Hangup()
same => n,Hangup()

Re: Несколько sip-транков с одного gsm-шлюза

Добавлено: 30 сен 2019, 17:36
herznaet
Спасибо большое всем за ответы! Я нашел решение еще до того, как топик прошел модерацию. Я затупил с call-limit, реально проморгал его. Все работает. Еще раз спасибо всем