Stasis-HTTP: Flesh out bridge-related capabilities
[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 Channel variable changed.
126  *
127  * \param channel The channel on which the variable was set.
128  * \param blob JSON blob containing the following parameters:
129  * - variable: string - The variable that changed. (required)
130  * - value: string - The new value of the variable. (required)
131  *
132  * \retval NULL on error
133  * \retval JSON (ast_json) describing the event
134  */
135 struct ast_json *stasis_json_event_channel_varset_create(
136         struct ast_channel_snapshot *channel_snapshot,
137         struct ast_json *blob
138         );
139
140 /*!
141  * \brief Notification that a bridge has been destroyed.
142  *
143  * \param bridge The bridge to be used to generate this event
144  *
145  * \retval NULL on error
146  * \retval JSON (ast_json) describing the event
147  */
148 struct ast_json *stasis_json_event_bridge_destroyed_create(
149         struct ast_bridge_snapshot *bridge_snapshot
150         );
151
152 /*!
153  * \brief Notification that another WebSocket has taken over for an application.
154  *
155  * \param blob JSON blob containing the following parameters:
156  * - application: string  (required)
157  *
158  * \retval NULL on error
159  * \retval JSON (ast_json) describing the event
160  */
161 struct ast_json *stasis_json_event_application_replaced_create(
162         struct ast_json *blob
163         );
164
165 /*!
166  * \brief Notification that a channel has been destroyed.
167  *
168  * \param channel The channel to be used to generate this event
169  * \param blob JSON blob containing the following parameters:
170  * - cause: integer - Integer representation of the cause of the hangup (required)
171  * - cause_txt: string - Text representation of the cause of the hangup (required)
172  *
173  * \retval NULL on error
174  * \retval JSON (ast_json) describing the event
175  */
176 struct ast_json *stasis_json_event_channel_destroyed_create(
177         struct ast_channel_snapshot *channel_snapshot,
178         struct ast_json *blob
179         );
180
181 /*!
182  * \brief Notification that one bridge has merged into another.
183  *
184  * \param bridge The bridge to be used to generate this event
185  * \param blob JSON blob containing the following parameters:
186  * - bridge_from: Bridge  (required)
187  *
188  * \retval NULL on error
189  * \retval JSON (ast_json) describing the event
190  */
191 struct ast_json *stasis_json_event_bridge_merged_create(
192         struct ast_bridge_snapshot *bridge_snapshot,
193         struct ast_json *blob
194         );
195
196 /*!
197  * \brief Notification that a channel has left a bridge.
198  *
199  * \param channel The channel to be used to generate this event
200  * \param bridge The bridge to be used to generate this event
201  *
202  * \retval NULL on error
203  * \retval JSON (ast_json) describing the event
204  */
205 struct ast_json *stasis_json_event_channel_left_bridge_create(
206         struct ast_bridge_snapshot *bridge_snapshot,
207         struct ast_channel_snapshot *channel_snapshot
208         );
209
210 /*!
211  * \brief Notification that a channel has been created.
212  *
213  * \param channel The channel to be used to generate this event
214  *
215  * \retval NULL on error
216  * \retval JSON (ast_json) describing the event
217  */
218 struct ast_json *stasis_json_event_channel_created_create(
219         struct ast_channel_snapshot *channel_snapshot
220         );
221
222 /*!
223  * \brief Notification that a channel has entered a Stasis appliction.
224  *
225  * \param channel The channel to be used to generate this event
226  * \param blob JSON blob containing the following parameters:
227  * - args: List[string] - Arguments to the application (required)
228  *
229  * \retval NULL on error
230  * \retval JSON (ast_json) describing the event
231  */
232 struct ast_json *stasis_json_event_stasis_start_create(
233         struct ast_channel_snapshot *channel_snapshot,
234         struct ast_json *blob
235         );
236
237 /*!
238  * \brief Channel changed location in the dialplan.
239  *
240  * \param channel The channel that changed dialplan location.
241  * \param blob JSON blob containing the following parameters:
242  * - application: string - The application that the channel is currently in. (required)
243  * - application_data: string - The data that was passed to the application when it was invoked. (required)
244  *
245  * \retval NULL on error
246  * \retval JSON (ast_json) describing the event
247  */
248 struct ast_json *stasis_json_event_channel_dialplan_create(
249         struct ast_channel_snapshot *channel_snapshot,
250         struct ast_json *blob
251         );
252
253 /*!
254  * \brief Notification of a channel's state change.
255  *
256  * \param channel The channel to be used to generate this event
257  *
258  * \retval NULL on error
259  * \retval JSON (ast_json) describing the event
260  */
261 struct ast_json *stasis_json_event_channel_state_change_create(
262         struct ast_channel_snapshot *channel_snapshot
263         );
264
265 /*!
266  * \brief A hangup was requested on the channel.
267  *
268  * \param channel The channel on which the hangup was requested.
269  * \param blob JSON blob containing the following parameters:
270  * - soft: boolean - Whether the hangup request was a soft hangup request.
271  * - cause: integer - Integer representation of the cause of the hangup.
272  *
273  * \retval NULL on error
274  * \retval JSON (ast_json) describing the event
275  */
276 struct ast_json *stasis_json_event_channel_hangup_request_create(
277         struct ast_channel_snapshot *channel_snapshot,
278         struct ast_json *blob
279         );
280
281 /*!
282  * \brief Notification that a channel has entered a bridge.
283  *
284  * \param channel The channel to be used to generate this event
285  * \param bridge The bridge to be used to generate this event
286  *
287  * \retval NULL on error
288  * \retval JSON (ast_json) describing the event
289  */
290 struct ast_json *stasis_json_event_channel_entered_bridge_create(
291         struct ast_bridge_snapshot *bridge_snapshot,
292         struct ast_channel_snapshot *channel_snapshot
293         );
294
295 /*!
296  * \brief DTMF received on a channel.
297  *
298  * \param channel The channel on which DTMF was received
299  * \param blob JSON blob containing the following parameters:
300  * - digit: string - DTMF digit received (0-9, A-E, # or *) (required)
301  *
302  * \retval NULL on error
303  * \retval JSON (ast_json) describing the event
304  */
305 struct ast_json *stasis_json_event_channel_dtmf_received_create(
306         struct ast_channel_snapshot *channel_snapshot,
307         struct ast_json *blob
308         );
309
310 /*!
311  * \brief Notification that a channel has left a Stasis appliction.
312  *
313  * \param channel The channel to be used to generate this event
314  *
315  * \retval NULL on error
316  * \retval JSON (ast_json) describing the event
317  */
318 struct ast_json *stasis_json_event_stasis_end_create(
319         struct ast_channel_snapshot *channel_snapshot
320         );
321
322 /*
323  * JSON models
324  *
325  * ChannelUserevent
326  * - eventname: string (required)
327  * BridgeCreated
328  * PlaybackFinished
329  * - playback: Playback (required)
330  * ChannelSnapshot
331  * ChannelCallerId
332  * - caller_presentation_txt: string (required)
333  * - caller_presentation: integer (required)
334  * PlaybackStarted
335  * - playback: Playback (required)
336  * ChannelVarset
337  * - variable: string (required)
338  * - value: string (required)
339  * BridgeDestroyed
340  * ApplicationReplaced
341  * - application: string (required)
342  * ChannelDestroyed
343  * - cause: integer (required)
344  * - cause_txt: string (required)
345  * BridgeMerged
346  * - bridge_from: Bridge (required)
347  * ChannelLeftBridge
348  * ChannelCreated
349  * StasisStart
350  * - args: List[string] (required)
351  * ChannelDialplan
352  * - application: string (required)
353  * - application_data: string (required)
354  * ChannelStateChange
355  * ChannelHangupRequest
356  * - soft: boolean
357  * - cause: integer
358  * ChannelEnteredBridge
359  * ChannelDtmfReceived
360  * - digit: string (required)
361  * Event
362  * - channel_varset: ChannelVarset
363  * - channel_created: ChannelCreated
364  * - channel_destroyed: ChannelDestroyed
365  * - channel_entered_bridge: ChannelEnteredBridge
366  * - channel_left_bridge: ChannelLeftBridge
367  * - bridge_merged: BridgeMerged
368  * - channel_dialplan: ChannelDialplan
369  * - application_replaced: ApplicationReplaced
370  * - channel_state_change: ChannelStateChange
371  * - bridge_created: BridgeCreated
372  * - application: string (required)
373  * - channel_hangup_request: ChannelHangupRequest
374  * - channel_userevent: ChannelUserevent
375  * - stasis_start: StasisStart
376  * - channel_snapshot: ChannelSnapshot
377  * - channel_dtmf_received: ChannelDtmfReceived
378  * - channel_caller_id: ChannelCallerId
379  * - bridge_destroyed: BridgeDestroyed
380  * - playback_started: PlaybackStarted
381  * - playback_finished: PlaybackFinished
382  * - stasis_end: StasisEnd
383  * StasisEnd
384  */
385
386 #endif /* _ASTERISK_RESOURCE_EVENTS_H */