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.