]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
blind guess on 3pcc support
authorAnthony Minessale <anthony.minessale@gmail.com>
Thu, 15 Mar 2007 18:46:16 +0000 (18:46 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Thu, 15 Mar 2007 18:46:16 +0000 (18:46 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4607 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/mod/endpoints/mod_sofia/mod_sofia.c

index 71d5ad353398877d53e572ccb883000f5b0f3061..ff0ec639f9b75bd576f74491b607d4f88e3c505a 100644 (file)
@@ -2969,6 +2969,7 @@ static void sip_i_state(int status,
                nua_ack(nh, TAG_END());
                break;
        case nua_callstate_received: 
+
                if (session && switch_core_session_running(session)) {
                        switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Re-Entering Call State Received!\n");
             goto done;
@@ -3039,6 +3040,19 @@ static void sip_i_state(int status,
                                        nua_respond(nh, SIP_488_NOT_ACCEPTABLE, 
                                                                TAG_END());
                                }
+                       } else {
+                               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "3PCC Invite\n");
+                               switch_channel_set_variable(channel, SWITCH_ENDPOINT_DISPOSITION_VARIABLE, "RECEIVED_3PCC");
+                               set_local_sdp(tech_pvt, NULL, 0, NULL, 0);
+
+                               nua_respond(tech_pvt->nh, SIP_200_OK, 
+                                                       SIPTAG_CONTACT_STR(tech_pvt->profile->url),
+                                                       SOATAG_USER_SDP_STR(tech_pvt->local_sdp_str),
+                                                       SOATAG_AUDIO_AUX("cn telephone-event"),
+                                                       NUTAG_INCLUDE_EXTRA_SDP(1),
+                                                       TAG_END());
+
+                               goto done;
                        }
                }