Update Config on Phone from EPM without reboot


(Avayax) #1

Whenever a change is made to a config file from EPM, and the button “Save, Rebuild Config and Update Phone” is selected, my Yealink phones always need to reboot to apply the new config.

Now, for some changes to be applied, a reboot would be necessary, but is that the case for all of them?
Is there a way to apply an update of a configuration of a Yealink phone without always rebooting it?


(Tony Lewis - https://bit.ly/2SbDAyc) #2

No yealink phones when you tell them to check for config updates do a reboot. We don’t tell the phone to reboot it’s something the phone does. All we tell it is to check for updates.

Sangoma Phones for example won’t reboot when you push updates.


#3

is this the same for Aastra/Mitel phones?


(Tony Lewis - https://bit.ly/2SbDAyc) #4

Believe so. Again it’s a phone manufacture thing. Ita how the phone handles a sip notify for check config.


(Avayax) #5

Doesn’t look like that is correct.

The SIP Notify message that FPBX sends from EPM says “Reboot=true”, hence the reboot. There should be a way to avoid that. According to Yealink a reboot is not necessary for the new config to get applied, unless a change to LLDP, VPN etc requires it, but generally not. Maybe the “Check Sync” is enough.
<------------->
— (8 headers 0 lines) —
Really destroying SIP dialog ‘555368ab5767faf24a15fe4c0cd7fd6d@10.1.1.178:5060’ Method: OPTIONS
Scheduling destruction of SIP dialog ‘4d3b92733e9995e115eedde23e7481de@10.1.1.178:5060’ in 32000 ms (Method: NOTIFY)
Reliably Transmitting (NAT) to 10.124.193.26:5060:
NOTIFY sip:5314@10.124.193.26:5060 SIP/2.0
Via: SIP/2.0/UDP 10.1.1.178:5060;branch=z9hG4bK315410bd;rport
Max-Forwards: 70
From: “Unknown” sip:Unknown@10.1.1.178;tag=as1249226e
To: sip:5314@10.124.193.26:5060
Contact: sip:Unknown@10.1.1.178:5060
Call-ID: 4d3b92733e9995e115eedde23e7481de@10.1.1.178:5060
CSeq: 102 NOTIFY
User-Agent: FPBX-13.0.190.7(11.22.0)
Date: Thu, 15 Dec 2016 01:32:52 GMT
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
Supported: replaces, timer
Subscription-State: terminated
Event: check-sync;reboot=true
Content-Length: 0


(Tony Lewis - https://bit.ly/2SbDAyc) #6

That would be something new they added then as it always required a reboot before as things would not uodate correct like if you removed a button it would not remove it.


(Avayax) #7

Firmware V.70 introduced the ability for provisioning to take effect without causing a reboot for most things (except for a change to LLDP and VPN, etc). See here
The notify message “check-sync; reboot=false” is enough.

Please change that, or let a user pick whether he wants to have the phone reboot on check config or not.
Those reboots are nasty and really inconvenient.

Meanwhile, where can I set the notify message to “reboot=false”?
Don’t care about a tampered file warning.


(Tony Lewis - https://bit.ly/2SbDAyc) #8

You can’t set it. Please feel free to Open a feature request and we can evaluate it for a future change.


(Avayax) #9

http://issues.freepbx.org/browse/FREEPBX-13820

@necits2015


(Avayax) #10

This can be fixed easily without impacting existing users.
FPBX sends a notify message “check-sync;reboot=true” to the phone.
Reboot=true is unnecessary as “check-sync” will always force a reboot. This is because “sip.notify_reboot_enable=1” in basefiles is default for Yealink phones.

If a user doesn’t want a reboot on check-sync, he can set sip.notify_reboot_enable=0 in basefiles. Then reboot doesn’t happen unless a specific cfg change requires it to take effect, such as VPN, etc.


(Avayax) #11

@lgaetz


(Lorne Gaetz) #12

What?


(Necits2015) #13

I did a little digging and it looks like you are correct. If you look at /etc/asterisk/sip_notify_additional.conf you’ll see Yealink is configured as

[reboot-yealink]
Event=>check-sync\;reboot=true

I tried removing the reboot=true but the phone still rebooted. What worked was changing it to reboot=false. As far as I can tell everything is updating correctly and the phone is not rebooting. I know this will get overwritten on FreePBX updates so I also added it to /etc/asterisk/sip_notify_custom.conf. Not sure which one takes precedence though. I’ll do more testing when I get home tonight. Seems like an easy fix though :smile:


(Necits2015) #14

Looks like Login/Logout still reboots the phone but making changes from Endpoint Manager does not. I can live with that!


(Necits2015) #15

Ok did some more testing. Login/logout will work without the phone rebooting as long as the extensions are using the same template. If the template is different the phone will reboot which may be by design. @avayax can you test when possible to confirm?


(Avayax) #16

I have now also added an entry in /etc/asterisk/sip_notify_custom.conf (didn’t know the notify event type was in /etc/asterisk/sip_notify_additional.conf, thought it was somewhere in php code, thanks for letting me know! :slight_smile:
[reboot-yealink]
Event=>check-sync;reboot=false

I have to correct myself in my above statement where I am saying that event “check-sync” would not reboot the phone, provided that sip.notify_reboot_enable=0 is set in basefiles. I got this from the Yealink provisioning guide but it’s apparently not true:

I tried “check-sync” only but the phone rebooted whether sip.notify_reboot_enable was set to “0” or default “1”.

I tried check-sync;reboot=false and this works regardless of the sip.notify_reboot_enable value, the phone takes the config without rebooting. I so far only tried changing a line key, but will try more.

Anyhow, looks like I got the phone to behave the way I want, thanks @necits2015, good teamwork, I will keep you posted if I run into any other issues.


(Avayax) #17

Try playing with the sip.notify_reboot_enable in template basefiles.


(Necits2015) #18

I believe I have everything working the way i want as well! :slight_smile: What a difference one line of code can make. Thanks for pointing me in the right direction. Now if we can get that pesky power led sorted out!


#19

Did this ever get addressed? It appears not, which is a bit…odd. :thinking:
This seems like a much more sane way to handle Yealink phones.

Always wondered why simple config changes in Endpoint Manager caused every Yealink phone to reboot while I knew from experience if I just had Endpoint Manager update the configs but not reboot the phones, and instead login to the phones webpage and force a config update it would do so without a reboot just fine.


(Avayax) #20

That is deliberate, because whenever you hit the save, rebuild configs and update phones button in EPM, a sip notify message gets sent to the phone which forces a reboot, because you have this in sip_notify_additional.conf:
[reboot-yealink]
Event=>check-sync;reboot=true

To have Yealink phones not reboot on config changes, set sip.notify_reboot_enable = 0 in basefiles, and put this in sip_notify_custom.conf:
[reboot-yealink]
Event=>check-sync\