Asterisk - The Open Source Telephony Project GIT-master-f36a736
Functions | Variables
adsi.c File Reference

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

#include "asterisk.h"
#include "asterisk/adsi.h"
#include "asterisk/lock.h"
Include dependency graph for adsi.c:

Go to the source code of this file.

Functions

int ast_adsi_available (struct ast_channel *chan)
 Returns non-zero if Channel does or might support ADSI. More...
 
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. More...
 
int ast_adsi_data_mode (unsigned char *buf)
 Puts CPE in data mode. More...
 
int ast_adsi_disconnect_session (unsigned char *buf)
 Disconnects a running session. More...
 
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. More...
 
int ast_adsi_download_connect (unsigned char *buf, char *service, unsigned char *fdn, unsigned char *sec, int ver)
 Begin an ADSI script download. More...
 
int ast_adsi_download_disconnect (unsigned char *buf)
 Disconnects (and hopefully saves) a downloaded script. More...
 
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. More...
 
int ast_adsi_input_format (unsigned char *buf, int num, int dir, int wrap, char *format1, char *format2)
 Set input format. More...
 
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. More...
 
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. More...
 
int ast_adsi_print (struct ast_channel *chan, char **lines, int *align, int voice)
 Display some stuff on the screen. More...
 
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. More...
 
int ast_adsi_set_line (unsigned char *buf, int page, int line)
 Sets the current line and page. More...
 
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. More...
 

Variables

static const int current_adsi_version = AST_ADSI_VERSION
 
static ast_rwlock_t func_lock = { PTHREAD_RWLOCK_INITIALIZER , NULL, {1, 0} }
 
static const struct adsi_funcsinstalled_funcs
 

Detailed Description

ADSI Support (built upon Caller*ID)

Definition in file adsi.c.

Function Documentation

◆ ast_adsi_available()

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.

264{
265 int res = 0;
268 res = installed_funcs->available(chan);
269 }
271 return res;
272}
static ast_rwlock_t func_lock
Definition: adsi.c:30
static const struct adsi_funcs * installed_funcs
Definition: adsi.c:28
#define ast_rwlock_rdlock(a)
Definition: lock.h:235
#define ast_rwlock_unlock(a)
Definition: lock.h:234
int(* available)(struct ast_channel *chan)
Definition: adsi.h:368

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

Referenced by adsi_begin(), adsi_delete(), adsi_exec(), adsi_folders(), adsi_goodbye(), adsi_login(), adsi_message(), adsi_password(), adsi_status(), adsi_status2(), AST_TEST_DEFINE(), directory_exec(), vm_newuser_setup(), vm_options(), and vm_tempgreeting().

◆ ast_adsi_begin_download()

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

Definition at line 32 of file adsi.c.

33{
34 int res = 0;
37 res = installed_funcs->begin_download(chan, service, fdn, sec, version);
38 }
40 return res;
41}
enum ast_cc_service_type service
Definition: ccss.c:383
static char version[AST_MAX_EXTENSION]
Definition: chan_ooh323.c:391
int(* begin_download)(struct ast_channel *chan, char *service, unsigned char *fdn, unsigned char *sec, int version)
Definition: adsi.h:347

References ast_rwlock_rdlock, ast_rwlock_unlock, adsi_funcs::begin_download, func_lock, installed_funcs, service, and version.

Referenced by adsi_load_vmail(), and adsi_prog().

◆ ast_adsi_channel_restore()

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.

55{
56 int res = 0;
60 }
62 return res;
63}
int(* channel_restore)(struct ast_channel *chan)
Definition: adsi.h:349

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

◆ ast_adsi_clear_screen()

int ast_adsi_clear_screen ( unsigned char *  buf)

Definition at line 241 of file adsi.c.

242{
243 int res = 0;
247 }
249 return res;
250}
char buf[BUFSIZE]
Definition: eagi_proxy.c:66
int(* clear_screen)(unsigned char *buf)
Definition: adsi.h:366

References ast_rwlock_rdlock, ast_rwlock_unlock, buf, adsi_funcs::clear_screen, func_lock, and installed_funcs.

◆ ast_adsi_clear_soft_keys()

int ast_adsi_clear_soft_keys ( unsigned char *  buf)

Definition at line 230 of file adsi.c.

231{
232 int res = 0;
236 }
238 return res;
239}
int(* clear_soft_keys)(unsigned char *buf)
Definition: adsi.h:365

References ast_rwlock_rdlock, ast_rwlock_unlock, buf, adsi_funcs::clear_soft_keys, func_lock, and installed_funcs.

◆ ast_adsi_connect_session()

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.

132{
133 int res = 0;
136 res = installed_funcs->connect_session(buf, fdn, ver);
137 }
139 return res;
140}
int(* connect_session)(unsigned char *buf, unsigned char *fdn, int ver)
Definition: adsi.h:356

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

