UniMRCP  1.4.0
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
mrcp_server.h
Go to the documentation of this file.
1 /*
2  * Copyright 2008-2015 Arsen Chaloyan
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #ifndef MRCP_SERVER_H
18 #define MRCP_SERVER_H
19 
20 /**
21  * @file mrcp_server.h
22  * @brief MRCP Server
23  */
24 
25 #include "mrcp_server_types.h"
26 #include "mrcp_engine_iface.h"
27 #include "mpf_rtp_descriptor.h"
28 #include "apt_task.h"
29 
31 
32 /**
33  * Create MRCP server instance.
34  * @return the created server instance
35  */
37 
38 /**
39  * Start message processing loop.
40  * @param server the MRCP server to start
41  * @return the created server instance
42  */
44 
45 /**
46  * Shutdown message processing loop.
47  * @param server the MRCP server to shutdown
48  */
50 
51 /**
52  * Destroy MRCP server.
53  * @param server the MRCP server to destroy
54  */
56 
57 
58 /**
59  * Register MRCP resource factory.
60  * @param server the MRCP server to set resource factory for
61  * @param resource_factory the resource factory to set
62  */
64  mrcp_server_t *server,
65  mrcp_resource_factory_t *resource_factory);
66 
67 /**
68  * Register MRCP engine.
69  * @param server the MRCP server to set engine for
70  * @param engine the engine to set
71  */
73  mrcp_server_t *server,
74  mrcp_engine_t *engine);
75 
76 /**
77  * Register codec manager.
78  * @param server the MRCP server to set codec manager for
79  * @param codec_manager the codec manager to set
80  */
82 
83 /**
84  * Get registered codec manager.
85  * @param server the MRCP server to get codec manager from
86  */
88 
89 /**
90  * Register media engine.
91  * @param server the MRCP server to set media engine for
92  * @param media_engine the media engine to set
93  */
95  mrcp_server_t *server,
96  mpf_engine_t *media_engine);
97 
98 /**
99  * Register RTP termination factory.
100  * @param server the MRCP server to set termination factory for
101  * @param rtp_termination_factory the termination factory
102  * @param name the name of the factory
103  */
105  mrcp_server_t *server,
106  mpf_termination_factory_t *rtp_termination_factory,
107  const char *name);
108 
109 /**
110  * Register RTP settings.
111  * @param server the MRCP server to set RTP settings for
112  * @param rtp_settings the settings to set
113  * @param name the name of the settings
114  */
116  mrcp_server_t *server,
117  mpf_rtp_settings_t *rtp_settings,
118  const char *name);
119 
120 /**
121  * Register MRCP signaling agent.
122  * @param server the MRCP server to set signaling agent for
123  * @param signaling_agent the signaling agent to set
124  */
126  mrcp_server_t *server,
127  mrcp_sig_agent_t *signaling_agent);
128 
129 /**
130  * Register MRCP connection agent (MRCPv2 only).
131  * @param server the MRCP server to set connection agent for
132  * @param connection_agent the connection agent to set
133  */
135  mrcp_server_t *server,
136  mrcp_connection_agent_t *connection_agent);
137 
138 /** Create MRCP profile */
140  const char *id,
141  mrcp_version_e mrcp_version,
142  mrcp_resource_factory_t *resource_factory,
143  mrcp_sig_agent_t *signaling_agent,
144  mrcp_connection_agent_t *connection_agent,
145  mpf_engine_t *media_engine,
146  mpf_termination_factory_t *rtp_factory,
147  mpf_rtp_settings_t *rtp_settings,
148  apr_pool_t *pool);
149 
150 /**
151  * Register MRCP profile.
152  * @param server the MRCP server to set profile for
153  * @param profile the profile to set
154  * @param plugin_map the map of engines (plugins)
155  */
157  mrcp_server_t *server,
158  mrcp_server_profile_t *profile,
159  apr_table_t *plugin_map);
160 
161 /**
162  * Load MRCP engine as a plugin.
163  * @param server the MRCP server to use
164  * @param id the identifier of the plugin
165  * @param path the path to the plugin to load
166  * @param config the config of the engine
167  */
169  mrcp_server_t *server,
170  const char *id,
171  const char *path,
172  mrcp_engine_config_t *config);
173 
174 /**
175  * Get memory pool.
176  * @param server the MRCP server to get memory pool from
177  */
178 MRCP_DECLARE(apr_pool_t*) mrcp_server_memory_pool_get(const mrcp_server_t *server);
179 
180 /**
181  * Get media engine by name.
182  * @param server the MRCP server to get media engine from
183  * @param name the name of the media engine to lookup
184  */
185 MRCP_DECLARE(mpf_engine_t*) mrcp_server_media_engine_get(const mrcp_server_t *server, const char *name);
186 
187 /**
188  * Get RTP termination factory by name.
189  * @param server the MRCP server to get from
190  * @param name the name to lookup
191  */
193 
194 /**
195  * Get RTP settings by name
196  * @param server the MRCP server to get from
197  * @param name the name to lookup
198  */
200 
201 /**
202  * Get signaling agent by name.
203  * @param server the MRCP server to get from
204  * @param name the name to lookup
205  */
207 
208 /**
209  * Get connection agent by name.
210  * @param server the MRCP server to get from
211  * @param name the name to lookup
212  */
214 
215 /**
216  * Get profile by name.
217  * @param server the MRCP client to get from
218  * @param name the name to lookup
219  */
221 
223 
224 #endif /* MRCP_SERVER_H */
#define MRCP_DECLARE(type)
Definition: mrcp.h:40
mrcp_sig_agent_t * mrcp_server_signaling_agent_get(const mrcp_server_t *server, const char *name)
apt_bool_t mrcp_server_resource_factory_register(mrcp_server_t *server, mrcp_resource_factory_t *resource_factory)
struct mrcp_connection_agent_t mrcp_connection_agent_t
Definition: mrcp_connection_types.h:42
struct apt_dir_layout_t apt_dir_layout_t
Definition: apt_dir_layout.h:38
apt_bool_t mrcp_server_signaling_agent_register(mrcp_server_t *server, mrcp_sig_agent_t *signaling_agent)
Definition: mpf_rtp_descriptor.h:128
MRCP Engine User Interface (typically user is an MRCP server)
apt_bool_t mrcp_server_codec_manager_register(mrcp_server_t *server, mpf_codec_manager_t *codec_manager)
#define APT_END_EXTERN_C
Definition: apt.h:38
apt_bool_t mrcp_server_rtp_settings_register(mrcp_server_t *server, mpf_rtp_settings_t *rtp_settings, const char *name)
apt_bool_t mrcp_server_engine_register(mrcp_server_t *server, mrcp_engine_t *engine)
Definition: mrcp_server_session.h:111
int apt_bool_t
Definition: apt.h:57
mrcp_server_profile_t * mrcp_server_profile_get(const mrcp_server_t *server, const char *name)
apt_bool_t mrcp_server_start(mrcp_server_t *server)
mrcp_version_e
Definition: mrcp_types.h:30
apt_bool_t mrcp_server_profile_register(mrcp_server_t *server, mrcp_server_profile_t *profile, apr_table_t *plugin_map)
mrcp_server_profile_t * mrcp_server_profile_create(const char *id, mrcp_version_e mrcp_version, mrcp_resource_factory_t *resource_factory, mrcp_sig_agent_t *signaling_agent, mrcp_connection_agent_t *connection_agent, mpf_engine_t *media_engine, mpf_termination_factory_t *rtp_factory, mpf_rtp_settings_t *rtp_settings, apr_pool_t *pool)
typedefAPT_BEGIN_EXTERN_C struct mpf_engine_t mpf_engine_t
Definition: mpf_types.h:30
struct mrcp_resource_factory_t mrcp_resource_factory_t
Definition: mrcp_types.h:76
#define APT_BEGIN_EXTERN_C
Definition: apt.h:36
Definition: mpf_termination_factory.h:30
apr_pool_t * mrcp_server_memory_pool_get(const mrcp_server_t *server)
MRCP Server Types.
apt_bool_t mrcp_server_destroy(mrcp_server_t *server)
apt_bool_t mrcp_server_connection_agent_register(mrcp_server_t *server, mrcp_connection_agent_t *connection_agent)
mpf_termination_factory_t * mrcp_server_rtp_factory_get(const mrcp_server_t *server, const char *name)
Definition: mrcp_engine_types.h:145
apt_bool_t mrcp_server_media_engine_register(mrcp_server_t *server, mpf_engine_t *media_engine)
Definition: mrcp_sig_agent.h:52
const mpf_codec_manager_t * mrcp_server_codec_manager_get(const mrcp_server_t *server)
Thread Execution Abstraction.
mpf_engine_t * mrcp_server_media_engine_get(const mrcp_server_t *server, const char *name)
mpf_rtp_settings_t * mrcp_server_rtp_settings_get(const mrcp_server_t *server, const char *name)
mrcp_connection_agent_t * mrcp_server_connection_agent_get(const mrcp_server_t *server, const char *name)
apt_bool_t mrcp_server_shutdown(mrcp_server_t *server)
typedefAPT_BEGIN_EXTERN_C struct mrcp_server_t mrcp_server_t
Definition: mrcp_server_types.h:32
APT_BEGIN_EXTERN_C mrcp_server_t * mrcp_server_create(apt_dir_layout_t *dir_layout)
Definition: mrcp_engine_types.h:114
MPF RTP Stream Descriptor.
struct mpf_codec_manager_t mpf_codec_manager_t
Definition: mpf_types.h:39
mrcp_engine_t * mrcp_server_engine_load(mrcp_server_t *server, const char *id, const char *path, mrcp_engine_config_t *config)
apt_bool_t mrcp_server_rtp_factory_register(mrcp_server_t *server, mpf_termination_factory_t *rtp_termination_factory, const char *name)