Asterisk - The Open Source Telephony Project GIT-master-55f4e6d
Data Structures | Macros | Functions | Variables
config_global.c File Reference
#include "asterisk.h"
#include <pjsip.h>
#include <pjlib.h>
#include "asterisk/res_pjsip.h"
#include "include/res_pjsip_private.h"
#include "asterisk/pbx.h"
#include "asterisk/sorcery.h"
#include "asterisk/taskprocessor.h"
#include "asterisk/ast_version.h"
#include "asterisk/res_pjsip_cli.h"
Include dependency graph for config_global.c:

Go to the source code of this file.

Data Structures

struct  global_config
 

Macros

#define DEFAULT_ALL_CODECS_ON_EMPTY_REINVITE   0
 
#define DEFAULT_ALLOW_SENDING_180_AFTER_183   0
 
#define DEFAULT_CONTACT_EXPIRATION_CHECK_INTERVAL   30
 
#define DEFAULT_DEBUG   "no"
 
#define DEFAULT_DISABLE_MULTI_DOMAIN   0
 
#define DEFAULT_ENDPOINT_IDENTIFIER_ORDER   "ip,username,anonymous"
 
#define DEFAULT_FROM_USER   "asterisk"
 
#define DEFAULT_IGNORE_URI_USER_OPTIONS   0
 
#define DEFAULT_KEEPALIVE_INTERVAL   90
 
#define DEFAULT_MAX_FORWARDS   70
 
#define DEFAULT_MAX_INITIAL_QUALIFY_TIME   0
 
#define DEFAULT_MWI_DISABLE_INITIAL_UNSOLICITED   0
 
#define DEFAULT_MWI_TPS_QUEUE_HIGH   AST_TASKPROCESSOR_HIGH_WATER_LEVEL
 
#define DEFAULT_MWI_TPS_QUEUE_LOW   -1
 
#define DEFAULT_NOREFERSUB   1
 
#define DEFAULT_OUTBOUND_ENDPOINT   "default_outbound_endpoint"
 
#define DEFAULT_REALM   "asterisk"
 
#define DEFAULT_REGCONTEXT   ""
 
#define DEFAULT_SEND_CONTACT_STATUS_ON_UPDATE_REGISTRATION   0
 
#define DEFAULT_TASKPROCESSOR_OVERLOAD_TRIGGER   TASKPROCESSOR_OVERLOAD_TRIGGER_GLOBAL
 
#define DEFAULT_UNIDENTIFIED_REQUEST_COUNT   5
 
#define DEFAULT_UNIDENTIFIED_REQUEST_PERIOD   5
 
#define DEFAULT_UNIDENTIFIED_REQUEST_PRUNE_INTERVAL   30
 
#define DEFAULT_USE_CALLERID_CONTACT   0
 
#define DEFAULT_USERAGENT_PREFIX   "Asterisk PBX"
 
#define DEFAULT_VOICEMAIL_EXTENSION   ""
 

Functions

static AO2_GLOBAL_OBJ_STATIC (global_cfg)
 Cached global config object. More...
 
int ast_sip_destroy_sorcery_global (void)
 
unsigned int ast_sip_get_all_codecs_on_empty_reinvite (void)
 Retrieve the system setting 'all_codecs_on_empty_reinvite'. More...
 
unsigned int ast_sip_get_allow_sending_180_after_183 (void)
 Retrieve the global setting 'allow_sending_180_after_183'. More...
 
unsigned int ast_sip_get_contact_expiration_check_interval (void)
 Retrieve the system contact expiration check interval setting. More...
 
char * ast_sip_get_debug (void)
 Retrieve the system debug setting (yes|no|host). More...
 
void ast_sip_get_default_from_user (char *from_user, size_t size)
 Retrieve the global default from user. More...
 
void ast_sip_get_default_realm (char *realm, size_t size)
 Retrieve the global default realm. More...
 
char * ast_sip_get_default_voicemail_extension (void)
 Retrieve the default voicemail extension. More...
 
unsigned int ast_sip_get_disable_multi_domain (void)
 Retrieve the system setting 'disable multi domain'. More...
 
char * ast_sip_get_endpoint_identifier_order (void)
 Retrieve the global endpoint_identifier_order setting. More...
 
unsigned int ast_sip_get_ignore_uri_user_options (void)
 Retrieve the global setting 'ignore_uri_user_options'. More...
 
unsigned int ast_sip_get_keep_alive_interval (void)
 Retrieve the system keep alive interval setting. More...
 
unsigned int ast_sip_get_max_initial_qualify_time (void)
 Retrieve the system max initial qualify time. More...
 
unsigned int ast_sip_get_mwi_disable_initial_unsolicited (void)
 Retrieve the global setting 'disable sending unsolicited mwi on startup'. More...
 
unsigned int ast_sip_get_mwi_tps_queue_high (void)
 Retrieve the global MWI taskprocessor high water alert trigger level. More...
 
int ast_sip_get_mwi_tps_queue_low (void)
 Retrieve the global MWI taskprocessor low water clear alert level. More...
 
unsigned int ast_sip_get_norefersub (void)
 Retrieve the global setting 'norefersub'. More...
 
char * ast_sip_get_regcontext (void)
 Retrieve the global regcontext setting. More...
 
unsigned int ast_sip_get_send_contact_status_on_update_registration (void)
 Retrieve the global setting 'send_contact_status_on_update_registration'. More...
 
enum ast_sip_taskprocessor_overload_trigger ast_sip_get_taskprocessor_overload_trigger (void)
 
void ast_sip_get_unidentified_request_thresholds (unsigned int *count, unsigned int *period, unsigned int *prune_interval)
 Retrieve the unidentified request security event thresholds. More...
 
unsigned int ast_sip_get_use_callerid_contact (void)
 Retrieve the global setting 'use_callerid_contact'. More...
 
char * ast_sip_global_default_outbound_endpoint (void)
 
int ast_sip_initialize_sorcery_global (void)
 
const char * ast_sip_overload_trigger_to_str (enum ast_sip_taskprocessor_overload_trigger trigger)
 
static int check_regcontext (const struct global_config *cfg)
 
static struct global_configget_global_cfg (void)
 
static void * global_alloc (const char *name)
 
static int global_apply (const struct ast_sorcery *sorcery, void *obj)
 
static void global_destructor (void *obj)
 
static void global_loaded_observer (const char *name, const struct ast_sorcery *sorcery, const char *object_type, int reloaded)
 
static int overload_trigger_handler (const struct aco_option *opt, struct ast_variable *var, void *obj)
 
static int overload_trigger_to_str (const void *obj, const intptr_t *args, char **buf)
 
int sip_cli_print_global (struct ast_sip_cli_context *context)
 

Variables

static char default_useragent [256]
 
static const struct ast_sorcery_instance_observer observer_callbacks_global
 
static const char * overload_trigger_map []
 
static char * previous_regcontext = NULL
 

Macro Definition Documentation

