pjsip_sdp_rtp: Add option endpoint/bind_rtp_to_media_address
authorGeorge Joseph <george.joseph@fairview5.com>
Thu, 7 Jan 2016 17:57:01 +0000 (10:57 -0700)
committerGeorge Joseph <george.joseph@fairview5.com>
Tue, 12 Jan 2016 00:41:31 +0000 (18:41 -0600)
commita41aab477ac317f9d973db253b4c30cd6a6db5b8
tree7921ac4515db887d05e00dd116cd5b90536d639d
parent188438c53f5c5424cd45c3b904c58508881f0baa
pjsip_sdp_rtp:  Add option endpoint/bind_rtp_to_media_address

On a system with multiple ip addresses in the same subnet, if a
transport is bound to a specific ip address and endpoint/media_address
 is set, the SIP/SDP will have the correct address in all fields but
the rtp stream MAY still originate from one of the other ip addresses,
most probably the "primary" ip address.  This happens because
 res_pjsip_sdp_rtp/create_rtp always calls ast_instance_new with
the "all" ip address (0.0.0.0 or ::).

The new option causes res_pjsip_sdp_rtp/create_rtp to call
ast_rtp_instance_new with the endpoint's media_address (if specified)
instead of the "all" address.  This causes the packets to originate from
the specified address.

ASTERISK-25632
ASTERISK-25637
Reported-by: Olivier Krief
Reported-by: Dan Journo

Change-Id: I3dfaa079e54ba7fb7c4fd1f5f7bd9509bbf8bd88
CHANGES
configs/samples/pjsip.conf.sample
contrib/ast-db-manage/config/versions/26d7f3bf0fa5_add_bind_rtp_to_media_address_to_pjsip.py [new file with mode: 0644]
include/asterisk/res_pjsip.h
res/res_pjsip.c
res/res_pjsip/pjsip_configuration.c
res/res_pjsip_sdp_rtp.c