Trunks

Manage your trunks.

List providers

get

Retrieve a collection of providers

Authorizations
Query parameters
filterstringOptional

Use the filter query parameter to retrieve just a subset of a collection.

searchstringOptional

Use the search query parameter to restrict the results of a request to match a search criterion.

orderbystringOptional

Use the orderby query parameter to specify the sort order of the items returned from server.
The default order is ascending order.

skipinteger · int32Optional

Use the skip query parameter to set the number of items to skip at the start of a collection.

Default: 0
topinteger · int32 · min: 1 · max: 100Optional

Use the top query parameter to specify the page size of the result set.

Default: 100
Responses
200
OK
application/json
get
GET /api/providers HTTP/1.1
Host: hostname:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "count": 100,
  "items": [
    {
      "id": "NzAwNTUxOTA5NzczMTQ4MTYw",
      "name": "text",
      "enabled": true,
      "brand": "text",
      "hostname": "text",
      "port": 80,
      "did_numbers": "text",
      "shared": true
    }
  ]
}

Create a provider

post

Add a new provider into system.

Authorizations
Body
namestring · min: 1 · max: 64Required

The name of the trunk.

enabledbooleanOptional

Whether to enable the provider.

Default: true
brandstring · min: 1 · max: 64Optional

The brand of trunk.

auth_modestring · enumOptional

Authentication mode:
Can be either:

  • IP_AUTH:
  • REGISTER_AUTH:
  • ACCEPT_REGISTER:
  • TEAMS:
  • WHATS_APP:
Possible values:
transportstring · enumRequired

The trunk transport protocol:
Can be either:

  • UDP:
  • TCP:
  • TLS:
Possible values:
hostnameall ofRequired

The hostname of trunk.

stringOptional

Server hostname or IP address

portall ofRequired

The port pf trunk.

integer · int32 · max: 65535Optional

A port number is a 16-bit unsigned integer, thus ranging from 0 to 65535. For TCP, port number 0 is reserved and cannot be used, while for UDP, the source port is optional and a value of zero means no port

Example: 80
auth_idstring · max: 64Optional

Authentication ID, i.e. SIP username.

usernamestring · max: 64Optional

Authentication username.

passwordstringOptional

Password for authentication.

registrationbooleanOptional

Whether registration is required.

Default: true
register_intervalinteger · int32Optional

Interval for registry refreshment, in seconds.

Default: 600
outbound_serverstringRequired

The outbound server hostname of the trunk.

outbound_server_portall ofRequired

The outbound server port of the trunk.

integer · int32 · max: 65535Optional

A port number is a 16-bit unsigned integer, thus ranging from 0 to 65535. For TCP, port number 0 is reserved and cannot be used, while for UDP, the source port is optional and a value of zero means no port

Example: 80
inlanbooleanOptional

Whether the trunk under LAN or not.

Default: false
single_via_headerbooleanOptional

Whether this trunk is only accept single Via SIP header or not.

Default: true
rewrite_via_ipbooleanOptional

Rewrite the host IP of Via header by public IP when sending the request to trunk.

Default: true
verify_portbooleanOptional

Verify the port when receiving SIP messages from trunk

Default: true
keep_alivebooleanOptional

Send OPTIONS message for keep alive.

Default: true
concurrencyinteger · int32Required

The max number of concurrent calls.

keep_alive_intervalinteger · int32Optional

Keep alive message sending interval (seconds).

Default: 360
additional_ipsstringOptional

The additional IP addresses of provider.
A semicolon-separated list of IP addresses in CIDR format.
For example: 192.0.2.0/24;192.0.2.0/32 as defined in RFC 4632 and RFC 4291.

adjust_sdp_directionbooleanOptional

Adjust the SDP direction for call hold.

Default: true
remove_srtp_infobooleanOptional

Remove crypto line in the SDP.

Default: true
stir_shaken_signature_requiredbooleanOptional

Whether to enable STIR/SHAKEN signature.

Default: false
did_numbersstringOptional

The semicolon-separated list of DID/DDI pool number range or DID/DDI number. Assign a DID/DDI pool number range or DID/DDI number to the tenant. For example: 3000;12000-18000. The DID/DDI pool number range should not overlap with other tenant DID/DDI pool number ranges and numbers.

Responses
201
Created
application/json
post
POST /api/providers HTTP/1.1
Host: hostname:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 2816

