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"

Include dependency graph for app_ivrdemo.c:

Go to the source code of this file.

Functions

 AST_MODULE_INFO_STANDARD_EXTENDED (ASTERISK_GPL_KEY,"IVR Demo Application")
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_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_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 <markster@digium.com>

Definition in file app_ivrdemo.c.


Function Documentation

AST_MODULE_INFO_STANDARD_EXTENDED ( ASTERISK_GPL_KEY  ,
"IVR Demo Application"   
)

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

Definition at line 61 of file app_ivrdemo.c.

References ast_verbose.

00062 {
00063    ast_verbose("IVR Demo, data is %s!\n", (char *) data);
00064    return 0;
00065 }

static int load_module ( void   )  [static]

Definition at line 124 of file app_ivrdemo.c.

References ast_register_application_xml, and skel_exec().

00125 {
00126    return ast_register_application_xml(app, skel_exec);
00127 }

static int skel_exec ( struct ast_channel chan,
const char *  data 
) [static]

Definition at line 97 of file app_ivrdemo.c.

References ast_answer(), ast_ivr_menu_run(), ast_log, AST_STATE_UP, ast_strdupa, ast_strlen_zero, ivr_demo, LOG_WARNING, and tmp().

Referenced by load_module().

00098 {
00099    int res=0;
00100    char *tmp;
00101    
00102    if (ast_strlen_zero(data)) {
00103       ast_log(LOG_WARNING, "skel requires an argument (filename)\n");
00104       return -1;
00105    }
00106    
00107    tmp = ast_strdupa(data);
00108 
00109    /* Do our thing here */
00110 
00111    if (ast_channel_state(chan) != AST_STATE_UP)
00112       res = ast_answer(chan);
00113    if (!res)
00114       res = ast_ivr_menu_run(chan, &ivr_demo, tmp);
00115    
00116    return res;
00117 }

static int unload_module ( void   )  [static]

Definition at line 119 of file app_ivrdemo.c.

References ast_unregister_application().

00120 {
00121    return ast_unregister_application(app);
00122 }


Variable Documentation

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.

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.


Generated on Thu Apr 16 06:28:30 2015 for Asterisk - The Open Source Telephony Project by  doxygen 1.5.6