◆ DEFAULT_ALL_CODECS_ON_EMPTY_REINVITE

#define DEFAULT_ALL_CODECS_ON_EMPTY_REINVITE   0

Definition at line 57 of file config_global.c.

◆ DEFAULT_ALLOW_SENDING_180_AFTER_183

#define DEFAULT_ALLOW_SENDING_180_AFTER_183   0

Definition at line 51 of file config_global.c.

◆ DEFAULT_CONTACT_EXPIRATION_CHECK_INTERVAL

#define DEFAULT_CONTACT_EXPIRATION_CHECK_INTERVAL   30

Definition at line 42 of file config_global.c.

◆ DEFAULT_DEBUG

#define DEFAULT_DEBUG   "no"

Definition at line 36 of file config_global.c.

◆ DEFAULT_DISABLE_MULTI_DOMAIN

#define DEFAULT_DISABLE_MULTI_DOMAIN   0

Definition at line 43 of file config_global.c.

◆ DEFAULT_ENDPOINT_IDENTIFIER_ORDER

#define DEFAULT_ENDPOINT_IDENTIFIER_ORDER   "ip,username,anonymous"

Definition at line 37 of file config_global.c.

◆ DEFAULT_FROM_USER

#define DEFAULT_FROM_USER   "asterisk"

Definition at line 39 of file config_global.c.

◆ DEFAULT_IGNORE_URI_USER_OPTIONS

#define DEFAULT_IGNORE_URI_USER_OPTIONS   0

Definition at line 52 of file config_global.c.

◆ DEFAULT_KEEPALIVE_INTERVAL

#define DEFAULT_KEEPALIVE_INTERVAL   90

Definition at line 33 of file config_global.c.

◆ DEFAULT_MAX_FORWARDS

#define DEFAULT_MAX_FORWARDS   70

Definition at line 32 of file config_global.c.

◆ DEFAULT_MAX_INITIAL_QUALIFY_TIME

#define DEFAULT_MAX_INITIAL_QUALIFY_TIME   0

Definition at line 38 of file config_global.c.

◆ DEFAULT_MWI_DISABLE_INITIAL_UNSOLICITED

#define DEFAULT_MWI_DISABLE_INITIAL_UNSOLICITED   0

Definition at line 50 of file config_global.c.

◆ DEFAULT_MWI_TPS_QUEUE_HIGH

#define DEFAULT_MWI_TPS_QUEUE_HIGH   AST_TASKPROCESSOR_HIGH_WATER_LEVEL

Definition at line 48 of file config_global.c.

◆ DEFAULT_MWI_TPS_QUEUE_LOW

#define DEFAULT_MWI_TPS_QUEUE_LOW   -1

Definition at line 49 of file config_global.c.

◆ DEFAULT_NOREFERSUB

#define DEFAULT_NOREFERSUB   1

Definition at line 56 of file config_global.c.

◆ DEFAULT_OUTBOUND_ENDPOINT

#define DEFAULT_OUTBOUND_ENDPOINT   "default_outbound_endpoint"

Definition at line 35 of file config_global.c.

◆ DEFAULT_REALM

#define DEFAULT_REALM   "asterisk"

Definition at line 40 of file config_global.c.

◆ DEFAULT_REGCONTEXT

#define DEFAULT_REGCONTEXT   ""

Definition at line 41 of file config_global.c.

◆ DEFAULT_SEND_CONTACT_STATUS_ON_UPDATE_REGISTRATION

#define DEFAULT_SEND_CONTACT_STATUS_ON_UPDATE_REGISTRATION   0

Definition at line 54 of file config_global.c.

◆ DEFAULT_TASKPROCESSOR_OVERLOAD_TRIGGER

#define DEFAULT_TASKPROCESSOR_OVERLOAD_TRIGGER   TASKPROCESSOR_OVERLOAD_TRIGGER_GLOBAL

Definition at line 55 of file config_global.c.

◆ DEFAULT_UNIDENTIFIED_REQUEST_COUNT

#define DEFAULT_UNIDENTIFIED_REQUEST_COUNT   5

Definition at line 45 of file config_global.c.

◆ DEFAULT_UNIDENTIFIED_REQUEST_PERIOD

#define DEFAULT_UNIDENTIFIED_REQUEST_PERIOD   5

Definition at line 46 of file config_global.c.

◆ DEFAULT_UNIDENTIFIED_REQUEST_PRUNE_INTERVAL

#define DEFAULT_UNIDENTIFIED_REQUEST_PRUNE_INTERVAL   30

Definition at line 47 of file config_global.c.

◆ DEFAULT_USE_CALLERID_CONTACT

#define DEFAULT_USE_CALLERID_CONTACT   0

Definition at line 53 of file config_global.c.

◆ DEFAULT_USERAGENT_PREFIX

#define DEFAULT_USERAGENT_PREFIX   "Asterisk PBX"

Definition at line 34 of file config_global.c.

◆ DEFAULT_VOICEMAIL_EXTENSION

#define DEFAULT_VOICEMAIL_EXTENSION   ""

Definition at line 44 of file config_global.c.

Function Documentation

◆ AO2_GLOBAL_OBJ_STATIC()

static AO2_GLOBAL_OBJ_STATIC ( global_cfg  )
static

Cached global config object.

Cached so we don't have to keep asking sorcery for the config. We could ask for it hundreds of times a second if not more.

◆ ast_sip_destroy_sorcery_global()

int ast_sip_destroy_sorcery_global ( void  )

Definition at line 664 of file config_global.c.

665{
667
669
673 }
674
675 ao2_t_global_obj_release(global_cfg, "Module is unloading");
676
677 return 0;
678}
#define ast_free(a)
Definition: astmm.h:180
#define ao2_t_global_obj_release(holder, tag)
Definition: astobj2.h:861
static const struct ast_sorcery_instance_observer observer_callbacks_global
static char * previous_regcontext
int ast_context_destroy_by_name(const char *context, const char *registrar)
Destroy a context by name.
Definition: pbx.c:8205
struct ast_sorcery * ast_sip_get_sorcery(void)
Get a pointer to the SIP sorcery structure.
static struct ast_sorcery * sorcery
void ast_sorcery_instance_observer_remove(struct ast_sorcery *sorcery, const struct ast_sorcery_instance_observer *callbacks)
Remove an observer from a sorcery instance.
Definition: sorcery.c:537
Full structure for sorcery.
Definition: sorcery.c:230

References ao2_t_global_obj_release, ast_context_destroy_by_name(), ast_free, ast_sip_get_sorcery(), ast_sorcery_instance_observer_remove(), observer_callbacks_global, previous_regcontext, and sorcery.

Referenced by ast_res_pjsip_destroy_configuration().

◆ ast_sip_get_all_codecs_on_empty_reinvite()

unsigned int ast_sip_get_all_codecs_on_empty_reinvite ( void  )

Retrieve the system setting 'all_codecs_on_empty_reinvite'.

