diff -Nru a/channels/chan_sip.c b/channels/chan_sip.c --- a/channels/chan_sip.c 2005-03-22 13:39:59 -07:00 +++ b/channels/chan_sip.c 2005-03-22 13:39:59 -07:00 @@ -8436,22 +8436,15 @@ ast_log(LOG_WARNING, "Don't know how to handle INVITE in state %d\n", c->_state); transmit_response(p, "100 Trying", req); } - } else { + } else if (!ignore) { if (p && !ast_test_flag(p, SIP_NEEDDESTROY)) { - if (!p->jointcapability) { - if (ignore) - transmit_response(p, "488 Not Acceptable Here (codec error)", req); - else - transmit_response_reliable(p, "488 Not Acceptable Here (codec error)", req, 1); - ast_set_flag(p, SIP_NEEDDESTROY); - } else { + if (!p->jointcapability) + transmit_response_reliable(p, "488 Not Acceptable Here (codec error)", req, 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); - ast_set_flag(p, SIP_NEEDDESTROY); + transmit_response_reliable(p, "503 Unavailable", req, 1); } + ast_set_flag(p, SIP_NEEDDESTROY); } } return res;