From 33cb10d6c5b65f86696c54613ab28e47c022d802 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Fri, 17 Feb 2012 09:57:56 -0600 Subject: [PATCH] FS-3915 --resolve --- src/mod/endpoints/mod_sofia/mod_sofia.c | 15 ++++++++++----- src/mod/endpoints/mod_sofia/sofia_glue.c | 13 ++++++++++--- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/src/mod/endpoints/mod_sofia/mod_sofia.c b/src/mod/endpoints/mod_sofia/mod_sofia.c index 0a49cc3730..a33b468819 100644 --- a/src/mod/endpoints/mod_sofia/mod_sofia.c +++ b/src/mod/endpoints/mod_sofia/mod_sofia.c @@ -1912,13 +1912,18 @@ static switch_status_t sofia_receive_message(switch_core_session_t *session, swi { switch_t38_options_t *t38_options = switch_channel_get_private(tech_pvt->channel, "t38_options"); - sofia_glue_set_image_sdp(tech_pvt, t38_options, msg->numeric_arg); + if (t38_options) { + sofia_glue_set_image_sdp(tech_pvt, t38_options, msg->numeric_arg); - if (!switch_channel_test_flag(channel, CF_PROXY_MEDIA)) { - switch_channel_set_flag(channel, CF_REQ_MEDIA); + if (!switch_channel_test_flag(channel, CF_PROXY_MEDIA)) { + switch_channel_set_flag(channel, CF_REQ_MEDIA); + } + sofia_set_flag_locked(tech_pvt, TFLAG_SENT_UPDATE); + sofia_glue_do_invite(session); + } else { + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_WARNING, "%s Request to send IMAGE on channel with not t38 options.\n", + switch_channel_get_name(channel)); } - sofia_set_flag_locked(tech_pvt, TFLAG_SENT_UPDATE); - sofia_glue_do_invite(session); } break; diff --git a/src/mod/endpoints/mod_sofia/sofia_glue.c b/src/mod/endpoints/mod_sofia/sofia_glue.c index 1e23e40ee3..3f754462e7 100644 --- a/src/mod/endpoints/mod_sofia/sofia_glue.c +++ b/src/mod/endpoints/mod_sofia/sofia_glue.c @@ -44,10 +44,10 @@ void sofia_glue_set_image_sdp(private_object_t *tech_pvt, switch_t38_options_t * char buf[2048] = ""; char max_buf[128] = ""; char max_data[128] = ""; - const char *ip = t38_options->local_ip; - uint32_t port = t38_options->local_port; + const char *ip; + uint32_t port; const char *family = "IP4"; - const char *username = tech_pvt->profile->username; + const char *username; const char *bit_removal_on = "a=T38FaxFillBitRemoval\n"; const char *bit_removal_off = ""; @@ -59,6 +59,13 @@ void sofia_glue_set_image_sdp(private_object_t *tech_pvt, switch_t38_options_t * const char *var; int broken_boolean; + switch_assert(tech_pvt); + switch_assert(t38_options); + + ip = t38_options->local_ip; + port = t38_options->local_port; + username = tech_pvt->profile->username; + //sofia_clear_flag(tech_pvt, TFLAG_ENABLE_SOA); var = switch_channel_get_variable(tech_pvt->channel, "t38_broken_boolean");