diff options
author | Richard Mudgett <rmudgett@digium.com> | 2015-03-11 15:24:58 +0000 |
---|---|---|
committer | Richard Mudgett <rmudgett@digium.com> | 2015-03-11 15:24:58 +0000 |
commit | c24a294f0bd57b297d27e0f4c9e84f14727b5944 (patch) | |
tree | 707acbeecf0f10ff552a0ad96e514908019fa9d7 /include/asterisk/res_pjsip.h | |
parent | 737064bfa4c6edb651c7d8d1efac780086cb9f6b (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/
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432766 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'include/asterisk/res_pjsip.h')
-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 df0362759..258e5422e 100644 --- a/include/asterisk/res_pjsip.h +++ b/include/asterisk/res_pjsip.h @@ -1625,9 +1625,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 |