mirror of https://github.com/asterisk/asterisk
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: I3dfaa079e54ba7fb7c4fd1f5f7bd9509bbf8bd88changes/29/1929/3
parent
188438c53f
commit
a41aab477a
@ -0,0 +1,31 @@
|
||||
"""add bind_rtp_to_media_address to pjsip
|
||||
|
||||
Revision ID: 26d7f3bf0fa5
|
||||
Revises: 2d078ec071b7
|
||||
Create Date: 2016-01-07 12:23:42.894400
|
||||
|
||||
"""
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = '26d7f3bf0fa5'
|
||||
down_revision = '2d078ec071b7'
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from sqlalchemy.dialects.postgresql import ENUM
|
||||
|
||||
YESNO_NAME = 'yesno_values'
|
||||
YESNO_VALUES = ['yes', 'no']
|
||||
|
||||
def upgrade():
|
||||
############################# Enums ##############################
|
||||
|
||||
# yesno_values have already been created, so use postgres enum object
|
||||
# type to get around "already created" issue - works okay with mysql
|
||||
yesno_values = ENUM(*YESNO_VALUES, name=YESNO_NAME, create_type=False)
|
||||
|
||||
op.add_column('ps_endpoints', sa.Column('bind_rtp_to_media_address', yesno_values))
|
||||
|
||||
|
||||
def downgrade():
|
||||
op.drop_column('ps_endpoints', 'bind_rtp_to_media_address')
|
Loading…
Reference in new issue