Wed Jan 8 2020 09:49:53

Asterisk developer's documentation


app_ivrdemo.c File Reference

IVR Demo application. More...

#include "asterisk.h"
#include "asterisk/file.h"
#include "asterisk/channel.h"
#include "asterisk/pbx.h"
#include "asterisk/module.h"
#include "asterisk/lock.h"
#include "asterisk/app.h"

Go to the source code of this file.

Functions

static void __reg_module (void)
 
static void __unreg_module (void)
 
static int ivr_demo_func (struct ast_channel *chan, void *data)
 
static int load_module (void)
 
static int skel_exec (struct ast_channel *chan, const char *data)
 
static int unload_module (void)
 

Variables

static struct ast_module_info __mod_info = { .name = AST_MODULE, .flags = AST_MODFLAG_LOAD_ORDER , .description = "IVR Demo Application" , .key = "This paragraph is copyright (c) 2006 by Digium, Inc. \In order for your module to load, it must return this \key via a function called \"key\". Any code which \includes this paragraph must be licensed under the GNU \General Public License version 2 or later (at your \option). In addition to Digium's general reservations \of rights, Digium expressly reserves the right to \allow other parties to license this paragraph under \different terms. Any use of Digium, Inc. trademarks or \logos (including \"Asterisk\" or \"Digium\") without \express written permission of Digium, Inc. is prohibited.\n" , .buildopt_sum = "ac1f6a56484a8820659555499174e588" , .load = load_module, .unload = unload_module, .load_pri = AST_MODPRI_DEFAULT, }
 
static struct ast_ivr_option __options_ivr_demo [] = { { "s", AST_ACTION_BACKGROUND, "demo-congrats" }, { "g", AST_ACTION_BACKGROUND, "demo-instruct" }, { "g", AST_ACTION_WAITOPTION }, { "1", AST_ACTION_PLAYBACK, "digits/1" }, { "1", AST_ACTION_RESTART }, { "2", AST_ACTION_MENU, &ivr_submenu }, { "2", AST_ACTION_RESTART }, { "i", AST_ACTION_PLAYBACK, "invalid" }, { "i", AST_ACTION_REPEAT, (void *)(unsigned long)2 }, { "#", AST_ACTION_EXIT }, { NULL }, }
 
static struct ast_ivr_option __options_ivr_submenu [] = { { "s", AST_ACTION_BACKGROUND, "demo-abouttotry" }, { "s", AST_ACTION_WAITOPTION }, { "1", AST_ACTION_PLAYBACK, "digits/1" }, { "1", AST_ACTION_PLAYBACK, "digits/1" }, { "1", AST_ACTION_RESTART }, { "2", AST_ACTION_PLAYLIST, "digits/2;digits/3" }, { "3", AST_ACTION_CALLBACK, ivr_demo_func }, { "4", AST_ACTION_TRANSFER, "demo|s|1" }, { "*", AST_ACTION_REPEAT }, { "#", AST_ACTION_UPONE }, { NULL } }
 
static char * app = "IVRDemo"
 
static struct ast_module_infoast_module_info = &__mod_info
 
static struct ast_ivr_menu ivr_demo = { "IVR Demo Main Menu" , 0 , __options_ivr_demo }
 
static struct ast_ivr_menu ivr_submenu = { "IVR Demo Sub Menu" , 0 , __options_ivr_submenu }
 

Detailed Description

IVR Demo application.

Author
Mark Spencer marks.nosp@m.ter@.nosp@m.digiu.nosp@m.m.co.nosp@m.m

Definition in file app_ivrdemo.c.

Function Documentation

static void __reg_module ( void  )
static

Definition at line 129 of file app_ivrdemo.c.

static void __unreg_module ( void  )
static

Definition at line 129 of file app_ivrdemo.c.

static int ivr_demo_func ( struct ast_channel chan,
void *  data 
)
static

Definition at line 61 of file app_ivrdemo.c.

References ast_verbose().

62 {
63  ast_verbose("IVR Demo, data is %s!\n", (char *) data);
64  return 0;
65 }
void ast_verbose(const char *fmt,...)
Definition: logger.c:1568
union ast_frame::@172 data
static int load_module ( void  )
static

Definition at line 124 of file app_ivrdemo.c.

References ast_register_application_xml, and skel_exec().

125 {
127 }
static char * app
Definition: app_ivrdemo.c:59
static int skel_exec(struct ast_channel *chan, const char *data)
Definition: app_ivrdemo.c:97
#define ast_register_application_xml(app, execute)
Register an application using XML documentation.
Definition: module.h:437
static int skel_exec ( struct ast_channel chan,
const char *  data 
)
static

Definition at line 97 of file app_ivrdemo.c.

References ast_channel::_state, ast_answer(), ast_ivr_menu_run(), ast_log(), AST_STATE_UP, ast_strdupa, ast_strlen_zero(), ivr_demo, and LOG_WARNING.

