CEN/Docs
CEN Documentation

Community setup guide · Customer guide

Directory API

GET https://api.cenpbx.com/v1/route?number=2143151234 requires exactly 10 ASCII digits, without spaces, hyphens or an access prefix, and a network Bearer key. The response selects the network, not a final PBX: destination.area_code=214, network_name, routing_api and local_number=3151234. Numbers of any other length return 422. The API returns no private destination credentials or executable dialplan. Requests are limited to 120/minute per originating network plus 600/minute per IP. Respect Retry-After on 429. A valid lookup does not establish IAX connectivity.

Directory response

{
  "success": true,
  "status": "route",
  "destination": {
    "area_code": "214",
    "network_name": "Example Network",
    "routing_api": "https://api.example.net/route",
    "local_number": "3151234"
  }
}

This is an example, not a provisioned destination.

Optional member adapter contract

The generated PHP and Python AGIs call the operator-approved member URL with ?number=3151234. The member may implement this adapter in PHP or another backend, while keeping its existing internal API. Optional member authentication is configured locally. The CEN network key is never forwarded.

{
  "success": true,
  "status": "route",
  "destination": {
    "host": "pbx.example.net", "port": 4569,
    "block": "315", "number": "1234", "protocol": "iax2"
  }
}

The adapter may return {"success":true,"status":"intercept"}. Final host and port must match a locally configured IAX peer. Integrations using another member API contract can use the PHP directory client and adapt the handoff themselves.

Download Integration API Explorer