]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-3973 --resolve we can go with this for now and ponder the other problem for later
authorAnthony Minessale <anthm@freeswitch.org>
Fri, 9 Mar 2012 17:43:37 +0000 (11:43 -0600)
committerAnthony Minessale <anthm@freeswitch.org>
Fri, 9 Mar 2012 17:43:37 +0000 (11:43 -0600)
src/mod/endpoints/mod_sofia/mod_sofia.c
src/switch_core_session.c
src/switch_ivr_originate.c

index 72cbccf544c184629e596be30ad8afb491b18dc2..3cac1a0fc2745e9e7aa9e854184ce5d96f03b564 100644 (file)
@@ -2034,7 +2034,7 @@ static switch_status_t sofia_receive_message(switch_core_session_t *session, swi
                        const char *uuid;
                        const char *call_id = NULL, *to_user = NULL, *to_host = NULL, *to_tag = NULL, *from_tag = NULL, *from_user = NULL, *from_host = NULL;
 
-                       if ((uuid = switch_channel_get_variable(channel, SWITCH_SIGNAL_BOND_VARIABLE))) {
+                       if ((uuid = switch_channel_get_variable(channel, SWITCH_SIGNAL_BOND_VARIABLE)) || (uuid = switch_channel_get_variable(channel, "originate_signal_bond"))) {
                                switch_core_session_t *rsession;
                                if ((rsession = switch_core_session_locate(uuid))) {
                                        switch_channel_t *rchannel = switch_core_session_get_channel(rsession);
index aaf986b1c868477aad2a365286c12e0b4e989655..f0941297b20e0de1f3fedf68bc8d6cdc6cddfc3c 100644 (file)
@@ -543,6 +543,8 @@ SWITCH_DECLARE(switch_call_cause_t) switch_core_session_outgoing_channel(switch_
 
                        switch_channel_set_variable(peer_channel, SWITCH_ORIGINATOR_VARIABLE, switch_core_session_get_uuid(session));
                        switch_channel_set_variable(peer_channel, SWITCH_SIGNAL_BOND_VARIABLE, switch_core_session_get_uuid(session));
+                       // Needed by 3PCC proxy so that aleg can find bleg to pass SDP to, when final ACK arrives.
+                       switch_channel_set_variable(channel, "originate_signal_bond", switch_core_session_get_uuid(*new_session));
 
                        if ((val = switch_channel_get_variable(channel, SWITCH_PROCESS_CDR_VARIABLE))) {
                                switch_channel_set_variable(peer_channel, SWITCH_PROCESS_CDR_VARIABLE, val);
index 654665630326205876c168483c882d92545616ec..6f5752641af5eb2e2202bb62d65ea179fe700910 100644 (file)
@@ -3518,6 +3518,8 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess
                        }
 
                        switch_channel_set_variable(caller_channel, SWITCH_SIGNAL_BOND_VARIABLE, switch_core_session_get_uuid(*bleg));
+                       // Now main SWITCH_SIGNAL_BOND_VARIABLE is populated, don't need this one anymore...
+                       switch_channel_set_variable(caller_channel, "originate_signal_bond", NULL);
                }