Настройка Asterisk DUNDi SIP


Таким же способом можно объединить и другие сервера в сети.
(Основывается на конфигурациях в директории config и статьях Brian K. West aka bkw_)
http://voip-info.org/wiki/view/DUNDi+Enterprise+Configuration+SIP

Примечание



Данная конфигурация не предусматривает установку пароля как, например, в DUNDi Enterprise Configuration IAX или DUNDi Enterprise Configuration SIP, поэтому не рекомендуется для незащищённых сетей. Главное отличие от DUNDi Enterprise Configuration SIP заключается в небольших изменениях файлов sip.conf и extentions.conf на серверах.


Следует учитывать:
• До тех пор пока ваш специфичиский хост не будет указан в файле sip.conf, звонки будут обрабатываться согласно контексту, заданному в части [general] . Вы можете добавить в этот контекст [dundi-priv-local] .

Файл extensions.conf на сервере A:

; Private DUNDi network
[dundi-priv-canonical]
; Direct numbers
;example:
;exten => 201,1,Dial(SIP/201,20,tT)
;exten => 203,1,Dial(SIP/201,20,tT)
;exten => 204,1,Dial(SIP/204,20,tT)

; ATTENTION! this part should be added on box A
;--------start
; in order to advertise Zap extentions
; we must use _[3-5]XX wildcard 
; not to mess up numeration with BP250
; please see attached scheme
; this part should be added on box A
;exten => _[3-5]XX,1,Dial(Zap/g1/${EXTEN},20,rtT)
;--------finish

[dundi-priv-customers]
; If you are an ITSP or Reseller, list your customers here.

[dundi-priv-via-pstn]
; If you are freely delivering calls to the PSTN, list them here

[dundi-priv-local]
include => dundi-priv-canonical
include => dundi-priv-customers
include => dundi-priv-via-pstn

[dundi-priv-switch]
; Just a wrapper for the switch
switch => DUNDi/priv

[dundi-priv-lookup]
include => dundi-priv-local
include => dundi-priv-switch

[macro-dundi-priv]
exten => s,1,Goto(${ARG1},1)
include => dundi-priv-lookup



Файл extensions.conf на сервере В:

; Private DUNDi network
[dundi-priv-canonical]
; Direct numbers
;example:
;exten => 888,1,Dial(SIP/888,20,tT)


[dundi-priv-customers]
; If you are an ITSP or Reseller, list your customers here.

[dundi-priv-via-pstn]
; If you are freely delivering calls to the PSTN, list them here

[dundi-priv-local]
include => dundi-priv-canonical
include => dundi-priv-customers
include => dundi-priv-via-pstn

[dundi-priv-switch]
; Just a wrapper for the switch
switch => DUNDi/priv

[dundi-priv-lookup]
include => dundi-priv-local
include => dundi-priv-switch

[macro-dundi-priv]
exten => s,1,Goto(${ARG1},1)
include => dundi-priv-lookup


Файл sip.conf на обоих серверах:

[priv]
type=peer
context=dundi-priv-local
disallow=all
allow=ilbc



Файл dundi.conf на обоих серверах под mappings:
Во всех строчках требуется изменить ${IPADDR} на ваш локальный IP-адрес.

priv => dundi-priv-canonical,0,SIP,${IPADDR}/${NUMBER},nopartial
priv => dundi-priv-customers,100,SIP,${IPADDR}/${NUMBER},nopartial
priv => dundi-priv-via-pstn,400,SIP,${IPADDR}/${NUMBER},nopartial



Теперь на каждом сервере смените директорию: cd /var/lib/asterisk/keys и запустите

astgenkey -n BOXNAMEHERE (имя или адрес сервера)

Нажмите Еnter, чтобы не вводить пароль в ключах, если вы не хотите инициализировать ключи при каждом запуске asterisk.

Теперь запустите обмен публичными ключами (public keys) между серверами.


Файл dundi.conf на сервере А:

[DE:AD:BE:EF:DE:AD]   <-- EID/MAC сервера B
model = symmetric
host = boxb.domain.com
inkey = BOXB   <- BOX B's public key
outkey = BOXA  <- BOX A's private key
include = priv
permit = priv
qualify = yes
order = primary


Файл dundi.conf на сервере В:

[BE:EF:DE:AD:BE:EF]  <-- EID/MAC сервера A
model = symmetric
host = boxa.domain.com
inkey = BOXA   <- BOX A's public key
outkey = BOXB  <- BOX B's private key
include = priv
permit = priv
qualify = yes
order = primary


Теперь в контексте устройств, подключенных к внешней сети, вы можете сделать следущее:

exten => _91NXXNXXXXXX,1,Macro(dundi-priv,${EXTEN:1})
exten => _91NXXNXXXXXX,2,Dial(Zap/g1/${EXTEN:1}) ; Это вывод для примера подключения к ТфОП через PRI


и найти номера в вашей сети DUNDi! Отлично работает!