Яндекс.Метрика

Ни о чём

Как связать два asterisk-сервера

imageИтак, имеем два астериска.
Задача — организовать прямой дозвон через префикс туда и обратно.
Исходные данные:
Астериск 1.4 на обеих концах
kazan.asterisk.ru — имя первого астериска.
volgograd.asterisk.ru — имя второго астериска.
Предполагается, что оба астериска имеют прямой выход в интернет (в ином случае тоже проблем быть не должно, нужно настроить NAT и использовать параметр nat=yes)

Пусть 1-й астериск у нас находится в Казани, другой в Волгограде. Обратимся к автомобильным кодам регионов.
Тогда дозвон из Волгограда будет 9-16-<номер>.
Из Казани 9-34-<номер>.
sip.conf 1-го астериска:
[general]
context=default
allowguest=no
bindport=5060
bindaddr=0.0.0.0

; настройки для регистрации на другом астериск-сервере
register => kazan:kazan_password@volgograd.asterisk.ru:5060

[volgograd]
; логин и пароль для подключения
username=volgograd
secret=volgograd_password
; разрешать входящие и исходящие вызовы
type=friend

; не отсылать повторные сообщения INVITE
canreinvite=no
; Не требовать доп. аутентификации
insecure=very
; периодическая проверка доступности устройства
qualify=yes

; разрешаем регистрацию
; (www.voip-info.org): If you want the phone to register itself, use the keyword dynamic instead of Host IP.
; ограничить подключения можно через deny,permit
host=dynamic

;DTMF
dtmfmode=rfc2833

; настройка кодеков
disallow=all
allow=alaw
allow=ulaw

; в какой контект будут попадать входящие звонки
context=office_rules


extension.conf 1-го астериска:
; контекст для пользователей
[office]
exten => _934.,1,Set(CALLERID(all)="Kazan <16>")
exten => _934.,n,Dial(SIP/${EXTEN:3}@volgograd,60,r)
exten => _934.,n,HangUp
..

include => office_rules

; контекст для входящих вызовов
; внутренние номера имеют вид 1XX или 2XX
[office_rules]
exten => _[12]XX,1,Dial(SIP/${EXTEN},60,tTr)
exten => _[12]XX,n,HangUp()



sip.conf 2-го астериска:
[general]
context=default
allowguest=no
bindport=5060
bindaddr=0.0.0.0

; настройки для регистрации на другом астериск-сервере
register => volgograd:volgograd_password@kazan.asterisk.ru:5060

[kazan]
type=friend

; credentials for registration
username=kazan
secret=kazan_password

; разрешаем регистрацию
; (www.voip-info.org): If you want the phone to register itself, use the keyword dynamic instead of Host IP.
; ограничить подключения можно через deny,permit
host=dynamic

; не отсылать повторные сообщения INVITE
canreinvite=no
; Не требовать доп. аутентификации
insecure=very
; периодическая проверка доступности устройства
qualify=yes

; DTMF
dtmfmode=rfc2833

; разрешенные кодеки (только G711)
disallow=all
allow=ulaw
allow=alaw

; в какой контекст принимать звонки
context=office_rules



extension.conf 2-го астериска:
; контекст для пользователей
[office]
exten => _916.,1,Set(CALLERID(all)="Volgograd <34>")
exten => _916.,n,Dial(SIP/${EXTEN:3}@kazan,60,r)
exten => _916.,n,HangUp
..

include => office_rules

; контекст для входящих вызовов
; внутренние номера имеют вид 1XX или 2XX
[office_rules]
exten => _[12]XX,1,Dial(SIP/${EXTEN},60,tTr)
exten => _[12]XX,n,HangUp()



PS. Буду признателен советам по расширению функциональности и безопасности.

upd: В любом случае, в плане аспекта безопасности, нужно глянуть это.