* Add Grandstream Headset/Speaker Ring
Add variable to choose whether the speaker rings with the headset.
* Add Speaker Only option
Add note that speaker only is supported with a value of 2.
There was an illogical if/else statement that the "else" condition would always set a null value, so it didn't really matter. Re-wrote it to properly filter if the transport is set to dns srv and not affix the SIP Port to the server address.
This is a new feature for grandstream, supporting dual simultaneous registrations. Only the very latest firmware 1.0.10.35 has it fully working, the last few versions had various partially working versions. This formats the username correctly when a secondary server is present.
There are more phone models that support this feature, but since it has been hit and miss on getting it going I am not going to enable it on those templates unless I have one of each to fully test.
Hide the other connected party on the BLF of supported phones. When not hidden a busy BLF will show the other connected party/sttaus of the call by flashing back and forth between the BLF label and the caller ID.
It also impacts the park buttons, but they typically only show the word "park" because of the character limitations.
Also did more effective find/replace for the distnctive ring variables with regex!
Support enabling nway conference with Grandstream phones if nway_conference is set to true. If it is not true, it sets the conference URI back to blank to restore local conference
Grandstream template updates to support plantronics EHS via grandstream_headset_type and grandstream_headset_key_mode variables.
Also updated wallpaper and screensaver if/else statements to leave out the variables if they are not defined instead of clobbering the user setting. If you want to mandate a certain setting, just set the variable. If the variable is unset it will not overwrite on provision and allow the previous setting to remain.
Fix config URL so that the phones don't get an invalid URL when $domain_name is unset. They would previously receive `/app/provision` with no domain/ip included, which makes the phone unable to provision again once they have been added to the Devices page without manually re-setting the config URL or factory defaulting the device.
The alternative solution is that the PHP code could always ensure that the $domain_name variable is set even if the device doesn't exist. My suggestion is to see if it can be set to the same domain/IP as the original provision request from this unconfigured device
Excludes the P8352 value if the default setting grandstream_speaker_ring_volume is unset. Depends on PR #5522
Before anyone asks, Mandatory just means that the variable must be valid, not that it must be included in every XML download. The phone already has a valid value in its internal settings, so as long as we stay safe from setting it to an empty value or outside of the range of 0-7, we are safe. Excluding it is a valid option, which is also true for all settings labelled Mandatory in the Grandstream templates.
Enable the option to prevent incoming calls from interrupting outbound dialing (a commonly requested functionality)
Enable the option to bypass Grandstream phone's dialplan when dialing from call history (to prevent errors on calls that contained a + in front of them)
P2916 (wallpaper source) is defined twice in the file: once statically and then again immediately after in an if/else statement. The latter is correct. Having it defined twice causes the phone to ignore the second declaration.