CEN/Docs
CEN Documentation

Community setup guide · Customer guide

Federation

The originating PBX strips its access prefix and queries CEN with AAAXXXYYYY. CEN uses AAA to return the Member Network’s name, Routing API URL and seven-digit Local Number. The originating integration then passes XXXYYYY to that member’s approved Routing API. The Member Network resolves its Local Blocks and chooses the final PBX. CEN does not need to know every extension or PBX. The generated adapters use an explicit local allowlist of area codes and exact Routing API URLs before contacting a member. Optional member credentials remain on the originating server and are never returned by CEN. IAX authentication is agreed separately between operators. Networks that trunk to the CEN hub do not need to run this lookup themselves: the hub performs it for every call.

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