]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
have we seen the last of the Michael Myers Bug(tm)?
authorAnthony Minessale <anthony.minessale@gmail.com>
Thu, 21 Feb 2008 02:27:27 +0000 (02:27 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Thu, 21 Feb 2008 02:27:27 +0000 (02:27 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@7715 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/mod/endpoints/mod_sofia/sofia_glue.c
src/switch_ivr_originate.c

index 2c43d778addc08358f6df72da4ebddbd6c6fc43e..c0a716310ad67b8864e99c3e25d80c3091bb12f4 100644 (file)
@@ -1789,11 +1789,6 @@ uint8_t sofia_glue_negotiate_sdp(switch_core_session_t *session, sdp_session_t *
                                        }
                                }
                                
-                               if (!match && greedy) {
-                                       skip++;
-                                       continue;
-                               }
-
                                if (!match && near_match) {
                                        const switch_codec_implementation_t *search[1];
                                        char *prefs[1];
@@ -1816,6 +1811,11 @@ uint8_t sofia_glue_negotiate_sdp(switch_core_session_t *session, sdp_session_t *
                                        match = 1;
                                }
 
+                               if (!match && greedy) {
+                                       skip++;
+                                       continue;
+                               }
+
                                if (mimp) {
                                        char tmp[50];
                                        tech_pvt->rm_encoding = switch_core_session_strdup(session, (char *) map->rm_encoding);
index 1375c74a1592a9b650921c6a186646625fcd722d..84ec6a53f77c775cd85852aa4da4110c24da12fb 100644 (file)
@@ -1161,6 +1161,10 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess
                  done:
                        *cause = SWITCH_CAUSE_UNALLOCATED;
 
+                       if (caller_channel && !switch_channel_ready(caller_channel)) {
+                               status = SWITCH_STATUS_FALSE;
+                       }
+
                        if (status == SWITCH_STATUS_SUCCESS) {
                                if (caller_channel) {
                                        switch_channel_set_variable(caller_channel, "originate_disposition", "call accepted");