Registration Watch 1.2.0 ready for review/testing

Registration Watch 1.2.0 is ready for wider testing and feedback. It promises nothing more at this stage.

It has been tested in normal use and throughout its development, but this is currently an unsigned community module that hasn’t been put under heavy load, so please apply the safety features defensively (Snooze, Debounce, Storm Threshold).

Registration Watch is a FreePBX/PBXact 17 community module for monitoring PJSIP registration state. It discovers configured PJSIP endpoints, records registration state changes, and can send email alerts when watched registrations become unavailable or recover.

WARNING: DO NOT attempt to install this on FreePBX 16 or below, please. It is v17 only. FreePBX 16 support will be considered for 1.3.0.

It is designed for the practical problem many FreePBX admins care about: knowing when phones, softphones, or other PJSIP devices have stopped registering, without having to keep checking Asterisk manually. It also gives you focused status history, so you can see what changed and when, without trawling back through logs.

Where Asterisk exposes the data, Registration Watch can also show useful supporting details such as device IP and port, network IP and port, user-agent, firmware version, contact expiry, qualify interval, and latency.

This release is a major step forward from the earlier EndPoint Monitor pilot work. Thanks to @penguinpbx for his help and guidance. And thanks to @gregarican for the coincidental hurry-up in another related post :sweat_smile:

The module has now been renamed to Registration Watch, which better reflects what it does and avoids clashes with endpoint for EndPoint Manager (EPM). Since the early pilot releases, the overall UI has been substantially improved.

After reading the README, one way to install the module on v17 is by running the following as root:

cd /var/www/html/admin/modules
git clone https://github.com/kierknoby/registrationwatch.git registrationwatch
fwconsole ma installlocal registrationwatch
fwconsole chown
fwconsole reload

The main highlights in 1.2.0 are:

  • Watches configured FreePBX PJSIP device registrations.

  • Records registration state changes.

  • Sends alert emails when watched registrations become unavailable or recover.

  • Supports multiple registrations under the same extension where Asterisk exposes enough contact data.

  • Groups watched registrations under Watched Extensions for a clearer admin view.

  • Adds repeat alerts, with Never, Every 5 minutes, Hourly, Daily, and Escalating modes.

  • Adds global Snooze Monitoring, so alert emails can be paused while state changes continue to be recorded.

  • Adds Storm Threshold handling to reduce email floods during large batches of registration changes.

  • Adds a Registration Status Map with Cards and Rows views.

  • Adds sortable Rows view, Watched Extensions, Status History, and Alert History tables.

  • Remembers Cards/Rows view choice, sorting, and show limits using module settings.

  • Records sent and suppressed alert decisions in Alert History.

  • Improves the Registration Watch admin UI throughout.

For future reference, do not uninstall the module when updating unless you are happy to remove the module tables and stored Registration Watch data.

If you’ve already tried endpointmonitor, please uninstall 1.1.x first, as it’s not suitable as an upgrade due to the name change:

fwconsole ma uninstall endpointmonitor --force
rm -rf /var/www/html/admin/modules/endpointmonitor
fwconsole chown
fwconsole reload

Unfortunately, uninstalling will remove the existing database entries. Next time, you will be able to update. We needed to drop any endpoint references, so a migration wasn’t appropriate.

Thanks to everyone who has provided feedback already. Please keep it coming so we can make this something useful for everyone.

If you like the module, I would really appreciate a :star: on GitHub.

Cheers,
Kieran

Demo screenshot below.

Have 1.2.0 in place. Our FreePBX has 104 active extensions and 105 extensions essentially unregistered as “voice mailbox only” type users. So should be a decent stress test once we start monitoring some of these guys. The module has a very consistent look and feel compared to the the typical dashboard user experience.

Opened up an issue this morning on the GitHub project site. Just a one-off deal with our Bria softphone clients. Only these appear offline in Registration Watch, while actually they are online and registered fine. Likely something to do with how they come into FreePBX. Some Bria push server middleman, compared to just a typical IP endpoint appearing to be registered. I included screen shots in the issue to provide some additional details.

FYI!

Thanks for opening the issue Greg, and for your feedback. I will attempt to replicate with Bria and report back on the GitHub Issues page.

EDIT: Replicated with Bria on iOS and Android. Push mobile apps behave differently from desk phones and always-on softphones. Bria can create temporary, duplicate, or stale PJSIP contacts, and Asterisk may show them moving between Avail and Unavail as the app moves between foreground/background state.

There is also some parsing work to do in Registration Watch around how these contacts are handled, which I am looking into. Registration Watch can only report the contact state exposed by Asterisk, so for now push mobiles should be monitored differently from normal desk phones and always-on softphones. Remember, you can disable alerting for those particular extensions.

I will keep investigating whether Registration Watch can improve handling of these push-style contacts in a future patch release. If anyone has any further suggestions, please add a comment to the issue here:

Registration Watch 1.2.1 is now available.

This is a small patch release focused on the FreePBX 17 mobile layout. The Registration Watch page now fits correctly within the available viewport, and the Registration Status Map Rows view scrolls horizontally within its own section rather than widening the whole page.

Please continue to provide feedback on this module :folded_hands: Thank you.