Asterisk - The Open Source Telephony Project  21.4.1
Functions | Variables
cli_commands.c File Reference

PJSIP channel CLI functions. More...

#include "asterisk.h"
#include <pjsip.h>
#include <pjlib.h>
#include <pjsip_ua.h>
#include "asterisk/astobj2.h"
#include "asterisk/channel.h"
#include "asterisk/format.h"
#include "asterisk/res_pjsip.h"
#include "asterisk/res_pjsip_session.h"
#include "asterisk/res_pjsip_cli.h"
#include "asterisk/stasis.h"
#include "asterisk/time.h"
#include "include/chan_pjsip.h"
#include "include/cli_functions.h"

Go to the source code of this file.

Functions

static int cli_channel_compare (void *obj, void *arg, int flags)
 
static struct ao2_containercli_channel_get_container (const char *regex)
 
static const char * cli_channel_get_id (const void *obj)
 
static int cli_channel_iterate (void *endpoint, ao2_callback_fn callback, void *arg)
 
static int cli_channel_print_body (void *obj, void *arg, int flags)
 
static int cli_channel_print_header (void *obj, void *arg, int flags)
 
static void * cli_channel_retrieve_by_id (const char *id)
 
static int cli_channel_sort (const void *obj, const void *arg, int flags)
 
static int cli_channelstats_compare (void *obj, void *arg, int flags)
 
static struct ao2_containercli_channelstats_get_container (const char *regex)
 
static int cli_channelstats_iterate (void *endpoint, ao2_callback_fn callback, void *arg)
 
static int cli_channelstats_print_body (void *obj, void *arg, int flags)
 
static int cli_channelstats_print_header (void *obj, void *arg, int flags)
 
static int cli_channelstats_sort (const void *obj, const void *arg, int flags)
 
static int cli_filter_channels (void *obj, void *arg, int flags)
 
static int cli_message_to_snapshot (void *obj, void *arg, int flags)
 
static struct ao2_containerget_container (const char *regex, ao2_sort_fn sort_fn, ao2_callback_fn compare_fn)
 
int pjsip_channel_cli_register (void)
 Registers the channel cli commands. More...
 
void pjsip_channel_cli_unregister (void)
 Unregisters the channel cli commands. More...
 

Variables

struct ast_sip_cli_formatter_entrychannel_formatter
 
struct ast_sip_cli_formatter_entrychannelstats_formatter
 
static struct ast_cli_entry cli_commands []
 

Detailed Description

PJSIP channel CLI functions.

Author
George Joseph <george.joseph@fairview5.com> 

Definition in file cli_commands.c.

Function Documentation

int pjsip_channel_cli_register ( void  )

Registers the channel cli commands.

Since
13.9.0
Return values
0on success
-1on failure

Definition at line 462 of file cli_commands.c.

References ao2_ref, ast_cli_register_multiple, ast_sip_cli_formatter_entry::get_container, ast_sip_cli_formatter_entry::get_id, ast_sip_cli_formatter_entry::iterate, ast_sip_cli_formatter_entry::name, ast_sip_cli_formatter_entry::print_body, ast_sip_cli_formatter_entry::print_header, and ast_sip_cli_formatter_entry::retrieve_by_id.

Referenced by load_module().

463 {
464  channel_formatter = ao2_alloc(sizeof(struct ast_sip_cli_formatter_entry), NULL);
465  if (!channel_formatter) {
466  ast_log(LOG_ERROR, "Unable to allocate memory for channel_formatter\n");
467  return -1;
468  }
469  channel_formatter->name = "channel";
470  channel_formatter->print_header = cli_channel_print_header;
471  channel_formatter->print_body = cli_channel_print_body;
472  channel_formatter->get_container = cli_channel_get_container;
473  channel_formatter->iterate = cli_channel_iterate;
474  channel_formatter->retrieve_by_id = cli_channel_retrieve_by_id;
475  channel_formatter->get_id = cli_channel_get_id;
476 
477  channelstats_formatter = ao2_alloc(sizeof(struct ast_sip_cli_formatter_entry), NULL);
478  if (!channelstats_formatter) {
479  ao2_ref(channel_formatter, -1);
480  ast_log(LOG_ERROR, "Unable to allocate memory for channelstats_formatter\n");
481  return -1;
482  }
483  channelstats_formatter->name = "channelstat";
484  channelstats_formatter->print_header = cli_channelstats_print_header;
485  channelstats_formatter->print_body = cli_channelstats_print_body;
486  channelstats_formatter->get_container = cli_channelstats_get_container;
487  channelstats_formatter->iterate = cli_channelstats_iterate;
488  channelstats_formatter->retrieve_by_id = cli_channel_retrieve_by_id;
489  channelstats_formatter->get_id = cli_channel_get_id;
490 
491  ast_sip_register_cli_formatter(channel_formatter);
492  ast_sip_register_cli_formatter(channelstats_formatter);
493  ast_cli_register_multiple(cli_commands, ARRAY_LEN(cli_commands));
494 
495  return 0;
496 }
struct ao2_container *(* get_container)(const char *regex)
Definition: res_pjsip_cli.h:64
CLI Formatter Registry Entry.
Definition: res_pjsip_cli.h:52
int(* iterate)(void *container, ao2_callback_fn callback, void *args)
Definition: res_pjsip_cli.h:66
#define ast_cli_register_multiple(e, len)
Register multiple commands.
Definition: cli.h:265
#define ao2_ref(o, delta)
Reference/unreference an object and return the old refcount.
Definition: astobj2.h:459
void *(* retrieve_by_id)(const char *id)
Definition: res_pjsip_cli.h:68
const char *(* get_id)(const void *obj)
Definition: res_pjsip_cli.h:70
ao2_callback_fn * print_header
Definition: res_pjsip_cli.h:60
ao2_callback_fn * print_body
Definition: res_pjsip_cli.h:62
const char * name
Definition: res_pjsip_cli.h:58
void pjsip_channel_cli_unregister ( void  )

Unregisters the channel cli commands.

Since
13.9.0

Definition at line 498 of file cli_commands.c.

References ast_cli_unregister_multiple().

Referenced by unload_module().

499 {
500  ast_cli_unregister_multiple(cli_commands, ARRAY_LEN(cli_commands));
501  ast_sip_unregister_cli_formatter(channel_formatter);
502  ast_sip_unregister_cli_formatter(channelstats_formatter);
503 }
int ast_cli_unregister_multiple(struct ast_cli_entry *e, int len)
Unregister multiple commands.
Definition: clicompat.c:30