res_pjsip/pjsip_options: Do not 404 an OPTIONS request not sent to an endpoint

An OPTIONS request that is sent to Asterisk but not to a specific endpoint is
currently sent a 404 in response. This is because, not surprisingly, an empty
extension is never going to be found in the dialplan.

This patch makes it so that we only attempt to look up the endpoint in the
dialplan if it is specified in the OPTIONS request URI.

#SIPit31

ASTERISK-24370 #close
Reported by: Matt Jordan
........

Merged revisions 424624 from http://svn.asterisk.org/svn/asterisk/branches/12


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@424625 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Matthew Jordan
2014-10-06 00:59:43 +00:00
parent 57233a97e8
commit 4f28ae4f51

View File

@@ -641,7 +641,7 @@ static pj_bool_t options_on_rx_request(pjsip_rx_data *rdata)
if (ast_shutting_down()) { if (ast_shutting_down()) {
send_options_response(rdata, 503); send_options_response(rdata, 503);
} else if (!ast_exists_extension(NULL, endpoint->context, exten, 1, NULL)) { } else if (!ast_strlen_zero(exten) && !ast_exists_extension(NULL, endpoint->context, exten, 1, NULL)) {
send_options_response(rdata, 404); send_options_response(rdata, 404);
} else { } else {
send_options_response(rdata, 200); send_options_response(rdata, 200);