mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-04-14 16:15:04 +00:00
can't pull patches one at a time because they don't compile
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@7760 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
parent
afc156463d
commit
4c8fdb86de
@ -1854,9 +1854,8 @@ nua_invite_server_init(nua_server_request_t *sr)
|
|||||||
nua_client_request_t const *cr;
|
nua_client_request_t const *cr;
|
||||||
|
|
||||||
for (sr0 = nh->nh_ds->ds_sr; sr0; sr0 = sr0->sr_next) {
|
for (sr0 = nh->nh_ds->ds_sr; sr0; sr0 = sr0->sr_next) {
|
||||||
/* Final response have not been sent to previous INVITE */
|
/* Previous INVITE has not been ACKed */
|
||||||
if (sr0->sr_method == sip_method_invite &&
|
if (sr0->sr_method == sip_method_invite)
|
||||||
nua_server_request_is_pending(sr0))
|
|
||||||
break;
|
break;
|
||||||
/* Or we have sent offer but have not received an answer */
|
/* Or we have sent offer but have not received an answer */
|
||||||
if (sr->sr_sdp && sr0->sr_offer_sent && !sr0->sr_answer_recv)
|
if (sr->sr_sdp && sr0->sr_offer_sent && !sr0->sr_answer_recv)
|
||||||
@ -1879,10 +1878,8 @@ nua_invite_server_init(nua_server_request_t *sr)
|
|||||||
|
|
||||||
ss = nua_dialog_usage_private(sr->sr_usage);
|
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) {
|
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);
|
return nua_server_retry_after(sr, 500, "Overlapping Requests 2", 0, 10);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1917,7 +1914,7 @@ nua_session_server_init(nua_server_request_t *sr)
|
|||||||
else if (sr->sr_usage) {
|
else if (sr->sr_usage) {
|
||||||
nua_session_usage_t *ss = nua_dialog_usage_private(sr->sr_usage);
|
nua_session_usage_t *ss = nua_dialog_usage_private(sr->sr_usage);
|
||||||
if (ss->ss_state >= nua_callstate_terminating)
|
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) {
|
if (nh->nh_soa) {
|
||||||
|
@ -293,7 +293,8 @@ int nua_stack_event(nua_t *nua, nua_handle_t *nh, msg_t *msg,
|
|||||||
if ((event > nua_r_authenticate && event <= nua_r_ack)
|
if ((event > nua_r_authenticate && event <= nua_r_ack)
|
||||||
|| event < nua_i_error
|
|| event < nua_i_error
|
||||||
|| (nh && !nh->nh_valid)
|
|| (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)
|
if (msg)
|
||||||
msg_destroy(msg);
|
msg_destroy(msg);
|
||||||
return event;
|
return event;
|
||||||
|
@ -507,7 +507,6 @@ SOFIAPUBVAR tag_typedef_t nutag_newsub;
|
|||||||
#define NUTAG_NEWSUB_REF(x) nutag_newsub_ref, tag_bool_vr(&(x))
|
#define NUTAG_NEWSUB_REF(x) nutag_newsub_ref, tag_bool_vr(&(x))
|
||||||
SOFIAPUBVAR tag_typedef_t nutag_newsub_ref;
|
SOFIAPUBVAR tag_typedef_t nutag_newsub_ref;
|
||||||
|
|
||||||
|
|
||||||
#define NUTAG_REFER_EXPIRES(x) nutag_refer_expires, tag_uint_v((x))
|
#define NUTAG_REFER_EXPIRES(x) nutag_refer_expires, tag_uint_v((x))
|
||||||
SOFIAPUBVAR tag_typedef_t nutag_refer_expires;
|
SOFIAPUBVAR tag_typedef_t nutag_refer_expires;
|
||||||
#define NUTAG_REFER_EXPIRES_REF(x) nutag_refer_expires_ref, tag_uint_vr((&(x)))
|
#define NUTAG_REFER_EXPIRES_REF(x) nutag_refer_expires_ref, tag_uint_vr((&(x)))
|
||||||
|
@ -1433,6 +1433,9 @@ int test_bye_with_407(struct context *ctx)
|
|||||||
a_call->sdp = "m=audio 5008 RTP/AVP 8";
|
a_call->sdp = "m=audio 5008 RTP/AVP 8";
|
||||||
c_call->sdp = "m=audio 5010 RTP/AVP 0 8";
|
c_call->sdp = "m=audio 5010 RTP/AVP 0 8";
|
||||||
|
|
||||||
|
if (!ctx->proxy_tests)
|
||||||
|
return 0;
|
||||||
|
|
||||||
/* BYE after receiving 401
|
/* BYE after receiving 401
|
||||||
|
|
||||||
A C
|
A C
|
||||||
|
@ -178,7 +178,10 @@ struct context
|
|||||||
unsigned bit4:1, bit5:1, bit6:1, bit7:1;
|
unsigned bit4:1, bit5:1, bit6:1, bit7:1;
|
||||||
unsigned :0;
|
unsigned :0;
|
||||||
} flags;
|
} flags;
|
||||||
|
/* Accross-run state information */
|
||||||
|
struct {
|
||||||
|
unsigned n;
|
||||||
|
} state;
|
||||||
} a, b, c;
|
} a, b, c;
|
||||||
|
|
||||||
struct proxy *p;
|
struct proxy *p;
|
||||||
|
@ -182,6 +182,12 @@ void print_event(nua_event_t event,
|
|||||||
ep->name, (void *)nh, nua_event_name(event), phrase,
|
ep->name, (void *)nh, nua_event_name(event), phrase,
|
||||||
nua_substate_name(t ? t->t_value : 0));
|
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) {
|
else if ((int)event >= 0) {
|
||||||
fprintf(stderr, "%s %s.nua(%p): event %s %s\n", timestamp,
|
fprintf(stderr, "%s %s.nua(%p): event %s %s\n", timestamp,
|
||||||
ep->name, (void *)nh, nua_event_name(event), phrase);
|
ep->name, (void *)nh, nua_event_name(event), phrase);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user