Skip to content

Create/replace managed linkage

PUT
/v1/ns/{nsid}/resources/linkages/{peer}
curl --request PUT \
--url https://example.com/v1/ns/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/resources/linkages/example \
--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" ] } }'
nsid
required
string format: uuid

Namespace UUID

peer
required
string
Media typeapplication/json
object
peer
string
allow_inbound
boolean
inbound_transfer_context
string
outbound_transfer_context
string
caller_id_mode

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.

string
Allowed values: fixed provided modify
inbound_caller_id_context

Names the caller-id-contexts entry run at entry when caller_id_mode is modify (rewrite before the allowed_caller_ids screen).

string
outbound_caller_id_context

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.

string
allowed_caller_ids

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.

Array<string>
primary_caller_id

Caller ID written when caller_id_mode is fixed. Required in that mode; ignored otherwise.

string
present_external_caller_id

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.

boolean
attestation_mode

STIR/SHAKEN attestation level asserted when this namespace signs a call entering over the linkage (a linkage is a virtual trunk).

string
Allowed values: A B C
resign_policy

Ingress disposition for the received signature on a call entering over this linkage.

string
Allowed values: passthrough passthrough-block resign keep-sign
transmit_passport

Egress policy for which STIR/SHAKEN headers are emitted when transferring a call out over this linkage.

string
Allowed values: transmit-full transmit-verstat strip
inheritance
object
profile
string
granted_aliases
object
key
additional properties
string
max_concurrent_calls
integer
permitted_edge_ips

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.

Array<string>
permitted_sip_realms

SIP realms a child may use; each entry permits that realm and any subdomain of it. Empty means no parent restriction.

Array<string>

OK

Media typeapplication/json
object
success
required
boolean
Example
{
"success": true
}

Error response

Media typeapplication/problem+json

RFC 7807 Problem Details

object
type

Problem type slug URI

string
title
string
status
integer
detail
string
key
additional properties
any
Examplegenerated
{
"type": "example",
"title": "example",
"status": 1,
"detail": "example"
}