{
  "name": "text",
  "enabled": true,
  "brand": "text",
  "auth_mode": "IP_AUTH",
  "transport": "UDP",
  "hostname": "text",
  "port": 80,
  "auth_id": "text",
  "username": "text",
  "password": "text",
  "registration": true,
  "register_interval": 600,
  "outbound_server": "text",
  "outbound_server_port": 80,
  "inlan": false,
  "single_via_header": true,
  "rewrite_via_ip": true,
  "verify_port": true,
  "keep_alive": true,
  "concurrency": 1,
  "keep_alive_interval": 360,
  "additional_ips": "text",
  "adjust_sdp_direction": true,
  "remove_srtp_info": true,
  "stir_shaken_signature_required": false,
  "did_numbers": "text",
  "inbound_parameters": {
    "caller_num": "REQUEST_LINE_URI_USER_PART",
    "caller_display_name": "REQUEST_LINE_URI_USER_PART",
    "called_num": "REQUEST_LINE_URI_USER_PART",
    "privacy_types_supported": "DEFAULT",
    "enable_stir_shaken_validation": false,
    "pai_header_parameter_name": "verstat",
    "drop_calls_with_verification_status": [
      "text"
    ],
    "pass_api_header_to_uad": false
  },
  "outbound_parameters": {
    "request_line_uri_user_part": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "request_line_uri_host_part": {
      "value": "TRUNK_HOST_PORT",
      "custom_value": "text"
    },
    "contact_user_part": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "contact_host_part": {
      "value": "TRUNK_HOST_PORT",
      "custom_value": "text"
    },
    "to_display_name": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "to_user_part": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "to_host_part": {
      "value": "TRUNK_HOST_PORT",
      "custom_value": "text"
    },
    "from_display_name": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "from_user_part": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "from_host_part": {
      "value": "TRUNK_HOST_PORT",
      "custom_value": "text"
    },
    "remote_party_id_called_party_display_name": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "remote_party_id_called_party_user_part": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "remote_party_id_called_party_host_part": {
      "value": "TRUNK_HOST_PORT",
      "custom_value": "text"
    },
    "remote_party_id_calling_party_display_name": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "remote_party_id_calling_party_user_part": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "remote_party_id_calling_party_host_part": {
      "value": "TRUNK_HOST_PORT",
      "custom_value": "text"
    },
    "p_asserted_identity_display_name": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "p_asserted_identity_user_part": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "p_asserted_identity_host_part": {
      "value": "TRUNK_HOST_PORT",
      "custom_value": "text"
    },
    "p_preferred_identify_display_name": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "p_preferred_identify_user_part": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "p_preferred_identify_host_part": {
      "value": "TRUNK_HOST_PORT",
      "custom_value": "text"
    },
    "p_called_party_id_display_name": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "p_called_party_id_user_part": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "p_called_party_id_host_part": {
      "value": "TRUNK_HOST_PORT",
      "custom_value": "text"
    },
    "privacy_types_supported": "DEFAULT"
  }
}
{
  "id": "NzAwNTUxOTA5NzczMTQ4MTYw"
}

Retrieve a provider

get

Get details of a provider by it's unique ID.

Authorizations
Path parameters
idall ofRequired

The unique ID of trunk.

stringOptional

The unique ID of the resource.

