Sat Apr 26 2014 22:01:43

Asterisk developer's documentation


adsi.h File Reference

ADSI Support (built upon Caller*ID) More...

Include dependency graph for adsi.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  adsi_funcs

Defines

ADSI parameters
#define ADSI_MSG_DISPLAY   132
#define ADSI_MSG_DOWNLOAD   133
#define ADSI_LOAD_SOFTKEY   128
#define ADSI_INIT_SOFTKEY_LINE   129
#define ADSI_LOAD_VIRTUAL_DISP   130
#define ADSI_LINE_CONTROL   131
#define ADSI_INFORMATION   132
#define ADSI_DISC_SESSION   133
#define ADSI_SWITCH_TO_DATA   134
#define ADSI_SWITCH_TO_VOICE   135
#define ADSI_CLEAR_SOFTKEY   136
#define ADSI_INPUT_CONTROL   137
#define ADSI_INPUT_FORMAT   138
#define ADSI_SWITCH_TO_PERIPH   139
#define ADSI_MOVE_DATA   140
#define ADSI_LOAD_DEFAULT   141
#define ADSI_CONNECT_SESSION   142
#define ADSI_CLEAR_TYPE_AHEAD   143
#define ADSI_DISPLAY_CALL_BUF   144
#define ADSI_CLEAR_CALL_BUF   145
#define ADSI_SWITCH_TO_ALT   146
#define ADSI_SWITCH_TO_GRAPHICS   147
#define ADSI_CLEAR_SCREEN   148
#define ADSI_QUERY_CONFIG   149
#define ADSI_QUERY_CPEID   150
#define ADSI_SWITCH_TO_APP   151
#define ADSI_LOAD_SOFTKEY_TABLE   128 /* Conveniently identical to the soft version */
#define ADSI_LOAD_PREDEF_DISP   129 /* Load predefined display */
#define ADSI_LOAD_SCRIPT   130
#define ADSI_DOWNLOAD_CONNECT   131
#define ADSI_DOWNLOAD_DISC   132
#define ADSI_ENCODED_DTMF   0x80 /* Transmit following chars with encoded dtmf */
#define ADSI_ON_HOOK   0x81 /* Open switch-hook */
#define ADSI_OFF_HOOK   0x82 /* Close switch-hook */
#define ADSI_FLASH   0x83 /* Flash switch-hook */
#define ADSI_DIAL_TONE_DETECT   0x84 /* Wait for dialtone */
#define ADSI_LINE_NUMBER   0x85 /* Send current line number using DTMF/encoded DTMF */
#define ADSI_BLANK   0x86 /* Blank (does nothing) */
#define ADSI_SEND_CHARS   0x87 /* Send collected digits/characters */
#define ADSI_CLEAR_CHARS   0x88 /* Clear characters/digits collected */
#define ADSI_BACKSPACE   0x89 /* Erase last collected digit */
#define ADSI_TAB_COLUMN   0x8A /* Display specified display column of current line */
#define ADSI_GOTO_LINE   0x8B /* Go to given page and line number */
#define ADSI_GOTO_LINE_REL   0x8C /* Go to given line (relative to current) */
#define ADSI_PAGE_UP   0x8D /* Go up one page */
#define ADSI_PAGE_DOWN   0x8E /* Go down one page */
#define ADSI_EXTENDED_DTMF   0x8F /* Send DTMF tones for 250ms instead of 60 ms */
#define ADSI_DELAY   0x90 /* Delay for given # (times 10) of ms */
#define ADSI_DIAL_PULSE_ONE   0x91 /* Send a dial pulse "1" */
#define ADSI_SWITCH_TO_DATA2   0x92 /* Switch CPE to data mode */
#define ADSI_SWITCH_TO_VOICE2   0x93 /* Switch CPE to voice mode */
#define ADSI_DISP_CALL_BUF   0x94 /* Display specified call buffer */
#define ADSI_CLEAR_CALL_B   0x95 /* Clear specified call buffer */
#define ADSI_INFO_PAGE   0x0
#define ADSI_COMM_PAGE   0x1
#define ADSI_KEY_APPS   16 /* 16 to 33 reserved for applications */
#define ADSI_JUST_LEFT   0x2
#define ADSI_JUST_RIGHT   0x1
#define ADSI_JUST_CENT   0x0 /* Center */
#define ADSI_JUST_IND   0x3 /* Indent */
#define ADSI_KEY_SKT   0x80 /* Load from SKT */
#define ADSI_KEY_HILITE   0x40 /* Highlight key */
#define ADSI_DIR_FROM_LEFT   (0)
#define ADSI_DIR_FROM_RIGHT   (1)
#define AST_ADSI_VERSION   1

