12 aug 2009 kl. 12.29 skrev Iñaki Baz Castillo:
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@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
You could have used Remote-party-id with party=called as well.
In fact, if you start testing various equipment you realize that you
have to deliver this information in multiple ways.
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.
However, I've read some RFC with a similar solution (I think it uses
"P-
Called-Party" header, but later the complex "History" header
appeared and...).
Yes, in the future a PSTN gateway propably should add sip-history with
this information.
The draft for the update doesn't mention gateways or b2bua's much, so
it still needs feedback I guess.
/O