diff options
Diffstat (limited to 'res/res_pjsip/config_global.c')
-rw-r--r-- | res/res_pjsip/config_global.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/res/res_pjsip/config_global.c b/res/res_pjsip/config_global.c index 4cf26f2a4..682e3c0b1 100644 --- a/res/res_pjsip/config_global.c +++ b/res/res_pjsip/config_global.c @@ -31,6 +31,7 @@ #define DEFAULT_USERAGENT_PREFIX "Asterisk PBX" #define DEFAULT_OUTBOUND_ENDPOINT "default_outbound_endpoint" #define DEFAULT_DEBUG "no" +#define DEFAULT_ENDPOINT_IDENTIFIER_ORDER "ip,username,anonymous" static char default_useragent[256]; @@ -41,6 +42,8 @@ struct global_config { AST_STRING_FIELD(default_outbound_endpoint); /*! Debug logging yes|no|host */ AST_STRING_FIELD(debug); + /*! Order by which endpoint identifiers are checked (comma separated list) */ + AST_STRING_FIELD(endpoint_identifier_order); ); /* Value to put in Max-Forwards header */ unsigned int max_forwards; @@ -127,6 +130,21 @@ char *ast_sip_get_debug(void) return res; } +char *ast_sip_get_endpoint_identifier_order(void) +{ + char *res; + struct global_config *cfg; + + cfg = get_global_cfg(); + if (!cfg) { + return ast_strdup(DEFAULT_ENDPOINT_IDENTIFIER_ORDER); + } + + res = ast_strdup(cfg->endpoint_identifier_order); + ao2_ref(cfg, -1); + return res; +} + unsigned int ast_sip_get_keep_alive_interval(void) { unsigned int interval; @@ -228,6 +246,9 @@ int ast_sip_initialize_sorcery_global(void) OPT_STRINGFIELD_T, 0, STRFLDSET(struct global_config, default_outbound_endpoint)); ast_sorcery_object_field_register(sorcery, "global", "debug", DEFAULT_DEBUG, OPT_STRINGFIELD_T, 0, STRFLDSET(struct global_config, debug)); + ast_sorcery_object_field_register(sorcery, "global", "endpoint_identifier_order", + DEFAULT_ENDPOINT_IDENTIFIER_ORDER, + OPT_STRINGFIELD_T, 0, STRFLDSET(struct global_config, endpoint_identifier_order)); ast_sorcery_object_field_register(sorcery, "global", "keep_alive_interval", __stringify(DEFAULT_KEEPALIVE_INTERVAL), OPT_UINT_T, 0, FLDSET(struct global_config, keep_alive_interval)); |