Functions

int ast_adsi_available (struct ast_channel *chan)
 Returns non-zero if Channel does or might support ADSI.
int ast_adsi_begin_download (struct ast_channel *chan, char *service, unsigned char *fdn, unsigned char *sec, int version)
int ast_adsi_channel_restore (struct ast_channel *chan)
int ast_adsi_clear_screen (unsigned char *buf)
int ast_adsi_clear_soft_keys (unsigned char *buf)
int ast_adsi_connect_session (unsigned char *buf, unsigned char *fdn, int ver)
 Connects an ADSI Display Session.
int ast_adsi_data_mode (unsigned char *buf)
 Puts CPE in data mode.
int ast_adsi_disconnect_session (unsigned char *buf)
 Disconnects a running session.
int ast_adsi_display (unsigned char *buf, int page, int line, int just, int wrap, char *col1, char *col2)
 Loads a line of info into the display.
int ast_adsi_download_connect (unsigned char *buf, char *service, unsigned char *fdn, unsigned char *sec, int ver)
 Begin an ADSI script download.
int ast_adsi_download_disconnect (unsigned char *buf)
 Disconnects (and hopefully saves) a downloaded script.
int ast_adsi_end_download (struct ast_channel *chan)
int ast_adsi_get_cpeid (struct ast_channel *chan, unsigned char *cpeid, int voice)
int ast_adsi_get_cpeinfo (struct ast_channel *chan, int *width, int *height, int *buttons, int voice)
int ast_adsi_input_control (unsigned char *buf, int page, int line, int display, int format, int just)
 Set input information.
int ast_adsi_input_format (unsigned char *buf, int num, int dir, int wrap, char *format1, char *format2)
 Set input format.
void ast_adsi_install_funcs (const struct adsi_funcs *funcs)
int ast_adsi_load_session (struct ast_channel *chan, unsigned char *app, int ver, int data)
 Check if scripts for a given app are already loaded. Version may be -1, if any version is okay, or 0-255 for a specific version.
int ast_adsi_load_soft_key (unsigned char *buf, int key, const char *llabel, const char *slabel, char *ret, int data)
 Creates "load soft key" parameters.
int ast_adsi_print (struct ast_channel *chan, char **lines, int *align, int voice)
 Display some stuff on the screen.
int ast_adsi_query_cpeid (unsigned char *buf)
int ast_adsi_query_cpeinfo (unsigned char *buf)
int ast_adsi_read_encoded_dtmf (struct ast_channel *chan, unsigned char *buf, int maxlen)
int ast_adsi_set_keys (unsigned char *buf, unsigned char *keys)
 Set which soft keys should be displayed.
int ast_adsi_set_line (unsigned char *buf, int page, int line)
 Sets the current line and page.
int ast_adsi_transmit_message (struct ast_channel *chan, unsigned char *msg, int msglen, int msgtype)
int ast_adsi_transmit_message_full (struct ast_channel *chan, unsigned char *msg, int msglen, int msgtype, int dowait)
int ast_adsi_unload_session (struct ast_channel *chan)
int ast_adsi_voice_mode (unsigned char *buf, int when)
 Puts CPE in voice mode.

Detailed Description

ADSI Support (built upon Caller*ID)

Definition in file adsi.h.


Define Documentation

#define ADSI_BACKSPACE   0x89 /* Erase last collected digit */

Definition at line 78 of file adsi.h.

#define ADSI_BLANK   0x86 /* Blank (does nothing) */

Definition at line 75 of file adsi.h.

