This is all you should need to setup DUNDi between two boxes.. you can
add more boxes to your network in a similar way. :P
On both boxes in your extensions.conf:
; Private DUNDi network
[dundi-priv-canonical]
; Direct numbers
[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
iax.conf on both boxes:
[priv]
type=user
dbsecret=dundi/secret
context=dundi-priv-local
dundi.conf on both boxes under [mappings]:
priv => dundi-priv-canonical,0,IAX2,priv:${SECRET}@${IPADDR}/${NUMBER},nopartial
priv => dundi-priv-customers,100,IAX2,priv:${SECRET}@${IPADDR}/${NUMBER},nopartial
priv => dundi-priv-via-pstn,400,IAX2,priv:${SECRET}@${IPADDR}/${NUMBER},nopartial
now on each box cd /var/lib/asterisk/keys
astgenkey -n [BOXNAMEHERE]
Press enter do not put a password on the keys unless you want to init
keys every time you start asterisk.
Now put exchange public keys between the boxes.
Box A dundi.conf:
[DE:AD:BE:EF:DE:AD] <-- EID/MAC from BOX B
model = symmetric
host = boxa.domain.com
inkey = BOXB <- BOX B's public key
outkey = BOXA <- BOX A's private key
include = priv
permit = priv
qualify = yes
order = primary
Box B dundi.conf:
[BE:EF:DE:AD:BE:EF] <-- EID/MAC from BOX A
model = symmetric
host = boxb.domain.com
inkey = BOXA <- BOX A's public key
outkey = BOXB <- BOX B's private key
include = priv
permit = priv
qualify = yes
order = primary
Now you can do this:
exten => _91NXXNXXXXXX,1,Macro(dundi-priv,${EXTEN:1})
exten => _91NXXNXXXXXX,2,Dial(Zap/g1/${EXTEN:1})
And find numbers in your enterprise DUNDi network.
These same things apply to the e164 DUNDi network too.
bkw