2013-04-22 14:58:53 +00:00
/*
* Asterisk - - An open source telephony toolkit .
*
* Copyright ( C ) 2012 - 2013 , Digium , Inc .
*
* David M . Lee , II < dlee @ digium . com >
*
* See http : //www.asterisk.org for more information about
* the Asterisk project . Please do not directly contact
* any of the maintainers of this project for assistance ;
* the project provides a web site , mailing lists and IRC
* channels for your use .
*
* This program is free software , distributed under the terms of
* the GNU General Public License Version 2. See the LICENSE file
* at the top of the source tree .
*/
/*! \file
*
* \ brief Generated file - declares stubs to be implemented in
2013-07-27 23:11:02 +00:00
* res / ari / resource_events . c
2013-04-22 14:58:53 +00:00
*
* WebSocket resource
*
* \ author David M . Lee , II < dlee @ digium . com >
*/
/*
* ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
* ! ! ! ! ! DO NOT EDIT ! ! ! ! !
* ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
* This file is generated by a mustache template . Please see the original
2013-07-27 23:11:02 +00:00
* template in rest - api - templates / ari_resource . h . mustache
2013-04-22 14:58:53 +00:00
*/
# ifndef _ASTERISK_RESOURCE_EVENTS_H
# define _ASTERISK_RESOURCE_EVENTS_H
2013-07-27 23:11:02 +00:00
# include "asterisk/ari.h"
2013-04-22 14:58:53 +00:00
2014-07-02 21:13:46 +00:00
/*! Argument struct for ast_ari_events_event_websocket() */
2013-11-07 21:10:31 +00:00
struct ast_ari_events_event_websocket_args {
2014-07-02 21:13:46 +00:00
/*! Array of Applications to subscribe to. */
2013-08-02 14:36:32 +00:00
const char * * app ;
2014-07-02 21:13:46 +00:00
/*! Length of app array. */
2013-08-02 14:36:32 +00:00
size_t app_count ;
2014-07-02 21:13:46 +00:00
/*! Parsing context for app. */
2013-08-02 14:36:32 +00:00
char * app_parse ;
2015-09-04 17:25:07 +00:00
/*! Subscribe to all Asterisk events. If provided, the applications listed will be subscribed to all events, effectively disabling the application specific subscriptions. Default is 'false'. */
int subscribe_all ;
2013-04-22 14:58:53 +00:00
} ;
2015-05-18 01:36:41 +00:00
2015-07-31 16:27:23 +00:00
/*!
* \ brief WebSocket connection for events .
*
* \ retval 0 success
* \ retval - 1 error
*/
int ast_ari_websocket_events_event_websocket_init ( void ) ;
2015-08-18 20:07:49 +00:00
/*!
* \ brief WebSocket connection for events .
*
* \ return Nothing
*/
void ast_ari_websocket_events_event_websocket_dtor ( void ) ;
2015-05-18 01:36:41 +00:00
/*!
* \ brief WebSocket connection for events .
*
* \ param ser HTTP TCP / TLS Server Session
* \ param headers HTTP headers
* \ param args Swagger parameters
2015-07-31 16:27:23 +00:00
* \ param session_id The id of the current session .
2015-05-18 01:36:41 +00:00
*
* \ retval 0 success
* \ retval non - zero error
*/
2015-07-31 16:27:23 +00:00
int ast_ari_websocket_events_event_websocket_attempted ( struct ast_tcptls_session_instance * ser ,
struct ast_variable * headers , struct ast_ari_events_event_websocket_args * args , const char * session_id ) ;
2015-05-18 01:36:41 +00:00
2013-04-22 14:58:53 +00:00
/*!
* \ brief WebSocket connection for events .
*
2013-07-03 16:32:00 +00:00
* \ param session ARI WebSocket .
* \ param headers HTTP headers .
* \ param args Swagger parameters .
2015-07-31 16:27:23 +00:00
* \ param session_id The id of the current session .
2013-04-22 14:58:53 +00:00
*/
2015-07-31 16:27:23 +00:00
void ast_ari_websocket_events_event_websocket_established ( struct ast_ari_websocket_session * session ,
struct ast_variable * headers , struct ast_ari_events_event_websocket_args * args ) ;
2014-05-22 16:09:51 +00:00
/*! Argument struct for ast_ari_events_user_event() */
struct ast_ari_events_user_event_args {
/*! Event name */
const char * event_name ;
/*! The name of the application that will receive this event */
const char * application ;
/*! Array of URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}/{resource}, deviceState:{deviceName} */
const char * * source ;
/*! Length of source array. */
size_t source_count ;
/*! Parsing context for source. */
char * source_parse ;
2014-07-03 16:14:39 +00:00
/*! The "variables" key in the body object holds custom key/value pairs to add to the user event. Ex. { "variables": { "key": "value" } } */
2014-05-22 16:09:51 +00:00
struct ast_json * variables ;
} ;
/*!
* \ brief Body parsing function for / events / user / { eventName } .
* \ param body The JSON body from which to parse parameters .
* \ param [ out ] args The args structure to parse into .
* \ retval zero on success
* \ retval non - zero on failure
*/
int ast_ari_events_user_event_parse_body (
struct ast_json * body ,
struct ast_ari_events_user_event_args * args ) ;
/*!
* \ brief Generate a user event .
*
* \ param headers HTTP headers
* \ param args Swagger parameters
* \ param [ out ] response HTTP response
*/
void ast_ari_events_user_event ( struct ast_variable * headers , struct ast_ari_events_user_event_args * args , struct ast_ari_response * response ) ;
2013-04-22 14:58:53 +00:00
# endif /* _ASTERISK_RESOURCE_EVENTS_H */