Bulk upsert/delete managed linkages
const url = 'https://example.com/v1/ns/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/resources/linkages/bulk';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '[{"peer":"example","allow_inbound":true,"inbound_transfer_context":"example","outbound_transfer_context":"example","caller_id_mode":"fixed","inbound_caller_id_context":"example","outbound_caller_id_context":"example","allowed_caller_ids":["example"],"primary_caller_id":"example","present_external_caller_id":true,"attestation_mode":"A","resign_policy":"passthrough","transmit_passport":"transmit-full","inheritance":{"profile":"example","granted_aliases":{"additionalProperty":"example"},"max_concurrent_calls":1,"permitted_edge_ips":["example"],"permitted_sip_realms":["example"]}}]'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/v1/ns/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/resources/linkages/bulk \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '[ { "peer": "example", "allow_inbound": true, "inbound_transfer_context": "example", "outbound_transfer_context": "example", "caller_id_mode": "fixed", "inbound_caller_id_context": "example", "outbound_caller_id_context": "example", "allowed_caller_ids": [ "example" ], "primary_caller_id": "example", "present_external_caller_id": true, "attestation_mode": "A", "resign_policy": "passthrough", "transmit_passport": "transmit-full", "inheritance": { "profile": "example", "granted_aliases": { "additionalProperty": "example" }, "max_concurrent_calls": 1, "permitted_edge_ips": [ "example" ], "permitted_sip_realms": [ "example" ] } } ]'Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Namespace UUID
Request Bodyrequired
Section titled “Request Bodyrequired”object
Ingress caller-ID trust for a call entering this namespace from the peer, mirroring the trunk-profile knob. Screens the peer’s asserted external caller ID in the order mode → inbound_caller_id_context → allowed_caller_ids: fixed overwrites it with primary_caller_id (the allowlist is not consulted); modify runs inbound_caller_id_context first, then screens; provided screens the asserted value as-is.
Names the caller-id-contexts entry run at entry when caller_id_mode is modify (rewrite before the allowed_caller_ids screen).
Names the caller-id-contexts entry applied to the presented caller ID when this namespace transfers a call OUT to the peer (the egress counterpart of the ingress mode/context/allowlist). Empty = no rewrite.
Ingress allowlist screened after mode/context. A presented caller ID outside a non-empty list is rejected with the invalid-caller-id treatment. Empty = no restriction.
Caller ID written when caller_id_mode is fixed. Required in that mode; ignored otherwise.
Presentation policy, orthogonal to the ingress screen: when set, the caller ID shown to the destination line adopts the (screened) external caller ID; when unset, the originating internal caller ID is preserved.
STIR/SHAKEN attestation level asserted when this namespace signs a call entering over the linkage (a linkage is a virtual trunk).
Ingress disposition for the received signature on a call entering over this linkage.
Egress policy for which STIR/SHAKEN headers are emitted when transferring a call out over this linkage.
object
object
Edge-proxy values (exact host/IP or CIDR) a child may use. Empty means the parent imposes no restriction. Composed with the partition’s own allow-list; a parent can narrow, never widen.
SIP realms a child may use; each entry permits that realm and any subdomain of it. Empty means no parent restriction.
Responses
Section titled “Responses”OK
object
object
Examplegenerated
{ "success": true, "results": [ { "name": "example", "ok": true, "error": "example" } ]}default
Section titled “default”Error response
RFC 7807 Problem Details
object
Problem type slug URI
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "detail": "example"}