Return values
nonzero if we should return all codecs on empty re-INVITE

Definition at line 543 of file config_global.c.

544{
545 unsigned int all_codecs_on_empty_reinvite;
546 struct global_config *cfg;
547
548 cfg = get_global_cfg();
549 if (!cfg) {
551 }
552
554 ao2_ref(cfg, -1);
556}
#define ao2_ref(o, delta)
Reference/unreference an object and return the old refcount.
Definition: astobj2.h:459
static struct global_config * get_global_cfg(void)
#define DEFAULT_ALL_CODECS_ON_EMPTY_REINVITE
Definition: config_global.c:57
unsigned int all_codecs_on_empty_reinvite

References global_config::all_codecs_on_empty_reinvite, ao2_ref, DEFAULT_ALL_CODECS_ON_EMPTY_REINVITE, and get_global_cfg().

Referenced by session_inv_on_create_offer().

◆ ast_sip_get_allow_sending_180_after_183()

unsigned int ast_sip_get_allow_sending_180_after_183 ( void  )

Retrieve the global setting 'allow_sending_180_after_183'.

Return values
nonzero if disable.

Definition at line 453 of file config_global.c.

454{
455 unsigned int allow_sending_180_after_183;
456 struct global_config *cfg;
457
458 cfg = get_global_cfg();
459 if (!cfg) {
461 }
462
464 ao2_ref(cfg, -1);
466}
#define DEFAULT_ALLOW_SENDING_180_AFTER_183
Definition: config_global.c:51
unsigned int allow_sending_180_after_183
Definition: config_global.c:98

References global_config::allow_sending_180_after_183, ao2_ref, DEFAULT_ALLOW_SENDING_180_AFTER_183, and get_global_cfg().

Referenced by chan_pjsip_indicate().

◆ ast_sip_get_contact_expiration_check_interval()

unsigned int ast_sip_get_contact_expiration_check_interval ( void  )

Retrieve the system contact expiration check interval setting.

Return values
thecontact expiration check interval.

Definition at line 315 of file config_global.c.

316{
317 unsigned int interval;
318 struct global_config *cfg;
319
320 cfg = get_global_cfg();
321 if (!cfg) {
323 }
324
325 interval = cfg->contact_expiration_check_interval;
326 ao2_ref(cfg, -1);
327 return interval;
328}
#define DEFAULT_CONTACT_EXPIRATION_CHECK_INTERVAL
Definition: config_global.c:42
unsigned int contact_expiration_check_interval
Definition: config_global.c:94

References ao2_ref, global_config::contact_expiration_check_interval, DEFAULT_CONTACT_EXPIRATION_CHECK_INTERVAL, and get_global_cfg().

Referenced by expiration_global_loaded().

◆ ast_sip_get_debug()

char * ast_sip_get_debug ( void  )

Retrieve the system debug setting (yes|no|host).

Note
returned string needs to be de-allocated by caller.
Return values
thesystem debug setting.

Definition at line 238 of file config_global.c.

239{
240 char *res;
241 struct global_config *cfg;
242
243 cfg = get_global_cfg();
244 if (!cfg) {
246 }
247
248 res = ast_strdup(cfg->debug);
249 ao2_ref(cfg, -1);
250 return res;
251}
#define ast_strdup(str)
A wrapper for strdup()
Definition: astmm.h:241
#define DEFAULT_DEBUG
Definition: config_global.c:36
const ast_string_field debug
Definition: config_global.c:86

References ao2_ref, ast_strdup, global_config::debug, DEFAULT_DEBUG, and get_global_cfg().

Referenced by check_debug().

◆ ast_sip_get_default_from_user()

void ast_sip_get_default_from_user ( char *  from_user,
size_t  size 
)

Retrieve the global default from user.

This is the value placed in outbound requests' From header if there is no better option (such as an endpoint-configured from_user or caller ID number).

Parameters
[out]from_userThe default from user
sizeThe buffer size of from_user

Definition at line 394 of file config_global.c.

395{
396 struct global_config *cfg;
397
398 cfg = get_global_cfg();
399 if (!cfg) {
400 ast_copy_string(from_user, DEFAULT_FROM_USER, size);
401 } else {
402 ast_copy_string(from_user, cfg->default_from_user, size);
403 ao2_ref(cfg, -1);
404 }
405}
#define DEFAULT_FROM_USER
Definition: config_global.c:39
void ast_copy_string(char *dst, const char *src, size_t size)
Size-limited null-terminating string copy.
Definition: strings.h:425
const ast_string_field default_from_user
Definition: config_global.c:86

References ao2_ref, ast_copy_string(), DEFAULT_FROM_USER, global_config::default_from_user, and get_global_cfg().

Referenced by sip_dialog_create_from().

◆ ast_sip_get_default_realm()

void ast_sip_get_default_realm ( char *  realm,
size_t  size 
)

Retrieve the global default realm.

This is the value placed in outbound challenges' realm if there is no better option (such as an auth-configured realm).

Parameters
[out]realmThe default realm
sizeThe buffer size of realm

Definition at line 381 of file config_global.c.

382{
383 struct global_config *cfg;
384
385 cfg = get_global_cfg();
386 if (!cfg) {
387 ast_copy_string(realm, DEFAULT_REALM, size);
388 } else {
389 ast_copy_string(realm, cfg->default_realm, size);
390 ao2_ref(cfg, -1);
391 }
392}
#define DEFAULT_REALM
Definition: config_global.c:40
const ast_string_field default_realm
Definition: config_global.c:86

References ao2_ref, ast_copy_string(), DEFAULT_REALM, global_config::default_realm, and get_global_cfg().

Referenced by create_artificial_auth(), and global_loaded().

◆ ast_sip_get_default_voicemail_extension()

char * ast_sip_get_default_voicemail_extension ( void  )

Retrieve the default voicemail extension.

Since
13.9.0
Note
returned string needs to be de-allocated by caller.
Return values
thedefault voicemail extension

Definition at line 269 of file config_global.c.

270{
271 char *res;
272 struct global_config *cfg;
273
274 cfg = get_global_cfg();
275 if (!cfg) {
277 }
278
280 ao2_ref(cfg, -1);
281
282 return res;
283}
#define DEFAULT_VOICEMAIL_EXTENSION
Definition: config_global.c:44
const ast_string_field default_voicemail_extension
Definition: config_global.c:86

References ao2_ref, ast_strdup, DEFAULT_VOICEMAIL_EXTENSION, global_config::default_voicemail_extension, and get_global_cfg().

Referenced by global_loaded().

◆ ast_sip_get_disable_multi_domain()

unsigned int ast_sip_get_disable_multi_domain ( void  )

Retrieve the system setting 'disable multi domain'.

Since
13.9.0
Return values
nonzero if disable multi domain.

Definition at line 330 of file config_global.c.

