Configure Alcatel OmniPCX Office (OXO) R10 / R10.2
Setup of Natalia Analytics for an Alcatel OXO PBX via its HTTPS WMC CDR API. No extra license required, just a specific service activation in WMC.
Step 1/5
Enable CDR over IP in WMC
From the OXO Web Management Console (default https://<OXO-IP>/management), log in as administrator and open Configuration → Services → CDR over IP. Enable the service and pick the listening port:
- 443, standard HTTPS port (recommended if the OXO admin HTTPS does not already use 443)
- 30443, fallback if 443 is taken
Open the chosen port on your firewall between the Natalia agent VM and the OXO IP.
Step 2/5
Create a WMC account with CDR operator profile
Use a dedicated account for Natalia. Do NOT reuse the OXO admin account.
- In WMC, open Users & permissions → Service accounts
- Create the account
natalia-collector - Generate a strong password (>= 24 chars, alphanum + symbols)
- Assign the profile CDR operator (or its equivalent in your OXO firmware)
- Save and note the credentials, needed in step 4
Step 3/5
Understand the JWT authentication flow
The OXO API uses a two-step JWT flow. Natalia handles it transparently. Documented here for reference and debug.
1. Login (Basic Auth → JWT)
POST /api/oxo/authentication/v1.0/login HTTP/1.1
Host: <OXO-IP>
Authorization: Basic <base64(natalia-collector:password)>
HTTP/1.1 200 OK
Content-Type: application/json
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"expires_in": 3600
}
http
2. CDR calls with Bearer JWT
GET /api/oxo/cdr/v1.0/records?since=2026-05-24T00:00:00Z HTTP/1.1
Host: <OXO-IP>
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
Accept: application/json
http
Step 4/5
Configure the agent web UI
On https://<agent-IP>:8443, fill the PBX configuration form:
| Field | Value |
|---|---|
| PBX type | OXO |
| PBX IP | IP address of the OXO |
| Port | 443 or 30443 |
| Login | natalia-collector |
| Password | the password generated in step 2 |
| Polling interval | 30 min (must stay below the JWT TTL, see step 3) |
Step 5/5
Test the connection and collection
Click "Test the connection". The agent runs the JWT login (step 3), then an HTTPS GET on the CDR endpoint and parses a sample. On success, the result shows the number of records read.
Common errors and fixes are documented in the error codes reference (NAT-AGT-001 to 010) and on the troubleshooting page.
OXO JWT polling sequence
sequenceDiagram
autonumber
participant Agent as Natalia Agent
participant OXO as Alcatel OXO (WMC)
participant Cloud as Natalia Cloud
Note over Agent: Polling cycle (every 30 min)
Agent->>OXO: POST /authentication/v1.0/login (Basic Auth)
OXO-->>Agent: 200 OK {token, expires_in: 3600}
Agent->>OXO: GET /cdr/v1.0/records?since=... (Bearer JWT)
OXO-->>Agent: 200 OK [CDR records...]
Agent->>Cloud: POST /ingest/cdr (HTTPS, agent API key)
Cloud-->>Agent: 202 Accepted {ingested: N}
Note over Agent,OXO: JWT renewed before TTL (≤ 60 min)
Mirror of the hub diagram in /documentation/natalia-analytics, duplicated here for in-context reference.