res_pjsip_endpoint_identifier_ip: Endpoint identifier request URI

Add ability to match against PJSIP request URI.

UserNote: this new feature let users match endpoints based on the
indound SIP requests' URI. To do so, add 'request_uri' to the
endpoint's 'identify_by' option. The 'match_request_uri' option of
the identify can be an exact match for the entire request uri, or a
regular expression (between slashes). It's quite similar to the
header identifer.

Fixes: #599
This commit is contained in:
Sperl Viktor
2024-03-28 14:20:26 +01:00
parent 4e244528b3
commit 136bd5c892
6 changed files with 152 additions and 12 deletions

View File

@@ -423,6 +423,9 @@ static const char *sip_endpoint_identifier_type2str(enum ast_sip_endpoint_identi
case AST_SIP_ENDPOINT_IDENTIFY_BY_HEADER:
str = "header";
break;
case AST_SIP_ENDPOINT_IDENTIFY_BY_REQUEST_URI:
str = "request_uri";
break;
}
return str;
}
@@ -448,6 +451,8 @@ static int sip_endpoint_identifier_str2type(const char *str)
method = AST_SIP_ENDPOINT_IDENTIFY_BY_IP;
} else if (!strcasecmp(str, "header")) {
method = AST_SIP_ENDPOINT_IDENTIFY_BY_HEADER;
} else if (!strcasecmp(str, "request_uri")) {
method = AST_SIP_ENDPOINT_IDENTIFY_BY_REQUEST_URI;
} else {
method = -1;
}