提交 40d2b10a authored 作者: Anthony Minessale's avatar Anthony Minessale

refactor

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@8831 d0543943-73ff-0310-b7d9-9358b9ac24b2
上级 f1b9b6dc
...@@ -1696,6 +1696,12 @@ static void sofia_handle_sip_i_state(switch_core_session_t *session, int status, ...@@ -1696,6 +1696,12 @@ static void sofia_handle_sip_i_state(switch_core_session_t *session, int status,
NUTAG_ANSWER_SENT_REF(answer_sent), NUTAG_ANSWER_SENT_REF(answer_sent),
SIPTAG_REPLACES_STR_REF(replaces_str), SOATAG_LOCAL_SDP_STR_REF(l_sdp), SOATAG_REMOTE_SDP_STR_REF(r_sdp), TAG_END()); SIPTAG_REPLACES_STR_REF(replaces_str), SOATAG_LOCAL_SDP_STR_REF(l_sdp), SOATAG_REMOTE_SDP_STR_REF(r_sdp), TAG_END());
if (ss_state == nua_callstate_terminated) {
if (sofia_private) {
sofia_private->destroy_me = 1;
}
}
if (session) { if (session) {
channel = switch_core_session_get_channel(session); channel = switch_core_session_get_channel(session);
tech_pvt = switch_core_session_get_private(session); tech_pvt = switch_core_session_get_private(session);
...@@ -2123,16 +2129,10 @@ static void sofia_handle_sip_i_state(switch_core_session_t *session, int status, ...@@ -2123,16 +2129,10 @@ static void sofia_handle_sip_i_state(switch_core_session_t *session, int status,
} }
if (tech_pvt->sofia_private) { if (tech_pvt->sofia_private) {
sofia_private = tech_pvt->sofia_private;
tech_pvt->sofia_private = NULL; tech_pvt->sofia_private = NULL;
sofia_private->destroy_me = 1;
} }
tech_pvt->nh = NULL; tech_pvt->nh = NULL;
} else if (sofia_private) {
sofia_private->destroy_me = 1;
} }
if (nh) { if (nh) {
...@@ -3105,6 +3105,7 @@ void sofia_handle_sip_i_invite(nua_t *nua, sofia_profile_t *profile, nua_handle_ ...@@ -3105,6 +3105,7 @@ void sofia_handle_sip_i_invite(nua_t *nua, sofia_profile_t *profile, nua_handle_
if (!(sofia_private = malloc(sizeof(*sofia_private)))) { if (!(sofia_private = malloc(sizeof(*sofia_private)))) {
abort(); abort();
} }
memset(sofia_private, 0, sizeof(*sofia_private)); memset(sofia_private, 0, sizeof(*sofia_private));
tech_pvt->sofia_private = sofia_private; tech_pvt->sofia_private = sofia_private;
...@@ -3192,7 +3193,7 @@ void sofia_handle_sip_i_invite(nua_t *nua, sofia_profile_t *profile, nua_handle_ ...@@ -3192,7 +3193,7 @@ void sofia_handle_sip_i_invite(nua_t *nua, sofia_profile_t *profile, nua_handle_
} }
nua_handle_bind(nh, NULL); nua_handle_bind(nh, NULL);
free(tech_pvt->sofia_private); free(sofia_private);
switch_core_session_destroy(&session); switch_core_session_destroy(&session);
nua_respond(nh, 503, "Maximum Calls In Progress", SIPTAG_RETRY_AFTER_STR("300"), TAG_END()); nua_respond(nh, 503, "Maximum Calls In Progress", SIPTAG_RETRY_AFTER_STR("300"), TAG_END());
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论