Re: Соединение нескольких * по IAX
Все заработало, премного благодарен!
Однако неплохо было бы пояснить тонкости, может быть кому-нибудь еще поможет.
на сколько я понимаю ситуацию дело обстоит так:
1) сервер 50(192.168.1.162) регистрируется на сервере 60(192.168.1.238) строкой регистрации:
register => connect50:secret@192.168.1.238
Для этой строки регистрации на сервере 60 есть учетная запись в IAX.conf вида
[connect50]
type=friend
auth=plaintext
user=connect60
secret=secret
context=from-internal
host=dynamic
callerid="SRV60"
trunk=yes
disallow=all
allow=alaw
Т.е. получается, что сервер 50 является клиентом сервера 60, это все понятно.
Мне непонятно, зачем в IAX.conf на сервере 50 учетная запись:
[connect60]
type=friend
auth=plaintext
user=connect50
secret=secret
context=from-internal
host=192.168.1.238
callerid="SRV50"
trunk=yes
disallow=all
allow=alaw
Для чего? без нее не работает, объясните плиз, кто может.
Про контексты все понял.
Еще вопросы:
Предполагается 30 серверов с астериском, получается, что все из них должны регистрироваться на каком-то центральном? И если будет недоступен этот центральный, остальные не смогут совершать вызовы? Я предполагал сделать так: Каждый из серверов регистрируется юзером на всех других и может совершать исходящие звонки ко всем серверам. Хочу распространять между серверами сведения о маршрутизации звонков к другим серверам всего двумя файлами extensions_net.conf и iax_net.conf, причем эти файлы будут для всех одинаковые. В первом - куда что маршрутизировать, во втором регистрации и записи для других серверов. Получится что каждый сервер будет зарегестрирован сам на себе и будет гонять траффик через IAX транк сам в себя. чтобы этого избежать можно в extensions_net.conf сделать условия маршрутизации что-то типа:
;для сервера 60
exten => _60ХХ,1,GotoIf($[${EXTEN:0:2}= 60]?:4)
exten => _60XX,2,Dial(SIP/${EXTEN})
exten => _60XX,3,Hangup
exten => _60XX,4,Dial(IAX2/connect60/${EXTEN})
;для сервера 50
exten => _50ХХ,1,GotoIf($[${EXTEN:0:2}= 50]?:4)
exten => _50XX,2,Dial(SIP/${EXTEN})
exten => _50XX,3,Hangup
exten => _50XX,4,Dial(IAX2/connect50/${EXTEN})
;для сервера 40
exten => _40ХХ,1,GotoIf($[${EXTEN:0:2}= 40]?:4)
exten => _40XX,2,Dial(SIP/${EXTEN})
exten => _40XX,3,Hangup
exten => _40XX,4,Dial(IAX2/connect40/${EXTEN})
т.е если номер принадлежит локальному диалплану, то перенаправляем в канал SIP минуя петлю через IAX
Как думаете, пройдет такое? Будет работать?
И еще: Поясните или дайте ссылку, если можно, как использовать ключ switch=>
Спасибо!
|