[Asterisk-Dev] Re: multiple registrations of same credentials

Mikael Magnusson mikaelmagnusson at glocalnet.net
Mon Oct 24 06:11:59 MST 2005


On Sun, Oct 23, 2005 at 10:51:26AM -0400, Jason Pyeron wrote:
> On Sat, 22 Oct 2005, Mikael Magnusson wrote:
> 
> >Olle E. Johansson wrote:
> >>
> >>Which means that the PBX has no idea that it is in fact calling multiple
> >>devices. We have to implement *two* forking schemes, which makes
> >>everything much harder.
> >>
> >>Believe me, I've spent a lot of time thinking about how to make this
> >>work properly without breaking the Asterisk architecture.
> >>
> >
> >I think it can be solved by using both the peer (or AOR) and registered 
> >contact address in the dial string. For example:
> >
> >Dial(SIP/400 at example.domain/sip:400 at a.b.c.d)
> >
> >I have implemented this scheme in a SIP channel based on eXosip and the 
> >"forking" is done with a function (SIPPEER) which returns a dial string 
> >that contains all current bindings of the peer.
> >
> >It can be used in the following way in the dial plan:
> >
> >exten 400,1,Dial(${SIPPEER(400 at example.domain})
> >
> >If both sip:400 at a.b.c.d and sip:400 at e.f.g.h have registered 
> >sip:400 at example.domain, then the above Dial statement will expand to
> >
> >exten 
> >400,1,Dial(SIP/400 at example.domain/sip:400 at a.b.c.d&SIP/400 at example.domain/sip:400 at e.f.g.h)
> >
> >And it will use the following request URI:s and To headers in the 
> >generated INVITEs.
> >
> >
> >INVITE sip:400 at a.b.c.d SIP/2.0
> >..
> >To: sip:400 at example.domain
> >..
> >
> >
> >INVITE sip:400 at e.f.g.h SIP/2.0
> >..
> >To: sip:400 at example.domain
> >..
> 
> 
> so, have each phone have its own sub-domain and know all the phones ahead 
> of time and the problem is solved?
> 
> Can I hear more about your implementation?
> 
> Thanks
> 

I used sip:400 at a.b.c.d and sip:400 at e.f.g.h in the above example to 
represent the contact uri:s for two different phones, a.b.c.d and 
e.f.g.h being two (different) IPv4 addresses.

The phone registers its contact uri in a REGISTER request as usual, 
and it doesn't have to be configured ahead of time. Actually the channel 
doesn't support pre-configured bindings yet, but it's planned.

It's GPL licensed and an alpha release can be downloaded from:

http://www.hem.za.org/chan_exosip/

/Mikael




More information about the asterisk-dev mailing list