FreePBX for an on-call notification system linked to OpenNMS

I’ve been having a go with claude.ai to figure out how to deliver a service with FPBX 16 that we presently do with Cisco Call Manager, Cisco Unity Express and OpenNMS. I want to remove CUCM and Unity.

We have an on-call rota.
If there’s an out-of-hours problem the OOH number is called.
The caller is sent straight to voicemail (Unity) to leave a message about what is wrong.
Unity then has a Notification Device config that places an outbound call, via CUCM, to the on-call engineer.
A greeting is played upon answering the call (part Cisco Unity default system message, part recorded name of the mailbox) followed by entering the voicemail IVR menu -
‘Enter your PIN , followed by #’
‘Press 1 to play new messages’ …and so on.
If the call is missed first time round, the system tries 3 more times at 5 minute intervals, before an escalation path is entered which exists on our OpenNMS monitoring server.

So far this sounds like I just need to buy the Voicemail Notification app, as it appears to do what I’ve just written. However…

We have a team Outlook calendar with the on-call schedule.
NMS uses a Graph parameters json file and a .py script to access the Outlook calendar and update file groups.xml that tells NMS who to alert and when. No FPBX interaction needed here.

NMS uses a CUCM parameters json and a .py script that reads groups.xml and a static file users.xml and updates CallFwdAll on the callout end point in Call Manager via axl - this is where I hope to be able to change the CUCM parameters to FPBX parameters and update something (an endpoint?) in FPBX for the call out to the correct person to work. This is why I presently think that the VM Notify might not meet the requirement.

I think it’s the ciscoaxl bit that is the missing link for me at the moment - replicating that with FPBX
Anyone got an idea that might set me on the right path. Happy to share config elements if needed. The scripts noted above are not mine, and I’m not a dev. I’m just trying to reverse engineer what was previously made and migrate to the FPBX platform (soon to be v17).

Thanks for reading.
Nathan.

It looks like on OpenNMS I have to run
pip install request mysql-connector-python

Then create a freepbx-parameters.json file that looks like this
{
“freepbx_host”: “”,
“on_call_extension”: “”,
“update_method”: “api”,
“api_username”: “”,
“api_password”: “”,
“verify_ssl”: false
}

The original cucm-parameters.json is like this:
{
“cucm” : “CUCMfqdn”,
“cucm_username” : “”,
“cucm_password” : “”,
“version” : “12.5”,
“on_call_number” : “”,
“route_partition” : “Internal”,
“forwarding_all_css” : “National”
}

Then I’ve created a REST Interface User in the GUI. No idea is this is appropriate as the wiki talks of GraphQL and RESTful, with config about ponies - and I’ve no idea if that’s an API term, a FPBX term or a the four-legged, stubborn animal.

Given that I only use FPBX with inbound routes to a huge rack of VG224 FXS gateways (650 ports for lift/refuge area autodialers and phones in locations that have to remain up in the event of power cuts) I have to come to terms with how to create an extension, make that extension go straight to voicemail, then get voicemail to dial out to the on call person’s mobile/cell phone. And enable dial-in access to the VM box, and be able to update the callforward-unconditional attribute.
Steep learning curve at the moment.