#define ADSI_CLEAR_CALL_B   0x95 /* Clear specified call buffer */

Definition at line 90 of file adsi.h.

#define ADSI_CLEAR_CALL_BUF   145

Definition at line 53 of file adsi.h.

#define ADSI_CLEAR_CHARS   0x88 /* Clear characters/digits collected */

Definition at line 77 of file adsi.h.

#define ADSI_CLEAR_SCREEN   148

Definition at line 56 of file adsi.h.

Referenced by adsi_clear_screen().

#define ADSI_CLEAR_SOFTKEY   136

Definition at line 44 of file adsi.h.

Referenced by adsi_clear_soft_keys().

#define ADSI_CLEAR_TYPE_AHEAD   143

Definition at line 51 of file adsi.h.

#define ADSI_CONNECT_SESSION   142

Definition at line 50 of file adsi.h.

Referenced by adsi_connect_session().

#define ADSI_DELAY   0x90 /* Delay for given # (times 10) of ms */

Definition at line 85 of file adsi.h.

#define ADSI_DIAL_PULSE_ONE   0x91 /* Send a dial pulse "1" */

Definition at line 86 of file adsi.h.

#define ADSI_DIAL_TONE_DETECT   0x84 /* Wait for dialtone */

Definition at line 73 of file adsi.h.

#define ADSI_DIR_FROM_LEFT   (0)

Definition at line 120 of file adsi.h.

Referenced by adsi_login(), and adsi_password().

#define ADSI_DIR_FROM_RIGHT   (1)

Definition at line 121 of file adsi.h.

#define ADSI_DISC_SESSION   133

Definition at line 41 of file adsi.h.

Referenced by adsi_disconnect_session().

#define ADSI_DISP_CALL_BUF   0x94 /* Display specified call buffer */

Definition at line 89 of file adsi.h.

#define ADSI_DISPLAY_CALL_BUF   144

Definition at line 52 of file adsi.h.

#define ADSI_DOWNLOAD_CONNECT   131

Definition at line 65 of file adsi.h.

Referenced by adsi_download_connect().

#define ADSI_DOWNLOAD_DISC   132

Definition at line 66 of file adsi.h.

Referenced by adsi_download_disconnect().

#define ADSI_ENCODED_DTMF   0x80 /* Transmit following chars with encoded dtmf */

Definition at line 69 of file adsi.h.

#define ADSI_EXTENDED_DTMF   0x8F /* Send DTMF tones for 250ms instead of 60 ms */

Definition at line 84 of file adsi.h.

#define ADSI_FLASH   0x83 /* Flash switch-hook */

Definition at line 72 of file adsi.h.

#define ADSI_GOTO_LINE   0x8B /* Go to given page and line number */

Definition at line 80 of file adsi.h.

#define ADSI_GOTO_LINE_REL   0x8C /* Go to given line (relative to current) */

Definition at line 81 of file adsi.h.

#define ADSI_INFO_PAGE   0x0

Definition at line 106 of file adsi.h.

Referenced by adsi_channel_restore(), adsi_print(), and adsi_prog().

#define ADSI_INFORMATION   132

Definition at line 40 of file adsi.h.

#define ADSI_INIT_SOFTKEY_LINE   129

Definition at line 37 of file adsi.h.

Referenced by adsi_set_keys().

#define ADSI_INPUT_CONTROL   137

Definition at line 45 of file adsi.h.

Referenced by adsi_input_control().

#define ADSI_INPUT_FORMAT   138

Definition at line 46 of file adsi.h.

Referenced by adsi_input_format().

#define ADSI_JUST_IND   0x3 /* Indent */

Definition at line 115 of file adsi.h.

Referenced by str2align().

#define ADSI_JUST_RIGHT   0x1

Definition at line 113 of file adsi.h.

Referenced by str2align().

#define ADSI_KEY_APPS   16 /* 16 to 33 reserved for applications */
#define ADSI_KEY_HILITE   0x40 /* Highlight key */

Definition at line 118 of file adsi.h.

#define ADSI_KEY_SKT   0x80 /* Load from SKT */