Example: NzAwNTUxOTA5NzczMTQ4MTYw
Responses
200
OK
application/json
get
GET /api/providers/{id} HTTP/1.1
Host: hostname:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "id": "NzAwNTUxOTA5NzczMTQ4MTYw",
  "name": "text",
  "enabled": true,
  "brand": "text",
  "auth_mode": "IP_AUTH",
  "transport": "UDP",
  "hostname": "text",
  "port": 80,
  "auth_id": "text",
  "username": "text",
  "registration": true,
  "register_interval": 600,
  "outbound_server": "text",
  "outbound_server_port": 80,
  "inlan": false,
  "single_via_header": true,
  "rewrite_via_ip": true,
  "verify_port": true,
  "keep_alive": true,
  "keep_alive_interval": 360,
  "concurrency": 1,
  "additional_ips": "text",
  "adjust_sdp_direction": true,
  "remove_srtp_info": true,
  "stir_shaken_signature_required": false,
  "did_numbers": "text",
  "inbound_parameters": {
    "caller_num": "REQUEST_LINE_URI_USER_PART",
    "caller_display_name": "REQUEST_LINE_URI_USER_PART",
    "called_num": "REQUEST_LINE_URI_USER_PART",
    "privacy_types_supported": "DEFAULT",
    "enable_stir_shaken_validation": false,
    "pai_header_parameter_name": "verstat",
    "drop_calls_with_verification_status": [
      "text"
    ],
    "pass_api_header_to_uad": false
  },
  "outbound_parameters": {
    "request_line_uri_user_part": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "request_line_uri_host_part": {
      "value": "TRUNK_HOST_PORT",
      "custom_value": "text"
    },
    "contact_user_part": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "contact_host_part": {
      "value": "TRUNK_HOST_PORT",
      "custom_value": "text"
    },
    "to_display_name": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "to_user_part": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "to_host_part": {
      "value": "TRUNK_HOST_PORT",
      "custom_value": "text"
    },
    "from_display_name": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "from_user_part": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "from_host_part": {
      "value": "TRUNK_HOST_PORT",
      "custom_value": "text"
    },
    "remote_party_id_called_party_display_name": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "remote_party_id_called_party_user_part": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "remote_party_id_called_party_host_part": {
      "value": "TRUNK_HOST_PORT",
      "custom_value": "text"
    },
    "remote_party_id_calling_party_display_name": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "remote_party_id_calling_party_user_part": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "remote_party_id_calling_party_host_part": {
      "value": "TRUNK_HOST_PORT",
      "custom_value": "text"
    },
    "p_asserted_identity_display_name": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "p_asserted_identity_user_part": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "p_asserted_identity_host_part": {
      "value": "TRUNK_HOST_PORT",
      "custom_value": "text"
    },
    "p_preferred_identify_display_name": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "p_preferred_identify_user_part": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "p_preferred_identify_host_part": {
      "value": "TRUNK_HOST_PORT",
      "custom_value": "text"
    },
    "p_called_party_id_display_name": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "p_called_party_id_user_part": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "p_called_party_id_host_part": {
      "value": "TRUNK_HOST_PORT",
      "custom_value": "text"
    },
    "privacy_types_supported": "DEFAULT"
  },
  "shared": true
}

Update provider

post

Update properties of provider by it's unique ID.

Authorizations
Path parameters
idall ofRequired

The unique ID of trunk.

stringOptional

The unique ID of the resource.

Example: NzAwNTUxOTA5NzczMTQ4MTYw
Body
namestring · min: 1 · max: 64Optional

The name of the trunk.

enabledbooleanOptional

Whether to enable the provider.

Default: true
transportstring · enumOptional

The trunk transport protocol:
Can be either:

  • UDP:
  • TCP:
  • TLS:
Possible values:
hostnameall ofOptional

The hostname of trunk.

stringOptional

Server hostname or IP address

portall ofOptional

The port pf trunk.

integer · int32 · max: 65535Optional

A port number is a 16-bit unsigned integer, thus ranging from 0 to 65535. For TCP, port number 0 is reserved and cannot be used, while for UDP, the source port is optional and a value of zero means no port

Example: 80
auth_idstring · max: 64Optional

Authentication ID, i.e. SIP username.

usernamestring · max: 64Optional

Authentication username.

passwordstringOptional

Password for authentication.

registrationbooleanOptional

Whether registration is required.

Default: true
register_intervalinteger · int32Optional

Interval for registry refreshment, in seconds.

Default: 600
outbound_serverstringOptional

The outbound server hostname of the trunk.

outbound_server_portall ofOptional

The outbound server port of the trunk.

integer · int32 · max: 65535Optional

A port number is a 16-bit unsigned integer, thus ranging from 0 to 65535. For TCP, port number 0 is reserved and cannot be used, while for UDP, the source port is optional and a value of zero means no port

Example: 80
inlanbooleanOptional

Whether the trunk under LAN or not.

Default: false
single_via_headerbooleanOptional

Whether this trunk is only accept single Via SIP header or not.

Default: true
rewrite_via_ipbooleanOptional

Rewrite the host IP of Via header by public IP when sending the request to trunk.

Default: true
verify_portbooleanOptional

Verify the port when receiving SIP messages from trunk

Default: true
keep_alivebooleanOptional

Send OPTIONS message for keep alive.

Default: true
keep_alive_intervalinteger · int32Optional

Keep alive message sending interval (seconds).

Default: 360
concurrencyinteger · int32Optional

The max number of concurrent calls.

additional_ipsstringOptional

The additional IP addresses of provider.
A semicolon-separated list of IP addresses in CIDR format.
For example: 192.0.2.0/24;192.0.2.0/32 as defined in RFC 4632 and RFC 4291.

adjust_sdp_directionbooleanOptional

Adjust the SDP direction for call hold.

Default: true
remove_srtp_infobooleanOptional

Remove crypto line in the SDP.

