[Asterisk-cvs] asterisk/channels chan_iax2.c,1.281,1.282
markster at lists.digium.com
markster at lists.digium.com
Sat May 14 20:09:44 CDT 2005
Update of /usr/cvsroot/asterisk/channels
In directory mongoose.digium.com:/tmp/cvs-serv32543/channels
Modified Files:
chan_iax2.c
Log Message:
Add netstats option (bug #4175)
Index: chan_iax2.c
===================================================================
RCS file: /usr/cvsroot/asterisk/channels/chan_iax2.c,v
retrieving revision 1.281
retrieving revision 1.282
diff -u -d -r1.281 -r1.282
--- chan_iax2.c 15 May 2005 00:07:42 -0000 1.281
+++ chan_iax2.c 15 May 2005 00:15:14 -0000 1.282
@@ -603,6 +603,7 @@
AST_MUTEX_DEFINE_STATIC(dpcache_lock);
static void destroy_peer(struct iax2_peer *peer);
+static int ast_cli_netstats(int fd, int limit_fmt);
static void iax_debug_output(const char *data)
{
@@ -4107,6 +4108,13 @@
#undef FORMAT2
}
+static int manager_iax2_show_netstats( struct mansession *s, struct message *m )
+{
+ ast_cli_netstats(s->fd, 0);
+ ast_cli(s->fd, "\r\n");
+ return RESULT_SUCCESS;
+}
+
static int iax2_show_firmware(int fd, int argc, char *argv[])
{
#define FORMAT2 "%-15.15s %-15.15s %-15.15s\n"
@@ -4272,25 +4280,26 @@
#undef FORMATB
}
-static int iax2_show_netstats(int fd, int argc, char *argv[])
+static int ast_cli_netstats(int fd, int limit_fmt)
{
int x;
int numchans = 0;
- if (argc != 3)
- return RESULT_SHOWUSAGE;
- ast_cli(fd, " -------- LOCAL --------------------- -------- REMOTE --------------------\n");
- ast_cli(fd, "Channel RTT Jit Del Lost %% Drop OOO Kpkts Jit Del Lost %% Drop OOO Kpkts\n");
for (x=0;x<IAX_MAX_CALLS;x++) {
ast_mutex_lock(&iaxsl[x]);
if (iaxs[x]) {
#ifdef BRIDGE_OPTIMIZATION
- if (iaxs[x]->bridgecallno)
- ast_cli(fd, "%-25.25s <NATIVE BRIDGED>",
+ if (iaxs[x]->bridgecallno) {
+ if (limit_fmt)
+ ast_cli(fd, "%-25.25s <NATIVE BRIDGED>",
iaxs[x]->owner ? iaxs[x]->owner->name : "(None)");
- else
+ else
+ ast_cli(fd, "%s <NATIVE BRIDGED>",
+ iaxs[x]->owner ? iaxs[x]->owner->name : "(None)");
+ } else
#endif
{
int localjitter, localdelay, locallost, locallosspct, localdropped, localooo;
+ char *fmt;
#ifdef NEWJB
jb_info jbinfo;
@@ -4321,7 +4330,11 @@
}
locallost = locallosspct = localooo = -1;
#endif
- ast_cli(fd, "%-25.25s %4d %4d %4d %5d %3d %5d %4d %6d %4d %4d %5d %3d %5d %4d %6d\n",
+ if (limit_fmt)
+ fmt = "%-25.25s %4d %4d %4d %5d %3d %5d %4d %6d %4d %4d %5d %3d %5d %4d %6d\n";
+ else
+ fmt = "%s %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d\n";
+ ast_cli(fd, fmt,
iaxs[x]->owner ? iaxs[x]->owner->name : "(None)",
iaxs[x]->pingtime,
localjitter,
@@ -4344,6 +4357,17 @@
}
ast_mutex_unlock(&iaxsl[x]);
}
+ return numchans;
+}
+
+static int iax2_show_netstats(int fd, int argc, char *argv[])
+{
+ int numchans = 0;
+ if (argc != 3)
+ return RESULT_SHOWUSAGE;
+ ast_cli(fd, " -------- LOCAL --------------------- -------- REMOTE --------------------\n");
+ ast_cli(fd, "Channel RTT Jit Del Lost %% Drop OOO Kpkts Jit Del Lost %% Drop OOO Kpkts\n");
+ numchans = ast_cli_netstats(fd, 1);
ast_cli(fd, "%d active IAX channel(s)\n", numchans);
return RESULT_SUCCESS;
}
@@ -8906,6 +8930,7 @@
if (iaxs[x])
iax2_destroy(x);
ast_manager_unregister( "IAXpeers" );
+ ast_manager_unregister( "IAXnetstats" );
ast_unregister_application(papp);
ast_cli_unregister(&cli_show_users);
ast_cli_unregister(&cli_show_channels);
@@ -9015,6 +9040,7 @@
ast_register_application(papp, iax2_prov_app, psyn, pdescrip);
ast_manager_register( "IAXpeers", 0, manager_iax2_show_peers, "List IAX Peers" );
+ ast_manager_register( "IAXnetstats", 0, manager_iax2_show_netstats, "Show IAX Netstats" );
set_config(config, 0);
More information about the svn-commits
mailing list