◆ ast_adsi_data_mode()

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.

220{
221 int res = 0;
225 }
227 return res;
228}
int(* data_mode)(unsigned char *buf)
Definition: adsi.h:364

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

Referenced by adsi_load_vmail().

◆ ast_adsi_disconnect_session()

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.

198{
199 int res = 0;
203 }
205 return res;
206}
int(* disconnect_session)(unsigned char *buf)
Definition: adsi.h:362

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

◆ ast_adsi_display()

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.

275{
276 int res = 0;
279 res = installed_funcs->display(buf, page, line, just, wrap, col1, col2);
280 }
282 return res;
283}
int(* display)(unsigned char *buf, int page, int line, int just, int wrap, char *col1, char *col2)
Definition: adsi.h:369

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

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

◆ ast_adsi_download_connect()

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.

187{
188 int res = 0;
191 res = installed_funcs->download_connect(buf, service, fdn, sec, ver);
192 }
194 return res;
195}
int(* download_connect)(unsigned char *buf, char *service, unsigned char *fdn, unsigned char *sec, int ver)
Definition: adsi.h:361

References ast_rwlock_rdlock, ast_rwlock_unlock, buf, adsi_funcs::download_connect, func_lock, installed_funcs, and service.

◆ ast_adsi_download_disconnect()

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.

209{
210 int res = 0;
214 }
216 return res;
217}
int(* download_disconnect)(unsigned char *buf)
Definition: adsi.h:363

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

Referenced by adsi_load_vmail().

◆ ast_adsi_end_download()

int ast_adsi_end_download ( struct ast_channel chan)

Definition at line 43 of file adsi.c.

44{
45 int res = 0;
48 res = installed_funcs->end_download(chan);
49 }
51 return res;
52}
int(* end_download)(struct ast_channel *chan)
Definition: adsi.h:348

References ast_rwlock_rdlock, ast_rwlock_unlock, adsi_funcs::end_download, func_lock, and installed_funcs.

Referenced by adsi_load_vmail(), and adsi_prog().

◆ ast_adsi_get_cpeid()

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.

165{
166 int res = 0;
169 res = installed_funcs->get_cpeid(chan, cpeid, voice);
170 }
172 return res;
173}
int(* get_cpeid)(struct ast_channel *chan, unsigned char *cpeid, int voice)
Definition: adsi.h:359

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

Referenced by cpeid_exec().

◆ ast_adsi_get_cpeinfo()

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.

176{
177 int res = 0;
180 res = installed_funcs->get_cpeinfo(chan, width, height, buttons, voice);
181 }
183 return res;
184}
int(* get_cpeinfo)(struct ast_channel *chan, int *width, int *height, int *buttons, int voice)
Definition: adsi.h:360

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

Referenced by cpeid_exec().

◆ ast_adsi_input_control()

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.

319{
320 int res = 0;
323 res = installed_funcs->input_control(buf, page, line, display, format, just);
324 }
326 return res;
327}
int(* input_control)(unsigned char *buf, int page, int line, int display, int format, int just)
Definition: adsi.h:373

References ast_rwlock_rdlock, ast_rwlock_unlock, buf, adsi_funcs::display, func_lock, adsi_funcs::input_control, and installed_funcs.

Referenced by adsi_login(), adsi_password(), and adsi_search_input().

◆ ast_adsi_input_format()

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.

330{
331 int res = 0;
334 res = installed_funcs->input_format(buf, num, dir, wrap, format1, format2);
335 }
337 return res;
338}
int(* input_format)(unsigned char *buf, int num, int dir, int wrap, char *format1, char *format2)
Definition: adsi.h:374

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

Referenced by adsi_login(), adsi_password(), and adsi_search_input().

◆ ast_adsi_install_funcs()

void ast_adsi_install_funcs ( const struct adsi_funcs funcs)

Definition at line 340 of file adsi.c.

341{
342 if (funcs && funcs->version < current_adsi_version) {
343 ast_log(LOG_WARNING, "Cannot install ADSI function pointers due to version mismatch."
344 "Ours: %d, Theirs: %u\n", current_adsi_version, funcs->version);
345 return;
346 }
347
349 installed_funcs = funcs;
351}
static const int current_adsi_version
Definition: adsi.c:29
#define ast_log
Definition: astobj2.c:42
#define LOG_WARNING
#define ast_rwlock_wrlock(a)
Definition: lock.h:236
unsigned int version
Definition: adsi.h:346

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

Referenced by load_module(), and unload_module().

◆ ast_adsi_load_session()

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.

77{
78 int res = 0;
81 res = installed_funcs->load_session(chan, app, ver, data);
82 }
84 return res;
85}
static const char app[]
Definition: app_adsiprog.c:56
int(* load_session)(struct ast_channel *chan, unsigned char *app, int ver, int data)
Definition: adsi.h:351

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

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