331{
332 unsigned int disable_multi_domain;
333 struct global_config *cfg;
334
335 cfg = get_global_cfg();
336 if (!cfg) {
338 }
339
341 ao2_ref(cfg, -1);
343}
#define DEFAULT_DISABLE_MULTI_DOMAIN
Definition: config_global.c:43
unsigned int disable_multi_domain
Definition: config_global.c:96

References ao2_ref, DEFAULT_DISABLE_MULTI_DOMAIN, global_config::disable_multi_domain, and get_global_cfg().

Referenced by anonymous_identify(), find_endpoint(), request(), and sip_dialog_create_from().

◆ ast_sip_get_endpoint_identifier_order()

char * ast_sip_get_endpoint_identifier_order ( void  )

Retrieve the global endpoint_identifier_order setting.

Specifies the order by which endpoint identifiers should be regarded.

Return values
theglobal endpoint_identifier_order value

Definition at line 285 of file config_global.c.

286{
287 char *res;
288 struct global_config *cfg;
289
290 cfg = get_global_cfg();
291 if (!cfg) {
293 }
294
296 ao2_ref(cfg, -1);
297 return res;
298}
#define DEFAULT_ENDPOINT_IDENTIFIER_ORDER
Definition: config_global.c:37
const ast_string_field endpoint_identifier_order
Definition: config_global.c:86

References ao2_ref, ast_strdup, DEFAULT_ENDPOINT_IDENTIFIER_ORDER, global_config::endpoint_identifier_order, and get_global_cfg().

Referenced by ast_sip_register_endpoint_identifier_with_name(), and global_loaded().

◆ ast_sip_get_ignore_uri_user_options()

unsigned int ast_sip_get_ignore_uri_user_options ( void  )

Retrieve the global setting 'ignore_uri_user_options'.

Since
13.12.0
Return values
nonzero if ignore the user field options.

Definition at line 468 of file config_global.c.

469{
470 unsigned int ignore_uri_user_options;
471 struct global_config *cfg;
472
473 cfg = get_global_cfg();
474 if (!cfg) {
476 }
477
479 ao2_ref(cfg, -1);
481}
#define DEFAULT_IGNORE_URI_USER_OPTIONS
Definition: config_global.c:52
unsigned int ignore_uri_user_options

References ao2_ref, DEFAULT_IGNORE_URI_USER_OPTIONS, get_global_cfg(), and global_config::ignore_uri_user_options.

Referenced by find_registrar_aor().

◆ ast_sip_get_keep_alive_interval()

unsigned int ast_sip_get_keep_alive_interval ( void  )

Retrieve the system keep alive interval setting.

Return values
thekeep alive interval.

Definition at line 300 of file config_global.c.

301{
302 unsigned int interval;
303 struct global_config *cfg;
304
305 cfg = get_global_cfg();
306 if (!cfg) {
308 }
309
310 interval = cfg->keep_alive_interval;
311 ao2_ref(cfg, -1);
312 return interval;
313}
#define DEFAULT_KEEPALIVE_INTERVAL
Definition: config_global.c:33
unsigned int keep_alive_interval
Definition: config_global.c:90

References ao2_ref, DEFAULT_KEEPALIVE_INTERVAL, get_global_cfg(), and global_config::keep_alive_interval.

Referenced by keepalive_global_loaded().

◆ ast_sip_get_max_initial_qualify_time()

unsigned int ast_sip_get_max_initial_qualify_time ( void  )

Retrieve the system max initial qualify time.

Return values
themaximum initial qualify time.

Definition at line 345 of file config_global.c.

346{
347 unsigned int time;
348 struct global_config *cfg;
349
350 cfg = get_global_cfg();
351 if (!cfg) {
353 }
354
355 time = cfg->max_initial_qualify_time;
356 ao2_ref(cfg, -1);
357 return time;
358}
#define DEFAULT_MAX_INITIAL_QUALIFY_TIME
Definition: config_global.c:38
unsigned int max_initial_qualify_time
Definition: config_global.c:92

References ao2_ref, DEFAULT_MAX_INITIAL_QUALIFY_TIME, get_global_cfg(), and global_config::max_initial_qualify_time.

Referenced by sip_options_determine_initial_qualify_time().

◆ ast_sip_get_mwi_disable_initial_unsolicited()

unsigned int ast_sip_get_mwi_disable_initial_unsolicited ( void  )

Retrieve the global setting 'disable sending unsolicited mwi on startup'.

Since
13.12.0
Return values
nonzero if disable.

Definition at line 438 of file config_global.c.

439{
440 unsigned int disable_initial_unsolicited;
441 struct global_config *cfg;
442
443 cfg = get_global_cfg();
444 if (!cfg) {
446 }
447
449 ao2_ref(cfg, -1);
451}
#define DEFAULT_MWI_DISABLE_INITIAL_UNSOLICITED
Definition: config_global.c:50
unsigned int disable_initial_unsolicited
struct global_config::@451 mwi

References ao2_ref, DEFAULT_MWI_DISABLE_INITIAL_UNSOLICITED, global_config::disable_initial_unsolicited, get_global_cfg(), and global_config::mwi.

Referenced by load_module(), and reload().

◆ ast_sip_get_mwi_tps_queue_high()

unsigned int ast_sip_get_mwi_tps_queue_high ( void  )

Retrieve the global MWI taskprocessor high water alert trigger level.

Since
13.12.0
Return values
thesystem MWI taskprocessor high water alert trigger level

Definition at line 408 of file config_global.c.

409{
410 unsigned int tps_queue_high;
411 struct global_config *cfg;
412
413 cfg = get_global_cfg();
414 if (!cfg) {
416 }
417
419 ao2_ref(cfg, -1);
420 return tps_queue_high;
421}
#define DEFAULT_MWI_TPS_QUEUE_HIGH
Definition: config_global.c:48
unsigned int tps_queue_high

References ao2_ref, DEFAULT_MWI_TPS_QUEUE_HIGH, get_global_cfg(), global_config::mwi, and global_config::tps_queue_high.

Referenced by global_loaded().

◆ ast_sip_get_mwi_tps_queue_low()

int ast_sip_get_mwi_tps_queue_low ( void  )

Retrieve the global MWI taskprocessor low water clear alert level.

Since
13.12.0
Return values
thesystem MWI taskprocessor low water clear alert level

Definition at line 423 of file config_global.c.

424{
425 int tps_queue_low;
426 struct global_config *cfg;
427
428 cfg = get_global_cfg();
429 if (!cfg) {
431 }
432
434 ao2_ref(cfg, -1);
435 return tps_queue_low;
436}
#define DEFAULT_MWI_TPS_QUEUE_LOW
Definition: config_global.c:49

References ao2_ref, DEFAULT_MWI_TPS_QUEUE_LOW, get_global_cfg(), global_config::mwi, and global_config::tps_queue_low.

Referenced by global_loaded().

◆ ast_sip_get_norefersub()

unsigned int ast_sip_get_norefersub ( void  )

Retrieve the global setting 'norefersub'.

Return values
nonzero if norefersub is to be sent in "Supported" Headers

