This patch adds support for controlling a playback operation from the
[asterisk/asterisk.git] / res / stasis_http / resource_channels.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_http/resource_channels.c
23  *
24  * Channel resources
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_CHANNELS_H
38 #define _ASTERISK_RESOURCE_CHANNELS_H
39
40 #include "asterisk/stasis_http.h"
41
42 /*! \brief Argument struct for stasis_http_get_channels() */
43 struct ast_get_channels_args {
44 };
45 /*!
46  * \brief List active channels.
47  *
48  * \param headers HTTP headers
49  * \param args Swagger parameters
50  * \param[out] response HTTP response
51  */
52 void stasis_http_get_channels(struct ast_variable *headers, struct ast_get_channels_args *args, struct stasis_http_response *response);
53 /*! \brief Argument struct for stasis_http_originate() */
54 struct ast_originate_args {
55         /*! \brief Endpoint to call. If not specified, originate is routed via dialplan */
56         const char *endpoint;
57         /*! \brief Extension to dial */
58         const char *extension;
59         /*! \brief When routing via dialplan, the context use. If omitted, uses 'default' */
60         const char *context;
61 };
62 /*!
63  * \brief Create a new channel (originate).
64  *
65  * \param headers HTTP headers
66  * \param args Swagger parameters
67  * \param[out] response HTTP response
68  */
69 void stasis_http_originate(struct ast_variable *headers, struct ast_originate_args *args, struct stasis_http_response *response);
70 /*! \brief Argument struct for stasis_http_get_channel() */
71 struct ast_get_channel_args {
72         /*! \brief Channel's id */
73         const char *channel_id;
74 };
75 /*!
76  * \brief Channel details.
77  *
78  * \param headers HTTP headers
79  * \param args Swagger parameters
80  * \param[out] response HTTP response
81  */
82 void stasis_http_get_channel(struct ast_variable *headers, struct ast_get_channel_args *args, struct stasis_http_response *response);
83 /*! \brief Argument struct for stasis_http_delete_channel() */
84 struct ast_delete_channel_args {
85         /*! \brief Channel's id */
86         const char *channel_id;
87 };
88 /*!
89  * \brief Delete (i.e. hangup) a channel.
90  *
91  * \param headers HTTP headers
92  * \param args Swagger parameters
93  * \param[out] response HTTP response
94  */
95 void stasis_http_delete_channel(struct ast_variable *headers, struct ast_delete_channel_args *args, struct stasis_http_response *response);
96 /*! \brief Argument struct for stasis_http_dial() */
97 struct ast_dial_args {
98         /*! \brief Channel's id */
99         const char *channel_id;
100         /*! \brief Endpoint to call. If not specified, dial is routed via dialplan */
101         const char *endpoint;
102         /*! \brief Extension to dial */
103         const char *extension;
104         /*! \brief When routing via dialplan, the context use. If omitted, uses 'default' */
105         const char *context;
106 };
107 /*!
108  * \brief Create a new channel (originate) and bridge to this channel.
109  *
110  * \param headers HTTP headers
111  * \param args Swagger parameters
112  * \param[out] response HTTP response
113  */
114 void stasis_http_dial(struct ast_variable *headers, struct ast_dial_args *args, struct stasis_http_response *response);
115 /*! \brief Argument struct for stasis_http_continue_in_dialplan() */
116 struct ast_continue_in_dialplan_args {
117         /*! \brief Channel's id */
118         const char *channel_id;
119 };
120 /*!
121  * \brief Exit application; continue execution in the dialplan.
122  *
123  * \param headers HTTP headers
124  * \param args Swagger parameters
125  * \param[out] response HTTP response
126  */
127 void stasis_http_continue_in_dialplan(struct ast_variable *headers, struct ast_continue_in_dialplan_args *args, struct stasis_http_response *response);
128 /*! \brief Argument struct for stasis_http_answer_channel() */
129 struct ast_answer_channel_args {
130         /*! \brief Channel's id */
131         const char *channel_id;
132 };
133 /*!
134  * \brief Answer a channel.
135  *
136  * \param headers HTTP headers
137  * \param args Swagger parameters
138  * \param[out] response HTTP response
139  */
140 void stasis_http_answer_channel(struct ast_variable *headers, struct ast_answer_channel_args *args, struct stasis_http_response *response);
141 /*! \brief Argument struct for stasis_http_mute_channel() */
142 struct ast_mute_channel_args {
143         /*! \brief Channel's id */
144         const char *channel_id;
145         /*! \brief Direction in which to mute audio */
146         const char *direction;
147 };
148 /*!
149  * \brief Mute a channel.
150  *
151  * \param headers HTTP headers
152  * \param args Swagger parameters
153  * \param[out] response HTTP response
154  */
155 void stasis_http_mute_channel(struct ast_variable *headers, struct ast_mute_channel_args *args, struct stasis_http_response *response);
156 /*! \brief Argument struct for stasis_http_unmute_channel() */
157 struct ast_unmute_channel_args {
158         /*! \brief Channel's id */
159         const char *channel_id;
160         /*! \brief Direction in which to unmute audio */
161         const char *direction;
162 };
163 /*!
164  * \brief Unmute a channel.
165  *
166  * \param headers HTTP headers
167  * \param args Swagger parameters
168  * \param[out] response HTTP response
169  */
170 void stasis_http_unmute_channel(struct ast_variable *headers, struct ast_unmute_channel_args *args, struct stasis_http_response *response);
171 /*! \brief Argument struct for stasis_http_hold_channel() */
172 struct ast_hold_channel_args {
173         /*! \brief Channel's id */
174         const char *channel_id;
175 };
176 /*!
177  * \brief Hold a channel.
178  *
179  * \param headers HTTP headers
180  * \param args Swagger parameters
181  * \param[out] response HTTP response
182  */
183 void stasis_http_hold_channel(struct ast_variable *headers, struct ast_hold_channel_args *args, struct stasis_http_response *response);
184 /*! \brief Argument struct for stasis_http_unhold_channel() */
185 struct ast_unhold_channel_args {
186         /*! \brief Channel's id */
187         const char *channel_id;
188 };
189 /*!
190  * \brief Remove a channel from hold.
191  *
192  * \param headers HTTP headers
193  * \param args Swagger parameters
194  * \param[out] response HTTP response
195  */
196 void stasis_http_unhold_channel(struct ast_variable *headers, struct ast_unhold_channel_args *args, struct stasis_http_response *response);
197 /*! \brief Argument struct for stasis_http_play_on_channel() */
198 struct ast_play_on_channel_args {
199         /*! \brief Channel's id */
200         const char *channel_id;
201         /*! \brief Media's URI to play. */
202         const char *media;
203         /*! \brief For sounds, selects language for sound. */
204         const char *lang;
205         /*! \brief Number of media to skip before playing. */
206         int offsetms;
207         /*! \brief Number of milliseconds to skip for forward/reverse operations. */
208         int skipms;
209 };
210 /*!
211  * \brief Start playback of media.
212  *
213  * The media URI may be any of a number of URI's. You may use http: and https: URI's, as well as sound: and recording: URI's. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)
214  *
215  * \param headers HTTP headers
216  * \param args Swagger parameters
217  * \param[out] response HTTP response
218  */
219 void stasis_http_play_on_channel(struct ast_variable *headers, struct ast_play_on_channel_args *args, struct stasis_http_response *response);
220 /*! \brief Argument struct for stasis_http_record_channel() */
221 struct ast_record_channel_args {
222         /*! \brief Channel's id */
223         const char *channel_id;
224         /*! \brief Recording's filename */
225         const char *name;
226         /*! \brief Format to encode audio in */
227         const char *format;
228         /*! \brief Maximum duration of the recording, in seconds. 0 for no limit */
229         int max_duration_seconds;
230         /*! \brief Maximum duration of silence, in seconds. 0 for no limit */
231         int max_silence_seconds;
232         /*! \brief If true, and recording already exists, append to recording */
233         int append;
234         /*! \brief Play beep when recording begins */
235         int beep;
236         /*! \brief DTMF input to terminate recording */
237         const char *terminate_on;
238 };
239 /*!
240  * \brief Start a recording.
241  *
242  * Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want.
243  *
244  * \param headers HTTP headers
245  * \param args Swagger parameters
246  * \param[out] response HTTP response
247  */
248 void stasis_http_record_channel(struct ast_variable *headers, struct ast_record_channel_args *args, struct stasis_http_response *response);
249
250 #endif /* _ASTERISK_RESOURCE_CHANNELS_H */