Referenced by load_module().

98 {
99  int res=0;
100  char *tmp;
101 
102  if (ast_strlen_zero(data)) {
103  ast_log(LOG_WARNING, "skel requires an argument (filename)\n");
104  return -1;
105  }
106 
107  tmp = ast_strdupa(data);
108 
109  /* Do our thing here */
110 
111  if (chan->_state != AST_STATE_UP)
112  res = ast_answer(chan);
113  if (!res)
114  res = ast_ivr_menu_run(chan, &ivr_demo, tmp);
115 
116  return res;
117 }
#define LOG_WARNING
Definition: logger.h:144
static force_inline int attribute_pure ast_strlen_zero(const char *s)
Definition: strings.h:63
#define ast_strdupa(s)
duplicate a string in memory from the stack
Definition: utils.h:663
enum ast_channel_state _state
Definition: channel.h:839
void ast_log(int level, const char *file, int line, const char *function, const char *fmt,...)
Used for sending a log message This is the standard logger function. Probably the only way you will i...
Definition: logger.c:1207
int ast_ivr_menu_run(struct ast_channel *c, struct ast_ivr_menu *menu, void *cbdata)
Runs an IVR menu.
Definition: app.c:1980
int ast_answer(struct ast_channel *chan)
Answer a channel.
Definition: channel.c:3086
static struct ast_ivr_menu ivr_demo
Definition: app_ivrdemo.c:95
union ast_frame::@172 data
static int unload_module ( void  )
static

Definition at line 119 of file app_ivrdemo.c.

References ast_unregister_application().

120 {
122 }
static char * app
Definition: app_ivrdemo.c:59
int ast_unregister_application(const char *app)
Unregister an application.
Definition: pbx.c:7705

Variable Documentation

struct ast_module_info __mod_info = { .name = AST_MODULE, .flags = AST_MODFLAG_LOAD_ORDER , .description = "IVR Demo Application" , .key = "This paragraph is copyright (c) 2006 by Digium, Inc. \In order for your module to load, it must return this \key via a function called \"key\". Any code which \includes this paragraph must be licensed under the GNU \General Public License version 2 or later (at your \option). In addition to Digium's general reservations \of rights, Digium expressly reserves the right to \allow other parties to license this paragraph under \different terms. Any use of Digium, Inc. trademarks or \logos (including \"Asterisk\" or \"Digium\") without \express written permission of Digium, Inc. is prohibited.\n" , .buildopt_sum = "ac1f6a56484a8820659555499174e588" , .load = load_module, .unload = unload_module, .load_pri = AST_MODPRI_DEFAULT, }
static

Definition at line 129 of file app_ivrdemo.c.

struct ast_ivr_option __options_ivr_demo[] = { { "s", AST_ACTION_BACKGROUND, "demo-congrats" }, { "g", AST_ACTION_BACKGROUND, "demo-instruct" }, { "g", AST_ACTION_WAITOPTION }, { "1", AST_ACTION_PLAYBACK, "digits/1" }, { "1", AST_ACTION_RESTART }, { "2", AST_ACTION_MENU, &ivr_submenu }, { "2", AST_ACTION_RESTART }, { "i", AST_ACTION_PLAYBACK, "invalid" }, { "i", AST_ACTION_REPEAT, (void *)(unsigned long)2 }, { "#", AST_ACTION_EXIT }, { NULL }, }
static

Definition at line 95 of file app_ivrdemo.c.

struct ast_ivr_option __options_ivr_submenu[] = { { "s", AST_ACTION_BACKGROUND, "demo-abouttotry" }, { "s", AST_ACTION_WAITOPTION }, { "1", AST_ACTION_PLAYBACK, "digits/1" }, { "1", AST_ACTION_PLAYBACK, "digits/1" }, { "1", AST_ACTION_RESTART }, { "2", AST_ACTION_PLAYLIST, "digits/2;digits/3" }, { "3", AST_ACTION_CALLBACK, ivr_demo_func }, { "4", AST_ACTION_TRANSFER, "demo|s|1" }, { "*", AST_ACTION_REPEAT }, { "#", AST_ACTION_UPONE }, { NULL } }
static

Definition at line 80 of file app_ivrdemo.c.

char* app = "IVRDemo"
static

Definition at line 59 of file app_ivrdemo.c.

Definition at line 129 of file app_ivrdemo.c.

struct ast_ivr_menu ivr_demo = { "IVR Demo Main Menu" , 0 , __options_ivr_demo }
static

Definition at line 95 of file app_ivrdemo.c.

Referenced by skel_exec().

struct ast_ivr_menu ivr_submenu = { "IVR Demo Sub Menu" , 0 , __options_ivr_submenu }
static

Definition at line 80 of file app_ivrdemo.c.