]> git.ipfire.org Git - thirdparty/asterisk.git/commit
res_pjsip: Fix pjsip.conf type=global object default value handling.
authorRichard Mudgett <rmudgett@digium.com>
Wed, 11 Mar 2015 15:24:58 +0000 (15:24 +0000)
committerRichard Mudgett <rmudgett@digium.com>
Wed, 11 Mar 2015 15:24:58 +0000 (15:24 +0000)
commitc24a294f0bd57b297d27e0f4c9e84f14727b5944
tree707acbeecf0f10ff552a0ad96e514908019fa9d7
parent737064bfa4c6edb651c7d8d1efac780086cb9f6b
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
include/asterisk/res_pjsip.h
res/res_pjsip/config_global.c
res/res_pjsip/pjsip_configuration.c