I uploaded a review[1] to Gerrit on Friday that could use some additional
review and comments.  It's meant to solve the problem where multiple pjsip
UDP transports are defined and requests go out to a dynamic contact on a
different transport than the one the REGISTER came in on.

Example.
2 transports defined.  The first is on a public ip address and the second
is on a private ip address and the endpoint doesn't explicitly set the
transport.

We get a REGISTER on the public transport but because the private transport
was defined last (and is therefore the default) and the endpoint didn't set
an explicit transport, we send a subsequent OPTIONS, NOTIFY, INVITE, etc
out from the private transport.

To address this, a new option 'symmetric_transport' was added to the pjsip
transport object.  If set to yes, when a request from a dynamic contact
comes in on
this transport, the transport name will be saved and used for subsequent
outgoing requests like OPTIONS, NOTIFY and INVITE. It's saved as a contact
uri parameter named 'x-ast-txp' and will display with the contact uri in
CLI, AMI, and ARI output. On the outgoing request, if a transport wasn't
explicitly set on the endpoint AND the request URI is not a hostname, the
saved transport will be used and the 'x-ast-txp' parameter stripped from
the outgoing packet.

Additional info in the review commit message.

Comments appreciated.

[1] https://gerrit.asterisk.org/#/c/5156/
-- 
George Joseph
Digium, Inc. | Software Developer
445 Jan Davis Drive NW - Huntsville, AL 35806 - US
Check us out at: www.digium.com & www.asterisk.org
-- 
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Reply via email to