SipTrunk
Provider registration target, or the outbound SIP destination when authenticationMode is ip.
sip:sip.provider.exampleoutboundDialPrefixPolicy object
Provider-facing dial-prefix policy. OpenSIPS applies it after final destination selection; Retell/API destinations remain unchanged.
Possible values: <= 32 characters, Value must match regular expression ^[0-9*#]*$
truerules object[]required
Possible values: <= 50
Possible values: non-empty and <= 80 characters
Match the first X normalized destination digits, or a three-digit North American Numbering Plan area code.
Possible values: [starts_with, nanp_area_code]
Possible values: Value must match regular expression ^[0-9]{1,15}$
Possible values: <= 32 characters, Value must match regular expression ^[0-9*#]*$
Possible values: >= 1 and <= 10000
Optional hard limit for simultaneous carrier-facing calls on this SIP extension/device.
Possible values: >= 1 and <= 1000
Optional tenant-scoped key shared by interchangeable SIP devices. Outbound calls use the least-loaded available member. Requires deviceConcurrencyLimit.
Possible values: Value must match regular expression ^[a-z0-9][a-z0-9._:-]{0,79}$
Possible values: [udp, tcp, tls]
Possible values: [registration, digest, ip]
Possible values: [default, telnyx_like, voipms_like, bandwidth_like, custom]
Possible values: [e164, auth_username, custom]
Explicit inbound carrier source IPs or CIDRs trusted by IP authentication. For topology hiding, this carrier allowlist must be non-empty and the sipsandwich public service VIP must be authorized in both signaling directions. These are separate from registrarUri, the outbound destination.
customHeaders object[]
Possible values: Value must match regular expression ^[A-Za-z0-9-]+$
Whether signaling-only SIP topology hiding is enabled for this connection. New connections default to false; omitting the field while reconciling an existing connection preserves its current value. Enabling requires IP or digest authentication, a non-empty providerSourceIps carrier allowlist, carrier authorization for the sipsandwich public service VIP in both directions, and a ready deployment gate. Registration-mode connections are unsupported because their REGISTER Contact and send socket are node-specific. Media and SDP are unchanged.
falseControls whether the OpenSIPS Contact header uses the tenant SIP domain or the edge public IP.
Possible values: [sip_domain, public_ip]
Whether this connection uses the separately managed shared dedicated SIP IP pool. The pool address is shared by opted-in tenants and is never silently replaced by a standard edge address.
Configured dedicated SIP IP pool identifier, or null for standard edge placement.
Shared dedicated pool service address used by this connection, or null when not bound.
Selected transport for the dedicated pool binding. Retell and carrier legs use the selected transport.
Possible values: [udp, tcp, tls, null]
Whether this connection uses the tenant's assigned exclusive SIP address in the effective dedicated binding.
Stable purchased exclusive SIP IP pool slug, or null when no exclusive address is assigned.
Inventory row identifier for the assigned exclusive SIP address.
Tenant-exclusive SIP service address, or null when no address is assigned.
Transport used with the tenant-exclusive SIP address.
Possible values: [udp, tcp, tls, null]
Public address of the currently selected edge member for operator diagnostics. It is distinct from a dedicated pool address.
sipNetworkIdentity object
The signaling identity used for provider whitelists and termination. A dedicated_pool identity is shared across the configured dedicated edge pair.
Possible values: [standard_edge, dedicated_pool, exclusive_sip_ip]
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"label": "string",
"registrarUri": "sip:sip.provider.example",
"proxyUri": "string",
"outboundProxyUri": "string",
"outboundDialPrefixPolicy": {
"defaultPrefix": "",
"stripLeadingPlus": true,
"rules": [
{
"name": "string",
"matchType": "starts_with",
"matchValue": "string",
"dialPrefix": "string",
"priority": 0,
"enabled": true
}
]
},
"deviceConcurrencyLimit": 0,
"devicePoolKey": "string",
"transport": "udp",
"authenticationMode": "registration",
"username": "string",
"authUsername": "string",
"providerProfile": "default",
"fromDomain": "string",
"fromUserMode": "e164",
"customFromUser": "string",
"expiresSeconds": 0,
"providerSourceIps": [
"string"
],
"customHeaders": [
{
"name": "string",
"value": "string"
}
],
"enabled": true,
"topologyHidingEnabled": false,
"registrationStatus": "string",
"registrationLastCode": 0,
"registrationLastReason": "string",
"contactUsername": "string",
"contactUri": "string",
"forcedSocket": "string",
"contactHostMode": "sip_domain",
"contactDomain": "string",
"publicIp": "string",
"sipDomain": "string",
"dedicatedSipIpEnabled": true,
"dedicatedSipIpPoolId": "string",
"dedicatedSipIpAddress": "string",
"dedicatedSipIpTransport": "udp",
"exclusiveSipIpEnabled": true,
"exclusiveSipIpPoolId": "string",
"exclusiveSipIpAddressId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"exclusiveSipIpAddress": "string",
"exclusiveSipIpTransport": "udp",
"edgePublicIp": "string",
"sipNetworkIdentity": {
"kind": "standard_edge",
"address": "string",
"poolId": "string",
"edgePublicIp": "string"
}
}