Следует учитывать:
• До тех пор пока ваш специфичиский хост не будет указан в файле 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
Теперь на каждом сервере смените директорию: 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! Отлично работает!