Definition at line 117 of file adsi.h.

Referenced by adsi_delete(), adsi_folders(), adsi_message(), adsi_status(), and adsi_status2().

#define ADSI_LINE_CONTROL   131

Definition at line 39 of file adsi.h.

Referenced by adsi_set_line().

#define ADSI_LINE_NUMBER   0x85 /* Send current line number using DTMF/encoded DTMF */

Definition at line 74 of file adsi.h.

#define ADSI_LOAD_DEFAULT   141

Definition at line 49 of file adsi.h.

#define ADSI_LOAD_PREDEF_DISP   129 /* Load predefined display */

Definition at line 63 of file adsi.h.

#define ADSI_LOAD_SCRIPT   130

Definition at line 64 of file adsi.h.

#define ADSI_LOAD_SOFTKEY   128

Definition at line 36 of file adsi.h.

Referenced by adsi_load_soft_key().

#define ADSI_LOAD_SOFTKEY_TABLE   128 /* Conveniently identical to the soft version */

Definition at line 62 of file adsi.h.

#define ADSI_LOAD_VIRTUAL_DISP   130

Definition at line 38 of file adsi.h.

Referenced by adsi_display().

#define ADSI_MOVE_DATA   140

Definition at line 48 of file adsi.h.

#define ADSI_MSG_DOWNLOAD   133

Definition at line 33 of file adsi.h.

Referenced by adsi_begin_download(), adsi_end_download(), adsi_load_vmail(), and adsi_prog().

#define ADSI_OFF_HOOK   0x82 /* Close switch-hook */

Definition at line 71 of file adsi.h.

#define ADSI_ON_HOOK   0x81 /* Open switch-hook */

Definition at line 70 of file adsi.h.

#define ADSI_PAGE_DOWN   0x8E /* Go down one page */

Definition at line 83 of file adsi.h.

#define ADSI_PAGE_UP   0x8D /* Go up one page */

Definition at line 82 of file adsi.h.

#define ADSI_QUERY_CONFIG   149

Definition at line 57 of file adsi.h.

Referenced by adsi_query_cpeinfo().

#define ADSI_QUERY_CPEID   150

Definition at line 58 of file adsi.h.

Referenced by adsi_query_cpeid().

#define ADSI_SEND_CHARS   0x87 /* Send collected digits/characters */

Definition at line 76 of file adsi.h.

#define ADSI_SWITCH_TO_ALT   146

Definition at line 54 of file adsi.h.

#define ADSI_SWITCH_TO_APP   151

Definition at line 59 of file adsi.h.

#define ADSI_SWITCH_TO_DATA   134

Definition at line 42 of file adsi.h.

Referenced by adsi_data_mode(), and adsi_transmit_message_full().

#define ADSI_SWITCH_TO_DATA2   0x92 /* Switch CPE to data mode */

Definition at line 87 of file adsi.h.

Referenced by adsi_load_soft_key().

#define ADSI_SWITCH_TO_GRAPHICS   147

Definition at line 55 of file adsi.h.

#define ADSI_SWITCH_TO_PERIPH   139

Definition at line 47 of file adsi.h.

#define ADSI_SWITCH_TO_VOICE   135

Definition at line 43 of file adsi.h.

Referenced by adsi_transmit_message_full(), and adsi_voice_mode().

#define ADSI_SWITCH_TO_VOICE2   0x93 /* Switch CPE to voice mode */

Definition at line 88 of file adsi.h.

#define ADSI_TAB_COLUMN   0x8A /* Display specified display column of current line */

Definition at line 79 of file adsi.h.

#define AST_ADSI_VERSION   1

Definition at line 123 of file adsi.h.


Function Documentation

int ast_adsi_available ( struct ast_channel chan)

Returns non-zero if Channel does or might support ADSI.

Parameters:
chanChannel to check

Definition at line 263 of file adsi.c.

References ast_rwlock_rdlock, ast_rwlock_unlock, adsi_funcs::available, and func_lock.

