mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-25 22:18:07 +00:00
res_pjsip: Add "like" processing to pjsip list and show commands
Add the ability to filter output from pjsip list and show commands using the "like" predicate like chan_sip. For endpoints, aors, auths, registrations, identifyies and transports, the modification was a simple change of an ast_sorcery_retrieve_by_fields call to ast_sorcery_retrieve_by_regex. For channels and contacts a little more work had to be done because neither of those objects are true sorcery objects. That was just removing the non-matching object from the final container. Of course, a little extra plumbing in the common pjsip_cli code was needed to parse the "like" and pass the regex to the get_container callbacks. Some of the get_container code in res_pjsip_endpoint_identifier was also refactored for simplicity. ASTERISK-25477 #close Reported by: Bryant Zimmerman Tested by: George Joseph Change-Id: I646d9326b778aac26bb3e2bcd7fa1346d24434f1
This commit is contained in:
@@ -1639,11 +1639,12 @@ static int ami_show_outbound_registrations(struct mansession *s,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct ao2_container *cli_get_container(void)
|
||||
static struct ao2_container *cli_get_container(const char *regex)
|
||||
{
|
||||
RAII_VAR(struct ao2_container *, container, get_registrations(), ao2_cleanup);
|
||||
RAII_VAR(struct ao2_container *, container, NULL, ao2_cleanup);
|
||||
struct ao2_container *s_container;
|
||||
|
||||
container = ast_sorcery_retrieve_by_regex(ast_sip_get_sorcery(), "registration", regex);
|
||||
if (!container) {
|
||||
return NULL;
|
||||
}
|
||||
@@ -1747,12 +1748,14 @@ static struct ast_cli_entry cli_outbound_registration[] = {
|
||||
AST_CLI_DEFINE(cli_register, "Registers an outbound registration target"),
|
||||
AST_CLI_DEFINE(my_cli_traverse_objects, "List PJSIP Registrations",
|
||||
.command = "pjsip list registrations",
|
||||
.usage = "Usage: pjsip list registrations\n"
|
||||
" List the configured PJSIP Registrations\n"),
|
||||
.usage = "Usage: pjsip list registrations [ like <pattern> ]\n"
|
||||
" List the configured PJSIP Registrations\n"
|
||||
" Optional regular expression pattern is used to filter the list.\n"),
|
||||
AST_CLI_DEFINE(my_cli_traverse_objects, "Show PJSIP Registrations",
|
||||
.command = "pjsip show registrations",
|
||||
.usage = "Usage: pjsip show registrations\n"
|
||||
" Show the configured PJSIP Registrations\n"),
|
||||
.usage = "Usage: pjsip show registrations [ like <pattern> ]\n"
|
||||
" Show the configured PJSIP Registrations\n"
|
||||
" Optional regular expression pattern is used to filter the list.\n"),
|
||||
AST_CLI_DEFINE(my_cli_traverse_objects, "Show PJSIP Registration",
|
||||
.command = "pjsip show registration",
|
||||
.usage = "Usage: pjsip show registration <id>\n"
|
||||
|
||||
Reference in New Issue
Block a user