Merged revisions 208262 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r208262 | mmichelson | 2009-07-23 10:43:07 -0500 (Thu, 23 Jul 2009) | 8 lines Properly handle 183 responses which do not contain an SDP. (closes issue #15442) Reported by: ffloimair Patches: 15442.patch uploaded by mmichelson (license 60) Tested by: tkarl, ffloimair ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@208263 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
parent
3843480b8f
commit
98b4bdc1b9
|
@ -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;
|
||||||
|
|
Loading…
Reference in New Issue