mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-12 15:45:18 +00:00
res_pjsip: Fix pjsip.conf type=global object default value handling.
When a type=global section is not defined in pjsip.conf the global defaults are not applied. As a result the mandatory Max-Forwards header is not added to SIP messages for res_pjsip/chan_pjsip. The handling of pjsip.conf type=global objects has several problems: 1) If the global object is missing the defaults are not applied. 2) If the global object is missing the default_outbound_endpoint's default value is not returned by ast_sip_global_default_outbound_endpoint(). 3) Defines are needed so default values only need to be changed in one place. * Added a sorcery instance observer callback to check if there were any type=global sections loaded. If there were more than one then issue an error message. If there were none then apply the global defaults. * Fixed ast_sip_global_default_outbound_endpoint() to return the documented default when no type=global object is defined. * Made defines for the global default values. * Increased the default_useragent[] size because SVN version strings can get lengthy and 128 characters may not be enough. * Fixed an off-nominal code path ref leak in global_alloc() if the string fields fail to initialize. * Eliminated RAII_VAR in get_global_cfg() and ast_sip_global_default_outbound_endpoint(). ASTERISK-24807 #close Reported by: Anatoli Review: https://reviewboard.asterisk.org/r/4467/ ........ Merged revisions 432766 from http://svn.asterisk.org/svn/asterisk/branches/13 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@432767 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -1627,8 +1627,23 @@ void ast_sip_destroy_global_headers(void);
|
||||
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);
|
||||
|
||||
/*!
|
||||
* \brief Initialize global type on a sorcery instance
|
||||
*
|
||||
* \retval -1 failure
|
||||
* \retval 0 success
|
||||
*/
|
||||
int ast_sip_initialize_sorcery_global(void);
|
||||
|
||||
/*!
|
||||
* \brief Destroy global type on a sorcery instance
|
||||
* \since 13.3.0
|
||||
*
|
||||
* \retval -1 failure
|
||||
* \retval 0 success
|
||||
*/
|
||||
int ast_sip_destroy_sorcery_global(void);
|
||||
|
||||
/*!
|
||||
* \brief Retrieves the value associated with the given key.
|
||||
*
|
||||
|
Reference in New Issue
Block a user