From fa146f6d7687b0df108a0198e97f539f9c1351f4 Mon Sep 17 00:00:00 2001 From: markster Date: Mon, 10 Jan 2005 19:58:35 +0000 Subject: [PATCH] Send "not compatible here" instead of "unavailable" on codec mismatch (bug #3306) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@4749 f38db490-d61c-443f-a65b-d21fe96a405b --- channels/chan_sip.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 62b5c509e..d2ed0ddeb 100755 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -2790,7 +2790,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) { @@ -7778,12 +7778,20 @@ static int handle_request(struct sip_pvt *p, struct sip_request *req, struct soc } } else { if (p && !ast_test_flag(p, SIP_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); - ast_set_flag(p, SIP_NEEDDESTROY); + if (!p->jointcapability) { + if (ignore) + transmit_response(p, "488 Not Acceptable Here", req); + else + transmit_response_reliable(p, "488 Not Acceptable Here", req, 1); + 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")) {