d6318178815fd42e49fba23b6fa8410b78cc6734
[asterisk/asterisk.git] / res / stasis_json / resource_events.h
1 /*
2  * Asterisk -- An open source telephony toolkit.
3  *
4  * Copyright (C) 2012 - 2013, Digium, Inc.
5  *
6  * David M. Lee, II <dlee@digium.com>
7  *
8  * See http://www.asterisk.org for more information about
9  * the Asterisk project. Please do not directly contact
10  * any of the maintainers of this project for assistance;
11  * the project provides a web site, mailing lists and IRC
12  * channels for your use.
13  *
14  * This program is free software, distributed under the terms of
15  * the GNU General Public License Version 2. See the LICENSE file
16  * at the top of the source tree.
17  */
18
19 /*! \file
20  *
21  * \brief Generated file - declares stubs to be implemented in
22  * res/stasis_json/resource_events.c
23  *
24  * WebSocket resource
25  *
26  * \author David M. Lee, II <dlee@digium.com>
27  */
28
29 /*
30  * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
31  * !!!!!                               DO NOT EDIT                        !!!!!
32  * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
33  * This file is generated by a mustache template. Please see the original
34  * template in rest-api-templates/stasis_http_resource.h.mustache
35  */
36
37 #ifndef _ASTERISK_RESOURCE_EVENTS_H
38 #define _ASTERISK_RESOURCE_EVENTS_H
39
40 struct ast_channel_snapshot;
41 struct ast_bridge_snapshot;
42
43 /*!
44  * \brief User-generated event with additional user-defined fields in the object.
45  *
46  * \param channel The channel that signaled the user event.
47  * \param blob JSON blob containing the following parameters:
48  * - eventname: string - The name of the user event. (required)
49  *
50  * \retval NULL on error
51  * \retval JSON (ast_json) describing the event
52  */
53 struct ast_json *stasis_json_event_channel_userevent_create(
54         struct ast_channel_snapshot *channel_snapshot,
55         struct ast_json *blob
56         );
57
58 /*!
59  * \brief Notification that a bridge has been created.
60  *
61  * \param bridge The bridge to be used to generate this event
62  *
63  * \retval NULL on error
64  * \retval JSON (ast_json) describing the event
65  */
66 struct ast_json *stasis_json_event_bridge_created_create(
67         struct ast_bridge_snapshot *bridge_snapshot
68         );
69
70 /*!
71  * \brief Event showing the completion of a media playback operation.
72  *
73  * \param blob JSON blob containing the following parameters:
74  * - playback: Playback - Playback control object (required)
75  *
76  * \retval NULL on error
77  * \retval JSON (ast_json) describing the event
78  */
79 struct ast_json *stasis_json_event_playback_finished_create(
80         struct ast_json *blob
81         );
82
83 /*!
84  * \brief Some part of channel state changed.
85  *
86  * \param channel The channel to be used to generate this event
87  *
88  * \retval NULL on error
89  * \retval JSON (ast_json) describing the event
90  */
91 struct ast_json *stasis_json_event_channel_snapshot_create(
92         struct ast_channel_snapshot *channel_snapshot
93         );
94
95 /*!
96  * \brief Channel changed Caller ID.
97  *
98  * \param channel The channel that changed Caller ID.
99  * \param blob JSON blob containing the following parameters:
100  * - caller_presentation_txt: string - The text representation of the Caller Presentation value. (required)
101  * - caller_presentation: integer - The integer representation of the Caller Presentation value. (required)
102  *
103  * \retval NULL on error
104  * \retval JSON (ast_json) describing the event
105  */
106 struct ast_json *stasis_json_event_channel_caller_id_create(
107         struct ast_channel_snapshot *channel_snapshot,
108         struct ast_json *blob
109         );
110
111 /*!
112  * \brief Event showing the start of a media playback operation.
113  *
114  * \param blob JSON blob containing the following parameters:
115  * - playback: Playback - Playback control object (required)
116  *
117  * \retval NULL on error
118  * \retval JSON (ast_json) describing the event
119  */
120 struct ast_json *stasis_json_event_playback_started_create(
121         struct ast_json *blob
122         );
123
124 /*!
125  * \brief Notification that a bridge has been destroyed.
126  *
127  * \param bridge The bridge to be used to generate this event
128  *
129  * \retval NULL on error
130  * \retval JSON (ast_json) describing the event
131  */
132 struct ast_json *stasis_json_event_bridge_destroyed_create(
133         struct ast_bridge_snapshot *bridge_snapshot
134         );
135
136 /*!
137  * \brief Notification that another WebSocket has taken over for an application.
138  *
139  * \param blob JSON blob containing the following parameters:
140  * - application: string  (required)
141  *
142  * \retval NULL on error
143  * \retval JSON (ast_json) describing the event
144  */
145 struct ast_json *stasis_json_event_application_replaced_create(
146         struct ast_json *blob
147         );
148
149 /*!
150  * \brief Notification that a channel has been destroyed.
151  *
152  * \param channel The channel to be used to generate this event
153  * \param blob JSON blob containing the following parameters:
154  * - cause: integer - Integer representation of the cause of the hangup (required)
155  * - cause_txt: string - Text representation of the cause of the hangup (required)
156  *
157  * \retval NULL on error
158  * \retval JSON (ast_json) describing the event
159  */
160 struct ast_json *stasis_json_event_channel_destroyed_create(
161         struct ast_channel_snapshot *channel_snapshot,
162         struct ast_json *blob
163         );
164
165 /*!
166  * \brief Channel variable changed.
167  *
168  * \param channel The channel on which the variable was set.
169  * \param blob JSON blob containing the following parameters:
170  * - variable: string - The variable that changed. (required)
171  * - value: string - The new value of the variable. (required)
172  *
173  * \retval NULL on error
174  * \retval JSON (ast_json) describing the event
175  */
176 struct ast_json *stasis_json_event_channel_varset_create(
177         struct ast_channel_snapshot *channel_snapshot,
178         struct ast_json *blob
179         );
180
181 /*!
182  * \brief Notification that a channel has left a bridge.
183  *
184  * \param channel The channel to be used to generate this event
185  * \param bridge The bridge to be used to generate this event
186  *
187  * \retval NULL on error
188  * \retval JSON (ast_json) describing the event
189  */
190 struct ast_json *stasis_json_event_channel_left_bridge_create(
191         struct ast_bridge_snapshot *bridge_snapshot,
192         struct ast_channel_snapshot *channel_snapshot
193         );
194
195 /*!
196  * \brief Notification that a channel has been created.
197  *
198  * \param channel The channel to be used to generate this event
199  *
200  * \retval NULL on error
201  * \retval JSON (ast_json) describing the event
202  */
203 struct ast_json *stasis_json_event_channel_created_create(
204         struct ast_channel_snapshot *channel_snapshot
205         );
206
207 /*!
208  * \brief Notification that a channel has entered a Stasis appliction.
209  *
210  * \param channel The channel to be used to generate this event
211  * \param blob JSON blob containing the following parameters:
212  * - args: List[string] - Arguments to the application (required)
213  *
214  * \retval NULL on error
215  * \retval JSON (ast_json) describing the event
216  */
217 struct ast_json *stasis_json_event_stasis_start_create(
218         struct ast_channel_snapshot *channel_snapshot,
219         struct ast_json *blob
220         );
221
222 /*!
223  * \brief Channel changed location in the dialplan.
224  *
225  * \param channel The channel that changed dialplan location.
226  * \param blob JSON blob containing the following parameters:
227  * - application: string - The application that the channel is currently in. (required)
228  * - application_data: string - The data that was passed to the application when it was invoked. (required)
229  *
230  * \retval NULL on error
231  * \retval JSON (ast_json) describing the event
232  */
233 struct ast_json *stasis_json_event_channel_dialplan_create(
234         struct ast_channel_snapshot *channel_snapshot,
235         struct ast_json *blob
236         );
237
238 /*!
239  * \brief Notification of a channel's state change.
240  *
241  * \param channel The channel to be used to generate this event
242  *
243  * \retval NULL on error
244  * \retval JSON (ast_json) describing the event
245  */
246 struct ast_json *stasis_json_event_channel_state_change_create(
247         struct ast_channel_snapshot *channel_snapshot
248         );
249
250 /*!
251  * \brief A hangup was requested on the channel.
252  *
253  * \param channel The channel on which the hangup was requested.
254  * \param blob JSON blob containing the following parameters:
255  * - soft: boolean - Whether the hangup request was a soft hangup request.
256  * - cause: integer - Integer representation of the cause of the hangup.
257  *
258  * \retval NULL on error
259  * \retval JSON (ast_json) describing the event
260  */
261 struct ast_json *stasis_json_event_channel_hangup_request_create(
262         struct ast_channel_snapshot *channel_snapshot,
263         struct ast_json *blob
264         );
265
266 /*!
267  * \brief Notification that a channel has entered a bridge.
268  *
269  * \param channel The channel to be used to generate this event
270  * \param bridge The bridge to be used to generate this event
271  *
272  * \retval NULL on error
273  * \retval JSON (ast_json) describing the event
274  */
275 struct ast_json *stasis_json_event_channel_entered_bridge_create(
276         struct ast_bridge_snapshot *bridge_snapshot,
277         struct ast_channel_snapshot *channel_snapshot
278         );
279
280 /*!
281  * \brief DTMF received on a channel.
282  *
283  * \param channel The channel on which DTMF was received
284  * \param blob JSON blob containing the following parameters:
285  * - digit: string - DTMF digit received (0-9, A-E, # or *) (required)
286  *
287  * \retval NULL on error
288  * \retval JSON (ast_json) describing the event
289  */
290 struct ast_json *stasis_json_event_channel_dtmf_received_create(
291         struct ast_channel_snapshot *channel_snapshot,
292         struct ast_json *blob
293         );
294
295 /*!
296  * \brief Notification that a channel has left a Stasis appliction.
297  *
298  * \param channel The channel to be used to generate this event
299  *
300  * \retval NULL on error
301  * \retval JSON (ast_json) describing the event
302  */
303 struct ast_json *stasis_json_event_stasis_end_create(
304         struct ast_channel_snapshot *channel_snapshot
305         );
306
307 /*
308  * JSON models
309  *
310  * ChannelUserevent
311  * - eventname: string (required)
312  * BridgeCreated
313  * PlaybackFinished
314  * - playback: Playback (required)
315  * ChannelSnapshot
316  * ChannelCallerId
317  * - caller_presentation_txt: string (required)
318  * - caller_presentation: integer (required)
319  * PlaybackStarted
320  * - playback: Playback (required)
321  * BridgeDestroyed
322  * ApplicationReplaced
323  * - application: string (required)
324  * ChannelDestroyed
325  * - cause: integer (required)
326  * - cause_txt: string (required)
327  * ChannelVarset
328  * - variable: string (required)
329  * - value: string (required)
330  * ChannelLeftBridge
331  * ChannelCreated
332  * StasisStart
333  * - args: List[string] (required)
334  * ChannelDialplan
335  * - application: string (required)
336  * - application_data: string (required)
337  * ChannelStateChange
338  * ChannelHangupRequest
339  * - soft: boolean
340  * - cause: integer
341  * ChannelEnteredBridge
342  * ChannelDtmfReceived
343  * - digit: string (required)
344  * Event
345  * - stasis_start: StasisStart
346  * - channel_created: ChannelCreated
347  * - channel_destroyed: ChannelDestroyed
348  * - channel_entered_bridge: ChannelEnteredBridge
349  * - channel_left_bridge: ChannelLeftBridge
350  * - channel_dialplan: ChannelDialplan
351  * - channel_varset: ChannelVarset
352  * - application_replaced: ApplicationReplaced
353  * - channel_state_change: ChannelStateChange
354  * - bridge_created: BridgeCreated
355  * - application: string (required)
356  * - channel_hangup_request: ChannelHangupRequest
357  * - channel_userevent: ChannelUserevent
358  * - playback_started: PlaybackStarted
359  * - channel_snapshot: ChannelSnapshot
360  * - channel_dtmf_received: ChannelDtmfReceived
361  * - channel_caller_id: ChannelCallerId
362  * - bridge_destroyed: BridgeDestroyed
363  * - playback_finished: PlaybackFinished
364  * - stasis_end: StasisEnd
365  * StasisEnd
366  */
367
368 #endif /* _ASTERISK_RESOURCE_EVENTS_H */