Definition at line 528 of file config_global.c.

529{
530 unsigned int norefersub;
531 struct global_config *cfg;
532
533 cfg = get_global_cfg();
534 if (!cfg) {
535 return DEFAULT_NOREFERSUB;
536 }
537
538 norefersub = cfg->norefersub;
539 ao2_ref(cfg, -1);
540 return norefersub;
541}
#define DEFAULT_NOREFERSUB
Definition: config_global.c:56
unsigned int norefersub

References ao2_ref, DEFAULT_NOREFERSUB, get_global_cfg(), and global_config::norefersub.

Referenced by load_module().

◆ ast_sip_get_regcontext()

char * ast_sip_get_regcontext ( void  )

Retrieve the global regcontext setting.

Since
13.8.0
Note
returned string needs to be de-allocated by caller.
Return values
theglobal regcontext setting

Definition at line 253 of file config_global.c.

254{
255 char *res;
256 struct global_config *cfg;
257
258 cfg = get_global_cfg();
259 if (!cfg) {
261 }
262
263 res = ast_strdup(cfg->regcontext);
264 ao2_ref(cfg, -1);
265
266 return res;
267}
#define DEFAULT_REGCONTEXT
Definition: config_global.c:41
const ast_string_field regcontext
Definition: config_global.c:86

References ao2_ref, ast_strdup, DEFAULT_REGCONTEXT, get_global_cfg(), and global_config::regcontext.

Referenced by ast_sip_persistent_endpoint_update_state().

◆ ast_sip_get_send_contact_status_on_update_registration()

unsigned int ast_sip_get_send_contact_status_on_update_registration ( void  )

Retrieve the global setting 'send_contact_status_on_update_registration'.

Since
16.2.0
Return values
nonzero if need to send AMI ContactStatus event when a contact is updated.

Definition at line 498 of file config_global.c.

499{
500 unsigned int send_contact_status_on_update_registration;
501 struct global_config *cfg;
502
503 cfg = get_global_cfg();
504 if (!cfg) {
506 }
507
509 ao2_ref(cfg, -1);
511}
#define DEFAULT_SEND_CONTACT_STATUS_ON_UPDATE_REGISTRATION
Definition: config_global.c:54
unsigned int send_contact_status_on_update_registration

References ao2_ref, DEFAULT_SEND_CONTACT_STATUS_ON_UPDATE_REGISTRATION, get_global_cfg(), and global_config::send_contact_status_on_update_registration.

Referenced by contact_observer_updated().

◆ ast_sip_get_taskprocessor_overload_trigger()

enum ast_sip_taskprocessor_overload_trigger ast_sip_get_taskprocessor_overload_trigger ( void  )

Definition at line 513 of file config_global.c.

514{
516 struct global_config *cfg;
517
518 cfg = get_global_cfg();
519 if (!cfg) {
521 }
522
523 trigger = cfg->overload_trigger;
524 ao2_ref(cfg, -1);
525 return trigger;
526}
#define DEFAULT_TASKPROCESSOR_OVERLOAD_TRIGGER
Definition: config_global.c:55
ast_sip_taskprocessor_overload_trigger
enum ast_sip_taskprocessor_overload_trigger overload_trigger

References ao2_ref, DEFAULT_TASKPROCESSOR_OVERLOAD_TRIGGER, get_global_cfg(), and global_config::overload_trigger.

Referenced by global_loaded().

◆ ast_sip_get_unidentified_request_thresholds()

void ast_sip_get_unidentified_request_thresholds ( unsigned int *  count,
unsigned int *  period,
unsigned int *  prune_interval 
)

Retrieve the unidentified request security event thresholds.

Since
13.8.0
Parameters
countThe maximum number of unidentified requests per source ip to accumulate before emitting a security event
periodThe period in seconds over which to accumulate unidentified requests
prune_intervalThe interval in seconds at which expired entries will be pruned

Definition at line 360 of file config_global.c.

362{
363 struct global_config *cfg;
364
365 cfg = get_global_cfg();
366 if (!cfg) {
370 return;
371 }
372
373 *count = cfg->unidentified_request_count;
374 *period = cfg->unidentified_request_period;
375 *prune_interval = cfg->unidentified_request_prune_interval;
376
377 ao2_ref(cfg, -1);
378 return;
379}
#define DEFAULT_UNIDENTIFIED_REQUEST_COUNT
Definition: config_global.c:45
#define DEFAULT_UNIDENTIFIED_REQUEST_PRUNE_INTERVAL
Definition: config_global.c:47
#define DEFAULT_UNIDENTIFIED_REQUEST_PERIOD
Definition: config_global.c:46
unsigned int unidentified_request_prune_interval
unsigned int unidentified_request_count
unsigned int unidentified_request_period

References ao2_ref, DEFAULT_UNIDENTIFIED_REQUEST_COUNT, DEFAULT_UNIDENTIFIED_REQUEST_PERIOD, DEFAULT_UNIDENTIFIED_REQUEST_PRUNE_INTERVAL, get_global_cfg(), global_config::unidentified_request_count, global_config::unidentified_request_period, and global_config::unidentified_request_prune_interval.

Referenced by global_loaded(), and prune_task().

◆ ast_sip_get_use_callerid_contact()

unsigned int ast_sip_get_use_callerid_contact ( void  )

Retrieve the global setting 'use_callerid_contact'.

Since
13.24.0
Return values
nonzero if CALLERID(num) is to be used as the default username in the contact

Definition at line 483 of file config_global.c.

484{
485 unsigned int use_callerid_contact;
486 struct global_config *cfg;
487
488 cfg = get_global_cfg();
489 if (!cfg) {
491 }
492
494 ao2_ref(cfg, -1);
496}
#define DEFAULT_USE_CALLERID_CONTACT
Definition: config_global.c:53
unsigned int use_callerid_contact

References ao2_ref, DEFAULT_USE_CALLERID_CONTACT, get_global_cfg(), and global_config::use_callerid_contact.

Referenced by set_from_header().

◆ ast_sip_global_default_outbound_endpoint()

char * ast_sip_global_default_outbound_endpoint ( void  )

Definition at line 223 of file config_global.c.

224{
225 char *str;
226 struct global_config *cfg;
227
228 cfg = get_global_cfg();
229 if (!cfg) {
231 }
232
234 ao2_ref(cfg, -1);
235 return str;
236}
const char * str
Definition: app_jack.c:147
#define DEFAULT_OUTBOUND_ENDPOINT
Definition: config_global.c:35
const ast_string_field default_outbound_endpoint
Definition: config_global.c:86

References ao2_ref, ast_strdup, DEFAULT_OUTBOUND_ENDPOINT, global_config::default_outbound_endpoint, get_global_cfg(), and str.

Referenced by ast_sip_default_outbound_endpoint().

◆ ast_sip_initialize_sorcery_global()

int ast_sip_initialize_sorcery_global ( void  )

Definition at line 681 of file config_global.c.

