From d2944fef15cdac8dbac24d023b13713a2eea925e Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Tue, 10 Apr 2007 02:25:29 +0000 Subject: [PATCH] fix rpid on gateways git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4907 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/mod/endpoints/mod_sofia/mod_sofia.c | 2 +- src/mod/endpoints/mod_sofia/mod_sofia.h | 1 + src/mod/endpoints/mod_sofia/sofia_glue.c | 3 ++- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/mod/endpoints/mod_sofia/mod_sofia.c b/src/mod/endpoints/mod_sofia/mod_sofia.c index 10326be011..7fad7f1a72 100644 --- a/src/mod/endpoints/mod_sofia/mod_sofia.c +++ b/src/mod/endpoints/mod_sofia/mod_sofia.c @@ -882,7 +882,7 @@ static switch_call_cause_t sofia_outgoing_channel(switch_core_session_t *session } profile = gateway_ptr->profile; - tech_pvt->from_str = switch_core_session_strdup(nsession, gateway_ptr->register_from); + tech_pvt->gateway_from_str = switch_core_session_strdup(nsession, gateway_ptr->register_from); if (!strchr(dest, '@')) { tech_pvt->dest = switch_core_session_sprintf(nsession, "sip:%s@%s", dest, gateway_ptr->register_proxy + 4); } else { diff --git a/src/mod/endpoints/mod_sofia/mod_sofia.h b/src/mod/endpoints/mod_sofia/mod_sofia.h index fa841903a8..042d3a1f75 100644 --- a/src/mod/endpoints/mod_sofia/mod_sofia.h +++ b/src/mod/endpoints/mod_sofia/mod_sofia.h @@ -278,6 +278,7 @@ struct private_object { char *far_end_contact; char *contact_url; char *from_str; + char *gateway_from_str; char *rm_encoding; char *rm_fmtp; char *fmtp_out; diff --git a/src/mod/endpoints/mod_sofia/sofia_glue.c b/src/mod/endpoints/mod_sofia/sofia_glue.c index 49ef4ac3fc..ef5c8b3378 100644 --- a/src/mod/endpoints/mod_sofia/sofia_glue.c +++ b/src/mod/endpoints/mod_sofia/sofia_glue.c @@ -417,7 +417,8 @@ switch_status_t sofia_glue_do_invite(switch_core_session_t *session) tech_pvt->nh = nua_handle(tech_pvt->profile->nua, NULL, NUTAG_URL(url), SIPTAG_TO_STR(tech_pvt->dest_to), - SIPTAG_FROM_STR(tech_pvt->from_str), + TAG_IF(tech_pvt->gateway_from_str, SIPTAG_FROM_STR(tech_pvt->gateway_from_str)), + TAG_IF(!tech_pvt->gateway_from_str, SIPTAG_FROM_STR(tech_pvt->from_str)), TAG_IF(tech_pvt->invite_contact, SIPTAG_CONTACT_STR(tech_pvt->invite_contact)), TAG_IF(!tech_pvt->invite_contact, SIPTAG_CONTACT_STR(tech_pvt->profile->url)), TAG_END());