Hi,
I'm having difficulties with using DUNDi between two servers. If it were
three I think I could control looping by limiting TTL, but with two I'm not
sure how to prevent a loop causing bad things to happen. I've tried ttl=1
but things still blow up.
The DUNDi configurations are pretty simple and work just fine in both
directions as long as only one of them is using the switch => DUNDi/context.
dundi lookup <number>@dundified works great as well as test calls.
What is the proper method of handling DUNDi between only two servers? Should
I be using a dummy context on one server to handle this?
I'm listing the relevant files below for only one server for brevities sake.
-----------------------------------
dundi.conf
[general]
department=Test Lab
organization=My Test lab
locality=Anywhere
stateprov=CA
country=US
email=email at email.com
phone=+5555555555
entityid=00:11:22:33:44:55
cachetime=5
ttl=1
autokill=yes
[mappings]
dundified => internal,0,SIP,${NUMBER}@server1.domain.com<NUMBER%7D at
server1.domain.com>
,nopartial
[55:44:33:22:11:00]
model=symmetric
host=server2.domain.com
inkey=dundikey
outkey=dundikey
include=dundified
permit=dundified
qualify=yes
order=primary
-----------------------------------
extensions.conf
[general]
static = yes
writeprotect = no
clearglobalvars = no
[globals]
[default]
include => internal
include => parkedcalls
[internal]
include => external
include => parkedcalls
switch => DUNDi/dundified
exten => 300,1,Dial(SIP/300)
exten => 300,n,Hangup()
exten => 5551234567,1,Goto(300,1)
exten => 301,1,Dial(SIP/301)
exten => 301,n,Hangup()
exten => 8885551212,1,Goto(301,1)
exten => _NXXNXXXXXX,1,Dial({$EXTEN}@voipprovider)
exten => _NXXNXXXXXX,n,Hangup()
[external]
exten => 5551234567,1,Goto(internal,300,1)
-----------------------------------
sip.conf
[dundified]
type=friend
dbsecret=dundi/secret
context=internal
[voipprovider]
type=friend
host=voipprovider.web
dtmfmode=rfc2833
insecure=port,invite
disallow=all
allow=g729
context=external
[300]
type=peer
callerid=300
username=300
secret=secret
host=dynamic
context=internal
mailbox=300 at default
notifyringing=yes
notifyhold=yes
limitonpeers=yes
call-limit=2
[301]
type=peer
callerid=301
username=301
secret=secret
host=dynamic
context=internal
mailbox=301 at default
notifyringing=yes
notifyhold=yes
limitonpeers=yes
call-limit=2
Thanks in advance!
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
http://lists.digium.com/pipermail/asterisk-users/attachments/20080224/9bce3c73/attachment.htm
On Sunday 24 February 2008 02:01:10 am arkda wrote:> Hi, > > I'm having difficulties with using DUNDi between two servers. If it were > three I think I could control looping by limiting TTL, but with two I'm not > sure how to prevent a loop causing bad things to happen. I've tried ttl=1 > but things still blow up. > > The DUNDi configurations are pretty simple and work just fine in both > directions as long as only one of them is using the switch => > DUNDi/context. dundi lookup <number>@dundified works great as well as test > calls. > > What is the proper method of handling DUNDi between only two servers? > Should I be using a dummy context on one server to handle this? > > I'm listing the relevant files below for only one server for brevities > sake. > > ----------------------------------- > dundi.conf > > [general] > department=Test Lab > organization=My Test lab > locality=Anywhere > stateprov=CA > country=US > email=email at email.com > phone=+5555555555 > entityid=00:11:22:33:44:55 > cachetime=5 > ttl=1 > autokill=yes > > [mappings] > dundified => > internal,0,SIP,${NUMBER}@server1.domain.com<NUMBER%7D at server1.domain.com> > ,nopartial > > [55:44:33:22:11:00] > model=symmetric > host=server2.domain.com > inkey=dundikey > outkey=dundikey > include=dundified > permit=dundified > qualify=yes > order=primary > > ----------------------------------- > extensions.conf > > [general] > static = yes > writeprotect = no > clearglobalvars = no > > [globals] > > [default] > include => internal > include => parkedcalls > > [internal] > include => external > include => parkedcalls > switch => DUNDi/dundified > > exten => 300,1,Dial(SIP/300) > exten => 300,n,Hangup() > exten => 5551234567,1,Goto(300,1) > > exten => 301,1,Dial(SIP/301) > exten => 301,n,Hangup() > exten => 8885551212,1,Goto(301,1) > > exten => _NXXNXXXXXX,1,Dial({$EXTEN}@voipprovider) > exten => _NXXNXXXXXX,n,Hangup() > > [external] > exten => 5551234567,1,Goto(internal,300,1) > > ----------------------------------- > sip.conf > > [dundified] > type=friend > dbsecret=dundi/secret > context=internal > > [voipprovider] > type=friend > host=voipprovider.web > dtmfmode=rfc2833 > insecure=port,invite > disallow=all > allow=g729 > context=external > > [300] > type=peer > callerid=300 > username=300 > secret=secret > host=dynamic > context=internal > mailbox=300 at default > notifyringing=yes > notifyhold=yes > limitonpeers=yes > call-limit=2 > > [301] > type=peer > callerid=301 > username=301 > secret=secret > host=dynamic > context=internal > mailbox=301 at default > notifyringing=yes > notifyhold=yes > limitonpeers=yes > call-limit=2 > > Thanks in advance!i believe that you don't want to have your mappings point to a context that includes the switch => DUNDi/... statement. The switch is what a server uses to interface to the rest of the DUNDi world. your mappings should point to what a particular host is serving up, not including the rest of the DUNDi world. -- Anthony - http://messinet.com - http://messinet.com/~amessina/gallery 8F89 5E72 8DF0 BCF0 10BE 9967 92DC 35DC B001 4A4E -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: This is a digitally signed message part. Url : http://lists.digium.com/pipermail/asterisk-users/attachments/20080224/de67268f/attachment.pgp
JR Richardson> Hi, > > I'm having difficulties with using DUNDi between two servers. If it were > three I think I could control looping by limiting TTL, but with two I'm > not > sure how to prevent a loop causing bad things to happen. I've tried ttl=1 > but things still blow up. > > The DUNDi configurations are pretty simple and work just fine in both > directions as long as only one of them is using the switch => > DUNDi/context. > dundi lookup <number>@dundified works great as well as test calls. > > What is the proper method of handling DUNDi between only two servers? > Should > I be using a dummy context on one server to handle this? > > I'm listing the relevant files below for only one server for brevities > sake. > > ----------------------------------- > dundi.conf > > [general] > department=Test Lab > organization=My Test lab > locality=Anywhere > stateprov=CA > country=US > email=email at email.com > phone=+5555555555 > entityid=00:11:22:33:44:55 > cachetime=5 > ttl=1 > autokill=yes > > [mappings] > dundified => > internal,0,SIP,${NUMBER}@server1.domain.com<NUMBER%7D at server1.domain.com> > ,nopartial > > [55:44:33:22:11:00] > model=symmetric > host=server2.domain.com > inkey=dundikey > outkey=dundikey > include=dundified > permit=dundified > qualify=yes > order=primary > > ----------------------------------- > extensions.conf > > [general] > static = yes > writeprotect = no > clearglobalvars = no > > [globals] > > [default] > include => internal > include => parkedcalls > > [internal] > include => external > include => parkedcalls > switch => DUNDi/dundified > > exten => 300,1,Dial(SIP/300) > exten => 300,n,Hangup() > exten => 5551234567,1,Goto(300,1) > > exten => 301,1,Dial(SIP/301) > exten => 301,n,Hangup() > exten => 8885551212,1,Goto(301,1) > > exten => _NXXNXXXXXX,1,Dial({$EXTEN}@voipprovider) > exten => _NXXNXXXXXX,n,Hangup() > > [external] > exten => 5551234567,1,Goto(internal,300,1) > > ----------------------------------- > sip.conf > > [dundified] > type=friend > dbsecret=dundi/secret > context=internal > > [voipprovider] > type=friend > host=voipprovider.web > dtmfmode=rfc2833 > insecure=port,invite > disallow=all > allow=g729 > context=external > > [300] > type=peer > callerid=300 > username=300 > secret=secret > host=dynamic > context=internal > mailbox=300 at default > notifyringing=yes > notifyhold=yes > limitonpeers=yes > call-limit=2 > > [301] > type=peer > callerid=301 > username=301 > secret=secret > host=dynamic > context=internal > mailbox=301 at default > notifyringing=yes > notifyhold=yes > limitonpeers=yes > call-limit=2 > > Thanks in advance!You can't map the [internal] context in dundi.conf because you have the switch => DUNDi/dandified statement in there. That is causing your loop. Map dundi to a dial plan [context] that doesn't have access to the [internal] context. Put your dundi extensions in the new context as a NoOp and things should work fine. JR --- Engineering for the Masses.