res_pjsip: Remove outgoing authentication code no longer needed.
[asterisk/asterisk.git] / res / res_pjsip / include / res_pjsip_private.h
1 /*
2  * res_pjsip_private.h
3  *
4  *  Created on: Jan 25, 2013
5  *      Author: mjordan
6  */
7
8 #ifndef RES_PJSIP_PRIVATE_H_
9 #define RES_PJSIP_PRIVATE_H_
10
11 /*!
12  * \todo XXX Functions prototyped in this file that begin with "ast_sip_"
13  * need to be renamed so res_pjsip.so does not export the names outside
14  * of the module.
15  */
16
17 #include "asterisk/module.h"
18 #include "asterisk/compat.h"
19
20 struct ao2_container;
21 struct ast_threadpool_options;
22 struct ast_sip_cli_context;
23
24 /*!
25  * \internal
26  * \brief Initialize the configuration for res_pjsip
27  */
28 int ast_res_pjsip_initialize_configuration(void);
29
30 /*!
31  * \internal
32  * \brief Annihilate the configuration objects
33  */
34 void ast_res_pjsip_destroy_configuration(void);
35
36 /*!
37  * \internal
38  * \brief Reload the configuration
39  */
40 int ast_res_pjsip_reload_configuration(void);
41
42 /*!
43  * \internal
44  * \brief Initialize transport support on a sorcery instance
45  *
46  * \retval -1 failure
47  * \retval 0 success
48  */
49 int ast_sip_initialize_sorcery_transport(void);
50
51 /*!
52  * \internal
53  * \brief Destroy transport support on a sorcery instance
54  *
55  * \retval -1 failure
56  * \retval 0 success
57  */
58 int ast_sip_destroy_sorcery_transport(void);
59
60 /*!
61  * \internal
62  * \brief Initialize qualify support on a sorcery instance
63  *
64  * \retval -1 failure
65  * \retval 0 success
66  */
67 int ast_sip_initialize_sorcery_qualify(void);
68
69 /*!
70  * \internal
71  * \brief Initialize location support on a sorcery instance
72  *
73  * \retval -1 failure
74  * \retval 0 success
75  */
76 int ast_sip_initialize_sorcery_location(void);
77
78 /*!
79  * \internal
80  * \brief Destroy location support on a sorcery instance
81  *
82  * \retval -1 failure
83  * \retval 0 success
84  */
85 int ast_sip_destroy_sorcery_location(void);
86
87 /*!
88  * \internal
89  * \brief Initialize domain aliases support on a sorcery instance
90  *
91  * \retval -1 failure
92  * \retval 0 success
93  */
94 int ast_sip_initialize_sorcery_domain_alias(void);
95
96 /*!
97  * \internal
98  * \brief Initialize authentication support on a sorcery instance
99  *
100  * \retval -1 failure
101  * \retval 0 success
102  */
103 int ast_sip_initialize_sorcery_auth(void);
104
105 /*!
106  * \internal
107  * \brief Destroy authentication support on a sorcery instance
108  *
109  * \retval -1 failure
110  * \retval 0 success
111  */
112 int ast_sip_destroy_sorcery_auth(void);
113
114 /*!
115  * \internal
116  * \brief Initialize the distributor module
117  *
118  * The distributor module is responsible for taking an incoming
119  * SIP message and placing it into the threadpool. Once in the threadpool,
120  * the distributor will perform endpoint lookups and authentication, and
121  * then distribute the message up the stack to any further modules.
122  *
123  * \retval -1 Failure
124  * \retval 0 Success
125  */
126 int ast_sip_initialize_distributor(void);
127
128 /*!
129  * \internal
130  * \brief Destruct the distributor module.
131  *
132  * Unregisters pjsip modules and cleans up any allocated resources.
133  */
134 void ast_sip_destroy_distributor(void);
135
136 /*!
137  * \internal
138  * \brief Initialize global type on a sorcery instance
139  *
140  * \retval -1 failure
141  * \retval 0 success
142  */
143 int ast_sip_initialize_sorcery_global(void);
144
145 /*!
146  * \internal
147  * \brief Destroy global type on a sorcery instance
148  * \since 13.3.0
149  *
150  * \retval -1 failure
151  * \retval 0 success
152  */
153 int ast_sip_destroy_sorcery_global(void);
154
155 /*!
156  * \internal
157  * \brief Initialize global headers support
158  *
159  * \return Nothing
160  */
161 void ast_sip_initialize_global_headers(void);
162
163 /*!
164  * \internal
165  * \brief Destroy global headers support
166  *
167  * \return Nothing
168  */
169 void ast_sip_destroy_global_headers(void);
170
171 /*!
172  * \internal
173  * \brief Initialize OPTIONS request handling.
174  *
175  * XXX This currently includes qualifying peers. It shouldn't.
176  * That should go into a registrar. When that occurs, we won't
177  * need the reload stuff.
178  *
179  * \param reload Reload options handling
180  *
181  * \retval 0 on success
182  * \retval other on failure
183  */
184 int ast_res_pjsip_init_options_handling(int reload);
185
186 /*!
187  * \internal
188  * \brief Initialize transport storage for contacts.
189  *
190  * \retval 0 on success
191  * \retval other on failure
192  */
193 int ast_res_pjsip_init_contact_transports(void);
194
195 /*!
196  * \internal
197  * \brief Initialize system configuration
198  *
199  * \retval 0 Success
200  * \retval non-zero Failure
201  */
202 int ast_sip_initialize_system(void);
203
204 /*!
205  * \internal
206  * \brief Destroy system configuration
207  */
208 void ast_sip_destroy_system(void);
209
210 /*!
211  * \internal
212  * \brief Initialize nameserver configuration
213  */
214 void ast_sip_initialize_dns(void);
215
216 /*!
217  * \internal
218  * \brief Initialize our own resolver support
219  */
220 void ast_sip_initialize_resolver(void);
221
222 /*!
223  * \internal
224  * \brief Initialize global configuration
225  *
226  * \retval 0 Success
227  * \retval non-zero Failure
228  */
229 int ast_sip_initialize_global(void);
230
231 /*!
232  * \internal
233  * \brief Clean up res_pjsip options handling
234  */
235 void ast_res_pjsip_cleanup_options_handling(void);
236
237 /*!
238  * \internal
239  * \brief Get threadpool options
240  */
241 void sip_get_threadpool_options(struct ast_threadpool_options *threadpool_options);
242
243 /*!
244  * \internal
245  * \brief Retrieve the name of the default outbound endpoint.
246  *
247  * \note This returns a memory allocated copy of the name that
248  *       needs to be freed by the caller.
249  *
250  * \retval The name of the default outbound endpoint.
251  * \retval NULL if configuration not found.
252  */
253 char *ast_sip_global_default_outbound_endpoint(void);
254
255 /*!
256  * \internal
257  * \brief Functions for initializing and destroying the CLI.
258  */
259 int ast_sip_initialize_cli(void);
260 void ast_sip_destroy_cli(void);
261
262 /*!
263  * \internal
264  * \brief Add res_pjsip global configuration options to the cli context.
265  *
266  * \param context context to add options to
267  * \retval 0 Success, -1 on failure
268  */
269 int sip_cli_print_global(struct ast_sip_cli_context *context);
270
271 /*!
272  * \internal
273  * \brief Add res_pjsip system configuration options to the cli context.
274  *
275  * \param context context to add options to
276  * \retval 0 Success, -1 on failure
277  */
278 int sip_cli_print_system(struct ast_sip_cli_context *context);
279
280 /*!
281  * \internal
282  * \brief Used by res_pjsip.so to register a service without adding a self reference
283  */
284 int internal_sip_register_service(pjsip_module *module);
285
286 /*!
287  * \internal
288  * \brief Used by res_pjsip.so to unregister a service without removing a self reference
289  */
290 int internal_sip_unregister_service(pjsip_module *module);
291
292 /*!
293  * \internal
294  * \brief Used by res_pjsip.so to register an endpoint formatter without adding a self reference
295  */
296 void internal_sip_register_endpoint_formatter(struct ast_sip_endpoint_formatter *obj);
297
298 /*!
299  * \internal
300  * \brief Used by res_pjsip.so to unregister a endpoint formatter without removing a self reference
301  */
302 int internal_sip_unregister_endpoint_formatter(struct ast_sip_endpoint_formatter *obj);
303
304 /*!
305  * \internal
306  * \brief Finds or creates contact_status for a contact
307  */
308 struct ast_sip_contact_status *ast_res_pjsip_find_or_create_contact_status(const struct ast_sip_contact *contact);
309 #endif /* RES_PJSIP_PRIVATE_H_ */