Thu Apr 28 2011 16:56:51

Asterisk developer's documentation


app_getcpeid.c File Reference

Get ADSI CPE ID. More...

#include "asterisk.h"
#include "asterisk/lock.h"
#include "asterisk/file.h"
#include "asterisk/channel.h"
#include "asterisk/pbx.h"
#include "asterisk/module.h"
#include "asterisk/adsi.h"
Include dependency graph for app_getcpeid.c:

Go to the source code of this file.

Functions

static void __reg_module (void)
static void __unreg_module (void)
static int cpeid_exec (struct ast_channel *chan, void *idata)
static int cpeid_setstatus (struct ast_channel *chan, char *stuff[], int voice)
static int load_module (void)
static int unload_module (void)

Variables

static struct ast_module_info
__MODULE_INFO_SECTION 
__mod_info = { __MODULE_INFO_GLOBALS .name = AST_MODULE, .flags = AST_MODFLAG_DEFAULT , .description = "Get ADSI CPE ID" , .key = ASTERISK_GPL_KEY , .buildopt_sum = AST_BUILDOPT_SUM, .load = load_module, .unload = unload_module, }
static char * app = "GetCPEID"
static struct ast_module_infoast_module_info = &__mod_info

Detailed Description

Get ADSI CPE ID.

Author:
Mark Spencer <markster@digium.com>

Definition in file app_getcpeid.c.


Function Documentation

static void __reg_module ( void  ) [static]

Definition at line 135 of file app_getcpeid.c.

static void __unreg_module ( void  ) [static]

Definition at line 135 of file app_getcpeid.c.

static int cpeid_exec ( struct ast_channel chan,
void *  idata 
) [static]

Definition at line 64 of file app_getcpeid.c.

References ast_adsi_get_cpeid, ast_adsi_get_cpeinfo, ast_adsi_load_session, ast_adsi_unload_session, ast_verb, ast_waitfordigit(), buttons, cpeid_setstatus(), height, ast_channel::name, and width.

Referenced by load_module().

{
   int res=0;
   unsigned char cpeid[4];
   int gotgeometry = 0;
   int gotcpeid = 0;
   int width, height, buttons;
   char *data[4];
   unsigned int x;

   for (x = 0; x < 4; x++)
      data[x] = alloca(80);

   strcpy(data[0], "** CPE Info **");
   strcpy(data[1], "Identifying CPE...");
   strcpy(data[2], "Please wait...");
   res = ast_adsi_load_session(chan, NULL, 0, 1);
   if (res > 0) {
      cpeid_setstatus(chan, data, 0);
      res = ast_adsi_get_cpeid(chan, cpeid, 0);
      if (res > 0) {
         gotcpeid = 1;
         ast_verb(3, "Got CPEID of '%02x:%02x:%02x:%02x' on '%s'\n", cpeid[0], cpeid[1], cpeid[2], cpeid[3], chan->name);
      }
      if (res > -1) {
         strcpy(data[1], "Measuring CPE...");
         strcpy(data[2], "Please wait...");
         cpeid_setstatus(chan, data, 0);
         res = ast_adsi_get_cpeinfo(chan, &width, &height, &buttons, 0);
         if (res > -1) {
            ast_verb(3, "CPE has %d lines, %d columns, and %d buttons on '%s'\n", height, width, buttons, chan->name);
            gotgeometry = 1;
         }
      }
      if (res > -1) {
         if (gotcpeid)
            snprintf(data[1], 80, "CPEID: %02x:%02x:%02x:%02x", cpeid[0], cpeid[1], cpeid[2], cpeid[3]);
         else
            strcpy(data[1], "CPEID Unknown");
         if (gotgeometry) 
            snprintf(data[2], 80, "Geom: %dx%d, %d buttons", width, height, buttons);
         else
            strcpy(data[2], "Geometry unknown");
         strcpy(data[3], "Press # to exit");
         cpeid_setstatus(chan, data, 1);
         for(;;) {
            res = ast_waitfordigit(chan, 1000);
            if (res < 0)
               break;
            if (res == '#') {
               res = 0;
               break;
            }
         }
         ast_adsi_unload_session(chan);
      }
   }

   return res;
}
static int cpeid_setstatus ( struct ast_channel chan,
char *  stuff[],
int  voice 
) [static]

Definition at line 53 of file app_getcpeid.c.

References ADSI_JUST_CENT, ADSI_JUST_LEFT, ast_adsi_print, and justify.

Referenced by cpeid_exec().

{
   int justify[5] = { ADSI_JUST_CENT, ADSI_JUST_LEFT, ADSI_JUST_LEFT, ADSI_JUST_LEFT };
   char *tmp[5];
   int x;
   for (x=0;x<4;x++)
      tmp[x] = stuff[x];
   tmp[4] = NULL;
   return ast_adsi_print(chan, tmp, justify, voice);
}
static int load_module ( void  ) [static]

Definition at line 130 of file app_getcpeid.c.

References ast_register_application_xml, and cpeid_exec().

static int unload_module ( void  ) [static]

Definition at line 125 of file app_getcpeid.c.

References ast_unregister_application().


Variable Documentation

struct ast_module_info __MODULE_INFO_SECTION __mod_info = { __MODULE_INFO_GLOBALS .name = AST_MODULE, .flags = AST_MODFLAG_DEFAULT , .description = "Get ADSI CPE ID" , .key = ASTERISK_GPL_KEY , .buildopt_sum = AST_BUILDOPT_SUM, .load = load_module, .unload = unload_module, } [static]

Definition at line 135 of file app_getcpeid.c.

char* app = "GetCPEID" [static]

Definition at line 51 of file app_getcpeid.c.

Definition at line 135 of file app_getcpeid.c.