[Kamailio-Users] Request uri vs registered contact

Alex Balashov abalashov at evaristesys.com
Wed Aug 12 12:45:54 CEST 2009


Iñaki Baz Castillo wrote:
> El Miércoles, 12 de Agosto de 2009, Olle E. Johansson escribió:
>> Anyway, there's some work in the IETF to handle the register for
>> multiple DID's, since the way it's used now clearly violates what's in
>> the RFCs and there is an obvious need to register for "SIP trunks".
> 
> I implemented this in an "ellegant" way:
> 
> - The SIP trunk (Asterisk?) registers with Contact "s at IP" (or any contact).
> - It has associated 3 PSTN numbers in the proxy/registrar.
> - When the proxy receives a call for one of these 3 numbers it changes the 
> RURI according to the location of the client (lookup("location")) and adds a 
> header whose value is the dialed PSTN number in E164 format:
>     P-Dialed-Number: +34987654321
> 
> So:
> - "To" remains unchanged.
> - RURI arriving to the client matches its registration's Contact.
> - The client must inspect a custom header to know the real destination number 
> of the call.

That is quite elegant, and easy to get around in the Asterisk dial plan 
so that routing can still happen on "extension," where "extension" is 
the dialed number:

    [generic-incoming]

    exten => _.,1,Set(dialed=${SIP_HEADER(P-Dialed-Number)})
    exten => _.,n,Goto(incoming-route,${dialed},1)

But in other endpoints it would be quite hard or impossible.

-- 
Alex Balashov
Evariste Systems
Web     : http://www.evaristesys.com/
Tel     : (+1) (678) 954-0670
Direct  : (+1) (678) 954-0671



More information about the Users mailing list