682{
684
685 snprintf(default_useragent, sizeof(default_useragent), "%s %s",
687
688 ast_sorcery_apply_default(sorcery, "global", "config", "pjsip.conf,criteria=type=global,single_object=yes,explicit_name=global");
689
691 return -1;
692 }
693
694 ast_sorcery_object_field_register(sorcery, "global", "type", "", OPT_NOOP_T, 0, 0);
695 ast_sorcery_object_field_register(sorcery, "global", "max_forwards",
699 OPT_STRINGFIELD_T, 0, STRFLDSET(struct global_config, useragent));
700 ast_sorcery_object_field_register(sorcery, "global", "default_outbound_endpoint",
702 OPT_STRINGFIELD_T, 0, STRFLDSET(struct global_config, default_outbound_endpoint));
705 ast_sorcery_object_field_register(sorcery, "global", "endpoint_identifier_order",
707 OPT_STRINGFIELD_T, 0, STRFLDSET(struct global_config, endpoint_identifier_order));
708 ast_sorcery_object_field_register(sorcery, "global", "keep_alive_interval",
710 OPT_UINT_T, 0, FLDSET(struct global_config, keep_alive_interval));
711 ast_sorcery_object_field_register(sorcery, "global", "max_initial_qualify_time",
713 OPT_UINT_T, 0, FLDSET(struct global_config, max_initial_qualify_time));
714 ast_sorcery_object_field_register(sorcery, "global", "default_from_user", DEFAULT_FROM_USER,
715 OPT_STRINGFIELD_T, 0, STRFLDSET(struct global_config, default_from_user));
716 ast_sorcery_object_field_register(sorcery, "global", "default_voicemail_extension",
721 ast_sorcery_object_field_register(sorcery, "global", "contact_expiration_check_interval",
723 OPT_UINT_T, 0, FLDSET(struct global_config, contact_expiration_check_interval));
724 ast_sorcery_object_field_register(sorcery, "global", "disable_multi_domain",
725 DEFAULT_DISABLE_MULTI_DOMAIN ? "yes" : "no",
726 OPT_BOOL_T, 1, FLDSET(struct global_config, disable_multi_domain));
727 ast_sorcery_object_field_register(sorcery, "global", "unidentified_request_count",
729 OPT_UINT_T, 0, FLDSET(struct global_config, unidentified_request_count));
730 ast_sorcery_object_field_register(sorcery, "global", "unidentified_request_period",
732 OPT_UINT_T, 0, FLDSET(struct global_config, unidentified_request_period));
733 ast_sorcery_object_field_register(sorcery, "global", "unidentified_request_prune_interval",
735 OPT_UINT_T, 0, FLDSET(struct global_config, unidentified_request_prune_interval));
736 ast_sorcery_object_field_register(sorcery, "global", "default_realm", DEFAULT_REALM,
738 ast_sorcery_object_field_register(sorcery, "global", "mwi_tps_queue_high",
741 ast_sorcery_object_field_register(sorcery, "global", "mwi_tps_queue_low",
744 ast_sorcery_object_field_register(sorcery, "global", "mwi_disable_initial_unsolicited",
747 ast_sorcery_object_field_register(sorcery, "global", "allow_sending_180_after_183",
749 OPT_BOOL_T, 1, FLDSET(struct global_config, allow_sending_180_after_183));
750 ast_sorcery_object_field_register(sorcery, "global", "ignore_uri_user_options",
751 DEFAULT_IGNORE_URI_USER_OPTIONS ? "yes" : "no",
752 OPT_BOOL_T, 1, FLDSET(struct global_config, ignore_uri_user_options));
753 ast_sorcery_object_field_register(sorcery, "global", "use_callerid_contact",
754 DEFAULT_USE_CALLERID_CONTACT ? "yes" : "no",
755 OPT_YESNO_T, 1, FLDSET(struct global_config, use_callerid_contact));
756 ast_sorcery_object_field_register(sorcery, "global", "send_contact_status_on_update_registration",
758 OPT_YESNO_T, 1, FLDSET(struct global_config, send_contact_status_on_update_registration));
759 ast_sorcery_object_field_register_custom(sorcery, "global", "taskprocessor_overload_trigger",
762 ast_sorcery_object_field_register(sorcery, "global", "norefersub",
763 DEFAULT_NOREFERSUB ? "yes" : "no",
764 OPT_YESNO_T, 1, FLDSET(struct global_config, norefersub));
765 ast_sorcery_object_field_register(sorcery, "global", "all_codecs_on_empty_reinvite",
767 OPT_BOOL_T, 1, FLDSET(struct global_config, all_codecs_on_empty_reinvite));
768
770 return -1;
771 }
772
773 return 0;
774}
const char * ast_get_version(void)
Retrieve the Asterisk version string.
#define __stringify(x)
Definition: asterisk.h:216
static char regcontext[AST_MAX_CONTEXT]
Definition: chan_iax2.c:325
static int overload_trigger_handler(const struct aco_option *opt, struct ast_variable *var, void *obj)
static void * global_alloc(const char *name)
static char default_useragent[256]
Definition: config_global.c:68
#define DEFAULT_USERAGENT_PREFIX
Definition: config_global.c:34
static const char * overload_trigger_map[]
#define DEFAULT_MAX_FORWARDS
Definition: config_global.c:32
static int overload_trigger_to_str(const void *obj, const intptr_t *args, char **buf)
static int global_apply(const struct ast_sorcery *sorcery, void *obj)
#define STRFLDSET(type,...)
Convert a struct and a list of stringfield fields to an argument list of field offsets.
#define FLDSET(type,...)
Convert a struct and list of fields to an argument list of field offsets.
@ OPT_UINT_T
Type for default option handler for unsigned integers.
@ OPT_NOOP_T
Type for a default handler that should do nothing.
@ OPT_BOOL_T
Type for default option handler for bools (ast_true/ast_false)
@ OPT_YESNO_T
Type for default option handler for bools (ast_true/ast_false)
@ OPT_INT_T
Type for default option handler for signed integers.
@ OPT_STRINGFIELD_T
Type for default option handler for stringfields.
static char default_realm[AST_SIP_AUTH_MAX_REALM_LENGTH+1]
static char * default_voicemail_extension
Definition: res_pjsip_mwi.c:49
static int debug
Global debug status.
Definition: res_xmpp.c:441
#define NULL
Definition: resample.c:96
#define ast_sorcery_object_register(sorcery, type, alloc, transform, apply)
Register an object type.
Definition: sorcery.h:837
#define ast_sorcery_object_field_register_custom(sorcery, type, name, default_val, config_handler, sorcery_handler, multiple_handler, flags,...)
Register a field within an object with custom handlers.
Definition: sorcery.h:1005
#define ast_sorcery_object_field_register(sorcery, type, name, default_val, opt_type, flags,...)
Register a field within an object.
Definition: sorcery.h:955
#define ast_sorcery_apply_default(sorcery, type, name, data)
Definition: sorcery.h:476
int ast_sorcery_instance_observer_add(struct ast_sorcery *sorcery, const struct ast_sorcery_instance_observer *callbacks)
Add an observer to a sorcery instance.
Definition: sorcery.c:520
Channel datastore data for max forwards.
Definition: max_forwards.c:29

References __stringify, ast_get_version(), ast_sip_get_sorcery(), ast_sorcery_apply_default, ast_sorcery_instance_observer_add(), ast_sorcery_object_field_register, ast_sorcery_object_field_register_custom, ast_sorcery_object_register, debug, DEFAULT_ALL_CODECS_ON_EMPTY_REINVITE, DEFAULT_ALLOW_SENDING_180_AFTER_183, DEFAULT_CONTACT_EXPIRATION_CHECK_INTERVAL, DEFAULT_DEBUG, DEFAULT_DISABLE_MULTI_DOMAIN, DEFAULT_ENDPOINT_IDENTIFIER_ORDER, DEFAULT_FROM_USER, DEFAULT_IGNORE_URI_USER_OPTIONS, DEFAULT_KEEPALIVE_INTERVAL, DEFAULT_MAX_FORWARDS, DEFAULT_MAX_INITIAL_QUALIFY_TIME, DEFAULT_MWI_DISABLE_INITIAL_UNSOLICITED, DEFAULT_MWI_TPS_QUEUE_HIGH, DEFAULT_MWI_TPS_QUEUE_LOW, DEFAULT_NOREFERSUB, DEFAULT_OUTBOUND_ENDPOINT, DEFAULT_REALM, default_realm, DEFAULT_REGCONTEXT, DEFAULT_SEND_CONTACT_STATUS_ON_UPDATE_REGISTRATION, DEFAULT_TASKPROCESSOR_OVERLOAD_TRIGGER, DEFAULT_UNIDENTIFIED_REQUEST_COUNT, DEFAULT_UNIDENTIFIED_REQUEST_PERIOD, DEFAULT_UNIDENTIFIED_REQUEST_PRUNE_INTERVAL, DEFAULT_USE_CALLERID_CONTACT, default_useragent, DEFAULT_USERAGENT_PREFIX, DEFAULT_VOICEMAIL_EXTENSION, default_voicemail_extension, global_config::disable_initial_unsolicited, FLDSET, global_alloc(), global_apply(), NULL, observer_callbacks_global, OPT_BOOL_T, OPT_INT_T, OPT_NOOP_T, OPT_STRINGFIELD_T, OPT_UINT_T, OPT_YESNO_T, overload_trigger_handler(), overload_trigger_map, overload_trigger_to_str(), regcontext, sorcery, STRFLDSET, global_config::tps_queue_high, and global_config::tps_queue_low.

Referenced by ast_res_pjsip_initialize_configuration().

◆ ast_sip_overload_trigger_to_str()

const char * ast_sip_overload_trigger_to_str ( enum ast_sip_taskprocessor_overload_trigger  trigger)

Definition at line 582 of file config_global.c.

583{
584 return ARRAY_IN_BOUNDS(trigger, overload_trigger_map) ?
585 overload_trigger_map[trigger] : "";
586}
#define ARRAY_IN_BOUNDS(v, a)
Checks to see if value is within the bounds of the given array.
Definition: utils.h:687

References ARRAY_IN_BOUNDS, and overload_trigger_map.

Referenced by overload_trigger_to_str().

◆ check_regcontext()

static int check_regcontext ( const struct global_config cfg)
static

Definition at line 153 of file config_global.c.

154{
155 char *current = NULL;
156
157 if (previous_regcontext && !strcmp(previous_regcontext, cfg->regcontext)) {
158 /* Nothing changed so nothing to do */
159 return 0;
160 }
161
162 if (!ast_strlen_zero(cfg->regcontext)) {
164 if (!current) {
165 return -1;
166 }
167
170 return -1;
171 }
172 }
173
178 }
179
180 if (current) {
182 }
183
184 return 0;
185}
size_t current
Definition: main/cli.c:113
int ast_sip_persistent_endpoint_add_to_regcontext(const char *regcontext)
static force_inline int attribute_pure ast_strlen_zero(const char *s)
Definition: strings.h:65

References ast_context_destroy_by_name(), ast_free, ast_sip_persistent_endpoint_add_to_regcontext(), ast_strdup, ast_strlen_zero(), current, NULL, previous_regcontext, and global_config::regcontext.

Referenced by global_apply().

◆ get_global_cfg()

static struct global_config * get_global_cfg ( void  )
static

◆ global_alloc()

static void * global_alloc ( const char *  name)
static

Definition at line 134 of file config_global.c.

135{
136 struct global_config *cfg;
137
138 cfg = ast_sorcery_generic_alloc(sizeof(*cfg), global_destructor);
139 if (!cfg || ast_string_field_init(cfg, 100)) {
140 ao2_cleanup(cfg);
141 return NULL;
142 }
143
144 return cfg;
145}
#define ao2_cleanup(obj)
Definition: astobj2.h:1934
static void global_destructor(void *obj)
void * ast_sorcery_generic_alloc(size_t size, ao2_destructor_fn destructor)
Allocate a generic sorcery capable object.
Definition: sorcery.c:1728
#define ast_string_field_init(x, size)
Initialize a field pool and fields.
Definition: stringfields.h:359

References ao2_cleanup, ast_sorcery_generic_alloc(), ast_string_field_init, global_destructor(), and NULL.

Referenced by ast_sip_initialize_sorcery_global().

◆ global_apply()

static int global_apply ( const struct ast_sorcery sorcery,
void *  obj 
)
static

Definition at line 187 of file config_global.c.

188{
189 struct global_config *cfg = obj;
190 char max_forwards[10];
191
192 if (ast_strlen_zero(cfg->debug)) {
194 "Global option 'debug' can't be empty. Set it to a valid value or remove the entry to accept 'no' as the default\n");
195 return -1;
196 }
197
200 "Global option 'default_from_user' can't be empty. Set it to a valid value or remove the entry to accept 'asterisk' as the default\n");
201 return -1;
202 }
203
204 snprintf(max_forwards, sizeof(max_forwards), "%u", cfg->max_forwards);
205
207 ast_sip_add_global_request_header("User-Agent", cfg->useragent, 1);
209
210 if (check_regcontext(cfg)) {
211 return -1;
212 }
213
214 ao2_t_global_obj_replace_unref(global_cfg, cfg, "Applying global settings");
215 return 0;
216}
#define ast_log
Definition: astobj2.c:42
#define ao2_t_global_obj_replace_unref(holder, obj, tag)
Definition: astobj2.h:904
static int check_regcontext(const struct global_config *cfg)
#define LOG_ERROR
int ast_sip_add_global_request_header(const char *name, const char *value, int replace)
int ast_sip_add_global_response_header(const char *name, const char *value, int replace)
const ast_string_field useragent
Definition: config_global.c:86
unsigned int max_forwards
Definition: config_global.c:88

