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.

  1. In WMC, open Users & permissions → Service accounts
  2. Create the account natalia-collector
  3. Generate a strong password (>= 24 chars, alphanum + symbols)
  4. Assign the profile CDR operator (or its equivalent in your OXO firmware)
  5. 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 typeOXO
PBX IPIP address of the OXO
Port443 or 30443
Loginnatalia-collector
Passwordthe password generated in step 2
Polling interval30 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.

Last updated :

Suggest an edit