diff --git a/UPGRADE-11.txt b/UPGRADE-11.txt index de880408f840458a16cfb570ae377b2d2c09a983..d65151a194c3aa0379b5627f5a29e491b6ad84b5 100644 --- a/UPGRADE-11.txt +++ b/UPGRADE-11.txt @@ -20,6 +20,30 @@ === =========================================================== +From 11.4 to 11.5: +* The default settings for chan_sip are now overriden properly by the general + settings in sip.conf. Please look over your settings upon upgrading. + +From 11.3 to 11.4: +* Added the 'n' option to MeetMe to prevent application of the DENOISE function + to a channel joining a conference. Some channel drivers that vary the number + of audio samples in a voice frame will experience significant quality problems + if a denoiser is attached to the channel; this option gives them the ability + to remove the denoiser without having to unload func_speex. + +* The Registry AMI event for SIP registrations will now always include the + Username field. A previous bug fix missed an instance where it was not + included; that has been corrected in this release. + +From 11.2.0 to 11.2.1: +* Asterisk would previously not output certain error messages when a remote + console attempted to connect to Asterisk and no instance of Asterisk was + running. This error message is displayed on stderr; as a result, some + initialization scripts that used remote consoles to test for the presence + of a running Asterisk instance started to display erroneous error messages. + The init.d scripts and the safe_asterisk have been updated in the contrib + folder to account for this. + From 11.2 to 11.3: * Now by default, when Asterisk is installed in a path other than /usr, the diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 9b6b97ff7d4c9c1d444f517a52d40ef5e55bd467..3d1800dbbe5608cd5c0cf091f50cfc771a7252bf 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -31402,7 +31402,8 @@ static int reload_config(enum channelreloadreason reason) struct sip_peer *peer; char *cat, *stringp, *context, *oldregcontext; char newcontexts[AST_MAX_CONTEXT], oldcontexts[AST_MAX_CONTEXT]; - struct ast_flags dummy[3]; + struct ast_flags mask[3] = {{0}}; + struct ast_flags setflags[3] = {{0}}; struct ast_flags config_flags = { (reason == CHANNEL_MODULE_LOAD || reason == CHANNEL_ACL_RELOAD) ? 0 : ast_test_flag(&global_flags[1], SIP_PAGE2_RTCACHEFRIENDS) ? 0 : CONFIG_FLAG_FILEUNCHANGED }; int auto_sip_domains = FALSE; struct ast_sockaddr old_bindaddr = bindaddr; @@ -31647,13 +31648,12 @@ static int reload_config(enum channelreloadreason reason) ast_clear_flag(&global_flags[1], SIP_PAGE2_TEXTSUPPORT); ast_clear_flag(&global_flags[1], SIP_PAGE2_IGNORESDPVERSION); - /* Read the [general] config section of sip.conf (or from realtime config) */ for (v = ast_variable_browse(cfg, "general"); v; v = v->next) { - if (handle_common_options(&global_flags[0], &dummy[0], v)) { + if (handle_common_options(&setflags[0], &mask[0], v)) { continue; } - if (handle_t38_options(&global_flags[0], &dummy[0], v, &global_t38_maxdatagram)) { + if (handle_t38_options(&setflags[0], &mask[0], v, &global_t38_maxdatagram)) { continue; } /* handle jb conf */ @@ -32199,6 +32199,11 @@ static int reload_config(enum channelreloadreason reason) } } + /* Override global defaults if setting found in general section */ + ast_copy_flags(&global_flags[0], &setflags[0], mask[0].flags); + ast_copy_flags(&global_flags[1], &setflags[1], mask[1].flags); + ast_copy_flags(&global_flags[2], &setflags[2], mask[2].flags); + /* For backwards compatibility the corresponding registration timer value is used if subscription timer value isn't set by configuration */ if (!min_subexpiry_set) { min_subexpiry = min_expiry;