mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-02 03:48:02 +00:00
res_pjsip: Backport missing commits for user_eq_phone
This backports the following from trunk, which were missed: r427257 | file | 2014-11-04 16:31:16 -0600 (Tue, 04 Nov 2014) | 2 lines res_pjsip: Allow + at the beginning of a phone number when user_eq_phone is enabled. r427259 | file | 2014-11-04 16:51:32 -0600 (Tue, 04 Nov 2014) | 2 lines res_pjsip: Apply the 'user_eq_phone' setting to the To header as well. It also adds the Alembic script for the option. ASTERISK-24643 git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430092 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -0,0 +1,30 @@
|
|||||||
|
"""add user_eq_phone option to pjsip
|
||||||
|
|
||||||
|
Revision ID: 371a3bf4143e
|
||||||
|
Revises: 10aedae86a32
|
||||||
|
Create Date: 2014-10-13 13:46:24.474675
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
# revision identifiers, used by Alembic.
|
||||||
|
revision = '371a3bf4143e'
|
||||||
|
down_revision = '10aedae86a32'
|
||||||
|
|
||||||
|
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('user_eq_phone', yesno_values))
|
||||||
|
|
||||||
|
def downgrade():
|
||||||
|
op.drop_column('ps_endpoints', 'user_eq_phone')
|
||||||
@@ -2155,6 +2155,10 @@ void ast_sip_add_usereqphone(const struct ast_sip_endpoint *endpoint, pj_pool_t
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (pj_strbuf(&sip_uri->user)[0] == '+') {
|
||||||
|
i = 1;
|
||||||
|
}
|
||||||
|
|
||||||
/* Test URI user against allowed characters in AST_DIGIT_ANY */
|
/* Test URI user against allowed characters in AST_DIGIT_ANY */
|
||||||
for (; i < pj_strlen(&sip_uri->user); i++) {
|
for (; i < pj_strlen(&sip_uri->user); i++) {
|
||||||
if (!strchr(AST_DIGIT_ANYNUM, pj_strbuf(&sip_uri->user)[i])) {
|
if (!strchr(AST_DIGIT_ANYNUM, pj_strbuf(&sip_uri->user)[i])) {
|
||||||
@@ -2221,6 +2225,7 @@ pjsip_dialog *ast_sip_create_dialog_uac(const struct ast_sip_endpoint *endpoint,
|
|||||||
|
|
||||||
/* Add the user=phone parameter if applicable */
|
/* Add the user=phone parameter if applicable */
|
||||||
ast_sip_add_usereqphone(endpoint, dlg->pool, dlg->target);
|
ast_sip_add_usereqphone(endpoint, dlg->pool, dlg->target);
|
||||||
|
ast_sip_add_usereqphone(endpoint, dlg->pool, dlg->remote.info->uri);
|
||||||
|
|
||||||
/* We have to temporarily bump up the sess_count here so the dialog is not prematurely destroyed */
|
/* We have to temporarily bump up the sess_count here so the dialog is not prematurely destroyed */
|
||||||
dlg->sess_count++;
|
dlg->sess_count++;
|
||||||
|
|||||||
Reference in New Issue
Block a user