Глюк с Outbound Routes и +7 (Asterisk 12.6.1) (решение)
Добавлено: 24 окт 2014, 11:15
Сегодня с шаманскими танцами с бубном была решена проблемка, может кому пригодится...
Дано (упростил): пара SIP транков(tr-1 и tr-2) и десяток внутренних номеров.
Задача: 7 внутренних выпускать через tr-1 остальные через tr-2.
Было решено ставить Outbound Routes, т.к. в 12м астериске (правильно FreePBX 12.0.1rc36) Custom Context я не нашел.
Настроил в каждом маршруте доступ нужным абонентам.
И нашел интересный глюк: при звонке на 8ХХХХХХХХХХ всё нормально, каждый абонент уходит на свой транк. А вот с +7 получается, что абоненты первой группы нормально уходят через tr-1, а вторая группа за каким-то макаром ломится на tr-1 и там получает "все линии заняты".
первый маршрут
второй:
Было выяснено, что модуль проверяет только _X. и наше +7 ему до лампочки...
extensions_additional.conf
помогло в extensions_override_freepbx.conf
Дано (упростил): пара SIP транков(tr-1 и tr-2) и десяток внутренних номеров.
Задача: 7 внутренних выпускать через tr-1 остальные через tr-2.
Было решено ставить Outbound Routes, т.к. в 12м астериске (правильно FreePBX 12.0.1rc36) Custom Context я не нашел.
Настроил в каждом маршруте доступ нужным абонентам.
И нашел интересный глюк: при звонке на 8ХХХХХХХХХХ всё нормально, каждый абонент уходит на свой транк. А вот с +7 получается, что абоненты первой группы нормально уходят через tr-1, а вторая группа за каким-то макаром ломится на tr-1 и там получает "все линии заняты".
первый маршрут
Код: Выделить всё
...
exten => _XXXXXXXXXXX,n,Macro(dialout-trunk,1,9${EXTEN},,off)
exten => _+7.,n,Macro(dialout-trunk,1,98${EXTEN:2},,off) #абоненты на софтфонах с мобильников, набора из записной +7...
Код: Выделить всё
...
exten => _XXXXXXXXXXX,n,Macro(dialout-trunk,2,9${EXTEN},,off)
exten => _+7.,n,Macro(dialout-trunk,2,98${EXTEN:2},,off) #абоненты на софтфонах с мобильников, набора из записной +7...
extensions_additional.conf
Код: Выделить всё
[outbound-restricted-routes]
exten => _X.,1,Macro(user-callerid,LIMIT)
exten => _X.,n,Set(ROUTEUSER=${IF($["${EXTTOCALL}"!=""]?${EXTTOCALL}:${AMPUSER})})
exten => _X.,n,GotoIf($[${LEN(${ROUTEUSER})}>0 & ${DB_EXISTS(AMPUSER/${ROUTEUSER}/outroute)}]?${DB(AMPUSER/${ROUTEUSER}/outroute)},${EXTEN},2:outbound-allroutes,${EXTEN},2)
;--== end of [outbound-restricted-routes] ==--;
Код: Выделить всё
[outbound-restricted-routes]
exten => _+7.,1,Macro(user-callerid,LIMIT)
exten => _+7.,n,Set(ROUTEUSER=${IF($["${EXTTOCALL}"!=""]?${EXTTOCALL}:${AMPUSER})})
exten => _+7.,n,GotoIf($[${LEN(${ROUTEUSER})}>0 & ${DB_EXISTS(AMPUSER/${ROUTEUSER}/outroute)}]?${DB(AMPUSER/${ROUTEUSER}/outroute)},${EXTEN},2:outbound-allroutes,${EXTEN},2)
exten => _X.,1,Macro(user-callerid,LIMIT)
exten => _X.,n,Set(ROUTEUSER=${IF($["${EXTTOCALL}"!=""]?${EXTTOCALL}:${AMPUSER})})
exten => _X.,n,GotoIf($[${LEN(${ROUTEUSER})}>0 & ${DB_EXISTS(AMPUSER/${ROUTEUSER}/outroute)}]?${DB(AMPUSER/${ROUTEUSER}/outroute)},${EXTEN},2:outbound-allroutes,${EXTEN},2)
;--== end of [outbound-restricted-routes] ==--;