mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-03 03:20:57 +00:00
Merged revisions 81405 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r81405 | kpfleming | 2007-08-31 10:51:45 -0500 (Fri, 31 Aug 2007) | 2 lines add missing "transcoder show" (and deprecated "show transcoder") CLI commands that were in 1.2 but never added to 1.4 ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@81408 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -51,6 +51,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
|
||||
#include "asterisk/config.h"
|
||||
#include "asterisk/options.h"
|
||||
#include "asterisk/module.h"
|
||||
#include "asterisk/cli.h"
|
||||
#include "asterisk/logger.h"
|
||||
#include "asterisk/channel.h"
|
||||
#include "asterisk/utils.h"
|
||||
@@ -60,6 +61,37 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
|
||||
|
||||
static unsigned int global_useplc = 0;
|
||||
|
||||
static struct channel_usage {
|
||||
int total;
|
||||
int encoders;
|
||||
int decoders;
|
||||
} channels;
|
||||
|
||||
static char show_transcoder_usage[] =
|
||||
"Usage: show transcoder\n"
|
||||
" Displays channel utilization of Zaptel transcoder(s).\n";
|
||||
|
||||
static char transcoder_show_usage[] =
|
||||
"Usage: transcoder show\n"
|
||||
" Displays channel utilization of Zaptel transcoder(s).\n";
|
||||
|
||||
static int transcoder_show(int fd, int argc, char **argv);
|
||||
|
||||
static struct ast_cli_entry cli_deprecated[] = {
|
||||
{ { "show", "transcoder", NULL },
|
||||
transcoder_show,
|
||||
"Display Zaptel transcoder utilization.",
|
||||
show_transcoder_usage}
|
||||
};
|
||||
|
||||
static struct ast_cli_entry cli[] = {
|
||||
{ { "transcoder", "show", NULL },
|
||||
transcoder_show,
|
||||
"Display Zaptel transcoder utilization.",
|
||||
transcoder_show_usage, NULL,
|
||||
&cli_deprecated[0]}
|
||||
};
|
||||
|
||||
struct format_map {
|
||||
unsigned int map[32][32];
|
||||
};
|
||||
@@ -84,6 +116,20 @@ struct pvt {
|
||||
struct ast_frame f;
|
||||
};
|
||||
|
||||
static int transcoder_show(int fd, int argc, char **argv)
|
||||
{
|
||||
struct channel_usage copy;
|
||||
|
||||
copy = channels;
|
||||
|
||||
if (copy.total == 0)
|
||||
ast_cli(fd, "No Zaptel transcoders found.\n");
|
||||
else
|
||||
ast_cli(fd, "%d/%d encoders/decoders of %d channels are in use.\n", copy.encoders, copy.decoders, copy.total);
|
||||
|
||||
return RESULT_SUCCESS;
|
||||
}
|
||||
|
||||
static int zap_framein(struct ast_trans_pvt *pvt, struct ast_frame *f)
|
||||
{
|
||||
struct pvt *ztp = pvt->pvt;
|
||||
@@ -173,6 +219,17 @@ static void zap_destroy(struct ast_trans_pvt *pvt)
|
||||
{
|
||||
struct pvt *ztp = pvt->pvt;
|
||||
|
||||
ast_atomic_fetchadd_int(&channels.total, -1);
|
||||
switch (ztp->hdr->dstfmt) {
|
||||
case AST_FORMAT_G729A:
|
||||
case AST_FORMAT_G723_1:
|
||||
ast_atomic_fetchadd_int(&channels.encoders, -1);
|
||||
break;
|
||||
default:
|
||||
ast_atomic_fetchadd_int(&channels.decoders, -1);
|
||||
break;
|
||||
}
|
||||
|
||||
munmap(ztp->hdr, sizeof(*ztp->hdr));
|
||||
close(ztp->fd);
|
||||
}
|
||||
@@ -224,6 +281,17 @@ static int zap_translate(struct ast_trans_pvt *pvt, int dest, int source)
|
||||
ztp->fd = fd;
|
||||
ztp->hdr = hdr;
|
||||
|
||||
ast_atomic_fetchadd_int(&channels.total, +1);
|
||||
switch (hdr->dstfmt) {
|
||||
case AST_FORMAT_G729A:
|
||||
case AST_FORMAT_G723_1:
|
||||
ast_atomic_fetchadd_int(&channels.encoders, +1);
|
||||
break;
|
||||
default:
|
||||
ast_atomic_fetchadd_int(&channels.decoders, +1);
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -400,6 +468,7 @@ static int reload(void)
|
||||
|
||||
static int unload_module(void)
|
||||
{
|
||||
ast_cli_unregister_multiple(cli, sizeof(cli) / sizeof(cli[0]));
|
||||
unregister_translators();
|
||||
|
||||
return 0;
|
||||
@@ -409,6 +478,7 @@ static int load_module(void)
|
||||
{
|
||||
parse_config(0);
|
||||
find_transcoders();
|
||||
ast_cli_register_multiple(cli, sizeof(cli) / sizeof(cli[0]));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user