diff options
author | Richard Mudgett <rmudgett@digium.com> | 2015-03-11 15:26:32 +0000 |
---|---|---|
committer | Richard Mudgett <rmudgett@digium.com> | 2015-03-11 15:26:32 +0000 |
commit | 89b65f5dda9e2010c286f2d2755662ebacd73fde (patch) | |
tree | 6ad40c64399c88fa811061a42a50ab38e755d1c7 /include | |
parent | 185d2e082aad9962c7d94255158a49ca9b82536b (diff) |
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
Diffstat (limited to 'include')
-rw-r--r-- | include/asterisk/res_pjsip.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/include/asterisk/res_pjsip.h b/include/asterisk/res_pjsip.h index b3cd23e6b..acf13cfec 100644 --- a/include/asterisk/res_pjsip.h +++ b/include/asterisk/res_pjsip.h @@ -1627,9 +1627,24 @@ 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. * * \param ht the hash table/dictionary to search |