◆ ast_adsi_load_soft_key()

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.

297{
298 int res = 0;
301 res = installed_funcs->load_soft_key(buf, key, llabel, slabel, ret, data);
302 }
304 return res;
305}
int(* load_soft_key)(unsigned char *buf, int key, const char *llabel, const char *slabel, char *ret, int data)
Definition: adsi.h:371

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

Referenced by adsi_confirm_match(), adsi_load_vmail(), adsi_login(), and adsi_search_input().

◆ ast_adsi_print()

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.

66{
67 int res = 0;
70 res = installed_funcs->print(chan, lines, align, voice);
71 }
73 return res;
74}
int(* print)(struct ast_channel *chan, char **lines, int *align, int voice)
Definition: adsi.h:350

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

Referenced by cpeid_setstatus().

◆ ast_adsi_query_cpeid()

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.

143{
144 int res = 0;
148 }
150 return res;
151}
int(* query_cpeid)(unsigned char *buf)
Definition: adsi.h:357

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

◆ ast_adsi_query_cpeinfo()

int ast_adsi_query_cpeinfo ( unsigned char *  buf)

Definition at line 153 of file adsi.c.

154{
155 int res = 0;
159 }
161 return res;
162}
int(* query_cpeinfo)(unsigned char *buf)
Definition: adsi.h:358

References ast_rwlock_rdlock, ast_rwlock_unlock, buf, func_lock, installed_funcs, and adsi_funcs::query_cpeinfo.

◆ ast_adsi_read_encoded_dtmf()

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.

121{
122 int res = 0;
125 res = installed_funcs->read_encoded_dtmf(chan, buf, maxlen);
126 }
128 return res;
129}
int(* read_encoded_dtmf)(struct ast_channel *chan, unsigned char *buf, int maxlen)
Definition: adsi.h:355

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

◆ ast_adsi_set_keys()

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.

308{
309 int res = 0;
313 }
315 return res;
316}
int(* set_keys)(unsigned char *buf, unsigned char *keys)
Definition: adsi.h:372

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

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

◆ ast_adsi_set_line()

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.

286{
287 int res = 0;
290 res = installed_funcs->set_line(buf, page, line);
291 }
293 return res;
294}
int(* set_line)(unsigned char *buf, int page, int line)
Definition: adsi.h:370

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

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

◆ ast_adsi_transmit_message()

int ast_adsi_transmit_message ( struct ast_channel chan,
unsigned char *  msg,
int  msglen,
int  msgtype 
)

Definition at line 98 of file adsi.c.

99{
100 int res = 0;
103 res = installed_funcs->transmit_message(chan, msg, msglen, msgtype);
104 }
106 return res;
107}
int(* transmit_message)(struct ast_channel *chan, unsigned char *msg, int msglen, int msgtype)
Definition: adsi.h:353

References ast_rwlock_rdlock, ast_rwlock_unlock, func_lock, installed_funcs, and adsi_funcs::transmit_message.

Referenced by adsi_confirm_match(), adsi_delete(), adsi_folders(), adsi_goodbye(), adsi_load_vmail(), adsi_login(), adsi_message(), adsi_password(), adsi_prog(), adsi_search_input(), adsi_status(), adsi_status2(), vm_newuser_setup(), vm_options(), and vm_tempgreeting().

◆ ast_adsi_transmit_message_full()

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.

110{
111 int res = 0;
114 res = installed_funcs->transmit_message_full(chan, msg, msglen, msgtype, dowait);
115 }
117 return res;
118}
int(* transmit_message_full)(struct ast_channel *chan, unsigned char *msg, int msglen, int msgtype, int dowait)
Definition: adsi.h:354

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

◆ ast_adsi_unload_session()

int ast_adsi_unload_session ( struct ast_channel chan)

Definition at line 87 of file adsi.c.

88{
89 int res = 0;
93 }
95 return res;
96}
int(* unload_session)(struct ast_channel *chan)
Definition: adsi.h:352

References ast_rwlock_rdlock, ast_rwlock_unlock, func_lock, installed_funcs, and adsi_funcs::unload_session.

Referenced by adsi_prog(), cpeid_exec(), and vm_execmain().

◆ ast_adsi_voice_mode()

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.

253{
254 int res = 0;
257 res = installed_funcs->voice_mode(buf, when);
258 }
260 return res;
261}
int(* voice_mode)(unsigned char *buf, int when)
Definition: adsi.h:367

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

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

Variable Documentation

◆ current_adsi_version

const int current_adsi_version = AST_ADSI_VERSION
static

Definition at line 29 of file adsi.c.

Referenced by ast_adsi_install_funcs().

◆ func_lock

ast_rwlock_t func_lock = { PTHREAD_RWLOCK_INITIALIZER , NULL, {1, 0} }
static

◆ installed_funcs

const struct adsi_funcs* installed_funcs
static