[asterisk-dev] Symmetric Transports

George Joseph gjoseph at digium.com
Mon Mar 13 11:26:00 CDT 2017


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20170313/366a53ca/attachment.html>


More information about the asterisk-dev mailing list