[asterisk-users] DPMA, check-sync

Alex Villací­s Lasso a_villacis at palosanto.com
Fri Sep 6 17:05:50 CDT 2013


El 06/09/13 14:44, Malcolm Davenport escribió:
> Howdy,
>
> Please forgive the off-list e-mail.  I'm not subscribed to the list, I only peruse the archives.
>
> The follow up from George is correct.  For phones that have already been attached to DPMA, DPMA disables the enable_check_sync phone setting.
>
> For phones that have not yet been attached to DPMA, that's not the case, as enable_check_sync is enabled out of the box.  So, a properly formatted SIP NOTIFY will do the trick.
>
> You can do that outside of Asterisk using sipp or sipsak or something similar.
>
> To cover the case for phones that are already attached to DPMA, we'll add a new phone option in DPMA 1.7.1.  We're on DPMA 1.6.0 right now, and DPMA 1.7.0 is already in the latter stages of internal QA.  I don't want to derail that train as we're very 
> nearly there.
>
> The new phone option will simply expose the ability to turn enable_check_sync on or off for phones.  We'll still default to the current behavior of disabling it though for phones attached to DPMA.
>
> Apologies for the inconvenience.
>
The check-sync notify does not work in all required scenarios. I tracked the traffic with wireshark. To demonstrate:

Start from a D40 phone, factory resetted. The asterisk server starts with DPMA loaded but with a zero-bytes conf.
Write a valid configuration that includes the phone.
On Asterisk: module reload res_digium_phone.so ; digium_phones reconfigure all ; sip notify CHECKSYNC $PHONE_IP
(this makes the phone re-query the network in this one time)
(phone gets reconfigured and registers the SIP accounts)
Now, remove the phone section, but keep all other sections intact.
On Asterisk: module reload res_digium_phone.so ; digium_phones reconfigure all ; sip notify CHECKSYNC $PHONE_IP
(phone had a DPMA session, so it reloads configuration)
(phone tries to fetch configuration, but fails, as expected. The phone gets stuck in the "Communication Error" screen)
Now, restore the phone section so the configuration returns to the previously working state.
On Asterisk: module reload res_digium_phone.so ; digium_phones reconfigure all ; sip notify CHECKSYNC $PHONE_IP
(sip notify gets sent, phone answers with 200 Ok)
(nothing happens. The phone is still stuck at the "Communication Error" screen)

What should happen is that the phone should re-scan at the last step and reload the configuration, as it did the first time.

The CHECKSYNC mentioned above is any entry in sip_notify.conf that references check-sync. As mentioned in the mailing list, I already know the phone IP for the "sip notify" command.

What I think is happening is that if the phone sees a DPMA server but the server has no valid configuration for the phone, the phone gets stuck in a state where check-resync will not make the phone rescan an updated configuration, and needs to be reset 
manually.



More information about the asterisk-users mailing list