Skip to main content

SipTrunkAiSetup

idstring<uuid>required
statusstringrequired

Possible values: [queued, interpreting, creating, registering, connected, failed]

authenticationModestringrequired

Possible values: [registration, digest, ip]

enginestringnullable
llmstring

Always SipSandwichAI Custom LLM. Underlying model vendors are not disclosed.

errorstringnullable
trunkIdstring<uuid>nullable
trunk objectnullable
idstring<uuid>
labelstring
registrarUristring

Provider registration target, or the outbound SIP destination when authenticationMode is ip.

Example: sip:sip.provider.example
proxyUristring | nullnullable
outboundProxyUristring | nullnullable
outboundDialPrefixPolicy object

Provider-facing dial-prefix policy. OpenSIPS applies it after final destination selection; Retell/API destinations remain unchanged.

defaultPrefixstringrequired

Possible values: <= 32 characters, Value must match regular expression ^[0-9*#]*$

Default value:
stripLeadingPlusbooleanrequired
Default value: true
rules object[]required

Possible values: <= 50

  • Array [
  • namestringrequired

    Possible values: non-empty and <= 80 characters

    matchTypestringrequired

    Match the first X normalized destination digits, or a three-digit North American Numbering Plan area code.

    Possible values: [starts_with, nanp_area_code]

    matchValuestringrequired

    Possible values: Value must match regular expression ^[0-9]{1,15}$

    dialPrefixstringrequired

    Possible values: <= 32 characters, Value must match regular expression ^[0-9*#]*$

    priorityintegerrequired

    Possible values: >= 1 and <= 10000

    enabledbooleanrequired
  • ]
  • deviceConcurrencyLimitinteger | nullnullable

    Optional hard limit for simultaneous carrier-facing calls on this SIP extension/device.

    Possible values: >= 1 and <= 1000

    devicePoolKeystring | nullnullable

    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}$

    transportstring

    Possible values: [udp, tcp, tls]

    authenticationModestring

    Possible values: [registration, digest, ip]

    usernamestring
    authUsernamestring
    providerProfilestring

    Possible values: [default, telnyx_like, voipms_like, bandwidth_like, custom]

    fromDomainstring | nullnullable
    fromUserModestring

    Possible values: [e164, auth_username, custom]

    customFromUserstring | nullnullable
    expiresSecondsinteger
    providerSourceIpsstring[]

    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[]
  • Array [
  • namestringrequired

    Possible values: Value must match regular expression ^[A-Za-z0-9-]+$

    valuestringrequired
  • ]
  • enabledboolean
    topologyHidingEnabledboolean

    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.

    Default value: false
    registrationStatusstring
    registrationLastCodeinteger | nullnullable
    registrationLastReasonstring | nullnullable
    contactUsernamestring
    contactUristring | nullnullable
    forcedSocketstring | nullnullable
    contactHostModestring

    Controls whether the OpenSIPS Contact header uses the tenant SIP domain or the edge public IP.

    Possible values: [sip_domain, public_ip]

    contactDomainstring
    publicIpstring | nullnullable
    sipDomainstring | nullnullable
    dedicatedSipIpEnabledboolean

    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.

    dedicatedSipIpPoolIdstring | nullnullable

    Configured dedicated SIP IP pool identifier, or null for standard edge placement.

    dedicatedSipIpAddressstring | nullnullable

    Shared dedicated pool service address used by this connection, or null when not bound.

    dedicatedSipIpTransportstring | nullnullable

    Selected transport for the dedicated pool binding. Retell and carrier legs use the selected transport.

    Possible values: [udp, tcp, tls, null]

    exclusiveSipIpEnabledboolean

    Whether this connection uses the tenant's assigned exclusive SIP address in the effective dedicated binding.

    exclusiveSipIpPoolIdstring | nullnullable

    Stable purchased exclusive SIP IP pool slug, or null when no exclusive address is assigned.

    exclusiveSipIpAddressId(string | null)<uuid>nullable

    Inventory row identifier for the assigned exclusive SIP address.

    exclusiveSipIpAddressstring | nullnullable

    Tenant-exclusive SIP service address, or null when no address is assigned.

    exclusiveSipIpTransportstring | nullnullable

    Transport used with the tenant-exclusive SIP address.

    Possible values: [udp, tcp, tls, null]

    edgePublicIpstring | nullnullable

    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.

    kindstringrequired

    Possible values: [standard_edge, dedicated_pool, exclusive_sip_ip]

    addressstring | nullnullablerequired
    poolIdstring | nullnullablerequired
    edgePublicIpstring | nullnullablerequired
    createdAtstring<date-time>required
    updatedAtstring<date-time>required
    completedAtstring<date-time>nullable
    SipTrunkAiSetup
    {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "status": "queued",
    "authenticationMode": "registration",
    "engine": "string",
    "llm": "string",
    "error": "string",
    "trunkId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "trunk": {
    "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"
    }
    },
    "createdAt": "2024-07-29T15:51:28.071Z",
    "updatedAt": "2024-07-29T15:51:28.071Z",
    "completedAt": "2024-07-29T15:51:28.071Z"
    }