]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
udpate
authorAnthony Minessale <anthony.minessale@gmail.com>
Thu, 12 Oct 2006 02:26:20 +0000 (02:26 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Thu, 12 Oct 2006 02:26:20 +0000 (02:26 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3037 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/mod/endpoints/mod_sofia/mod_sofia.c

index 7ed814e6dd52bc1f54c98cb2b69ec978a324a7c3..dd0da2a7b36f625565a02b35831dee50446daf54 100644 (file)
@@ -2281,13 +2281,15 @@ static void sip_i_state(int status,
                break;
        case nua_callstate_terminated: 
                if (session) {
-                       switch_set_flag_locked(tech_pvt, TFLAG_BYE);
-                       if (switch_test_flag(tech_pvt, TFLAG_NOHUP)) {
-                               switch_clear_flag_locked(tech_pvt, TFLAG_NOHUP);
-                               nua_handle_destroy(tech_pvt->nh);
-                               tech_pvt->nh = NULL;
-                       } else {
-                               terminate_session(&session, sip_cause_to_freeswitch(status), __LINE__);
+                       if (!switch_test_flag(tech_pvt, TFLAG_BYE)) {
+                               switch_set_flag_locked(tech_pvt, TFLAG_BYE);
+                               if (switch_test_flag(tech_pvt, TFLAG_NOHUP)) {
+                                       switch_clear_flag_locked(tech_pvt, TFLAG_NOHUP);
+                                       nua_handle_destroy(tech_pvt->nh);
+                                       tech_pvt->nh = NULL;
+                               } else {
+                                       terminate_session(&session, sip_cause_to_freeswitch(status), __LINE__);
+                               }
                        }
                }
                break;