Add missing module dependencies to various res_sip* modules
[asterisk/asterisk.git] / res / res_sip_endpoint_identifier_constant.c
1 /*
2  * Asterisk -- An open source telephony toolkit.
3  *
4  * Copyright (C) 2013, Digium, Inc.
5  *
6  * Mark Michelson <mmichelson@digium.com>
7  *
8  * Includes code and algorithms from the Zapata library.
9  *
10  * See http://www.asterisk.org for more information about
11  * the Asterisk project. Please do not directly contact
12  * any of the maintainers of this project for assistance;
13  * the project provides a web site, mailing lists and IRC
14  * channels for your use.
15  *
16  * This program is free software, distributed under the terms of
17  * the GNU General Public License Version 2. See the LICENSE file
18  * at the top of the source tree.
19  */
20
21 /*** MODULEINFO
22         <depend>pjproject</depend>
23         <depend>res_sip</depend>
24         <defaultenabled>no</defaultenabled>
25         <support_level>core</support_level>
26  ***/
27
28 #include "asterisk.h"
29
30 #include <pjsip.h>
31
32 #include "asterisk/res_sip.h"
33 #include "asterisk/module.h"
34
35 static struct ast_sip_endpoint *constant_identify(pjsip_rx_data *rdata)
36 {
37         /* This endpoint identifier always returns the same endpoint. It's used
38          * simply for testing. It allocates an endpoint from sorcery so default values
39          * do get applied.
40          */
41         struct ast_sip_endpoint *endpoint = ast_sorcery_alloc(ast_sip_get_sorcery(), "endpoint", NULL);
42         if (!endpoint) {
43                 return NULL;
44         }
45         ast_parse_allow_disallow(&endpoint->prefs, endpoint->codecs, "ulaw", 1);
46         return endpoint;
47 }
48
49 static struct ast_sip_endpoint_identifier constant_identifier = {
50         .identify_endpoint = constant_identify,
51 };
52
53 static int load_module(void)
54 {
55         ast_sip_register_endpoint_identifier(&constant_identifier);
56         return AST_MODULE_LOAD_SUCCESS;
57 }
58
59 static int unload_module(void)
60 {
61         return 0;
62 }
63
64 AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "SIP Constant Endpoint Identifier",
65                 .load = load_module,
66                 .unload = unload_module,
67                 .load_pri = AST_MODPRI_APP_DEPEND,
68                );