[asterisk-users] DUNDi with two servers

JR Richardson jmr.richardson at gmail.com
Sun Feb 24 13:14:12 CST 2008



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.




More information about the asterisk-users mailing list