Fri Aug 17 00:17:23 2018

Asterisk developer's documentation


app_userevent.c File Reference

UserEvent application -- send manager event. More...

#include "asterisk.h"
#include "asterisk/pbx.h"
#include "asterisk/module.h"
#include "asterisk/manager.h"
#include "asterisk/app.h"

Go to the source code of this file.

Functions

 AST_MODULE_INFO_STANDARD (ASTERISK_GPL_KEY,"Custom User Event Application")
static int load_module (void)
static int unload_module (void)
static int userevent_exec (struct ast_channel *chan, const char *data)

Variables

static char * app = "UserEvent"

Detailed Description

UserEvent application -- send manager event.

Definition in file app_userevent.c.


Function Documentation

AST_MODULE_INFO_STANDARD ( ASTERISK_GPL_KEY  ,
"Custom User Event Application"   
)
static int load_module ( void   )  [static]

Definition at line 103 of file app_userevent.c.

References ast_register_application_xml, and userevent_exec().

00104 {
00105    return ast_register_application_xml(app, userevent_exec);
00106 }

static int unload_module ( void   )  [static]

Definition at line 98 of file app_userevent.c.

References ast_unregister_application().

00099 {
00100    return ast_unregister_application(app);
00101 }

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

Definition at line 63 of file app_userevent.c.

References args, AST_APP_ARG, AST_DECLARE_APP_ARGS, ast_free, ast_log(), AST_STANDARD_APP_ARGS, ast_str_append(), ast_str_buffer(), ast_str_create(), ast_strdupa, ast_strlen_zero(), EVENT_FLAG_USER, LOG_WARNING, manager_event, and parse().

Referenced by load_module().

00064 {
00065    char *parse;
00066    int x;
00067    AST_DECLARE_APP_ARGS(args,
00068       AST_APP_ARG(eventname);
00069       AST_APP_ARG(extra)[100];
00070    );
00071    struct ast_str *body = ast_str_create(16);
00072 
00073    if (ast_strlen_zero(data)) {
00074       ast_log(LOG_WARNING, "UserEvent requires an argument (eventname,optional event body)\n");
00075       ast_free(body);
00076       return -1;
00077    }
00078 
00079    if (!body) {
00080       ast_log(LOG_WARNING, "Unable to allocate buffer\n");
00081       return -1;
00082    }
00083 
00084    parse = ast_strdupa(data);
00085 
00086    AST_STANDARD_APP_ARGS(args, parse);
00087 
00088    for (x = 0; x < args.argc - 1; x++) {
00089       ast_str_append(&body, 0, "%s\r\n", args.extra[x]);
00090    }
00091 
00092    manager_event(EVENT_FLAG_USER, "UserEvent", "UserEvent: %s\r\n%s", args.eventname, ast_str_buffer(body));
00093    ast_free(body);
00094 
00095    return 0;
00096 }


Variable Documentation

char* app = "UserEvent" [static]

Definition at line 61 of file app_userevent.c.


Generated on 17 Aug 2018 for Asterisk - The Open Source Telephony Project by  doxygen 1.6.1