Skip to main content

Operating the telephony

Operations are split between the Navin Manager (state of the services, restarts, upgrades, backups) and Navin Enterprise (calls, recordings, routing, quotas). The operations below are those of the /v1/telephony API of the Control Plane; every sensitive action is written to the existing audit log.

Calls​

NeedOperation
Calls in progress of the tenant and their channelsGET /v1/telephony/active-calls
Hang up a callPOST /v1/telephony/active-calls/{linkedid}/hangup (ARI, or LiveKit for the AI branch)
Transfer a call to an extension or an E.164 numberPOST /v1/telephony/active-calls/{linkedid}/transfer
History, filters, paginationGET /v1/telephony/calls
One call with its legs, events and recordingsGET /v1/telephony/calls/{id}
Live statistics for the dashboardsGET /v1/telephony/stats

The CDR and CEL arrive through AMI (cdr_manager, cel_manager). The state of the AMI event connection of every node is read by the platform administrator (GET /v1/telephony/event-streams).

Recordings, voicemail and conferences​

  • Recordings. MixMonitor writes on the Asterisk node; Navin Enterprise fetches the file through ARI, encrypts it, stores it in SeaweedFS (bucket navin-telephony) then deletes it from the node. Listening goes through a signed URL of 300 seconds (POST /v1/telephony/recordings/{id}/download, audited). A legal hold (PUT .../legal-hold) prevents the deletion.
  • Voicemail. GET /v1/telephony/voicemail, listening through a signed URL (.../listen), mark as read (.../read), deletion.
  • Conferences. Sessions and participants: GET /v1/telephony/conference-sessions.
  • IVR prompts. Upload, read and download: /v1/telephony/ivr-prompts.

The retention of the recordings comes from the quotas of the tenant.

Fraud and blocks​

Navin Enterprise raises fraud alerts (GET /v1/telephony/fraud-alerts, audited acknowledgement). An administrator blocks a tenant or an extension at once on every Kamailio of the pool (POST /v1/telephony/blocks) and lifts the block (POST /v1/telephony/blocks/{id}/lift). Kamailio always enforces the calls per second and the concurrent calls of the tenant, the anti-flood (pike) and the ban after authentication failures (ipban), see Security.

Maintenance of a node​

  1. Drain the Asterisk or LiveKit SIP node: POST /v1/telephony/pbx-pools/{id}/drain (platform administrator), which puts the destination in drain on every Kamailio of the pool; it receives no new call, the calls in progress go on.
  2. Wait for the end of the calls in progress of the node (GET /v1/telephony/active-calls).
  3. Do the operation in the Manager (upgrade, restart, move).
  4. Restore the destination with the same drain operation.

After a restart of Kamailio, Navin Enterprise restores the routing tables by itself (it compares core.uptime); POST /v1/telephony/pbx-pools/{id}/reconcile forces the reconciliation of the Kamailio tables and the LiveKit SIP objects with the published version.

Observability​

Metrics: res_prometheus of Asterisk, xhttp_prom of Kamailio, Prometheus ports of LiveKit, LiveKit SIP, Egress and the workers, collected by the Prometheus of the catalogue; logs through Alloy; alerts through Alertmanager. The business indicators (calls, CPS, quality, queues, consumption) are computed by Navin Enterprise from the CDR, CEL and events. The health states of every service are in the Manager console.

Who does what​

TaskTool
install, upgrade, restart, move a serviceNavin Manager
certificates, firewall, portsNavin Manager
backup and restore of the servicesNavin Manager, see Backup and restore
extensions, trunks, numbers, routing, IVR, queues, agentsNavin portal, see Configuration
calls, recordings, fraud, drain, reconciliationNavin Enterprise (API and portal)