References ao2_t_global_obj_replace_unref, ast_log, ast_sip_add_global_request_header(), ast_sip_add_global_response_header(), ast_strlen_zero(), check_regcontext(), global_config::debug, global_config::default_from_user, LOG_ERROR, global_config::max_forwards, and global_config::useragent.

Referenced by ast_sip_initialize_sorcery_global(), and global_loaded_observer().

◆ global_destructor()

static void global_destructor ( void *  obj)
static

Definition at line 127 of file config_global.c.

128{
129 struct global_config *cfg = obj;
130
132}
#define ast_string_field_free_memory(x)
free all memory - to be called before destroying the object
Definition: stringfields.h:374

References ast_string_field_free_memory.

Referenced by global_alloc().

◆ global_loaded_observer()

static void global_loaded_observer ( const char *  name,
const struct ast_sorcery sorcery,
const char *  object_type,
int  reloaded 
)
static

Definition at line 604 of file config_global.c.

605{
606 struct ao2_container *globals;
607 struct global_config *cfg;
608
609 if (strcmp(object_type, "global")) {
610 /* Not interested */
611 return;
612 }
613
616 if (globals) {
617 int count;
618
620 ao2_ref(globals, -1);
621
622 if (1 < count) {
624 "At most one pjsip.conf type=global object can be defined. You have %d defined.\n",
625 count);
626 return;
627 }
628 if (count) {
629 return;
630 }
631 }
632
633 ast_debug(1, "No pjsip.conf type=global object exists so applying defaults.\n");
634 cfg = ast_sorcery_alloc(sorcery, "global", NULL);
635 if (!cfg) {
636 return;
637 }
638 global_apply(sorcery, cfg);
639 ao2_ref(cfg, -1);
640}
int ao2_container_count(struct ao2_container *c)
Returns the number of elements in a container.
static struct console_pvt globals
#define ast_debug(level,...)
Log a DEBUG message.
@ AST_RETRIEVE_FLAG_MULTIPLE
Return all matching objects.
Definition: sorcery.h:120
@ AST_RETRIEVE_FLAG_ALL
Perform no matching, return all objects.
Definition: sorcery.h:123
void * ast_sorcery_alloc(const struct ast_sorcery *sorcery, const char *type, const char *id)
Allocate an object.
Definition: sorcery.c:1744
void * ast_sorcery_retrieve_by_fields(const struct ast_sorcery *sorcery, const char *type, unsigned int flags, struct ast_variable *fields)
Retrieve an object or multiple objects using specific fields.
Definition: sorcery.c:1897
Generic container type.

