]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-3027
authorAnthony Minessale <anthm@freeswitch.org>
Thu, 3 Feb 2011 16:19:04 +0000 (10:19 -0600)
committerAnthony Minessale <anthm@freeswitch.org>
Thu, 3 Feb 2011 16:19:04 +0000 (10:19 -0600)
src/mod/endpoints/mod_sofia/sofia_glue.c

index dfd6a76974502fac9eff335669ab6e60a1b9f064..8b2f470980f8e11b714fbf7ec8f2f3559b616527 100644 (file)
@@ -4071,15 +4071,22 @@ uint8_t sofia_glue_negotiate_sdp(switch_core_session_t *session, const char *r_s
        greedy = !!sofia_test_pflag(tech_pvt->profile, PFLAG_GREEDY);
        scrooge = !!sofia_test_pflag(tech_pvt->profile, PFLAG_SCROOGE);
 
-       if (!greedy || !scrooge) {
-               if ((val = switch_channel_get_variable(channel, "sip_codec_negotiation"))) {
-                       if (!strcasecmp(val, "greedy")) {
-                               greedy = 1;
-                       } else if (!strcasecmp(val, "scrooge")) {
-                               scrooge = 1;
-                               greedy = 1;
-                       }
-               }
+       if ((val = switch_channel_get_variable(channel, "sip_codec_negotiation"))) {
+               if (!strcasecmp(val, "generous")) {
+                       greedy = 0;
+                       scrooge = 0;
+                       switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "sip_codec_negotiation overriding sofia inbound-codec-negotiation : generous\n" );
+               } else if (!strcasecmp(val, "greedy")) {
+                       greedy = 1;
+                       scrooge = 0;
+                       switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "sip_codec_negotiation overriding sofia inbound-codec-negotiation : greedy\n" );
+               } else if (!strcasecmp(val, "scrooge")) {
+                       scrooge = 1;
+                       greedy = 1;
+                       switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "sip_codec_negotiation overriding sofia inbound-codec-negotiation : scrooge\n" );
+               } else {
+                   switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "sip_codec_negotiation ignored invalid value : '%s' \n", val );    
+               }               
        }
 
        if ((tech_pvt->origin = switch_core_session_strdup(session, (char *) sdp->sdp_origin->o_username))) {