Address JSON thread safety issues.
[asterisk/asterisk.git] / res / ari / resource_bridges.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/ari/resource_bridges.c
23  *
24  * Bridge 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/ari_resource.h.mustache
35  */
36
37 #ifndef _ASTERISK_RESOURCE_BRIDGES_H
38 #define _ASTERISK_RESOURCE_BRIDGES_H
39
40 #include "asterisk/ari.h"
41
42 /*! \brief Argument struct for ast_ari_get_bridges() */
43 struct ast_get_bridges_args {
44 };
45 /*!
46  * \brief List active bridges.
47  *
48  * \param headers HTTP headers
49  * \param args Swagger parameters
50  * \param[out] response HTTP response
51  */
52 void ast_ari_get_bridges(struct ast_variable *headers, struct ast_get_bridges_args *args, struct ast_ari_response *response);
53 /*! \brief Argument struct for ast_ari_new_bridge() */
54 struct ast_new_bridge_args {
55         /*! \brief Type of bridge to create. */
56         const char *type;
57 };
58 /*!
59  * \brief Create a new bridge.
60  *
61  * This bridge persists until it has been shut down, or Asterisk has been shut down.
62  *
63  * \param headers HTTP headers
64  * \param args Swagger parameters
65  * \param[out] response HTTP response
66  */
67 void ast_ari_new_bridge(struct ast_variable *headers, struct ast_new_bridge_args *args, struct ast_ari_response *response);
68 /*! \brief Argument struct for ast_ari_get_bridge() */
69 struct ast_get_bridge_args {
70         /*! \brief Bridge's id */
71         const char *bridge_id;
72 };
73 /*!
74  * \brief Get bridge details.
75  *
76  * \param headers HTTP headers
77  * \param args Swagger parameters
78  * \param[out] response HTTP response
79  */
80 void ast_ari_get_bridge(struct ast_variable *headers, struct ast_get_bridge_args *args, struct ast_ari_response *response);
81 /*! \brief Argument struct for ast_ari_delete_bridge() */
82 struct ast_delete_bridge_args {
83         /*! \brief Bridge's id */
84         const char *bridge_id;
85 };
86 /*!
87  * \brief Shut down a bridge.
88  *
89  * If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand.
90  *
91  * \param headers HTTP headers
92  * \param args Swagger parameters
93  * \param[out] response HTTP response
94  */
95 void ast_ari_delete_bridge(struct ast_variable *headers, struct ast_delete_bridge_args *args, struct ast_ari_response *response);
96 /*! \brief Argument struct for ast_ari_add_channel_to_bridge() */
97 struct ast_add_channel_to_bridge_args {
98         /*! \brief Bridge's id */
99         const char *bridge_id;
100         /*! \brief Channel's id */
101         const char *channel;
102 };
103 /*!
104  * \brief Add a channel to a bridge.
105  *
106  * \param headers HTTP headers
107  * \param args Swagger parameters
108  * \param[out] response HTTP response
109  */
110 void ast_ari_add_channel_to_bridge(struct ast_variable *headers, struct ast_add_channel_to_bridge_args *args, struct ast_ari_response *response);
111 /*! \brief Argument struct for ast_ari_remove_channel_from_bridge() */
112 struct ast_remove_channel_from_bridge_args {
113         /*! \brief Bridge's id */
114         const char *bridge_id;
115         /*! \brief Channel's id */
116         const char *channel;
117 };
118 /*!
119  * \brief Remove a channel from a bridge.
120  *
121  * \param headers HTTP headers
122  * \param args Swagger parameters
123  * \param[out] response HTTP response
124  */
125 void ast_ari_remove_channel_from_bridge(struct ast_variable *headers, struct ast_remove_channel_from_bridge_args *args, struct ast_ari_response *response);
126 /*! \brief Argument struct for ast_ari_play_on_bridge() */
127 struct ast_play_on_bridge_args {
128         /*! \brief Bridge's id */
129         const char *bridge_id;
130         /*! \brief Media's URI to play. */
131         const char *media;
132         /*! \brief For sounds, selects language for sound. */
133         const char *lang;
134         /*! \brief Number of media to skip before playing. */
135         int offsetms;
136         /*! \brief Number of milliseconds to skip for forward/reverse operations. */
137         int skipms;
138 };
139 /*!
140  * \brief Start playback of media on a bridge.
141  *
142  * 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.)
143  *
144  * \param headers HTTP headers
145  * \param args Swagger parameters
146  * \param[out] response HTTP response
147  */
148 void ast_ari_play_on_bridge(struct ast_variable *headers, struct ast_play_on_bridge_args *args, struct ast_ari_response *response);
149 /*! \brief Argument struct for ast_ari_record_bridge() */
150 struct ast_record_bridge_args {
151         /*! \brief Bridge's id */
152         const char *bridge_id;
153         /*! \brief Recording's filename */
154         const char *name;
155         /*! \brief Format to encode audio in */
156         const char *format;
157         /*! \brief Maximum duration of the recording, in seconds. 0 for no limit. */
158         int max_duration_seconds;
159         /*! \brief Maximum duration of silence, in seconds. 0 for no limit. */
160         int max_silence_seconds;
161         /*! \brief Action to take if a recording with the same name already exists. */
162         const char *if_exists;
163         /*! \brief Play beep when recording begins */
164         int beep;
165         /*! \brief DTMF input to terminate recording. */
166         const char *terminate_on;
167 };
168 /*!
169  * \brief Start a recording.
170  *
171  * This records the mixed audio from all channels participating in this bridge.
172  *
173  * \param headers HTTP headers
174  * \param args Swagger parameters
175  * \param[out] response HTTP response
176  */
177 void ast_ari_record_bridge(struct ast_variable *headers, struct ast_record_bridge_args *args, struct ast_ari_response *response);
178
179 #endif /* _ASTERISK_RESOURCE_BRIDGES_H */