SNMP Agent / SubAgent support for Asterisk. More...
#include "asterisk.h"#include <net-snmp/net-snmp-config.h>#include <net-snmp/net-snmp-includes.h>#include <net-snmp/agent/net-snmp-agent-includes.h>#include "asterisk/paths.h"#include "asterisk/channel.h"#include "asterisk/logger.h"#include "asterisk/options.h"#include "asterisk/indications.h"#include "asterisk/ast_version.h"#include "asterisk/pbx.h"#include "asterisk/module.h"#include "agent.h"
Go to the source code of this file.
Defines | |
| #define | ASTCHANACCOUNTCODE 18 |
| #define | ASTCHANADSI 36 |
| #define | ASTCHANAMAFLAGS 35 |
| #define | ASTCHANAPP 10 |
| #define | ASTCHANBRIDGE 6 |
| #define | ASTCHANBRIDGECOUNT 1 |
| #define | ASTCHANCALLGROUP 21 |
| #define | ASTCHANCIDANI 29 |
| #define | ASTCHANCIDANI2 32 |
| #define | ASTCHANCIDDNID 26 |
| #define | ASTCHANCIDNAME 28 |
| #define | ASTCHANCIDNUM 27 |
| #define | ASTCHANCIDPRES 31 |
| #define | ASTCHANCIDRDNIS 30 |
| #define | ASTCHANCIDTNS 34 |
| #define | ASTCHANCIDTON 33 |
| #define | ASTCHANCONTEXT 12 |
| #define | ASTCHANCOUNT 1 |
| #define | ASTCHANDATA 11 |
| #define | ASTCHANEXTEN 16 |
| #define | ASTCHANFLAGS 40 |
| #define | ASTCHANFORWARDTO 19 |
| #define | ASTCHANHANGUPCAUSE 38 |
| #define | ASTCHANINDEX 1 |
| #define | ASTCHANLANGUAGE 3 |
| #define | ASTCHANMACROCONTEXT 13 |
| #define | ASTCHANMACROEXTEN 14 |
| #define | ASTCHANMACROPRI 15 |
| #define | ASTCHANMASQ 7 |
| #define | ASTCHANMASQR 8 |
| #define | ASTCHANMUSICCLASS 5 |
| #define | ASTCHANMUTED 24 |
| #define | ASTCHANNAME 2 |
| #define | ASTCHANNELS 5 |
| #define | ASTCHANPICKUPGROUP 22 |
| #define | ASTCHANPRI 17 |
| #define | ASTCHANRINGS 25 |
| #define | ASTCHANSCALARS 5 |
| #define | ASTCHANSTATE 23 |
| #define | ASTCHANTABLE 2 |
| #define | ASTCHANTONEZONE 37 |
| #define | ASTCHANTRANSFERCAP 41 |
| #define | ASTCHANTYPE 4 |
| #define | ASTCHANTYPECHANNELS 7 |
| #define | ASTCHANTYPECOUNT 3 |
| #define | ASTCHANTYPEDESC 3 |
| #define | ASTCHANTYPEDEVSTATE 4 |
| #define | ASTCHANTYPEINDEX 1 |
| #define | ASTCHANTYPEINDICATIONS 5 |
| #define | ASTCHANTYPENAME 2 |
| #define | ASTCHANTYPETABLE 4 |
| #define | ASTCHANTYPETRANSFER 6 |
| #define | ASTCHANUNIQUEID 20 |
| #define | ASTCHANVARIABLES 39 |
| #define | ASTCHANWHENHANGUP 9 |
| #define | ASTCONFACTIVECALLS 5 |
| #define | ASTCONFIGURATION 2 |
| #define | ASTCONFPID 3 |
| #define | ASTCONFPROCESSEDCALLS 6 |
| #define | ASTCONFRELOADTIME 2 |
| #define | ASTCONFSOCKET 4 |
| #define | ASTCONFUPTIME 1 |
| #define | ASTINDALIAS 3 |
| #define | ASTINDCOUNT 1 |
| #define | ASTINDCOUNTRY 2 |
| #define | ASTINDCURRENT 2 |
| #define | ASTINDDESCRIPTION 4 |
| #define | ASTINDICATIONS 4 |
| #define | ASTINDINDEX 1 |
| #define | ASTINDTABLE 3 |
| #define | ASTMODCOUNT 1 |
| #define | ASTMODULES 3 |
| #define | ASTVERSION 1 |
| #define | ASTVERSTRING 1 |
| #define | ASTVERTAG 2 |
| #define | HAVE_DMALLOC_H 0 |
| #define | unload_module ast_unload_module |
Functions | |
| void * | agent_thread (void *arg) |
| static u_char * | ast_var_channel_bridge (struct variable *vp, oid *name, size_t *length, int exact, size_t *var_len, WriteMethod **write_method) |
| static u_char * | ast_var_channel_types (struct variable *vp, oid *name, size_t *length, int exact, size_t *var_len, WriteMethod **write_method) |
| static u_char * | ast_var_channel_types_table (struct variable *vp, oid *name, size_t *length, int exact, size_t *var_len, WriteMethod **write_method) |
| static u_char * | ast_var_channels (struct variable *vp, oid *name, size_t *length, int exact, size_t *var_len, WriteMethod **write_method) |
| static u_char * | ast_var_channels_table (struct variable *vp, oid *name, size_t *length, int exact, size_t *var_len, WriteMethod **write_method) |
| static u_char * | ast_var_Config (struct variable *vp, oid *name, size_t *length, int exact, size_t *var_len, WriteMethod **write_method) |
| static u_char * | ast_var_indications (struct variable *vp, oid *name, size_t *length, int exact, size_t *var_len, WriteMethod **write_method) |
| static u_char * | ast_var_indications_table (struct variable *vp, oid *name, size_t *length, int exact, size_t *var_len, WriteMethod **write_method) |
| static u_char * | ast_var_Modules (struct variable *vp, oid *name, size_t *length, int exact, size_t *var_len, WriteMethod **write_method) |
| static u_char * | ast_var_Version (struct variable *vp, oid *name, size_t *length, int exact, size_t *var_len, WriteMethod **write_method) |
| static int | countmodule (const char *mod, const char *desc, int use, const char *like) |
| int | header_generic (struct variable *, oid *, size_t *, int, size_t *, WriteMethod **) |
| int | header_simple_table (struct variable *, oid *, size_t *, int, size_t *, WriteMethod **, int) |
| static void | init_asterisk_mib (void) |
| int | register_sysORTable (oid *, size_t, const char *) |
| static int | term_asterisk_mib (int majorID, int minorID, void *serverarg, void *clientarg) |
| int | unregister_sysORTable (oid *, size_t) |
Variables | |
| static oid | asterisk_oid [] = { 1, 3, 6, 1, 4, 1, 22736, 1 } |
SNMP Agent / SubAgent support for Asterisk.
Definition in file agent.c.
| #define ASTCHANACCOUNTCODE 18 |
Definition at line 142 of file agent.c.
Referenced by ast_var_channels_table(), and init_asterisk_mib().
| #define ASTCHANADSI 36 |
Definition at line 160 of file agent.c.
Referenced by ast_var_channels_table(), and init_asterisk_mib().
| #define ASTCHANAMAFLAGS 35 |
Definition at line 159 of file agent.c.
Referenced by ast_var_channels_table(), and init_asterisk_mib().
| #define ASTCHANAPP 10 |
Definition at line 134 of file agent.c.
Referenced by ast_var_channels_table(), and init_asterisk_mib().
| #define ASTCHANBRIDGE 6 |
Definition at line 130 of file agent.c.
Referenced by ast_var_channels_table(), and init_asterisk_mib().
| #define ASTCHANBRIDGECOUNT 1 |
Definition at line 179 of file agent.c.
Referenced by ast_var_channel_bridge(), and init_asterisk_mib().
| #define ASTCHANCALLGROUP 21 |
Definition at line 145 of file agent.c.
Referenced by ast_var_channels_table(), and init_asterisk_mib().
| #define ASTCHANCIDANI 29 |
Definition at line 153 of file agent.c.
Referenced by ast_var_channels_table(), and init_asterisk_mib().
| #define ASTCHANCIDANI2 32 |
Definition at line 156 of file agent.c.
Referenced by ast_var_channels_table(), and init_asterisk_mib().
| #define ASTCHANCIDDNID 26 |
Definition at line 150 of file agent.c.
Referenced by ast_var_channels_table(), and init_asterisk_mib().
| #define ASTCHANCIDNAME 28 |
Definition at line 152 of file agent.c.
Referenced by ast_var_channels_table(), and init_asterisk_mib().
| #define ASTCHANCIDNUM 27 |
Definition at line 151 of file agent.c.
Referenced by ast_var_channels_table(), and init_asterisk_mib().
| #define ASTCHANCIDPRES 31 |
Definition at line 155 of file agent.c.
Referenced by ast_var_channels_table(), and init_asterisk_mib().
| #define ASTCHANCIDRDNIS 30 |
Definition at line 154 of file agent.c.
Referenced by ast_var_channels_table(), and init_asterisk_mib().
| #define ASTCHANCIDTNS 34 |
Definition at line 158 of file agent.c.
Referenced by ast_var_channels_table(), and init_asterisk_mib().
| #define ASTCHANCIDTON 33 |
Definition at line 157 of file agent.c.
Referenced by ast_var_channels_table(), and init_asterisk_mib().
| #define ASTCHANCONTEXT 12 |
Definition at line 136 of file agent.c.
Referenced by ast_var_channels_table(), and init_asterisk_mib().
| #define ASTCHANCOUNT 1 |
Definition at line 122 of file agent.c.
Referenced by ast_var_channels(), and init_asterisk_mib().
| #define ASTCHANDATA 11 |
Definition at line 135 of file agent.c.
Referenced by ast_var_channels_table(), and init_asterisk_mib().
| #define ASTCHANEXTEN 16 |
Definition at line 140 of file agent.c.
Referenced by ast_var_channels_table(), and init_asterisk_mib().
| #define ASTCHANFLAGS 40 |
Definition at line 164 of file agent.c.
Referenced by ast_var_channels_table(), and init_asterisk_mib().
| #define ASTCHANFORWARDTO 19 |
Definition at line 143 of file agent.c.
Referenced by ast_var_channels_table(), and init_asterisk_mib().
| #define ASTCHANHANGUPCAUSE 38 |
Definition at line 162 of file agent.c.
Referenced by ast_var_channels_table(), and init_asterisk_mib().
| #define ASTCHANINDEX 1 |
Definition at line 125 of file agent.c.
Referenced by ast_var_channels_table(), and init_asterisk_mib().
| #define ASTCHANLANGUAGE 3 |
Definition at line 127 of file agent.c.
Referenced by ast_var_channels_table(), and init_asterisk_mib().
| #define ASTCHANMACROCONTEXT 13 |
Definition at line 137 of file agent.c.
Referenced by ast_var_channels_table(), and init_asterisk_mib().
| #define ASTCHANMACROEXTEN 14 |
Definition at line 138 of file agent.c.
Referenced by ast_var_channels_table(), and init_asterisk_mib().
| #define ASTCHANMACROPRI 15 |
Definition at line 139 of file agent.c.
Referenced by ast_var_channels_table(), and init_asterisk_mib().
| #define ASTCHANMASQ 7 |
Definition at line 131 of file agent.c.
Referenced by ast_var_channels_table(), and init_asterisk_mib().
| #define ASTCHANMASQR 8 |
Definition at line 132 of file agent.c.
Referenced by ast_var_channels_table(), and init_asterisk_mib().
| #define ASTCHANMUSICCLASS 5 |
Definition at line 129 of file agent.c.
Referenced by ast_var_channels_table(), and init_asterisk_mib().
| #define ASTCHANMUTED 24 |
Definition at line 148 of file agent.c.
Referenced by ast_var_channels_table(), and init_asterisk_mib().
| #define ASTCHANNAME 2 |
Definition at line 126 of file agent.c.
Referenced by ast_var_channels_table(), and init_asterisk_mib().
| #define ASTCHANPICKUPGROUP 22 |
Definition at line 146 of file agent.c.
Referenced by ast_var_channels_table(), and init_asterisk_mib().
| #define ASTCHANPRI 17 |
Definition at line 141 of file agent.c.
Referenced by ast_var_channels_table(), and init_asterisk_mib().
| #define ASTCHANRINGS 25 |
Definition at line 149 of file agent.c.
Referenced by ast_var_channels_table(), and init_asterisk_mib().
| #define ASTCHANSTATE 23 |
Definition at line 147 of file agent.c.
Referenced by ast_var_channels_table(), and init_asterisk_mib().
| #define ASTCHANTONEZONE 37 |
Definition at line 161 of file agent.c.
Referenced by ast_var_channels_table(), and init_asterisk_mib().
| #define ASTCHANTRANSFERCAP 41 |
Definition at line 165 of file agent.c.
Referenced by ast_var_channels_table(), and init_asterisk_mib().
| #define ASTCHANTYPE 4 |
Definition at line 128 of file agent.c.
Referenced by ast_var_channels_table(), and init_asterisk_mib().
| #define ASTCHANTYPECHANNELS 7 |
Definition at line 176 of file agent.c.
Referenced by ast_var_channel_types_table(), and init_asterisk_mib().
| #define ASTCHANTYPECOUNT 3 |
Definition at line 167 of file agent.c.
Referenced by ast_var_channel_types(), and init_asterisk_mib().
| #define ASTCHANTYPEDESC 3 |
Definition at line 172 of file agent.c.
Referenced by ast_var_channel_types_table(), and init_asterisk_mib().
| #define ASTCHANTYPEDEVSTATE 4 |
Definition at line 173 of file agent.c.
Referenced by ast_var_channel_types_table(), and init_asterisk_mib().
| #define ASTCHANTYPEINDEX 1 |
Definition at line 170 of file agent.c.
Referenced by ast_var_channel_types_table(), and init_asterisk_mib().
| #define ASTCHANTYPEINDICATIONS 5 |
Definition at line 174 of file agent.c.
Referenced by ast_var_channel_types_table(), and init_asterisk_mib().
| #define ASTCHANTYPENAME 2 |
Definition at line 171 of file agent.c.
Referenced by ast_var_channel_types_table(), and init_asterisk_mib().
| #define ASTCHANTYPETRANSFER 6 |
Definition at line 175 of file agent.c.
Referenced by ast_var_channel_types_table(), and init_asterisk_mib().
| #define ASTCHANUNIQUEID 20 |
Definition at line 144 of file agent.c.
Referenced by ast_var_channels_table(), and init_asterisk_mib().
| #define ASTCHANVARIABLES 39 |
Definition at line 163 of file agent.c.
Referenced by ast_var_channels_table(), and init_asterisk_mib().
| #define ASTCHANWHENHANGUP 9 |
Definition at line 133 of file agent.c.
Referenced by ast_var_channels_table(), and init_asterisk_mib().
| #define ASTCONFACTIVECALLS 5 |
Definition at line 105 of file agent.c.
Referenced by ast_var_Config(), and init_asterisk_mib().
| #define ASTCONFPID 3 |
Definition at line 103 of file agent.c.
Referenced by ast_var_Config(), and init_asterisk_mib().
| #define ASTCONFPROCESSEDCALLS 6 |
Definition at line 106 of file agent.c.
Referenced by ast_var_Config(), and init_asterisk_mib().
| #define ASTCONFRELOADTIME 2 |
Definition at line 102 of file agent.c.
Referenced by ast_var_Config(), and init_asterisk_mib().
| #define ASTCONFSOCKET 4 |
Definition at line 104 of file agent.c.
Referenced by ast_var_Config(), and init_asterisk_mib().
| #define ASTCONFUPTIME 1 |
Definition at line 101 of file agent.c.
Referenced by ast_var_Config(), and init_asterisk_mib().
| #define ASTINDALIAS 3 |
Definition at line 118 of file agent.c.
Referenced by ast_var_indications_table(), and init_asterisk_mib().
| #define ASTINDCOUNT 1 |
Definition at line 112 of file agent.c.
Referenced by ast_var_indications(), and init_asterisk_mib().
| #define ASTINDCOUNTRY 2 |
Definition at line 117 of file agent.c.
Referenced by ast_var_indications_table(), and init_asterisk_mib().
| #define ASTINDCURRENT 2 |
Definition at line 113 of file agent.c.
Referenced by ast_var_indications(), and init_asterisk_mib().
| #define ASTINDDESCRIPTION 4 |
Definition at line 119 of file agent.c.
Referenced by ast_var_indications_table(), and init_asterisk_mib().
| #define ASTINDINDEX 1 |
Definition at line 116 of file agent.c.
Referenced by ast_var_indications_table(), and init_asterisk_mib().
| #define ASTMODCOUNT 1 |
Definition at line 109 of file agent.c.
Referenced by ast_var_Modules(), and init_asterisk_mib().
| #define ASTVERSTRING 1 |
Definition at line 97 of file agent.c.
Referenced by ast_var_Version(), and init_asterisk_mib().
| #define ASTVERTAG 2 |
Definition at line 98 of file agent.c.
Referenced by ast_var_Version(), and init_asterisk_mib().
| void* agent_thread | ( | void * | arg | ) |
Definition at line 181 of file agent.c.
References ast_verb, init_asterisk_mib(), res_snmp_agentx_subagent, and res_snmp_dont_stop.
Referenced by load_module().
{
ast_verb(2, "Starting %sAgent\n", res_snmp_agentx_subagent ? "Sub" : "");
snmp_enable_stderrlog();
if (res_snmp_agentx_subagent)
netsnmp_ds_set_boolean(NETSNMP_DS_APPLICATION_ID,
NETSNMP_DS_AGENT_ROLE,
1);
init_agent("asterisk");
init_asterisk_mib();
init_snmp("asterisk");
if (!res_snmp_agentx_subagent)
init_master_agent();
while (res_snmp_dont_stop)
agent_check_and_process(1);
snmp_shutdown("asterisk");
ast_verb(2, "Terminating %sAgent\n", res_snmp_agentx_subagent ? "Sub" : "");
return NULL;
}
| static u_char* ast_var_channel_bridge | ( | struct variable * | vp, | |
| oid * | name, | |||
| size_t * | length, | |||
| int | exact, | |||
| size_t * | var_len, | |||
| WriteMethod ** | write_method | |||
| ) | [static] |
Definition at line 583 of file agent.c.
References ast_bridged_channel(), ast_channel_unlock, ast_channel_walk_locked(), ASTCHANBRIDGECOUNT, chan, and header_generic().
{
static unsigned long long_ret;
struct ast_channel *chan = NULL;
long_ret = 0;
if (header_generic(vp, name, length, exact, var_len, write_method))
return NULL;
while ((chan = ast_channel_walk_locked(chan))) {
if (ast_bridged_channel(chan))
long_ret++;
ast_channel_unlock(chan);
}
*var_len = sizeof(long_ret);
return (vp->magic == ASTCHANBRIDGECOUNT) ? (u_char *) &long_ret : NULL;
}
| static u_char* ast_var_channel_types | ( | struct variable * | vp, | |
| oid * | name, | |||
| size_t * | length, | |||
| int | exact, | |||
| size_t * | var_len, | |||
| WriteMethod ** | write_method | |||
| ) | [static] |
Definition at line 510 of file agent.c.
References ast_channeltype_list(), ast_variables_destroy(), ASTCHANTYPECOUNT, header_generic(), and ast_variable::next.
{
static unsigned long long_ret;
struct ast_variable *channel_types, *next;
if (header_generic(vp, name, length, exact, var_len, write_method))
return NULL;
if (vp->magic != ASTCHANTYPECOUNT)
return NULL;
for (long_ret = 0, channel_types = next = ast_channeltype_list(); next; next = next->next)
long_ret++;
ast_variables_destroy(channel_types);
return (u_char *)&long_ret;
}
| static u_char* ast_var_channel_types_table | ( | struct variable * | vp, | |
| oid * | name, | |||
| size_t * | length, | |||
| int | exact, | |||
| size_t * | var_len, | |||
| WriteMethod ** | write_method | |||
| ) | [static] |
Definition at line 529 of file agent.c.
References ast_channel_unlock, ast_channel_walk_locked(), ast_channeltype_list(), ast_get_channel_tech(), ast_variables_destroy(), ASTCHANTYPECHANNELS, ASTCHANTYPEDESC, ASTCHANTYPEDEVSTATE, ASTCHANTYPEINDEX, ASTCHANTYPEINDICATIONS, ASTCHANTYPENAME, ASTCHANTYPETRANSFER, chan, ast_channel_tech::description, ast_channel_tech::devicestate, header_simple_table(), ast_channel_tech::indicate, ast_variable::name, ast_variable::next, ast_channel::tech, ast_channel_tech::transfer, and ast_channel_tech::type.
{
const struct ast_channel_tech *tech = NULL;
struct ast_variable *channel_types, *next;
static unsigned long long_ret;
struct ast_channel *chan;
u_long i;
if (header_simple_table(vp, name, length, exact, var_len, write_method, -1))
return NULL;
channel_types = ast_channeltype_list();
for (i = 1, next = channel_types; next && i != name[*length - 1]; next = next->next, i++)
;
if (next != NULL)
tech = ast_get_channel_tech(next->name);
ast_variables_destroy(channel_types);
if (next == NULL || tech == NULL)
return NULL;
switch (vp->magic) {
case ASTCHANTYPEINDEX:
long_ret = name[*length - 1];
return (u_char *)&long_ret;
case ASTCHANTYPENAME:
*var_len = strlen(tech->type);
return (u_char *)tech->type;
case ASTCHANTYPEDESC:
*var_len = strlen(tech->description);
return (u_char *)tech->description;
case ASTCHANTYPEDEVSTATE:
long_ret = tech->devicestate ? 1 : 2;
return (u_char *)&long_ret;
case ASTCHANTYPEINDICATIONS:
long_ret = tech->indicate ? 1 : 2;
return (u_char *)&long_ret;
case ASTCHANTYPETRANSFER:
long_ret = tech->transfer ? 1 : 2;
return (u_char *)&long_ret;
case ASTCHANTYPECHANNELS:
long_ret = 0;
for (chan = ast_channel_walk_locked(NULL); chan; chan = ast_channel_walk_locked(chan)) {
if (chan->tech == tech)
long_ret++;
ast_channel_unlock(chan);
}
return (u_char *)&long_ret;
default:
break;
}
return NULL;
}
| static u_char* ast_var_channels | ( | struct variable * | vp, | |
| oid * | name, | |||
| size_t * | length, | |||
| int | exact, | |||
| size_t * | var_len, | |||
| WriteMethod ** | write_method | |||
| ) | [static] |
Definition at line 212 of file agent.c.
References ast_active_channels(), ASTCHANCOUNT, and header_generic().
{
static unsigned long long_ret;
if (header_generic(vp, name, length, exact, var_len, write_method))
return NULL;
if (vp->magic != ASTCHANCOUNT)
return NULL;
long_ret = ast_active_channels();
return (u_char *)&long_ret;
}
| static u_char* ast_var_channels_table | ( | struct variable * | vp, | |
| oid * | name, | |||
| size_t * | length, | |||
| int | exact, | |||
| size_t * | var_len, | |||
| WriteMethod ** | write_method | |||
| ) | [static] |
Definition at line 228 of file agent.c.
References ast_channel::_state, ast_channel::accountcode, ast_channel::adsicpe, ast_channel::amaflags, ast_channel::appl, ast_active_channels(), ast_bridged_channel(), ast_channel_unlock, ast_channel_walk_locked(), AST_STATE_MUTE, ast_str_alloca, ast_str_buffer(), ast_str_strlen(), ast_strlen_zero(), ast_tvzero(), ASTCHANACCOUNTCODE, ASTCHANADSI, ASTCHANAMAFLAGS, ASTCHANAPP, ASTCHANBRIDGE, ASTCHANCALLGROUP, ASTCHANCIDANI, ASTCHANCIDANI2, ASTCHANCIDDNID, ASTCHANCIDNAME, ASTCHANCIDNUM, ASTCHANCIDPRES, ASTCHANCIDRDNIS, ASTCHANCIDTNS, ASTCHANCIDTON, ASTCHANCONTEXT, ASTCHANDATA, ASTCHANEXTEN, ASTCHANFLAGS, ASTCHANFORWARDTO, ASTCHANHANGUPCAUSE, ASTCHANINDEX, ASTCHANLANGUAGE, ASTCHANMACROCONTEXT, ASTCHANMACROEXTEN, ASTCHANMACROPRI, ASTCHANMASQ, ASTCHANMASQR, ASTCHANMUSICCLASS, ASTCHANMUTED, ASTCHANNAME, ASTCHANPICKUPGROUP, ASTCHANPRI, ASTCHANRINGS, ASTCHANSTATE, ASTCHANTONEZONE, ASTCHANTRANSFERCAP, ASTCHANTYPE, ASTCHANUNIQUEID, ASTCHANVARIABLES, ASTCHANWHENHANGUP, ast_channel::bridge, ast_channel::call_forward, ast_channel::callgroup, chan, ast_channel::cid, ast_callerid::cid_ani, ast_callerid::cid_ani2, ast_callerid::cid_dnid, ast_callerid::cid_name, ast_callerid::cid_num, ast_callerid::cid_pres, ast_callerid::cid_rdnis, ast_callerid::cid_tns, ast_callerid::cid_ton, ast_channel::context, ast_tone_zone::country, ast_channel::data, ast_channel::exten, ast_channel::flags, ast_channel::hangupcause, header_simple_table(), ast_channel::language, ast_channel::macrocontext, ast_channel::macroexten, ast_channel::macropriority, ast_channel::masq, ast_channel::masqr, ast_channel::musicclass, ast_channel::name, pbx_builtin_serialize_variables(), ast_channel::pickupgroup, ast_channel::priority, ast_channel::rings, ast_channel::tech, ast_channel::transfercapability, ast_channel_tech::type, ast_channel::uniqueid, ast_channel::whentohangup, and ast_channel::zone.
{
static unsigned long long_ret;
static u_char bits_ret[2];
static char string_ret[256];
struct ast_channel *chan, *bridge;
struct timeval tval;
u_char *ret = NULL;
int i, bit;
struct ast_str *out = ast_str_alloca(2048);
if (header_simple_table(vp, name, length, exact, var_len, write_method, ast_active_channels()))
return NULL;
i = name[*length - 1] - 1;
for (chan = ast_channel_walk_locked(NULL);
chan && i;
chan = ast_channel_walk_locked(chan), i--)
ast_channel_unlock(chan);
if (chan == NULL)
return NULL;
*var_len = sizeof(long_ret);
switch (vp->magic) {
case ASTCHANINDEX:
long_ret = name[*length - 1];
ret = (u_char *)&long_ret;
break;
case ASTCHANNAME:
if (!ast_strlen_zero(chan->name)) {
strncpy(string_ret, chan->name, sizeof(string_ret));
string_ret[sizeof(string_ret) - 1] = '\0';
*var_len = strlen(string_ret);
ret = (u_char *)string_ret;
}
break;
case ASTCHANLANGUAGE:
if (!ast_strlen_zero(chan->language)) {
strncpy(string_ret, chan->language, sizeof(string_ret));
string_ret[sizeof(string_ret) - 1] = '\0';
*var_len = strlen(string_ret);
ret = (u_char *)string_ret;
}
break;
case ASTCHANTYPE:
strncpy(string_ret, chan->tech->type, sizeof(string_ret));
string_ret[sizeof(string_ret) - 1] = '\0';
*var_len = strlen(string_ret);
ret = (u_char *)string_ret;
break;
case ASTCHANMUSICCLASS:
if (!ast_strlen_zero(chan->musicclass)) {
strncpy(string_ret, chan->musicclass, sizeof(string_ret));
string_ret[sizeof(string_ret) - 1] = '\0';
*var_len = strlen(string_ret);
ret = (u_char *)string_ret;
}
break;
case ASTCHANBRIDGE:
if ((bridge = ast_bridged_channel(chan)) != NULL) {
strncpy(string_ret, bridge->name, sizeof(string_ret));
string_ret[sizeof(string_ret) - 1] = '\0';
*var_len = strlen(string_ret);
ret = (u_char *)string_ret;
}
break;
case ASTCHANMASQ:
if (chan->masq && !ast_strlen_zero(chan->masq->name)) {
strncpy(string_ret, chan->masq->name, sizeof(string_ret));
string_ret[sizeof(string_ret) - 1] = '\0';
*var_len = strlen(string_ret);
ret = (u_char *)string_ret;
}
break;
case ASTCHANMASQR:
if (chan->masqr && !ast_strlen_zero(chan->masqr->name)) {
strncpy(string_ret, chan->masqr->name, sizeof(string_ret));
string_ret[sizeof(string_ret) - 1] = '\0';
*var_len = strlen(string_ret);
ret = (u_char *)string_ret;
}
break;
case ASTCHANWHENHANGUP:
if (!ast_tvzero(chan->whentohangup)) {
gettimeofday(&tval, NULL);
long_ret = difftime(chan->whentohangup.tv_sec, tval.tv_sec) * 100 - tval.tv_usec / 10000;
ret= (u_char *)&long_ret;
}
break;
case ASTCHANAPP:
if (chan->appl) {
strncpy(string_ret, chan->appl, sizeof(string_ret));
string_ret[sizeof(string_ret) - 1] = '\0';
*var_len = strlen(string_ret);
ret = (u_char *)string_ret;
}
break;
case ASTCHANDATA:
if (chan->data) {
strncpy(string_ret, chan->data, sizeof(string_ret));
string_ret[sizeof(string_ret) - 1] = '\0';
*var_len = strlen(string_ret);
ret = (u_char *)string_ret;
}
break;
case ASTCHANCONTEXT:
strncpy(string_ret, chan->context, sizeof(string_ret));
string_ret[sizeof(string_ret) - 1] = '\0';
*var_len = strlen(string_ret);
ret = (u_char *)string_ret;
break;
case ASTCHANMACROCONTEXT:
strncpy(string_ret, chan->macrocontext, sizeof(string_ret));
string_ret[sizeof(string_ret) - 1] = '\0';
*var_len = strlen(string_ret);
ret = (u_char *)string_ret;
break;
case ASTCHANMACROEXTEN:
strncpy(string_ret, chan->macroexten, sizeof(string_ret));
string_ret[sizeof(string_ret) - 1] = '\0';
*var_len = strlen(string_ret);
ret = (u_char *)string_ret;
break;
case ASTCHANMACROPRI:
long_ret = chan->macropriority;
ret = (u_char *)&long_ret;
break;
case ASTCHANEXTEN:
strncpy(string_ret, chan->exten, sizeof(string_ret));
string_ret[sizeof(string_ret) - 1] = '\0';
*var_len = strlen(string_ret);
ret = (u_char *)string_ret;
break;
case ASTCHANPRI:
long_ret = chan->priority;
ret = (u_char *)&long_ret;
break;
case ASTCHANACCOUNTCODE:
if (!ast_strlen_zero(chan->accountcode)) {
strncpy(string_ret, chan->accountcode, sizeof(string_ret));
string_ret[sizeof(string_ret) - 1] = '\0';
*var_len = strlen(string_ret);
ret = (u_char *)string_ret;
}
break;
case ASTCHANFORWARDTO:
if (!ast_strlen_zero(chan->call_forward)) {
strncpy(string_ret, chan->call_forward, sizeof(string_ret));
string_ret[sizeof(string_ret) - 1] = '\0';
*var_len = strlen(string_ret);
ret = (u_char *)string_ret;
}
break;
case ASTCHANUNIQUEID:
strncpy(string_ret, chan->uniqueid, sizeof(string_ret));
string_ret[sizeof(string_ret) - 1] = '\0';
*var_len = strlen(string_ret);
ret = (u_char *)string_ret;
break;
case ASTCHANCALLGROUP:
long_ret = chan->callgroup;
ret = (u_char *)&long_ret;
break;
case ASTCHANPICKUPGROUP:
long_ret = chan->pickupgroup;
ret = (u_char *)&long_ret;
break;
case ASTCHANSTATE:
long_ret = chan->_state & 0xffff;
ret = (u_char *)&long_ret;
break;
case ASTCHANMUTED:
long_ret = chan->_state & AST_STATE_MUTE ? 1 : 2;
ret = (u_char *)&long_ret;
break;
case ASTCHANRINGS:
long_ret = chan->rings;
ret = (u_char *)&long_ret;
break;
case ASTCHANCIDDNID:
if (chan->cid.cid_dnid) {
strncpy(string_ret, chan->cid.cid_dnid, sizeof(string_ret));
string_ret[sizeof(string_ret) - 1] = '\0';
*var_len = strlen(string_ret);
ret = (u_char *)string_ret;
}
break;
case ASTCHANCIDNUM:
if (chan->cid.cid_num) {
strncpy(string_ret, chan->cid.cid_num, sizeof(string_ret));
string_ret[sizeof(string_ret) - 1] = '\0';
*var_len = strlen(string_ret);
ret = (u_char *)string_ret;
}
break;
case ASTCHANCIDNAME:
if (chan->cid.cid_name) {
strncpy(string_ret, chan->cid.cid_name, sizeof(string_ret));
string_ret[sizeof(string_ret) - 1] = '\0';
*var_len = strlen(string_ret);
ret = (u_char *)string_ret;
}
break;
case ASTCHANCIDANI:
if (chan->cid.cid_ani) {
strncpy(string_ret, chan->cid.cid_ani, sizeof(string_ret));
string_ret[sizeof(string_ret) - 1] = '\0';
*var_len = strlen(string_ret);
ret = (u_char *)string_ret;
}
break;
case ASTCHANCIDRDNIS:
if (chan->cid.cid_rdnis) {
strncpy(string_ret, chan->cid.cid_rdnis, sizeof(string_ret));
string_ret[sizeof(string_ret) - 1] = '\0';
*var_len = strlen(string_ret);
ret = (u_char *)string_ret;
}
break;
case ASTCHANCIDPRES:
long_ret = chan->cid.cid_pres;
ret = (u_char *)&long_ret;
break;
case ASTCHANCIDANI2:
long_ret = chan->cid.cid_ani2;
ret = (u_char *)&long_ret;
break;
case ASTCHANCIDTON:
long_ret = chan->cid.cid_ton;
ret = (u_char *)&long_ret;
break;
case ASTCHANCIDTNS:
long_ret = chan->cid.cid_tns;
ret = (u_char *)&long_ret;
break;
case ASTCHANAMAFLAGS:
long_ret = chan->amaflags;
ret = (u_char *)&long_ret;
break;
case ASTCHANADSI:
long_ret = chan->adsicpe;
ret = (u_char *)&long_ret;
break;
case ASTCHANTONEZONE:
if (chan->zone) {
strncpy(string_ret, chan->zone->country, sizeof(string_ret));
string_ret[sizeof(string_ret) - 1] = '\0';
*var_len = strlen(string_ret);
ret = (u_char *)string_ret;
}
break;
case ASTCHANHANGUPCAUSE:
long_ret = chan->hangupcause;
ret = (u_char *)&long_ret;
break;
case ASTCHANVARIABLES:
if (pbx_builtin_serialize_variables(chan, &out)) {
*var_len = ast_str_strlen(out);
ret = (u_char *)ast_str_buffer(out);
}
break;
case ASTCHANFLAGS:
bits_ret[0] = 0;
for (bit = 0; bit < 8; bit++)
bits_ret[0] |= ((chan->flags & (1 << bit)) >> bit) << (7 - bit);
bits_ret[1] = 0;
for (bit = 0; bit < 8; bit++)
bits_ret[1] |= (((chan->flags >> 8) & (1 << bit)) >> bit) << (7 - bit);
*var_len = 2;
ret = bits_ret;
break;
case ASTCHANTRANSFERCAP:
long_ret = chan->transfercapability;
ret = (u_char *)&long_ret;
default:
break;
}
ast_channel_unlock(chan);
return ret;
}
| static u_char* ast_var_Config | ( | struct variable * | vp, | |
| oid * | name, | |||
| size_t * | length, | |||
| int | exact, | |||
| size_t * | var_len, | |||
| WriteMethod ** | write_method | |||
| ) | [static] |
Definition at line 604 of file agent.c.
References ast_active_calls(), ast_config_AST_SOCKET, ast_lastreloadtime, ast_processed_calls(), ast_startuptime, ASTCONFACTIVECALLS, ASTCONFPID, ASTCONFPROCESSEDCALLS, ASTCONFRELOADTIME, ASTCONFSOCKET, ASTCONFUPTIME, and header_generic().
{
static unsigned long long_ret;
struct timeval tval;
if (header_generic(vp, name, length, exact, var_len, write_method))
return NULL;
switch (vp->magic) {
case ASTCONFUPTIME:
gettimeofday(&tval, NULL);
long_ret = difftime(tval.tv_sec, ast_startuptime.tv_sec) * 100 + tval.tv_usec / 10000 - ast_startuptime.tv_usec / 10000;
return (u_char *)&long_ret;
case ASTCONFRELOADTIME:
gettimeofday(&tval, NULL);
if (ast_lastreloadtime.tv_sec)
long_ret = difftime(tval.tv_sec, ast_lastreloadtime.tv_sec) * 100 + tval.tv_usec / 10000 - ast_lastreloadtime.tv_usec / 10000;
else
long_ret = difftime(tval.tv_sec, ast_startuptime.tv_sec) * 100 + tval.tv_usec / 10000 - ast_startuptime.tv_usec / 10000;
return (u_char *)&long_ret;
case ASTCONFPID:
long_ret = getpid();
return (u_char *)&long_ret;
case ASTCONFSOCKET:
*var_len = strlen(ast_config_AST_SOCKET);
return (u_char *)ast_config_AST_SOCKET;
case ASTCONFACTIVECALLS:
long_ret = ast_active_calls();
return (u_char *)&long_ret;
case ASTCONFPROCESSEDCALLS:
long_ret = ast_processed_calls();
return (u_char *)&long_ret;
default:
break;
}
return NULL;
}
| static u_char* ast_var_indications | ( | struct variable * | vp, | |
| oid * | name, | |||
| size_t * | length, | |||
| int | exact, | |||
| size_t * | var_len, | |||
| WriteMethod ** | write_method | |||
| ) | [static] |
Definition at line 643 of file agent.c.
References ao2_iterator_next, ast_copy_string(), ast_get_indication_zone(), ast_tone_zone_iterator_init(), ast_tone_zone_unref(), ASTINDCOUNT, ASTINDCURRENT, ast_tone_zone::country, and header_generic().
{
static unsigned long long_ret;
static char ret_buf[128];
struct ast_tone_zone *tz = NULL;
if (header_generic(vp, name, length, exact, var_len, write_method))
return NULL;
switch (vp->magic) {
case ASTINDCOUNT:
{
struct ao2_iterator i;
long_ret = 0;
i = ast_tone_zone_iterator_init();
while ((tz = ao2_iterator_next(&i))) {
tz = ast_tone_zone_unref(tz);
long_ret++;
}
return (u_char *) &long_ret;
}
case ASTINDCURRENT:
tz = ast_get_indication_zone(NULL);
if (tz) {
ast_copy_string(ret_buf, tz->country, sizeof(ret_buf));
*var_len = strlen(ret_buf);
tz = ast_tone_zone_unref(tz);
return (u_char *) ret_buf;
}
*var_len = 0;
return NULL;
default:
break;
}
return NULL;
}
| static u_char* ast_var_indications_table | ( | struct variable * | vp, | |
| oid * | name, | |||
| size_t * | length, | |||
| int | exact, | |||
| size_t * | var_len, | |||
| WriteMethod ** | write_method | |||
| ) | [static] |
Definition at line 684 of file agent.c.
References ao2_iterator_next, ast_copy_string(), ast_tone_zone_iterator_init(), ast_tone_zone_lock, ast_tone_zone_unlock, ast_tone_zone_unref(), ASTINDALIAS, ASTINDCOUNTRY, ASTINDDESCRIPTION, ASTINDINDEX, ast_tone_zone::country, ast_tone_zone::description, and header_simple_table().
{
static unsigned long long_ret;
static char ret_buf[256];
struct ast_tone_zone *tz = NULL;
int i;
struct ao2_iterator iter;
if (header_simple_table(vp, name, length, exact, var_len, write_method, -1)) {
return NULL;
}
i = name[*length - 1] - 1;
iter = ast_tone_zone_iterator_init();
while ((tz = ao2_iterator_next(&iter)) && i) {
tz = ast_tone_zone_unref(tz);
i--;
}
if (tz == NULL) {
return NULL;
}
switch (vp->magic) {
case ASTINDINDEX:
long_ret = name[*length - 1];
return (u_char *)&long_ret;
case ASTINDCOUNTRY:
ast_copy_string(ret_buf, tz->country, sizeof(ret_buf));
tz = ast_tone_zone_unref(tz);
*var_len = strlen(ret_buf);
return (u_char *) ret_buf;
case ASTINDALIAS:
/* No longer exists */
return NULL;
case ASTINDDESCRIPTION:
ast_tone_zone_lock(tz);
ast_copy_string(ret_buf, tz->description, sizeof(ret_buf));
ast_tone_zone_unlock(tz);
tz = ast_tone_zone_unref(tz);
*var_len = strlen(ret_buf);
return (u_char *) ret_buf;
default:
break;
}
return NULL;
}
| static u_char* ast_var_Modules | ( | struct variable * | vp, | |
| oid * | name, | |||
| size_t * | length, | |||
| int | exact, | |||
| size_t * | var_len, | |||
| WriteMethod ** | write_method | |||
| ) | [static] |
Definition at line 740 of file agent.c.
References ast_update_module_list(), ASTMODCOUNT, countmodule(), and header_generic().
{
static unsigned long long_ret;
if (header_generic(vp, name, length, exact, var_len, write_method))
return NULL;
if (vp->magic != ASTMODCOUNT)
return NULL;
long_ret = ast_update_module_list(countmodule, NULL);
return (u_char *)&long_ret;
}
| static u_char* ast_var_Version | ( | struct variable * | vp, | |
| oid * | name, | |||
| size_t * | length, | |||
| int | exact, | |||
| size_t * | var_len, | |||
| WriteMethod ** | write_method | |||
| ) | [static] |
Definition at line 756 of file agent.c.
References ast_get_version(), ast_get_version_num(), ASTVERSTRING, ASTVERTAG, header_generic(), and version.
{
static unsigned long long_ret;
if (header_generic(vp, name, length, exact, var_len, write_method))
return NULL;
switch (vp->magic) {
case ASTVERSTRING:
{
const char *version = ast_get_version();
*var_len = strlen(version);
return (u_char *)version;
}
case ASTVERTAG:
sscanf(ast_get_version_num(), "%30lu", &long_ret);
return (u_char *)&long_ret;
default:
break;
}
return NULL;
}
| static int countmodule | ( | const char * | mod, | |
| const char * | desc, | |||
| int | use, | |||
| const char * | like | |||
| ) | [static] |
| int header_generic | ( | struct variable * | , | |
| oid * | , | |||
| size_t * | , | |||
| int | , | |||
| size_t * | , | |||
| WriteMethod ** | ||||
| ) |
| int header_simple_table | ( | struct variable * | , | |
| oid * | , | |||
| size_t * | , | |||
| int | , | |||
| size_t * | , | |||
| WriteMethod ** | , | |||
| int | ||||
| ) |
Referenced by ast_var_channel_types_table(), ast_var_channels_table(), and ast_var_indications_table().
| static void init_asterisk_mib | ( | void | ) | [static] |
Definition at line 786 of file agent.c.
References ASTCHANACCOUNTCODE, ASTCHANADSI, ASTCHANAMAFLAGS, ASTCHANAPP, ASTCHANBRIDGE, ASTCHANBRIDGECOUNT, ASTCHANCALLGROUP, ASTCHANCIDANI, ASTCHANCIDANI2, ASTCHANCIDDNID, ASTCHANCIDNAME, ASTCHANCIDNUM, ASTCHANCIDPRES, ASTCHANCIDRDNIS, ASTCHANCIDTNS, ASTCHANCIDTON, ASTCHANCONTEXT, ASTCHANCOUNT, ASTCHANDATA, ASTCHANEXTEN, ASTCHANFLAGS, ASTCHANFORWARDTO, ASTCHANHANGUPCAUSE, ASTCHANINDEX, ASTCHANLANGUAGE, ASTCHANMACROCONTEXT, ASTCHANMACROEXTEN, ASTCHANMACROPRI, ASTCHANMASQ, ASTCHANMASQR, ASTCHANMUSICCLASS, ASTCHANMUTED, ASTCHANNAME, ASTCHANPICKUPGROUP, ASTCHANPRI, ASTCHANRINGS, ASTCHANSTATE, ASTCHANTONEZONE, ASTCHANTRANSFERCAP, ASTCHANTYPE, ASTCHANTYPECHANNELS, ASTCHANTYPECOUNT, ASTCHANTYPEDESC, ASTCHANTYPEDEVSTATE, ASTCHANTYPEINDEX, ASTCHANTYPEINDICATIONS, ASTCHANTYPENAME, ASTCHANTYPETRANSFER, ASTCHANUNIQUEID, ASTCHANVARIABLES, ASTCHANWHENHANGUP, ASTCONFACTIVECALLS, ASTCONFPID, ASTCONFPROCESSEDCALLS, ASTCONFRELOADTIME, ASTCONFSOCKET, ASTCONFUPTIME, ASTINDALIAS, ASTINDCOUNT, ASTINDCOUNTRY, ASTINDCURRENT, ASTINDDESCRIPTION, ASTINDINDEX, ASTMODCOUNT, ASTVERSTRING, ASTVERTAG, register_sysORTable(), and term_asterisk_mib().
Referenced by agent_thread().
{
static struct variable4 asterisk_vars[] = {
{ASTVERSTRING, ASN_OCTET_STR, RONLY, ast_var_Version, 2, {ASTVERSION, ASTVERSTRING}},
{ASTVERTAG, ASN_UNSIGNED, RONLY, ast_var_Version, 2, {ASTVERSION, ASTVERTAG}},
{ASTCONFUPTIME, ASN_TIMETICKS, RONLY, ast_var_Config, 2, {ASTCONFIGURATION, ASTCONFUPTIME}},
{ASTCONFRELOADTIME, ASN_TIMETICKS, RONLY, ast_var_Config, 2, {ASTCONFIGURATION, ASTCONFRELOADTIME}},
{ASTCONFPID, ASN_INTEGER, RONLY, ast_var_Config, 2, {ASTCONFIGURATION, ASTCONFPID}},
{ASTCONFSOCKET, ASN_OCTET_STR, RONLY, ast_var_Config, 2, {ASTCONFIGURATION, ASTCONFSOCKET}},
{ASTCONFACTIVECALLS, ASN_GAUGE, RONLY, ast_var_Config, 2, {ASTCONFIGURATION, ASTCONFACTIVECALLS}},
{ASTCONFPROCESSEDCALLS, ASN_COUNTER, RONLY, ast_var_Config, 2, {ASTCONFIGURATION, ASTCONFPROCESSEDCALLS}},
{ASTMODCOUNT, ASN_INTEGER, RONLY, ast_var_Modules , 2, {ASTMODULES, ASTMODCOUNT}},
{ASTINDCOUNT, ASN_INTEGER, RONLY, ast_var_indications, 2, {ASTINDICATIONS, ASTINDCOUNT}},
{ASTINDCURRENT, ASN_OCTET_STR, RONLY, ast_var_indications, 2, {ASTINDICATIONS, ASTINDCURRENT}},
{ASTINDINDEX, ASN_INTEGER, RONLY, ast_var_indications_table, 4, {ASTINDICATIONS, ASTINDTABLE, 1, ASTINDINDEX}},
{ASTINDCOUNTRY, ASN_OCTET_STR, RONLY, ast_var_indications_table, 4, {ASTINDICATIONS, ASTINDTABLE, 1, ASTINDCOUNTRY}},
{ASTINDALIAS, ASN_OCTET_STR, RONLY, ast_var_indications_table, 4, {ASTINDICATIONS, ASTINDTABLE, 1, ASTINDALIAS}},
{ASTINDDESCRIPTION, ASN_OCTET_STR, RONLY, ast_var_indications_table, 4, {ASTINDICATIONS, ASTINDTABLE, 1, ASTINDDESCRIPTION}},
{ASTCHANCOUNT, ASN_GAUGE, RONLY, ast_var_channels, 2, {ASTCHANNELS, ASTCHANCOUNT}},
{ASTCHANINDEX, ASN_INTEGER, RONLY, ast_var_channels_table, 4, {ASTCHANNELS, ASTCHANTABLE, 1, ASTCHANINDEX}},
{ASTCHANNAME, ASN_OCTET_STR, RONLY, ast_var_channels_table, 4, {ASTCHANNELS, ASTCHANTABLE, 1, ASTCHANNAME}},
{ASTCHANLANGUAGE, ASN_OCTET_STR, RONLY, ast_var_channels_table, 4, {ASTCHANNELS, ASTCHANTABLE, 1, ASTCHANLANGUAGE}},
{ASTCHANTYPE, ASN_OCTET_STR, RONLY, ast_var_channels_table, 4, {ASTCHANNELS, ASTCHANTABLE, 1, ASTCHANTYPE}},
{ASTCHANMUSICCLASS, ASN_OCTET_STR, RONLY, ast_var_channels_table, 4, {ASTCHANNELS, ASTCHANTABLE, 1, ASTCHANMUSICCLASS}},
{ASTCHANBRIDGE, ASN_OCTET_STR, RONLY, ast_var_channels_table, 4, {ASTCHANNELS, ASTCHANTABLE, 1, ASTCHANBRIDGE}},
{ASTCHANMASQ, ASN_OCTET_STR, RONLY, ast_var_channels_table, 4, {ASTCHANNELS, ASTCHANTABLE, 1, ASTCHANMASQ}},
{ASTCHANMASQR, ASN_OCTET_STR, RONLY, ast_var_channels_table, 4, {ASTCHANNELS, ASTCHANTABLE, 1, ASTCHANMASQR}},
{ASTCHANWHENHANGUP, ASN_TIMETICKS, RONLY, ast_var_channels_table, 4, {ASTCHANNELS, ASTCHANTABLE, 1, ASTCHANWHENHANGUP}},
{ASTCHANAPP, ASN_OCTET_STR, RONLY, ast_var_channels_table, 4, {ASTCHANNELS, ASTCHANTABLE, 1, ASTCHANAPP}},
{ASTCHANDATA, ASN_OCTET_STR, RONLY, ast_var_channels_table, 4, {ASTCHANNELS, ASTCHANTABLE, 1, ASTCHANDATA}},
{ASTCHANCONTEXT, ASN_OCTET_STR, RONLY, ast_var_channels_table, 4, {ASTCHANNELS, ASTCHANTABLE, 1, ASTCHANCONTEXT}},
{ASTCHANMACROCONTEXT, ASN_OCTET_STR, RONLY, ast_var_channels_table, 4, {ASTCHANNELS, ASTCHANTABLE, 1, ASTCHANMACROCONTEXT}},
{ASTCHANMACROEXTEN, ASN_OCTET_STR, RONLY, ast_var_channels_table, 4, {ASTCHANNELS, ASTCHANTABLE, 1, ASTCHANMACROEXTEN}},
{ASTCHANMACROPRI, ASN_INTEGER, RONLY, ast_var_channels_table, 4, {ASTCHANNELS, ASTCHANTABLE, 1, ASTCHANMACROPRI}},
{ASTCHANEXTEN, ASN_OCTET_STR, RONLY, ast_var_channels_table, 4, {ASTCHANNELS, ASTCHANTABLE, 1, ASTCHANEXTEN}},
{ASTCHANPRI, ASN_INTEGER, RONLY, ast_var_channels_table, 4, {ASTCHANNELS, ASTCHANTABLE, 1, ASTCHANPRI}},
{ASTCHANACCOUNTCODE, ASN_OCTET_STR, RONLY, ast_var_channels_table, 4, {ASTCHANNELS, ASTCHANTABLE, 1, ASTCHANACCOUNTCODE}},
{ASTCHANFORWARDTO, ASN_OCTET_STR, RONLY, ast_var_channels_table, 4, {ASTCHANNELS, ASTCHANTABLE, 1, ASTCHANFORWARDTO}},
{ASTCHANUNIQUEID, ASN_OCTET_STR, RONLY, ast_var_channels_table, 4, {ASTCHANNELS, ASTCHANTABLE, 1, ASTCHANUNIQUEID}},
{ASTCHANCALLGROUP, ASN_UNSIGNED, RONLY, ast_var_channels_table, 4, {ASTCHANNELS, ASTCHANTABLE, 1, ASTCHANCALLGROUP}},
{ASTCHANPICKUPGROUP, ASN_UNSIGNED, RONLY, ast_var_channels_table, 4, {ASTCHANNELS, ASTCHANTABLE, 1, ASTCHANPICKUPGROUP}},
{ASTCHANSTATE, ASN_INTEGER, RONLY, ast_var_channels_table, 4, {ASTCHANNELS, ASTCHANTABLE, 1, ASTCHANSTATE}},
{ASTCHANMUTED, ASN_INTEGER, RONLY, ast_var_channels_table, 4, {ASTCHANNELS, ASTCHANTABLE, 1, ASTCHANMUTED}},
{ASTCHANRINGS, ASN_INTEGER, RONLY, ast_var_channels_table, 4, {ASTCHANNELS, ASTCHANTABLE, 1, ASTCHANRINGS}},
{ASTCHANCIDDNID, ASN_OCTET_STR, RONLY, ast_var_channels_table, 4, {ASTCHANNELS, ASTCHANTABLE, 1, ASTCHANCIDDNID}},
{ASTCHANCIDNUM, ASN_OCTET_STR, RONLY, ast_var_channels_table, 4, {ASTCHANNELS, ASTCHANTABLE, 1, ASTCHANCIDNUM}},
{ASTCHANCIDNAME, ASN_OCTET_STR, RONLY, ast_var_channels_table, 4, {ASTCHANNELS, ASTCHANTABLE, 1, ASTCHANCIDNAME}},
{ASTCHANCIDANI, ASN_OCTET_STR, RONLY, ast_var_channels_table, 4, {ASTCHANNELS, ASTCHANTABLE, 1, ASTCHANCIDANI}},
{ASTCHANCIDRDNIS, ASN_OCTET_STR, RONLY, ast_var_channels_table, 4, {ASTCHANNELS, ASTCHANTABLE, 1, ASTCHANCIDRDNIS}},
{ASTCHANCIDPRES, ASN_OCTET_STR, RONLY, ast_var_channels_table, 4, {ASTCHANNELS, ASTCHANTABLE, 1, ASTCHANCIDPRES}},
{ASTCHANCIDANI2, ASN_INTEGER, RONLY, ast_var_channels_table, 4, {ASTCHANNELS, ASTCHANTABLE, 1, ASTCHANCIDANI2}},
{ASTCHANCIDTON, ASN_INTEGER, RONLY, ast_var_channels_table, 4, {ASTCHANNELS, ASTCHANTABLE, 1, ASTCHANCIDTON}},
{ASTCHANCIDTNS, ASN_INTEGER, RONLY, ast_var_channels_table, 4, {ASTCHANNELS, ASTCHANTABLE, 1, ASTCHANCIDTNS}},
{ASTCHANAMAFLAGS, ASN_INTEGER, RONLY, ast_var_channels_table, 4, {ASTCHANNELS, ASTCHANTABLE, 1, ASTCHANAMAFLAGS}},
{ASTCHANADSI, ASN_INTEGER, RONLY, ast_var_channels_table, 4, {ASTCHANNELS, ASTCHANTABLE, 1, ASTCHANADSI}},
{ASTCHANTONEZONE, ASN_OCTET_STR, RONLY, ast_var_channels_table, 4, {ASTCHANNELS, ASTCHANTABLE, 1, ASTCHANTONEZONE}},
{ASTCHANHANGUPCAUSE, ASN_INTEGER, RONLY, ast_var_channels_table, 4, {ASTCHANNELS, ASTCHANTABLE, 1, ASTCHANHANGUPCAUSE}},
{ASTCHANVARIABLES, ASN_OCTET_STR, RONLY, ast_var_channels_table, 4, {ASTCHANNELS, ASTCHANTABLE, 1, ASTCHANVARIABLES}},
{ASTCHANFLAGS, ASN_OCTET_STR, RONLY, ast_var_channels_table, 4, {ASTCHANNELS, ASTCHANTABLE, 1, ASTCHANFLAGS}},
{ASTCHANTRANSFERCAP, ASN_INTEGER, RONLY, ast_var_channels_table, 4, {ASTCHANNELS, ASTCHANTABLE, 1, ASTCHANTRANSFERCAP}},
{ASTCHANTYPECOUNT, ASN_INTEGER, RONLY, ast_var_channel_types, 2, {ASTCHANNELS, ASTCHANTYPECOUNT}},
{ASTCHANTYPEINDEX, ASN_INTEGER, RONLY, ast_var_channel_types_table, 4, {ASTCHANNELS, ASTCHANTYPETABLE, 1, ASTCHANTYPEINDEX}},
{ASTCHANTYPENAME, ASN_OCTET_STR, RONLY, ast_var_channel_types_table, 4, {ASTCHANNELS, ASTCHANTYPETABLE, 1, ASTCHANTYPENAME}},
{ASTCHANTYPEDESC, ASN_OCTET_STR, RONLY, ast_var_channel_types_table, 4, {ASTCHANNELS, ASTCHANTYPETABLE, 1, ASTCHANTYPEDESC}},
{ASTCHANTYPEDEVSTATE, ASN_INTEGER, RONLY, ast_var_channel_types_table, 4, {ASTCHANNELS, ASTCHANTYPETABLE, 1, ASTCHANTYPEDEVSTATE}},
{ASTCHANTYPEINDICATIONS, ASN_INTEGER, RONLY, ast_var_channel_types_table, 4, {ASTCHANNELS, ASTCHANTYPETABLE, 1, ASTCHANTYPEINDICATIONS}},
{ASTCHANTYPETRANSFER, ASN_INTEGER, RONLY, ast_var_channel_types_table, 4, {ASTCHANNELS, ASTCHANTYPETABLE, 1, ASTCHANTYPETRANSFER}},
{ASTCHANTYPECHANNELS, ASN_GAUGE, RONLY, ast_var_channel_types_table, 4, {ASTCHANNELS, ASTCHANTYPETABLE, 1, ASTCHANTYPECHANNELS}},
{ASTCHANBRIDGECOUNT, ASN_GAUGE, RONLY, ast_var_channel_bridge, 3, {ASTCHANNELS, ASTCHANSCALARS, ASTCHANBRIDGECOUNT}},
};
register_sysORTable(asterisk_oid, OID_LENGTH(asterisk_oid),
"ASTERISK-MIB implementation for Asterisk.");
REGISTER_MIB("res_snmp", asterisk_vars, variable4, asterisk_oid);
snmp_register_callback(SNMP_CALLBACK_LIBRARY,
SNMP_CALLBACK_SHUTDOWN,
term_asterisk_mib, NULL);
}
| int register_sysORTable | ( | oid * | , | |
| size_t | , | |||
| const char * | ||||
| ) |
Referenced by init_asterisk_mib().
| static int term_asterisk_mib | ( | int | majorID, | |
| int | minorID, | |||
| void * | serverarg, | |||
| void * | clientarg | |||
| ) | [static] |
Definition at line 780 of file agent.c.
References unregister_sysORTable().
Referenced by init_asterisk_mib().
{
unregister_sysORTable(asterisk_oid, OID_LENGTH(asterisk_oid));
return 0;
}
| int unregister_sysORTable | ( | oid * | , | |
| size_t | ||||
| ) |
Referenced by term_asterisk_mib().
oid asterisk_oid[] = { 1, 3, 6, 1, 4, 1, 22736, 1 } [static] |
1.7.1