|
|
@ -2790,7 +2790,7 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req)
|
|
|
|
ast_getformatname_multiple(s3, slen, p->noncodeccapability));
|
|
|
|
ast_getformatname_multiple(s3, slen, p->noncodeccapability));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (!p->jointcapability) {
|
|
|
|
if (!p->jointcapability) {
|
|
|
|
ast_log(LOG_WARNING, "No compatible codecs!\n");
|
|
|
|
ast_log(LOG_NOTICE, "No compatible codecs!\n");
|
|
|
|
return -1;
|
|
|
|
return -1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (p->owner) {
|
|
|
|
if (p->owner) {
|
|
|
@ -7778,12 +7778,20 @@ static int handle_request(struct sip_pvt *p, struct sip_request *req, struct soc
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
if (p && !ast_test_flag(p, SIP_NEEDDESTROY)) {
|
|
|
|
if (p && !ast_test_flag(p, SIP_NEEDDESTROY)) {
|
|
|
|
ast_log(LOG_NOTICE, "Unable to create/find channel\n");
|
|
|
|
if (!p->jointcapability) {
|
|
|
|
if (ignore)
|
|
|
|
if (ignore)
|
|
|
|
transmit_response(p, "503 Unavailable", req);
|
|
|
|
transmit_response(p, "488 Not Acceptable Here", req);
|
|
|
|
else
|
|
|
|
else
|
|
|
|
transmit_response_reliable(p, "503 Unavailable", req, 1);
|
|
|
|
transmit_response_reliable(p, "488 Not Acceptable Here", req, 1);
|
|
|
|
ast_set_flag(p, SIP_NEEDDESTROY);
|
|
|
|
ast_set_flag(p, SIP_NEEDDESTROY);
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
ast_log(LOG_NOTICE, "Unable to create/find channel\n");
|
|
|
|
|
|
|
|
if (ignore)
|
|
|
|
|
|
|
|
transmit_response(p, "503 Unavailable", req);
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
transmit_response_reliable(p, "503 Unavailable", req, 1);
|
|
|
|
|
|
|
|
ast_set_flag(p, SIP_NEEDDESTROY);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else if (!strcasecmp(cmd, "REFER")) {
|
|
|
|
} else if (!strcasecmp(cmd, "REFER")) {
|
|
|
|