|
|
@ -17934,7 +17934,6 @@ static void handle_response_invite(struct sip_pvt *p, int resp, const char *rest
|
|
|
|
case 183: /* Session progress */
|
|
|
|
case 183: /* Session progress */
|
|
|
|
if (!req->ignore && (p->invitestate != INV_CANCELLED) && sip_cancel_destroy(p))
|
|
|
|
if (!req->ignore && (p->invitestate != INV_CANCELLED) && sip_cancel_destroy(p))
|
|
|
|
ast_log(LOG_WARNING, "Unable to cancel SIP destruction. Expect bad things.\n");
|
|
|
|
ast_log(LOG_WARNING, "Unable to cancel SIP destruction. Expect bad things.\n");
|
|
|
|
/* Ignore 183 Session progress without SDP */
|
|
|
|
|
|
|
|
if (!req->ignore && p->owner) {
|
|
|
|
if (!req->ignore && p->owner) {
|
|
|
|
if (get_rpid(p, req)) {
|
|
|
|
if (get_rpid(p, req)) {
|
|
|
|
/* Queue a connected line update */
|
|
|
|
/* Queue a connected line update */
|
|
|
@ -17954,6 +17953,18 @@ static void handle_response_invite(struct sip_pvt *p, int resp, const char *rest
|
|
|
|
/* Queue a progress frame */
|
|
|
|
/* Queue a progress frame */
|
|
|
|
ast_queue_control(p->owner, AST_CONTROL_PROGRESS);
|
|
|
|
ast_queue_control(p->owner, AST_CONTROL_PROGRESS);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
/* Alcatel PBXs are known to send 183s with no SDP after sending
|
|
|
|
|
|
|
|
* a 100 Trying response. We're just going to treat this sort of thing
|
|
|
|
|
|
|
|
* the same as we would treat a 180 Ringing
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
/*XXX I'm just following the same procedure for a 180 response, which
|
|
|
|
|
|
|
|
* doesn't change the invitestate of p. Shouldn't it be INV_PROCEEDING
|
|
|
|
|
|
|
|
* though?
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
if (!req->ignore && p->owner) {
|
|
|
|
|
|
|
|
ast_queue_control(p->owner, AST_CONTROL_RINGING);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
check_pendings(p);
|
|
|
|
check_pendings(p);
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|