[Freeswitch-svn] [commit] r7760 - in freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua: . sofia-sip
Author: mikej Date: Wed Feb 27 16:58:17 2008 New Revision: 7760 Modified: freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/nua_session.c freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/nua_stack.c freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/sofia-sip/nua_tag.h freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/test_cancel_bye.c freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/test_nua.h freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/test_ops.c Log: can't pull patches one at a time because they don't compile Modified: freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/nua_session.c ============================================================================== --- freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/nua_session.c (original) +++ freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/nua_session.c Wed Feb 27 16:58:17 2008 @@ -1854,9 +1854,8 @@ nua_client_request_t const *cr; for (sr0 = nh->nh_ds->ds_sr; sr0; sr0 = sr0->sr_next) { - /* Final response have not been sent to previous INVITE */ - if (sr0->sr_method == sip_method_invite && - nua_server_request_is_pending(sr0)) + /* Previous INVITE has not been ACKed */ + if (sr0->sr_method == sip_method_invite) break; /* Or we have sent offer but have not received an answer */ if (sr->sr_sdp && sr0->sr_offer_sent && !sr0->sr_answer_recv) @@ -1879,10 +1878,8 @@ ss = nua_dialog_usage_private(sr->sr_usage); - if (ss->ss_state < nua_callstate_completed && + if (ss->ss_state < nua_callstate_ready && ss->ss_state != nua_callstate_init) { - /* We should never trigger this, - but better not to assert() on network input */ return nua_server_retry_after(sr, 500, "Overlapping Requests 2", 0, 10); } } @@ -1917,7 +1914,7 @@ else if (sr->sr_usage) { nua_session_usage_t *ss = nua_dialog_usage_private(sr->sr_usage); if (ss->ss_state >= nua_callstate_terminating) - return SR_STATUS1(sr, 481, "Call is being terminated"); + return SR_STATUS(sr, 481, "Call is being terminated"); } if (nh->nh_soa) { Modified: freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/nua_stack.c ============================================================================== --- freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/nua_stack.c (original) +++ freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/nua_stack.c Wed Feb 27 16:58:17 2008 @@ -293,7 +293,8 @@ if ((event > nua_r_authenticate && event <= nua_r_ack) || event < nua_i_error || (nh && !nh->nh_valid) - || (nua->nua_shutdown && event != nua_r_shutdown)) { + || (nua->nua_shutdown && event != nua_r_shutdown && + !nua->nua_prefs->ngp_shutdown_events)) { if (msg) msg_destroy(msg); return event; Modified: freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/sofia-sip/nua_tag.h ============================================================================== --- freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/sofia-sip/nua_tag.h (original) +++ freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/sofia-sip/nua_tag.h Wed Feb 27 16:58:17 2008 @@ -507,7 +507,6 @@ #define NUTAG_NEWSUB_REF(x) nutag_newsub_ref, tag_bool_vr(&(x)) SOFIAPUBVAR tag_typedef_t nutag_newsub_ref; - #define NUTAG_REFER_EXPIRES(x) nutag_refer_expires, tag_uint_v((x)) SOFIAPUBVAR tag_typedef_t nutag_refer_expires; #define NUTAG_REFER_EXPIRES_REF(x) nutag_refer_expires_ref, tag_uint_vr((&(x))) Modified: freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/test_cancel_bye.c ============================================================================== --- freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/test_cancel_bye.c (original) +++ freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/test_cancel_bye.c Wed Feb 27 16:58:17 2008 @@ -1433,6 +1433,9 @@ a_call->sdp = "m=audio 5008 RTP/AVP 8"; c_call->sdp = "m=audio 5010 RTP/AVP 0 8"; + if (!ctx->proxy_tests) + return 0; + /* BYE after receiving 401 A C Modified: freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/test_nua.h ============================================================================== --- freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/test_nua.h (original) +++ freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/test_nua.h Wed Feb 27 16:58:17 2008 @@ -178,7 +178,10 @@ unsigned bit4:1, bit5:1, bit6:1, bit7:1; unsigned :0; } flags; - + /* Accross-run state information */ + struct { + unsigned n; + } state; } a, b, c; struct proxy *p; Modified: freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/test_ops.c ============================================================================== --- freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/test_ops.c (original) +++ freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/test_ops.c Wed Feb 27 16:58:17 2008 @@ -182,6 +182,12 @@ ep->name, (void *)nh, nua_event_name(event), phrase, nua_substate_name(t ? t->t_value : 0)); } + else if ((int)event >= nua_i_bye || + event == nua_i_invite || event == nua_i_cancel || + event == nua_i_ack) { + fprintf(stderr, "%s %s.nua(%p): event %s %03d %s\n", timestamp, + ep->name, (void *)nh, nua_event_name(event), status, phrase); + } else if ((int)event >= 0) { fprintf(stderr, "%s %s.nua(%p): event %s %s\n", timestamp, ep->name, (void *)nh, nua_event_name(event), phrase);
participants (1)
-
Freeswitch SVN