References ao2_container_count(), ao2_ref, ast_debug, ast_log, AST_RETRIEVE_FLAG_ALL, AST_RETRIEVE_FLAG_MULTIPLE, ast_sorcery_alloc(), ast_sorcery_retrieve_by_fields(), global_apply(), globals, LOG_ERROR, NULL, and sorcery.

◆ overload_trigger_handler()

static int overload_trigger_handler ( const struct aco_option opt,
struct ast_variable var,
void *  obj 
)
static

Definition at line 558 of file config_global.c.

560{
561 struct global_config *cfg = obj;
562 if (!strcasecmp(var->value, "none")) {
564 } else if (!strcasecmp(var->value, "global")) {
566 } else if (!strcasecmp(var->value, "pjsip_only")) {
568 } else {
569 ast_log(LOG_WARNING, "Unknown overload trigger '%s' specified for %s\n",
570 var->value, var->name);
571 return -1;
572 }
573 return 0;
574}
#define var
Definition: ast_expr2f.c:605
#define LOG_WARNING
@ TASKPROCESSOR_OVERLOAD_TRIGGER_GLOBAL
@ TASKPROCESSOR_OVERLOAD_TRIGGER_PJSIP_ONLY
@ TASKPROCESSOR_OVERLOAD_TRIGGER_NONE

References ast_log, LOG_WARNING, global_config::overload_trigger, TASKPROCESSOR_OVERLOAD_TRIGGER_GLOBAL, TASKPROCESSOR_OVERLOAD_TRIGGER_NONE, TASKPROCESSOR_OVERLOAD_TRIGGER_PJSIP_ONLY, and var.

Referenced by ast_sip_initialize_sorcery_global().

◆ overload_trigger_to_str()

static int overload_trigger_to_str ( const void *  obj,
const intptr_t *  args,
char **  buf 
)
static

Definition at line 588 of file config_global.c.

589{
590 const struct global_config *cfg = obj;
592 return 0;
593}
const char * ast_sip_overload_trigger_to_str(enum ast_sip_taskprocessor_overload_trigger trigger)
char buf[BUFSIZE]
Definition: eagi_proxy.c:66

References ast_sip_overload_trigger_to_str(), ast_strdup, buf, and global_config::overload_trigger.

Referenced by ast_sip_initialize_sorcery_global().

◆ sip_cli_print_global()

int sip_cli_print_global ( struct ast_sip_cli_context context)

Definition at line 646 of file config_global.c.

647{
648 struct global_config *cfg = get_global_cfg();
649
650 if (!cfg) {
651 cfg = ast_sorcery_alloc(ast_sip_get_sorcery(), "global", NULL);
652 if (!cfg) {
653 return -1;
654 }
655 }
656
657 ast_str_append(&context->output_buffer, 0, "\nGlobal Settings:\n\n");
659
660 ao2_ref(cfg, -1);
661 return 0;
662}
int ast_sip_cli_print_sorcery_objectset(void *obj, void *arg, int flags)
Prints a sorcery object's ast_variable list.
Definition: pjsip_cli.c:36
int ast_str_append(struct ast_str **buf, ssize_t max_len, const char *fmt,...)
Append to a thread local dynamic string.
Definition: strings.h:1139

References ao2_ref, ast_sip_cli_print_sorcery_objectset(), ast_sip_get_sorcery(), ast_sorcery_alloc(), ast_str_append(), voicemailpwcheck::context, get_global_cfg(), and NULL.

Referenced by cli_show_settings().

Variable Documentation

◆ default_useragent

char default_useragent[256]
static

Definition at line 68 of file config_global.c.

Referenced by ast_sip_initialize_sorcery_global().

◆ observer_callbacks_global

const struct ast_sorcery_instance_observer observer_callbacks_global
static
Initial value:
= {
.object_type_loaded = global_loaded_observer,
}
static void global_loaded_observer(const char *name, const struct ast_sorcery *sorcery, const char *object_type, int reloaded)

Definition at line 642 of file config_global.c.

Referenced by ast_sip_destroy_sorcery_global(), and ast_sip_initialize_sorcery_global().

◆ overload_trigger_map

const char* overload_trigger_map[]
static

◆ previous_regcontext

char* previous_regcontext = NULL
static

Definition at line 151 of file config_global.c.

Referenced by ast_sip_destroy_sorcery_global(), and check_regcontext().