Be more consistent with the return code for requests received from invalid domain.

When Asterisk receives an INVITE from an external domain when allowexternaldomains=no
send a 403 instead of a 404. This is consistent with Asterisk's behavior when receiving
a REGISTER in this situation.

(Closes issue ASTERISK-19601)
Reported by Matthew Jordan
Patches:
	ASTERISK-19601-no401.patch uploaded by Mark Michelson (License #5049)
........

Merged revisions 369302 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

Merged revisions 369303 from http://svn.asterisk.org/svn/asterisk/branches/10


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@369304 65c4cc65-6c06-0410-ace0-fbb531ad65f3
certified/11.2
Mark Michelson 13 years ago
parent b78d79c203
commit 87810af23d

@ -23903,8 +23903,6 @@ static int handle_request_invite(struct sip_pvt *p, struct sip_request *req, int
*/ */
/* Fall through */ /* Fall through */
case SIP_GET_DEST_EXTEN_NOT_FOUND: case SIP_GET_DEST_EXTEN_NOT_FOUND:
case SIP_GET_DEST_REFUSED:
default:
{ {
char *decoded_exten = ast_strdupa(p->exten); char *decoded_exten = ast_strdupa(p->exten);
transmit_response_reliable(p, "404 Not Found", req); transmit_response_reliable(p, "404 Not Found", req);
@ -23913,6 +23911,10 @@ static int handle_request_invite(struct sip_pvt *p, struct sip_request *req, int
" '%s' rejected because extension not found in context '%s'.\n", " '%s' rejected because extension not found in context '%s'.\n",
S_OR(p->username, p->peername), ast_sockaddr_stringify(&p->recv), decoded_exten, p->context); S_OR(p->username, p->peername), ast_sockaddr_stringify(&p->recv), decoded_exten, p->context);
} }
break;
case SIP_GET_DEST_REFUSED:
default:
transmit_response_reliable(p, "403 Forbidden", req);
} /* end switch */ } /* end switch */
p->invitestate = INV_COMPLETED; p->invitestate = INV_COMPLETED;

Loading…
Cancel
Save