Default: true
stir_shaken_signature_requiredbooleanOptional

Whether to enable STIR/SHAKEN signature.

Default: false
did_numbersstringOptional

The semicolon-separated list of DID/DDI pool number range or DID/DDI number. Assign a DID/DDI pool number range or DID/DDI number to the tenant. For example: 3000;12000-18000. The DID/DDI pool number range should not overlap with other tenant DID/DDI pool number ranges and numbers.

Responses
200
OK
post
POST /api/providers/{id} HTTP/1.1
Host: hostname:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 2779

{
  "name": "text",
  "enabled": true,
  "transport": "UDP",
  "hostname": "text",
  "port": 80,
  "auth_id": "text",
  "username": "text",
  "password": "text",
  "registration": true,
  "register_interval": 600,
  "outbound_server": "text",
  "outbound_server_port": 80,
  "inlan": false,
  "single_via_header": true,
  "rewrite_via_ip": true,
  "verify_port": true,
  "keep_alive": true,
  "keep_alive_interval": 360,
  "concurrency": 1,
  "additional_ips": "text",
  "adjust_sdp_direction": true,
  "remove_srtp_info": true,
  "stir_shaken_signature_required": false,
  "did_numbers": "text",
  "inbound_parameters": {
    "caller_num": "REQUEST_LINE_URI_USER_PART",
    "caller_display_name": "REQUEST_LINE_URI_USER_PART",
    "called_num": "REQUEST_LINE_URI_USER_PART",
    "privacy_types_supported": "DEFAULT",
    "enable_stir_shaken_validation": false,
    "pai_header_parameter_name": "verstat",
    "drop_calls_with_verification_status": [
      "text"
    ],
    "pass_api_header_to_uad": false
  },
  "outbound_parameters": {
    "request_line_uri_user_part": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "request_line_uri_host_part": {
      "value": "TRUNK_HOST_PORT",
      "custom_value": "text"
    },
    "contact_user_part": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "contact_host_part": {
      "value": "TRUNK_HOST_PORT",
      "custom_value": "text"
    },
    "to_display_name": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "to_user_part": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "to_host_part": {
      "value": "TRUNK_HOST_PORT",
      "custom_value": "text"
    },
    "from_display_name": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "from_user_part": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "from_host_part": {
      "value": "TRUNK_HOST_PORT",
      "custom_value": "text"
    },
    "remote_party_id_called_party_display_name": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "remote_party_id_called_party_user_part": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "remote_party_id_called_party_host_part": {
      "value": "TRUNK_HOST_PORT",
      "custom_value": "text"
    },
    "remote_party_id_calling_party_display_name": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "remote_party_id_calling_party_user_part": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "remote_party_id_calling_party_host_part": {
      "value": "TRUNK_HOST_PORT",
      "custom_value": "text"
    },
    "p_asserted_identity_display_name": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "p_asserted_identity_user_part": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "p_asserted_identity_host_part": {
      "value": "TRUNK_HOST_PORT",
      "custom_value": "text"
    },
    "p_preferred_identify_display_name": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "p_preferred_identify_user_part": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "p_preferred_identify_host_part": {
      "value": "TRUNK_HOST_PORT",
      "custom_value": "text"
    },
    "p_called_party_id_display_name": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "p_called_party_id_user_part": {
      "value": "AUTH_ID",
      "custom_value": "text"
    },
    "p_called_party_id_host_part": {
      "value": "TRUNK_HOST_PORT",
      "custom_value": "text"
    },
    "privacy_types_supported": "DEFAULT"
  }
}

No content

Query provider status

get

Get status of provider by it's unique ID.

Authorizations
Path parameters
idall ofRequired

The unique ID of trunk.

stringOptional

The unique ID of the resource.

Example: NzAwNTUxOTA5NzczMTQ4MTYw
Responses
200
Success
application/json
get
GET /api/providers/{id}/status HTTP/1.1
Host: hostname:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "status": "ONLINE"
}

Delete a provider

post

Destroy provider by it's unique ID.

Authorizations
Path parameters
idall ofRequired

The unique ID of trunk.

stringOptional

The unique ID of the resource.

Example: NzAwNTUxOTA5NzczMTQ4MTYw
Responses
204
No Content
post
POST /api/providers/{id}/destroy HTTP/1.1
Host: hostname:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*

No content

Export providers

get

Export a collection of providers to file.

Authorizations
Responses
200
OK
application/octet-stream
Responsestring · binary
get
GET /api/providers/export HTTP/1.1
Host: hostname:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
binary