diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 184af347d3..a9692ade27 100755 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -2770,7 +2770,7 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req) ast_getformatname_multiple(s3, slen, p->noncodeccapability)); } if (!p->jointcapability) { - ast_log(LOG_WARNING, "No compatible codecs!\n"); + ast_log(LOG_NOTICE, "No compatible codecs!\n"); return -1; } if (p->owner) { @@ -7385,12 +7385,20 @@ static int handle_request(struct sip_pvt *p, struct sip_request *req, struct soc } } else { if (p && !p->needdestroy) { - 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); - p->needdestroy = 1; + if (!p->jointcapability) { + if (ignore) + transmit_response(p, "488 Not Acceptable Here", req); + else + transmit_response_reliable(p, "488 Not Acceptable Here", req, 1); + p->needdestroy = 1; + } 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); + p->needdestroy = 1; + } } } } else if (!strcasecmp(cmd, "REFER")) {