Manage Elastic SIP Trunking (EST) resources: trunks, endpoints, ACLs, calls, countries, and credential lists. See Elastic SIP Trunking on developers.sinch.com for product documentation.
Manage SIP trunks. A trunk connects your PBX or SIP infrastructure to the Sinch network.
sinch sip trunks list [--limit <number>] [--json]sinch sip trunks get <trunk-id> [--json]sinch sip trunks create [options]| Option | Description |
|---|---|
-n, --name <name> | Trunk name |
-h, --host-name <hostname> | SIP host name |
--caller-id | Enable caller ID |
--non-interactive | Skip prompts |
--json | Output as JSON |
sinch sip trunks update <trunk-id> [options]| Option | Description |
|---|---|
-n, --name <name> | New trunk name |
-h, --host-name <hostname> | New host name |
--caller-id / --no-caller-id | Enable/disable caller ID |
sinch sip trunks delete <trunk-id> [-f, --force] [--json]With --json, --force is required and the command prints { "trunkId": "...", "deleted": true }.
sinch sip trunks acls list <trunk-id>
sinch sip trunks acls add <trunk-id> <acl-id>
sinch sip trunks acls remove <trunk-id> <acl-id> [-f, --force] [--json]With --json, --force is required and acls remove prints { "trunkId": "...", "aclId": "...", "removed": true }.
sinch sip trunks credential-lists update <trunk-id> <cred-list-id...>Manage SIP endpoints (registered devices or user agents on a trunk).
sinch sip endpoints list <trunk-id> [options]
sinch sip endpoints get <endpoint-id>
sinch sip endpoints create <trunk-id> [options]
sinch sip endpoints update <endpoint-id> [options]
sinch sip endpoints delete <endpoint-id> [-f, --force]All subcommands support --json. Create and update support --non-interactive. With --json, delete requires --force and prints { "endpointId": "...", "trunkId": "...", "deleted": true }.
create and update options:
| Option | Description |
|---|---|
-n, --name <name> | Endpoint name (required on create) |
-a, --address <address> | IP or hostname, without port (required on create) |
--port <number> | SIP port |
-t, --transport <transport> | UDP, TCP or TLS |
-p, --priority <number> | Priority, lower = higher priority (required on create) |
Manage Access Control Lists (IP allowlists for SIP traffic).
sinch sip acls list [options]
sinch sip acls get <acl-id>
sinch sip acls create [options]
sinch sip acls update <acl-id> [options]
sinch sip acls delete <acl-id> [-f, --force] [--json]
sinch sip acls trunks <acl-id> [-l, --limit <number>] [--json]
sinch sip acls ip-ranges list <acl-id> [-l, --limit <number>] [--json]
sinch sip acls ip-ranges add <acl-id> [options]
sinch sip acls ip-ranges update <acl-id> <ip-range-id> [options]
sinch sip acls ip-ranges delete <acl-id> <ip-range-id> [-f, --force] [--json]acls trunks lists the trunks that use an ACL.
With --json, acls delete and acls ip-ranges delete require --force. acls delete prints { "aclId": "...", "deleted": true }; acls ip-ranges delete prints { "aclId": "...", "ipRangeId": "...", "deleted": true }.
acls create options:
| Option | Description |
|---|---|
-n, --name <name> | ACL name (required) |
-i, --ip <address> | IP address for the first IP range (required) |
-r, --range <cidr> | CIDR mask for that range, as a number (default 32) |
--ip-description <text> | Description for the IP range |
--enabled / --disabled | Create the ACL enabled (default) or disabled |
--non-interactive | Skip prompts, use defaults for missing options |
--json | Output as JSON |
acls update takes -n, --name <name>, --enabled / --disabled, --non-interactive and --json.
acls ip-ranges add and update options:
| Option | Description |
|---|---|
-d, --description <description> | Description for the IP range |
-i, --ip <ip> | Single IP address (e.g., 192.168.1.1) |
-r, --range <cidr> | CIDR range (e.g., 192.168.1.0/24) |
--non-interactive | Skip prompts |
--json | Output as JSON |
--ip and --range cannot be combined. Note that -r is a number on acls create but a CIDR string on ip-ranges.
View SIP call history and details.
sinch sip calls list [options]
sinch sip calls get <call-id>| Option | Description |
|---|---|
--trunk-id <id> | Filter by trunk ID |
--from <number> | Filter by calling phone number (partial match) |
--to <number> | Filter by called phone number (partial match) |
--direction <direction> | INBOUND or OUTBOUND |
--result <result> | COMPLETED, NO_ANSWER, CANCEL, BUSY or FAILED |
--date <date> | YYYY-MM-DD, YYYY-MM or YYYY. Defaults to the last 24 hours |
--page <number> | Page number |
--page-size <number> | Results per page (default 100, max 1000) |
--json | Output as JSON |
--from and --to take phone numbers, not dates. Use --date to choose a period.
Manage country permissions for dialing: see which countries can be dialed, and turn dialing to a country on or off.
sinch sip countries list [-l, --limit <number>] [--json]
sinch sip countries get <iso-code> [--json]
sinch sip countries enable <iso-code> [--json]
sinch sip countries disable <iso-code> [--json]<iso-code> is an ISO country code such as US or CA, or '*'. Quote the * so your shell does not expand it.
Show which trunks use a SIP credential list. This is the only credential-lists subcommand: the CLI does not list, create or delete credential lists. To set the lists a trunk uses, run sinch sip trunks credential-lists update (above). It replaces the trunk's whole set with the IDs you pass, so include every list the trunk should keep.
sinch sip credential-lists trunks <credential-list-id> [-l, --limit <number>] [--json]


