Hope everyone is doing well. Building on the DMR/voice work, I'd like to propose a call-taking integration.
The idea: when an inbound call arrives on the dispatch line (via a SIP PBX such as 3CX, FreePBX/Asterisk, or a Grandstream UCM), TicketsCAD pops a call-intake screen with fields pre-filled from the call itself — the way ANI works in a real 999/911 center:
- Caller number (from SIP INVITE caller ID) auto-filled into the incident contact field
- Repeat-caller recognition: look the number up against previous incidents/constituents; if known, show name, address on file, and prior incident history alongside the new intake form
- One-click "create incident from call" with timestamp, line/queue, and recording reference attached
- Optionally: call state in the UI (ringing/answered/ended), and linking the PBX call recording to the incident record
Integration paths, simplest first:
- Generic webhook receiver — an api/call-event.php that accepts POSTs (number, direction, call-id, timestamp). Nearly every PBX can emit this: 3CX has Call Control API/webhooks, Asterisk/FreePBX via AMI or dialplan curl, Grandstream UCM via its API. This keeps TicketsCAD PBX-agnostic — no SIP stack needed in the CAD at all.
- AMI/ARI listener for Asterisk-family PBXs for richer call state.
- Full SIP registration by the CAD itself — probably overkill; the webhook route covers the dispatch use case.
The CRM half is mostly already there: constituents exist, incidents have contact fields — this adds a lookup keyed on phone number plus a screen-pop.
I can prototype the PBX side: I run a 3CX V20 instance and a Grandstream UCM6302A with an analog FXO line, so I can generate real inbound-call webhooks for both and document the payloads if a receiver endpoint shape is agreed.