Fix issue 83
This commit is contained in:
parent
9f3460aab5
commit
2fa21d2280
|
@ -544,7 +544,7 @@ int x0000_Connected_2_Connected_X_iINVITEorUPDATE(va_list *app)
|
|||
tsk_bool_t bodiless_invite;
|
||||
tmedia_type_t old_media_type = self->msession_mgr ? self->msession_mgr->type : tmedia_none;
|
||||
tmedia_type_t new_media_type;
|
||||
static tsk_bool_t force_sdp = tsk_true; // This is a hack: many client fail to handle 200 Ok without sdp after reINVITE (e.g. hold/resume)
|
||||
static tsk_bool_t force_sdp = tsk_true; // This is a hack: many clients fail to handle 200 Ok without sdp after reINVITE (e.g. hold/resume)
|
||||
|
||||
/* process remote offer */
|
||||
if((ret = tsip_dialog_invite_process_ro(self, rINVITEorUPDATE))){
|
||||
|
|
|
@ -239,7 +239,7 @@ int c0000_Outgoing_2_Outgoing_X_iINVITEorUPDATE(va_list *app)
|
|||
{
|
||||
tsip_dialog_invite_t *self = va_arg(*app, tsip_dialog_invite_t *);
|
||||
const tsip_request_t *rINVITEorUPDATE = va_arg(*app, const tsip_request_t *);
|
||||
|
||||
tsk_bool_t force_sdp;
|
||||
int ret = 0;
|
||||
|
||||
/* process remote offer */
|
||||
|
@ -249,8 +249,10 @@ int c0000_Outgoing_2_Outgoing_X_iINVITEorUPDATE(va_list *app)
|
|||
}
|
||||
|
||||
/* Send 200 OK */
|
||||
// force SDP in 200 OK even if the request has the same SDP version
|
||||
force_sdp = TSIP_MESSAGE_HAS_CONTENT(rINVITEorUPDATE);
|
||||
ret = send_RESPONSE(self, rINVITEorUPDATE, 200, "OK",
|
||||
(self->msession_mgr && (self->msession_mgr->ro_changed || self->msession_mgr->state_changed)));
|
||||
(self->msession_mgr && (force_sdp || self->msession_mgr->ro_changed || self->msession_mgr->state_changed)));
|
||||
|
||||
/* alert the user */
|
||||
TSIP_DIALOG_INVITE_SIGNAL(self, tsip_i_request,
|
||||
|
|
|
@ -459,7 +459,10 @@ int s0000_InProgress_2_InProgress_X_iUPDATE(va_list *app)
|
|||
return -4;
|
||||
}
|
||||
else{
|
||||
ret = send_RESPONSE(self, request, 200, "OK", tsk_false);
|
||||
// force SDP in 200 OK even if the request has the same SDP version
|
||||
tsk_bool_t force_sdp = TSIP_MESSAGE_HAS_CONTENT(request);
|
||||
ret = send_RESPONSE(self, request, 200, "OK",
|
||||
(self->msession_mgr && (force_sdp || self->msession_mgr->ro_changed || self->msession_mgr->state_changed)));
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
@ -472,6 +475,7 @@ int s0000_InProgress_2_Ringing_X_iUPDATE(va_list *app)
|
|||
|
||||
tsip_dialog_invite_t *self = va_arg(*app, tsip_dialog_invite_t *);
|
||||
tsip_request_t *request = va_arg(*app, tsip_request_t *);
|
||||
tsk_bool_t force_sdp;
|
||||
|
||||
if((ret = tsip_dialog_invite_process_ro(self, request))){
|
||||
/* Send Error and break the FSM */
|
||||
|
@ -480,7 +484,10 @@ int s0000_InProgress_2_Ringing_X_iUPDATE(va_list *app)
|
|||
}
|
||||
|
||||
/* Send 200 UPDATE */
|
||||
ret = send_RESPONSE(self, request, 200, "OK", tsk_false);
|
||||
// force SDP in 200 OK even if the request has the same SDP version
|
||||
force_sdp = TSIP_MESSAGE_HAS_CONTENT(request);
|
||||
ret = send_RESPONSE(self, request, 200, "OK",
|
||||
(self->msession_mgr && (force_sdp || self->msession_mgr->ro_changed || self->msession_mgr->state_changed)));
|
||||
|
||||
/* Send Ringing */
|
||||
ret = send_RESPONSE(self, self->last_iInvite, 180, "Ringing", tsk_false);
|
||||
|
|
Loading…
Reference in New Issue