Referenced by adsi_begin(), adsi_delete(), adsi_exec(), adsi_folders(), adsi_goodbye(), adsi_login(), adsi_message(), adsi_password(), adsi_status(), adsi_status2(), park_call_full(), vm_newuser(), vm_options(), and vm_tempgreeting().

int ast_adsi_begin_download ( struct ast_channel chan,
char *  service,
unsigned char *  fdn,
unsigned char *  sec,
int  version 
)
int ast_adsi_channel_restore ( struct ast_channel chan)

Restore ADSI initialization (for applications that play with ADSI and want to restore it to normal. If you touch "INFO" then you have to use the ast_adsi_channel_init again instead.

Parameters:
chanChannel to restore
Return values:
0on success (or adsi unavailable)
-1on hangup

Definition at line 54 of file adsi.c.

References ast_rwlock_rdlock, ast_rwlock_unlock, adsi_funcs::channel_restore, and func_lock.

int ast_adsi_clear_screen ( unsigned char *  buf)
int ast_adsi_clear_soft_keys ( unsigned char *  buf)
int ast_adsi_connect_session ( unsigned char *  buf,
unsigned char *  fdn,
int  ver 
)

Connects an ADSI Display Session.

Parameters:
bufCharacter buffer to create parameter in (must have at least 256 free)
fdnOptional 4 byte Feature Download Number (for loading soft keys)
verOptional version number (0-255, or -1 to omit)
Return values:
numberof bytes added to buffer
-1on error.

Definition at line 131 of file adsi.c.

References ast_rwlock_rdlock, ast_rwlock_unlock, adsi_funcs::connect_session, and func_lock.

int ast_adsi_data_mode ( unsigned char *  buf)

Puts CPE in data mode.

Parameters:
bufCharacter buffer to create parameter in (must have at least 256 free)
Return values:
numberof bytes added to buffer
-1on error.

Definition at line 219 of file adsi.c.

References ast_rwlock_rdlock, ast_rwlock_unlock, adsi_funcs::data_mode, and func_lock.

Referenced by adsi_load_vmail().

int ast_adsi_disconnect_session ( unsigned char *  buf)

Disconnects a running session.

Parameters:
bufCharacter buffer to create parameter in (must have at least 256 free)
Return values:
numberof bytes added to buffer
-1on error.

Definition at line 197 of file adsi.c.

References ast_rwlock_rdlock, ast_rwlock_unlock, adsi_funcs::disconnect_session, and func_lock.

int ast_adsi_display ( unsigned char *  buf,
int  page,
int  line,
int  just,
int  wrap,
char *  col1,
char *  col2 
)

Loads a line of info into the display.

Parameters:
bufCharacter buffer to create parameter in (must have at least 256 free)
pagePage to load (ADSI_COMM_PAGE or ADSI_INFO_PAGE)
lineLine number to load (1-4 for Comm page, 1-33 for info page)
justLine justification (ADSI_JUST_LEFT, ADSI_JUST_RIGHT, ADSI_JUST_CENT, ADSI_JUST_IND)
wrapWrap (1 = yes, 0 = no)
col1Text to place in first column
col2Text to place in second column
Return values:
numberof bytes added to buffer
-1on error.

Definition at line 274 of file adsi.c.

References ast_rwlock_rdlock, ast_rwlock_unlock, adsi_funcs::display, and func_lock.

Referenced by adsi_folders(), adsi_goodbye(), adsi_load_vmail(), adsi_login(), adsi_logo(), adsi_message(), adsi_prog(), adsi_status(), adsi_status2(), vm_newuser(), vm_options(), and vm_tempgreeting().

{
   int res = 0;
   ast_rwlock_rdlock(&func_lock);
   if (installed_funcs && installed_funcs->display) {
      res = installed_funcs->display(buf, page, line, just, wrap, col1, col2);
   }
   ast_rwlock_unlock(&func_lock);
   return res;
}
int ast_adsi_download_connect ( unsigned char *  buf,
char *  service,
unsigned char *  fdn,
unsigned char *  sec,
int  ver 
)

Begin an ADSI script download.

Parameters:
bufCharacter buffer to create parameter in (must have at least 256 free)
servicea 1-18 byte name of the feature
fdn4 byte Feature Download Number (for loading soft keys)
sec4 byte vendor security code
verversion number (0-255, or -1 to omit)
Return values:
numberof bytes added to buffer
-1on error.

Definition at line 186 of file adsi.c.

References ast_rwlock_rdlock, ast_rwlock_unlock, adsi_funcs::download_connect, and func_lock.

int ast_adsi_download_disconnect ( unsigned char *  buf)

Disconnects (and hopefully saves) a downloaded script.

Parameters:
bufCharacter buffer to create parameter in (must have at least 256 free)
Return values:
numberof bytes added to buffer
-1on error.

Definition at line 208 of file adsi.c.

References ast_rwlock_rdlock, ast_rwlock_unlock, adsi_funcs::download_disconnect, and func_lock.

Referenced by adsi_load_vmail().

int ast_adsi_end_download ( struct ast_channel chan)
int ast_adsi_get_cpeid ( struct ast_channel chan,
unsigned char *  cpeid,
int  voice 
)

Get CPE ID from an attached ADSI compatible CPE. Returns 1 on success, storing 4 bytes of CPE ID at buf or -1 on hangup, or 0 if there was no hangup but it failed to find the device ID. Returns to voice mode if "voice" is non-zero.

Definition at line 164 of file adsi.c.

References ast_rwlock_rdlock, ast_rwlock_unlock, func_lock, and adsi_funcs::get_cpeid.

Referenced by cpeid_exec().

{
   int res = 0;
   ast_rwlock_rdlock(&func_lock);
   if (installed_funcs && installed_funcs->get_cpeid) {
      res = installed_funcs->get_cpeid(chan, cpeid, voice);
   }
   ast_rwlock_unlock(&func_lock);
   return res;
}
int ast_adsi_get_cpeinfo ( struct ast_channel chan,
int *  width,
int *  height,
int *  buttons,
int  voice 
)

Definition at line 175 of file adsi.c.

References ast_rwlock_rdlock, ast_rwlock_unlock, func_lock, and adsi_funcs::get_cpeinfo.

Referenced by cpeid_exec().

{
   int res = 0;
   ast_rwlock_rdlock(&func_lock);
   if (installed_funcs && installed_funcs->get_cpeinfo) {
      res = installed_funcs->get_cpeinfo(chan, width, height, buttons, voice);
   }
   ast_rwlock_unlock(&func_lock);
   return res;
}
int ast_adsi_input_control ( unsigned char *  buf,
int  page,
int  line,
int  display,
int  format,
int  just 
)

Set input information.

Parameters:
bufCharacter buffer to create parameter in (must have at least 256 free)
pageWhich page to input on (ADSI_COMM_PAGE or ADSI_INFO_PAGE)
lineLine number to input on
displaySet to zero to obscure input, or 1 to leave visible
formatFormat number to use (0-7)
justJustification (left, right center, indent)
Return values:
numberof bytes added to buffer
-1on error.

Definition at line 318 of file adsi.c.

References ast_rwlock_rdlock, ast_rwlock_unlock, func_lock, and adsi_funcs::input_control.

Referenced by adsi_login(), and adsi_password().

{
   int res = 0;
   ast_rwlock_rdlock(&func_lock);
   if (installed_funcs && installed_funcs->input_control) {
      res = installed_funcs->input_control(buf, page, line, display, format, just);
   }
   ast_rwlock_unlock(&func_lock);
   return res;
}
int ast_adsi_input_format ( unsigned char *  buf,
int  num,
int  dir,
int  wrap,
char *  format1,
char *  format2 
)

Set input format.

Parameters:
bufCharacter buffer to create parameter in (must have at least 256 free)
numWhich format we are setting
dirWhich direction (ADSI_DIR_FROM_LEFT or ADSI_DIR_FROM_RIGHT)
wrapSet to 1 to permit line wrap, or 0 if not
format1Format for column 1
format2Format for column 2
Return values:
numberof bytes added to buffer
-1on error.

Definition at line 329 of file adsi.c.

References ast_rwlock_rdlock, ast_rwlock_unlock, func_lock, and adsi_funcs::input_format.

Referenced by adsi_login(), and adsi_password().

{
   int res = 0;
   ast_rwlock_rdlock(&func_lock);
   if (installed_funcs && installed_funcs->input_format) {
      res = installed_funcs->input_format(buf, num, dir, wrap, format1, format2);
   }
   ast_rwlock_unlock(&func_lock);
   return res;
}
void ast_adsi_install_funcs ( const struct adsi_funcs funcs)

Definition at line 340 of file adsi.c.

References ast_log(), ast_rwlock_unlock, ast_rwlock_wrlock, current_adsi_version, func_lock, LOG_WARNING, and adsi_funcs::version.

Referenced by load_module(), and unload_module().

{
   if (funcs && funcs->version < current_adsi_version) {
      ast_log(LOG_WARNING, "Cannot install ADSI function pointers due to version mismatch."
            "Ours: %u, Theirs: %u\n", current_adsi_version, funcs->version);
      return;
   }

   ast_rwlock_wrlock(&func_lock);
   installed_funcs = funcs;
   ast_rwlock_unlock(&func_lock);
}
int ast_adsi_load_session ( struct ast_channel chan,
unsigned char *  app,
int  ver,
int  data 
)

Check if scripts for a given app are already loaded. Version may be -1, if any version is okay, or 0-255 for a specific version.

Parameters:
chanChannel to test for loaded app
appFour character app name (must be unique to your application)
veroptional version number
dataNon-zero if you want to be put in data mode
Return values:
0if scripts is not loaded or not an ADSI CPE
-1on hangup
1if script already loaded.

Definition at line 76 of file adsi.c.

References ast_rwlock_rdlock, ast_rwlock_unlock, func_lock, and adsi_funcs::load_session.

Referenced by adsi_announce_park(), adsi_begin(), adsi_load_vmail(), adsi_prog(), and cpeid_exec().

{
   int res = 0;
   ast_rwlock_rdlock(&func_lock);
   if (installed_funcs && installed_funcs->load_session) {
      res = installed_funcs->load_session(chan, app, ver, data);
   }
   ast_rwlock_unlock(&func_lock);
   return res;
}
int ast_adsi_load_soft_key ( unsigned char *  buf,
int  key,
const char *  llabel,
const char *  slabel,
char *  ret,
int  data 
)

Creates "load soft key" parameters.

Parameters:
bufCharacter buffer to create parameter in (must have at least 256 free)
keyKey code from 2 to 33, for which key we are loading
llabelLong label for key (1-18 bytes)
slabelShort label for key (1-7 bytes)
retOptional return sequence (NULL for none)
datawhether to put CPE in data mode before sending digits
Return values:
numberof bytes added to buffer
-1on error.

Definition at line 296 of file adsi.c.

References ast_rwlock_rdlock, ast_rwlock_unlock, func_lock, and adsi_funcs::load_soft_key.

Referenced by adsi_load_vmail(), and adsi_login().

{
   int res = 0;
   ast_rwlock_rdlock(&func_lock);
   if (installed_funcs && installed_funcs->load_soft_key) {
      res = installed_funcs->load_soft_key(buf, key, llabel, slabel, ret, data);
   }
   ast_rwlock_unlock(&func_lock);
   return res;
}
int ast_adsi_print ( struct ast_channel chan,
char **  lines,
int *  align,
int  voice 
)

Display some stuff on the screen.

Parameters:
chanChannel to display on
linesNULL-terminated list of things to print (no more than 4 recommended)
alignlist of alignments to use (ADSI_JUST_LEFT, ADSI_JUST_RIGHT, ADSI_JUST_CEN, etc..)
voicewhether to jump into voice mode when finished
Return values:
0on success (or adsi unavailable)
-1on hangup

Definition at line 65 of file adsi.c.

References ast_rwlock_rdlock, ast_rwlock_unlock, func_lock, and adsi_funcs::print.

Referenced by adsi_announce_park(), and cpeid_setstatus().

{
   int res = 0;
   ast_rwlock_rdlock(&func_lock);
   if (installed_funcs && installed_funcs->print) {
      res = installed_funcs->print(chan, lines, align, voice);
   }
   ast_rwlock_unlock(&func_lock);
   return res;
}
int ast_adsi_query_cpeid ( unsigned char *  buf)

Build Query CPE ID of equipment. Returns number of bytes added to message

Definition at line 142 of file adsi.c.

References ast_rwlock_rdlock, ast_rwlock_unlock, func_lock, and adsi_funcs::query_cpeid.

int ast_adsi_query_cpeinfo ( unsigned char *  buf)
int ast_adsi_read_encoded_dtmf ( struct ast_channel chan,
unsigned char *  buf,
int  maxlen 
)

Read some encoded DTMF data. Returns number of bytes received

Definition at line 120 of file adsi.c.

References ast_rwlock_rdlock, ast_rwlock_unlock, func_lock, and adsi_funcs::read_encoded_dtmf.

int ast_adsi_set_keys ( unsigned char *  buf,
unsigned char *  keys 
)

Set which soft keys should be displayed.

Parameters:
bufCharacter buffer to create parameter in (must have at least 256 free)
keysArray of 8 unsigned chars with the key numbers, may be OR'd with ADSI_KEY_HILITE But remember, the last two keys aren't real keys, they're for scrolling
Return values:
numberof bytes added to buffer
-1on error.

Definition at line 307 of file adsi.c.

References ast_rwlock_rdlock, ast_rwlock_unlock, func_lock, and adsi_funcs::set_keys.

Referenced by adsi_delete(), adsi_folders(), adsi_login(), adsi_message(), adsi_password(), adsi_status(), and adsi_status2().

int ast_adsi_set_line ( unsigned char *  buf,
int  page,
int  line 
)

Sets the current line and page.

Parameters:
bufCharacter buffer to create parameter in (must have at least 256 free)
pageWhich page (ADSI_COMM_PAGE or ADSI_INFO_PAGE)
lineLine number (1-33 for info page, 1-4 for comm page)
Return values:
numberof bytes added to buffer
-1on error.

Definition at line 285 of file adsi.c.

References ast_rwlock_rdlock, ast_rwlock_unlock, func_lock, and adsi_funcs::set_line.

Referenced by adsi_folders(), adsi_goodbye(), adsi_load_vmail(), adsi_login(), adsi_message(), adsi_password(), adsi_prog(), adsi_status(), adsi_status2(), vm_newuser(), vm_options(), and vm_tempgreeting().

{
   int res = 0;
   ast_rwlock_rdlock(&func_lock);
   if (installed_funcs && installed_funcs->set_line) {
      res = installed_funcs->set_line(buf, page, line);
   }
   ast_rwlock_unlock(&func_lock);
   return res;
}
int ast_adsi_transmit_message_full ( struct ast_channel chan,
unsigned char *  msg,
int  msglen,
int  msgtype,
int  dowait 
)

Definition at line 109 of file adsi.c.

References ast_rwlock_rdlock, ast_rwlock_unlock, func_lock, and adsi_funcs::transmit_message_full.

{
   int res = 0;
   ast_rwlock_rdlock(&func_lock);
   if (installed_funcs && installed_funcs->transmit_message_full) {
      res = installed_funcs->transmit_message_full(chan, msg, msglen, msgtype, dowait);
   }
   ast_rwlock_unlock(&func_lock);
   return res;
}
int ast_adsi_voice_mode ( unsigned char *  buf,
int  when 
)

Puts CPE in voice mode.

Parameters:
bufCharacter buffer to create parameter in (must have at least 256 free)
when(a time in seconds) to make the switch
Return values:
numberof bytes added to buffer
-1on error.

Definition at line 252 of file adsi.c.

References ast_rwlock_rdlock, ast_rwlock_unlock, func_lock, and adsi_funcs::voice_mode.

Referenced by adsi_delete(), adsi_folders(), adsi_goodbye(), adsi_load_vmail(), adsi_login(), adsi_message(), adsi_password(), adsi_status(), adsi_status2(), vm_newuser(), vm_options(), and vm_tempgreeting().