Administrations
Manage PBX System.
Get network configurations.
OK
The web domain for PortSIP PBX
The private IPv4 of system.
The public IPv4 of system.
Indicates if IPv6 would be enabled.
trueThe private IPv6 of system.
The public IPv6 of system.
The primary DNS server.
The secondary DNS server.
The SBC domain.
Error
GET /api/network HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"web_domain": "example.com",
"private_ipv4": "127.0.0.1",
"public_ipv4": "192.0.2.0",
"enable_ipv6": true,
"private_ipv6": "::1",
"public_ipv6": "2001:0db8:0a0b:12f0::1",
"primary_dns_server": "",
"secondary_dns_server": "",
"sbc_domain": "example.com"
}Update network configurations for PortSIP PBX.
The web domain for PortSIP PBX
The private IPv4 of system.
The public IPv4 of system.
Indicates if IPv6 would be enabled.
trueThe private IPv6 of system.
The public IPv6 of system.
The primary DNS server.
The secondary DNS server.
OK
No content
Error
POST /api/network HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 210
{
"web_domain": "example.com",
"private_ipv4": "127.0.0.1",
"public_ipv4": "192.0.2.0",
"enable_ipv6": true,
"private_ipv6": "::1",
"public_ipv6": "2001:0db8:0a0b:12f0::1",
"primary_dns_server": "",
"secondary_dns_server": ""
}No content
List a collection of users.
Use the filter query parameter to retrieve just a subset of a collection.
Use the search query parameter to restrict the results of a request to match a search criterion.
Use the orderby query parameter to specify the sort order of the items returned from server.
The default order is ascending order.
Use the skip query parameter to set the number of items to skip at the start of a collection.
0Use the top query parameter to specify the page size of the result set.
100OK
Total number of resource.
100Error
GET /api/admin/users HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"count": 1,
"items": [
{
"id": "xxxxxx",
"name": "example",
"enabled": true,
"protected": false,
"email": "example@example.com",
"display_name": "example",
"role_id": "xxxxxx",
"role_name": "example",
"mobile_phone": "",
"work_phone": "",
"home_phone": "",
"address": "",
"department": "",
"website": "https://example.com",
"timezone": "UTC",
"created_at": "2020-01-01T00:00:00Z",
"login_at": "2020-01-01T00:00:00Z",
"logout_at": "2020-01-01T00:00:00Z",
"avatar_file_name": "example",
"avatar_file_size": 123,
"avatar_file_url": ""
}
]
}Create a user.
The user's account name.
Only letters, numbers, and the following special characters can be added: underscore, dash, single quote, and period (_, -, ', and .).
Username cannot start or end with period (.).
admin, system, administrator, and root are reserved names for system admin only with case ignored.
The password of user.
The email address.
example@example.comThe display name of user.
Whether user is enabled.
trueRoles include built-in roles and custom roles.
Built-in roles roles cannot be modified.
Also, the names of built-in roles are reserved words,
custom roles are not allowed to use these names to avoid unnecessary confusion.
Built-in roles include:
SystemAdmin: the system administrator has almost all permissions.OperationsAdmin: the operations administrator.SiteAdmin: the site administrator.Dealer: the sales manager has all sold tenant resource permissions.Admin: the admin has all tenant-wide resource permissions.StandardUser: the user all user-wide resource permissions.StandardInternationalUser: the user all user-wide resource permissions with international call permissions.QueueManager: The call queue manager.
UserThe mobile phone number of user.
The office phone number of user.
The home phone number of user.
The address.
The department of user.
The website of user.
The IANA Time Zone names, such as "Asia/Shanghai".
Created
NzAwNTUxOTA5NzczMTQ4MTYwError
POST /api/admin/users HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 241
{
"name": "xxxxxx",
"password": "xxxxxx",
"email": "example@example.com",
"display_name": "example",
"enabled": true,
"role": "OperationsAdmin",
"mobile_phone": "",
"work_phone": "",
"home_phone": "",
"address": "",
"department": "",
"website": "",
"timezone": "UTC"
}{
"id": "xxxxxxxx"
}Retrieves information of a user.
NzAwNTUxOTA5NzczMTQ4MTYwOK
NzAwNTUxOTA5NzczMTQ4MTYwThe user's account name.
Only letters, numbers, and the following special characters can be added: underscore, dash, single quote, and period (_, -, ', and .).
Username cannot start or end with period (.).
admin, system, administrator, and root are reserved names for system admin only with case ignored.
The email address.
example@example.comThe display name of user.
NzAwNTUxOTA5NzczMTQ4MTYwRoles include built-in roles and custom roles.
Built-in roles roles cannot be modified.
Also, the names of built-in roles are reserved words,
custom roles are not allowed to use these names to avoid unnecessary confusion.
Built-in roles include:
SystemAdmin: the system administrator has almost all permissions.OperationsAdmin: the operations administrator.SiteAdmin: the site administrator.Dealer: the sales manager has all sold tenant resource permissions.Admin: the admin has all tenant-wide resource permissions.StandardUser: the user all user-wide resource permissions.StandardInternationalUser: the user all user-wide resource permissions with international call permissions.QueueManager: The call queue manager.
UserWhether user is enabled.
trueWhether user is protected.
falseThe mobile phone number of user.
The office phone number of user.
The home phone number of user.
The address.
The department of user.
The website of user.
The IANA Time Zone names, such as "Asia/Shanghai".
The RFC 3339 format is defined by The date_time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z
2017-07-21T17:32:28ZThe RFC 3339 format is defined by The date_time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z
2017-07-21T17:32:28ZThe RFC 3339 format is defined by The date_time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z
2017-07-21T17:32:28ZThe name of the file.
The file size in bytes.
0The relative path to file url for file downloading.
/api/blobs/WexWdABcd5D4PDgzTKV3gAAAEu00WcKError
GET /api/admin/users/{id} HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"id": "xxxxxx",
"name": "user",
"email": "example@example.com",
"display_name": "example",
"role_id": "xxxxxx",
"role_name": "OperationsAdmin",
"enabled": true,
"protected": false,
"mobile_phone": "",
"work_phone": "",
"home_phone": "",
"address": "",
"department": "",
"website": "https://example.com",
"timezone": "UTC",
"created_at": "2020-01-01T00:00:00Z",
"login_at": "2020-01-01T00:00:00Z",
"logout_at": "2020-01-01T00:00:00Z",
"avatar_file_name": "example",
"avatar_file_size": 123,
"avatar_file_url": ""
}Change configurations of user.
NzAwNTUxOTA5NzczMTQ4MTYwThe email address.
example@example.comThe display name of user.
Whether user is enabled.
trueThe mobile phone number of user.
The office phone number of user.
The home phone number of user.
The address.
The department of user.
The website of user.
The IANA Time Zone names, such as "Asia/Shanghai".
OK
No content
Error
POST /api/admin/users/{id} HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 199
{
"email": "example@example.com",
"display_name": "example",
"enabled": true,
"mobile_phone": "",
"work_phone": "",
"home_phone": "",
"address": "",
"department": "",
"website": "https://example.com",
"timezone": "UTC"
}No content
Change admin user username.
NzAwNTUxOTA5NzczMTQ4MTYwThe user's account name.
Only letters, numbers, and the following special characters can be added: underscore, dash, single quote, and period (_, -, ', and .).
Username cannot start or end with period (.).
admin, system, administrator, and root are reserved names for system admin only with case ignored.
OK
No content
Error
POST /api/admin/users/{id}/username HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 18
{
"name": "example"
}No content
Change admin user password.
NzAwNTUxOTA5NzczMTQ4MTYwThe password of system admin.
OK
No content
Error
POST /api/admin/users/{id}/password HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 27
{
"password": "xxxxxxxxxxxx"
}No content
Change admin user role.
NzAwNTUxOTA5NzczMTQ4MTYwRoles include built-in roles and custom roles.
Built-in roles roles cannot be modified.
Also, the names of built-in roles are reserved words,
custom roles are not allowed to use these names to avoid unnecessary confusion.
Built-in roles include:
SystemAdmin: the system administrator has almost all permissions.OperationsAdmin: the operations administrator.SiteAdmin: the site administrator.Dealer: the sales manager has all sold tenant resource permissions.Admin: the admin has all tenant-wide resource permissions.StandardUser: the user all user-wide resource permissions.StandardInternationalUser: the user all user-wide resource permissions with international call permissions.QueueManager: The call queue manager.
UserOK
No content
Error
POST /api/admin/users/{id}/role HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 26
{
"role": "OperationsAdmin"
}No content
Delete a user.
NzAwNTUxOTA5NzczMTQ4MTYwNo Content
No content
Error
POST /api/admin/users/{id}/destroy HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
No content
Retrieves information about the currently logged-in administrator user.
OK
NzAwNTUxOTA5NzczMTQ4MTYwThe user's account name.
Only letters, numbers, and the following special characters can be added: underscore, dash, single quote, and period (_, -, ', and .).
Username cannot start or end with period (.).
admin, system, administrator, and root are reserved names for system admin only with case ignored.
The email address.
example@example.comThe display name of user.
NzAwNTUxOTA5NzczMTQ4MTYwRoles include built-in roles and custom roles.
Built-in roles roles cannot be modified.
Also, the names of built-in roles are reserved words,
custom roles are not allowed to use these names to avoid unnecessary confusion.
Built-in roles include:
SystemAdmin: the system administrator has almost all permissions.OperationsAdmin: the operations administrator.SiteAdmin: the site administrator.Dealer: the sales manager has all sold tenant resource permissions.Admin: the admin has all tenant-wide resource permissions.StandardUser: the user all user-wide resource permissions.StandardInternationalUser: the user all user-wide resource permissions with international call permissions.QueueManager: The call queue manager.
UserWhether user is enabled.
trueWhether user is protected.
falseThe mobile phone number of user.
The office phone number of user.
The home phone number of user.
The address.
The department of user.
The website of user.
The RFC 3339 format is defined by The date_time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z
2017-07-21T17:32:28ZThe RFC 3339 format is defined by The date_time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z
2017-07-21T17:32:28ZThe RFC 3339 format is defined by The date_time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z
2017-07-21T17:32:28ZThe name of the file.
The file size in bytes.
0The relative path to file url for file downloading.
/api/blobs/WexWdABcd5D4PDgzTKV3gAAAEu00WcKError
GET /api/admin/user HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"id": "xxxxxx",
"name": "user",
"email": "example@example.com",
"display_name": "example",
"role_id": "xxxxxx",
"role_name": "SystemAdmin",
"enabled": true,
"protected": true,
"mobile_phone": "",
"work_phone": "",
"home_phone": "",
"address": "",
"department": "",
"website": "https://example.com",
"created_at": "2020-01-01T00:00:00Z",
"login_at": "2020-01-01T00:00:00Z",
"logout_at": "2020-01-01T00:00:00Z",
"avatar_file_name": "example",
"avatar_file_size": 123,
"avatar_file_url": ""
}Change configurations of currently logged-in administrator user.
The email address.
example@example.comThe display name of user.
The mobile phone number of user.
The office phone number of user.
The home phone number of user.
The address.
The department of user.
The website of user.
OK
No content
Error
POST /api/admin/user HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 167
{
"email": "example@example.com",
"display_name": "example",
"mobile_phone": "",
"work_phone": "",
"home_phone": "",
"address": "",
"department": "",
"website": "https://example.com"
}No content
Change current admin user username.
The user's account name.
Only letters, numbers, and the following special characters can be added: underscore, dash, single quote, and period (_, -, ', and .).
Username cannot start or end with period (.).
admin, system, administrator, and root are reserved names for system admin only with case ignored.
OK
No content
Error
POST /api/admin/user/username HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 18
{
"name": "example"
}No content
Change current admin user password.
The password of system admin.
The password of system admin.
OK
No content
Error
POST /api/admin/user/password HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 49
{
"old_password": "xxxxxx",
"new_password": "xxxxxx"
}No content
Get current status of system.
OK
The version information of PortSIP PBX.
The news information of PortSIP PBX.
The license key of PortSIP PBX. It may be an empty string for a node or
floating result representing an installation without a Key. A modular
result always contains a Key.
The effective License type (node, floating, or modular). The value is
read from the shared system License snapshot when available. Only
modular enables module quotas.
The RFC 3339 format is defined by The date_time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z
2017-07-21T17:32:28ZThe number of authorized concurrent calls purchased by the user.
The maximum number of authorized users purchased by the system admin. For
a modular License this is the user limit from the committed shared
License snapshot; runtime telemetry remains sourced from CallManager.
The number of current users of the system.
The number of current online users of the system.
The number of current tenants of the system.
The number of current dealers of the system.
The current number of calls.
The current number of trunks.
The current number of conference servers.
The current number of media servers.
The current number of call queue servers.
The current number of ivr servers.
Error
GET /api/admin/status HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"version": "",
"news": "",
"license_key": "",
"license_type": "modular",
"maintenance_expires_at": "2020-01-01T00:00:00Z",
"max_concurrent_calls": 100,
"licensed_users": 100,
"current_users": 100,
"online_users": 100,
"current_tenants": 100,
"current_dealers": 10,
"current_calls": 100,
"current_trunks": 100,
"current_conference_servers": 10,
"current_media_servers": 10,
"current_call_queue_servers": 10,
"current_ivr_servers": 10,
"license_usage": {
"base": {
"max": 100,
"allocated": 80,
"used": 75
},
"cc": {
"max": 50,
"allocated": 30,
"used": 25
},
"advanced": {
"max": 20,
"allocated": 10,
"used": 8
}
}
}Retrieve settings for PortSIP PBX.
OK
User agent.
PortSIP UCThe semicolon separated list of blocked user agents.
Enable Shared Address Space Address Range or not (RFC 6598).
trueIndicates if DIGEST authentication would be enabled.
trueIndicates if PortSIP PBX requires authentication against all subsequent requests originated from one calling.
falseIndicates if auth-int DIGEST authentication mode would be enabled.
falseAllow external calls recording.
trueWhen a client sends a bad nonce in their credentials, return 403 message if this parameter is true, or send a new challenge if this parameter is false.
falseInterval for statistics logs, in seconds.
600Close the session if no RTP packets received within specified duration, in seconds.
600Indicates if session timer (RFC 4028) would be enabled. This also requires client support.
trueDuration recorded by Session timer. Precondition: "enable_session_timer" MUST be set to true.
3600Indicates if "to" tag is allowed in REGISTER message.
falseEnable two factor authentication for users.
falseEnable voicemail PIN verification for IP phone auto-provisioning.
When enabled, IP phones must provide voicemail PIN to download configuration files.
falseJSON array of phone vendor names excluded from voicemail PIN verification during auto-provisioning. If a phone's vendor is in this list, it will skip PIN verification when downloading configuration files.
Indicates if congestion management would be enabled.
truePrecondition: "enable_congestion_management" parameter MUST be set to true. The recommended is WAIT_TIME based on the expected wait time for each FIFO.
WAIT_TIME:TIME_DEPTH:SIZE:
Precondition: "enable_congestion_management" parameter MUST be set to true. Congestion management tolerance for the given metric. This parameter determines when the Rejection Behavior changes.
600Indicates if the extension would be automatically created when a non-existent extension try to register. If it is set to true, when a non-included extension tries to send registry message to PBX, the PBX will create the extension with default password "portsip" automatically.
falseEnable prack or not.
falseWhether to enable tenant-level trunk.
trueEnable Diversion support or not (RFC 5806).
falseEnable History-Info support (RFC 7044).
falseEnable Outbound Support or not (RFC 5626).
trueThe flow timer interval in seconds.
0The register expiration time in seconds.
300Enable call-info header for auto answer or not.
falseAlert-info header to be added in INVITE message when PBX is forwarding the page/intercom. Values includes:
INTERCOM: info=intercom.ALERT_AUTO_ANSWER: Alert-Info:;info=alert-autoanswer;delay=0.AUTO_ANSWER: info=Auto Answer.
Enable call-info header for auto answer. The value is "sip:portsip.com;answer-after=0".
trueEnable Require Answer Mode (RFC 5373) for auto answer.
falseEnable WWW authentication or not.
falseUser equal required for authentication name.
trueTracer server host.
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
80Block if failed to login PortSIP PBX Web more than this times.
5The web blocked time in seconds.
3600The number of authentication failures.
50DOS attacks can send REGISTER/INVITE requests but do not reply to Challenge (407). Configure the amount of "fake" requests that PortSIP PBX will accept per IP Address. If this value is exceeded in "Detection Period" interval the source IP address is put in the Blacklist. IP will remain blacklisted till "SIP Blacklist time interval" expires.
1000The sip blocked time in seconds.
3600The detection period in seconds.
10If the amount of packets is exceeded, the PBX will block the source IP for "Level 1 blacklist time interval" seconds.
5000This is the time interval in seconds that an abusive IP Address remains in the blacklist
3600If the amount of packets is exceeded, the PBX will block the source IP for "Level 2 blacklist time interval" seconds.
2000This is the time interval in seconds that an abusive IP Address remains in the blacklist
30Content of this certificate file for STIR/SHAKEN support.
Content of this private certificate file for STIR/SHAKEN support.
Some custom configuration options serialized as json string.
Controls whether the PBX includes an enhanced Reason header in SIP 603 (Decline) responses. When enabled:
- For extension calls, the PBX responds with SIP 603 and includes a Reason header with analytics information and location set to "LPN".
- For trunk calls, the PBX responds with SIP 603 and includes a Reason header with analytics information and location set to "RPN". When disabled:
- The PBX responds with standard SIP 603 without a Reason header.
trueHide private network information or not.
falseHide warnings when some server is not deployed.
falseError
GET /api/admin/settings HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"user_agent": "example",
"blocked_user_agents": "",
"enable_shared_address_space_address_range": true,
"enable_digest_auth": true,
"enable_auth_mid_dialog": true,
"enable_digest_auth_int": true,
"enable_external_recording": true,
"enable_reject_bad_nonce": true,
"statistics_log_interval": 600,
"dead_session_timeout": 600,
"enable_session_timer": true,
"session_timer_duration": 3600,
"enable_to_tag_in_register": true,
"enable_congestion_management": true,
"congestion_management_metric": "WAIT_TIME",
"congestion_management_tolerance": 600,
"enable_create_non_exist_extension": true,
"enable_verify_phone_auto_provisioning": true,
"verify_phone_auto_provisioning_exclude": [
"Snom",
"Yealink"
],
"enable_two_factor_authentication": true,
"enable_prack": true,
"enable_tenant_level_trunk": true,
"enable_diversion_support": true,
"enable_history_info_support": true,
"enable_outbound_support": true,
"flow_timer": 0,
"register_expiration_time": 300,
"enable_auto_answer_alert_info_header": true,
"auto_answer_alert_info_header": "INTERCOM",
"enable_auto_answer_call_info_header": true,
"enable_require_answer_mode": true,
"enable_www_auth": true,
"user_equal_required_for_auth_name": true,
"trace_server_host": "",
"trace_server_port": 1000,
"web_failed_auth_amount": 5,
"web_blacklist_time_interval": 3600,
"sip_failed_auth_amount": 50,
"sip_failed_challenge_requests_amount": 1000,
"sip_blacklist_time_interval": 3600,
"sip_detection_period": 10,
"sip_barrier_1_packets": 5000,
"sip_barrier_1_blocking_time": 3600,
"sip_barrier_2_packets": 2000,
"sip_barrier_2_blocking_time": 30,
"stir_shaken_cert": "",
"stir_shaken_key": "",
"custom_options": "",
"enable_sip603_reason_header": true,
"hide_pbx_private_ip": false,
"hide_not_deployed_server_warnings": false
}Update settings for PortSIP PBX
User agent.
PortSIP UCThe semicolon separated list of blocked user agents.
Enable Shared Address Space Address Range or not (RFC 6598).
trueIndicates if DIGEST authentication would be enabled.
trueIndicates if PortSIP PBX requires authentication against all subsequent requests originated from one calling.
falseIndicates if auth-int DIGEST authentication mode would be enabled.
falseAllow external calls recording.
trueWhen a client sends a bad nonce in their credentials, return 403 message if this parameter is true, or send a new challenge if this parameter is false.
falseInterval for statistics logs, in seconds.
600Close the session if no RTP packets received within specified duration, in seconds.
600Indicates if session timer (RFC 4028) would be enabled. This also requires client support.
trueDuration recorded by Session timer. Precondition: "enable_session_timer" MUST be set to true.
3600Indicates if "to" tag is allowed in REGISTER message.
falseEnable two factor authentication for users.
falseEnable voicemail PIN verification for IP phone auto-provisioning.
When enabled, IP phones must provide voicemail PIN to download configuration files.
falseJSON array of phone vendor names excluded from voicemail PIN verification during auto-provisioning. If a phone's vendor is in this list, it will skip PIN verification when downloading configuration files.
Indicates if congestion management would be enabled.
truePrecondition: "enable_congestion_management" parameter MUST be set to true. The recommended is WAIT_TIME based on the expected wait time for each FIFO.
WAIT_TIME:TIME_DEPTH:SIZE:
Precondition: "enable_congestion_management" parameter MUST be set to true. Congestion management tolerance for the given metric. This parameter determines when the Rejection Behavior changes.
600Indicates if the extension would be automatically created when a non-existent extension try to register. If it is set to true, when a non-included extension tries to send registry message to PBX, the PBX will create the extension with default password "portsip" automatically.
falseEnable prack or not.
falseWhether to enable tenant-level trunk.
trueEnable Diversion support or not (RFC 5806).
falseEnable History-Info support (RFC 7044).
falseEnable Outbound Support or not (RFC 5626).
trueThe flow timer interval in seconds.
0The register expiration time in seconds.
300Enable call-info header for auto answer or not.
falseAlert-info header to be added in INVITE message when PBX is forwarding the page/intercom. Values includes:
INTERCOM: info=intercom.ALERT_AUTO_ANSWER: Alert-Info:;info=alert-autoanswer;delay=0.AUTO_ANSWER: info=Auto Answer.
Enable call-info header for auto answer. The value is "sip:portsip.com;answer-after=0".
trueEnable Require Answer Mode (RFC 5373) for auto answer.
falseEnable WWW authentication or not.
falseUser equal required for authentication name.
trueTracer server host.
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
80Block if failed to login PortSIP PBX Web more than this times.
5The web blocked time in seconds.
3600The number of authentication failures.
50DOS attacks can send REGISTER/INVITE requests but do not reply to Challenge (407). Configure the amount of "fake" requests that PortSIP PBX will accept per IP Address. If this value is exceeded in "Detection Period" interval the source IP address is put in the Blacklist. IP will remain blacklisted till "SIP Blacklist time interval" expires.
1000The sip blocked time in seconds.
3600The detection period in seconds.
10If the amount of packets is exceeded, the PBX will block the source IP for "Level 1 blacklist time interval" seconds.
5000This is the time interval in seconds that an abusive IP Address remains in the blacklist
3600If the amount of packets is exceeded, the PBX will block the source IP for "Level 2 blacklist time interval" seconds.
2000This is the time interval in seconds that an abusive IP Address remains in the blacklist
30Content of this certificate file for STIR/SHAKEN support.
Content of this private certificate file for STIR/SHAKEN support.
Some custom configuration options serialized as json string.
Controls whether the PBX includes an enhanced Reason header in SIP 603 (Decline) responses. When enabled:
- For extension calls, the PBX responds with SIP 603 and includes a Reason header with analytics information and location set to "LPN".
- For trunk calls, the PBX responds with SIP 603 and includes a Reason header with analytics information and location set to "RPN". When disabled:
- The PBX responds with standard SIP 603 without a Reason header.
trueHide private network information or not.
falseHide warnings when some server is not deployed.
falseOK
No content
Error
POST /api/admin/settings HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 1664
{
"user_agent": "example",
"blocked_user_agents": "",
"enable_shared_address_space_address_range": true,
"enable_digest_auth": true,
"enable_auth_mid_dialog": true,
"enable_digest_auth_int": true,
"enable_external_recording": true,
"enable_reject_bad_nonce": true,
"statistics_log_interval": 600,
"dead_session_timeout": 600,
"enable_session_timer": true,
"session_timer_duration": 3600,
"enable_to_tag_in_register": true,
"enable_congestion_management": true,
"congestion_management_metric": "WAIT_TIME",
"congestion_management_tolerance": 600,
"enable_create_non_exist_extension": true,
"enable_verify_phone_auto_provisioning": true,
"verify_phone_auto_provisioning_exclude": [
"Snom",
"Yealink"
],
"enable_two_factor_authentication": true,
"enable_prack": true,
"enable_tenant_level_trunk": true,
"enable_diversion_support": true,
"enable_history_info_support": true,
"enable_outbound_support": true,
"flow_timer": 0,
"register_expiration_time": 300,
"enable_auto_answer_alert_info_header": true,
"auto_answer_alert_info_header": "INTERCOM",
"enable_auto_answer_call_info_header": true,
"enable_require_answer_mode": true,
"enable_www_auth": true,
"user_equal_required_for_auth_name": true,
"trace_server_host": "",
"trace_server_port": 1000,
"web_failed_auth_amount": 1000,
"web_blacklist_time_interval": 3600,
"sip_failed_auth_amount": 50,
"sip_failed_challenge_requests_amount": 1000,
"sip_blacklist_time_interval": 3600,
"sip_detection_period": 10,
"sip_barrier_1_packets": 5000,
"sip_barrier_1_blocking_time": 3600,
"sip_barrier_2_packets": 2000,
"sip_barrier_2_blocking_time": 30,
"stir_shaken_cert": "",
"stir_shaken_key": "",
"custom_options": "",
"enable_sip603_reason_header": true,
"hide_pbx_private_ip": false,
"hide_not_deployed_server_warnings": false
}No content
Retrieve details of system notification settings.
OK
The email server type.
Can be either:
SMTP: Use generic SMTP server.MS365Use Microsoft 365 email service.GMAILUse Google Gmail service.
SMTP server used for sending mails.
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
80A Reply-To address is identified by inserting the Reply-To header in your email.
It is the email address that the reply message is sent
when you want the reply to go to an email address that is different than the From: address.
Username or email address.
The authentication protocols.
Can be either:
DISABLE: Skip authentication mechanism.AUTO: Use auto-selected authentication algorithms by server (Currently only supports LOGIN and PLAIN).LOGIN: Use LOGIN authentication mechanism.PLAINUse PLAIN authentication mechanism.
AUTOPossible values: Whether to enable TLS/SSL.
trueWhether StartTLS is automatically enabled.
falseComma-separated list of email address that should receive notifications.
Allow up to 15 email addresses.
Apply the email server settings to all tenants.
trueThe hard disk threshold for email warning.
0.9Send a notification email when specified hard disk threshold is exceeded.
trueThe CPU threshold for email warning.
0.9Send a notification email when specified CPU threshold is exceeded.
trueThe memory threshold for email warning.
0.9Send an email notification when specified memory threshold is exceeded.
trueSend a notification email when ip blocked.
trueSend a notification email when license limit reached.
trueSend a notification email when some service status changed.
trueSend a notification email when push notification certificates update failed.
trueSend a notification email when trunk status changed.
falseError
GET /api/admin/notification HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"type": "SMTP",
"server": "",
"port": 1000,
"reply_to": "",
"username": "example",
"auth": "AUTO",
"enable_tls_ssl": true,
"enable_starttls_auto": true,
"recipients": "",
"enable_tenant_access": false,
"hard_disk_threshold": 90,
"notify_hard_disk_exceeded_threshold": true,
"cpu_threshold": 90,
"notify_cpu_exceeded_threshold": true,
"memory_threshold": 90,
"notify_memory_exceeded_threshold": true,
"notify_ip_blocked": true,
"notify_license_limited": true,
"notify_service_status_changed": true,
"notify_push_certs_update_failed": true,
"notify_trunk_status_changed": true
}Update system notification settings.
The email server type.
Can be either:
SMTP: Use generic SMTP server.MS365Use Microsoft 365 email service.GMAILUse Google Gmail service.
SMTP server used for sending mails.
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
80A Reply-To address is identified by inserting the Reply-To header in your email.
It is the email address that the reply message is sent
when you want the reply to go to an email address that is different than the From: address.
Username or email address.
Password for email account.
The authentication protocols.
Can be either:
DISABLE: Skip authentication mechanism.AUTO: Use auto-selected authentication algorithms by server (Currently only supports LOGIN and PLAIN).LOGIN: Use LOGIN authentication mechanism.PLAINUse PLAIN authentication mechanism.
AUTOPossible values: Whether to enable TLS/SSL.
trueWhether StartTLS is automatically enabled.
falseComma-separated list of email address that should receive notifications.
Allow up to 15 email addresses.
Apply the email server settings to all tenants.
trueThe hard disk threshold for email warning.
0.9Send a notification email when specified hard disk threshold is exceeded.
trueThe CPU threshold for email warning.
0.9Send a notification email when specified CPU threshold is exceeded.
trueThe memory threshold for email warning.
0.9Send an email notification when specified memory threshold is exceeded.
trueSend a notification email when ip blocked.
trueSend a notification email when license limit reached.
trueSend a notification email when some service status changed.
trueSend a notification email when push notification certificates update failed.
trueSend a notification email when trunk status changed.
falseOK
No content
Error
POST /api/admin/notification HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 552
{
"type": "SMTP",
"server": "",
"port": 1000,
"reply_to": "",
"username": "example",
"password": "",
"auth": "AUTO",
"enable_tls_ssl": true,
"enable_starttls_auto": true,
"recipients": "",
"enable_tenant_access": false,
"hard_disk_threshold": 90,
"notify_hard_disk_exceeded_threshold": false,
"cpu_threshold": 90,
"notify_cpu_exceeded_threshold": false,
"memory_threshold": 90,
"notify_memory_exceeded_threshold": false,
"notify_ip_blocked": true,
"notify_license_limited": true,
"notify_service_status_changed": true,
"notify_push_certs_update_failed": true,
"notify_trunk_status_changed": true
}No content
Check email server configurations by sending testing email.
The recipient's e-mail address.
Mail subject.
Mail content.
OK
No content
Error
POST /api/admin/notification/test_email HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 49
{
"recipient": "",
"subject": "example",
"content": ""
}No content
Generate Google authorization URL for admin
Google client ID
Google client secret
Callback URL after authorization
OK
Google authorization URL
Bad request
Unauthorized
Forbidden
Client ID already exists
Internal server error
POST /api/admin/google/authorization HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 65
{
"client_id": "text",
"client_secret": "text",
"callback_url": "text"
}{
"auth_consent_uri": "text"
}Get the system password policy for administrators
OK
The password must contains at least min_length characters.
Must be less than or equal the value of max_length.
6The password must contains at most max_length characters.
Must be greater than or equal the value of min_length.
32The password must contains at least one letter (latin characters).
trueThe password must contains at least one number (0-9).
trueThe password must contains at least one upper case letter or special character (e.g. ~,!,@,#,$,%,^,&,*,(,),_,+,=).
trueThe password must not contains sequential_characters.
trueThe password must not contains repeating_characters.
trueThe password must not similar to the account information.
trueUnauthorized
Internal Server Error
GET /api/admin/password_policy HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"min_length": 6,
"max_length": 32,
"contains_letters": true,
"contains_numbers": true,
"contains_special_letters": true,
"disable_sequential_characters": true,
"disable_repeating_characters": true,
"disable_account_information": true
}Update the system password policy for administrators
The password must contains at least min_length characters.
Must be less than or equal the value of max_length.
The password must contains at most max_length characters.
Must be greater than or equal the value of min_length.
The password must contains at least one letter (latin characters).
The password must contains at least one number (0-9).
The password must contains at least one upper case letter or special character (e.g. ~,!,@,#,$,%,^,&,*,(,),_,+,=).
The password must not contains sequential_characters.
The password must not contains repeating_characters.
The password must not similar to the account information.
OK
No content
Bad Request
Unauthorized
Internal Server Error
POST /api/admin/password_policy HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 219
{
"min_length": 1,
"max_length": 1,
"contains_letters": true,
"contains_numbers": true,
"contains_special_letters": true,
"disable_sequential_characters": true,
"disable_repeating_characters": true,
"disable_account_information": true
}No content
Retrieve settings for SBC.
OK
The SBC domain.
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
80A 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
80Error
GET /api/sbc HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"domain": "example.com",
"http_port": 80,
"https_port": 443,
"transports": [
{
"protocol": "UDP",
"port": 1000
}
]
}Update SBC configuration.
The SBC domain.
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
80A 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
80OK
No content
Error
POST /api/sbc HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 102
{
"domain": "example.com",
"http_port": 80,
"https_port": 443,
"transports": [
{
"protocol": "UDP",
"port": 1000
}
]
}No content
Retrieve SBC token
OK
The access token for SBC.
Error
GET /api/sbc/token HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"token": "xxxxxxxxxxxxxxxxxxxxxxxxx"
}Regenerate SBC token
OK
The access token for SBC.
Error
POST /api/sbc/token HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"token": "xxxxxxxxxxxxxxxxxxxxx"
}Destroy SBC Token.
No Content
No content
Error
POST /api/sbc/token/destroy HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
No content
Retrieve settings of IM server.
OK
Host IPV4 address.
Host IPV6 address.
Host IPV4 address.
Host IPV6 address.
Error
GET /api/im HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"private_ipv4": "127.0.0.1",
"private_ipv6": "::1",
"public_ipv4": "192.0.2.0",
"public_ipv6": "2001:0db8:0a0b:12f0::1"
}Update IM server configuration.
Host IPV4 address.
Host IPV6 address.
Host IPV4 address.
Host IPV6 address.
OK
No content
Error
POST /api/im HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 114
{
"private_ipv4": "127.0.0.1",
"private_ipv6": "::1",
"public_ipv4": "192.0.2.0",
"public_ipv6": "2001:0db8:0a0b:12f0::1"
}No content
Query the current status of the IM server. If the IM server configuration is incomplete or the status request fails, the status is returned as OFFLINE.
OK
The current status of the IM server:
ONLINE: the IM server is online.OFFLINE: the IM server is offline or its status cannot be determined.
Error
GET /api/im/status HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"status": "ONLINE"
}Retrieve IM server token
OK
The access token for IM Server.
Error
GET /api/im/token HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"token": "xxxxxxxxxxxxxxxxxxxxxx"
}Regenerate IM server token
OK
The access token for IM Server.
Error
POST /api/im/token HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"token": "xxxxxxxxxxxxxxxxx"
}Destroy IM server Token.
No Content
No content
Error
POST /api/im/token/destroy HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
No content
List a collection of dealers.
OK
Total number of resource.
100Error
GET /api/dealers HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"count": 1,
"items": [
{
"id": "xxxxxx",
"enabled": true,
"level": "DISTRIBUTOR",
"name": "example",
"email": "",
"display_name": "example",
"website": "https://example.com",
"phone": "",
"address": "",
"description": "",
"max_tenants": 100,
"max_extensions": 1000,
"max_cc_users": 300,
"max_advanced_users": 100,
"tenant_full_access": false,
"timezone": "UTC"
}
]
}Create a Dealer. In Modular mode, a System administrator may assign top-level Dealer limits greater than the shared System License totals. Child Dealers remain constrained by their parent Dealer.
Enable this dealer or not.
trueDealer level includes:
DISTRIBUTOR: the first level of dealers.SUB_DISTRIBUTOR: the second level of dealers.RESELLER: the third level of dealers.
The user's account name.
Only letters, numbers, and the following special characters can be added: underscore, dash, single quote, and period (_, -, ', and .).
Username cannot start or end with period (.).
admin, system, administrator, and root are reserved names for system admin only with case ignored.
The password of dealer.
The email address.
example@example.comThe display name of user.
The website of user.
The mobile phone number of user.
The address.
The description of dealer.
The maximum number of tenants that the dealer is allowed to create.
100Maximum Base quota that this Dealer can allocate to direct children.
In Modular mode this is the Dealer's Base allocation; 0 means no Base
quota and never means unlimited. A top-level Dealer limit assigned by the
System administrator may exceed the System License total; enabled Tenant
allocation is still constrained by the shared System License.
50000Maximum CC quota that this Dealer can allocate to direct children in
Modular mode. 0 means no CC quota. A top-level Dealer limit assigned by
the System administrator may exceed the System License total.
0Maximum Advanced quota that this Dealer can allocate to direct children
in Modular mode. 0 means no Advanced quota. A top-level Dealer limit
assigned by the System administrator may exceed the System License total.
0Whether or not the reseller is allowed to have full control over the tenant.
This attribute is not valid if not modified by first level dealer.
trueThe IANA Time Zone names, such as "Asia/Shanghai".
Success
NzAwNTUxOTA5NzczMTQ4MTYwError
POST /api/dealers HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 331
{
"enabled": true,
"level": "DISTRIBUTOR",
"name": "example",
"password": "xxxxxx",
"email": "example@example.com",
"display_name": "example",
"website": "https://example.com",
"phone": "",
"address": "",
"description": "",
"max_tenants": 100,
"max_extensions": 1000,
"max_cc_users": 300,
"max_advanced_users": 100,
"tenant_full_access": false,
"timezone": "UTC"
}{
"id": "xxxxxxxx"
}Get details of the dealer by it's unique ID.
NzAwNTUxOTA5NzczMTQ4MTYwOK
NzAwNTUxOTA5NzczMTQ4MTYwEnable this dealer or not.
trueDealer level includes:
DISTRIBUTOR: the first level of dealers.SUB_DISTRIBUTOR: the second level of dealers.RESELLER: the third level of dealers.
The user's account name.
Only letters, numbers, and the following special characters can be added: underscore, dash, single quote, and period (_, -, ', and .).
Username cannot start or end with period (.).
admin, system, administrator, and root are reserved names for system admin only with case ignored.
The email address.
example@example.comThe display name of user.
The website of user.
The mobile phone number of user.
The address.
The description of dealer.
The maximum number of tenants that the dealer is allowed to create.
100Maximum Base quota that this Dealer can allocate to direct children.
In Modular mode this is the Dealer's Base allocation; 0 means no Base
quota and never means unlimited. A top-level Dealer limit assigned by the
System administrator may exceed the System License total; enabled Tenant
allocation is still constrained by the shared System License.
50000Maximum CC quota that this Dealer can allocate to direct children in
Modular mode. 0 means no CC quota. A top-level Dealer limit assigned by
the System administrator may exceed the System License total.
0Maximum Advanced quota that this Dealer can allocate to direct children
in Modular mode. 0 means no Advanced quota. A top-level Dealer limit
assigned by the System administrator may exceed the System License total.
0Whether or not the reseller is allowed to have full control over the tenant.
This attribute is not valid if not modified by first level dealer.
trueThe IANA Time Zone names, such as "Asia/Shanghai".
Error
GET /api/dealers/{id} HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"id": "xxxxxx",
"enabled": true,
"level": "DISTRIBUTOR",
"name": "example",
"email": "example@example.com",
"display_name": "example",
"website": "https://example.com",
"phone": "",
"address": "",
"description": "",
"max_tenants": 100,
"max_extensions": 1000,
"max_cc_users": 300,
"max_advanced_users": 100,
"tenant_full_access": false,
"timezone": "UTC"
}Modify the settings of the Dealer. In Modular mode, top-level Dealer limits are not capped by the shared System License. Child Dealer limits remain constrained by their parent Dealer.
NzAwNTUxOTA5NzczMTQ4MTYwEnable this dealer or not.
trueThe email address.
example@example.comThe display name of user.
The website of user.
The mobile phone number of user.
The address.
The description of dealer.
The maximum number of tenants that the dealer is allowed to create.
100Maximum Base quota that this Dealer can allocate to direct children.
In Modular mode this is the Dealer's Base allocation; 0 means no Base
quota and never means unlimited. A top-level Dealer limit assigned by the
System administrator may exceed the System License total; enabled Tenant
allocation is still constrained by the shared System License.
50000Maximum CC quota that this Dealer can allocate to direct children in
Modular mode. 0 means no CC quota. A top-level Dealer limit assigned by
the System administrator may exceed the System License total.
0Maximum Advanced quota that this Dealer can allocate to direct children
in Modular mode. 0 means no Advanced quota. A top-level Dealer limit
assigned by the System administrator may exceed the System License total.
0Whether or not the reseller is allowed to have full control over the tenant.
This attribute is not valid if not modified by first level dealer.
trueThe IANA Time Zone names, such as "Asia/Shanghai".
OK
No content
Error
POST /api/dealers/{id} HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 272
{
"enabled": true,
"email": "example@example.com",
"display_name": "example",
"website": "https://example.com",
"phone": "",
"address": "",
"description": "",
"max_tenants": 100,
"max_extensions": 1000,
"max_cc_users": 300,
"max_advanced_users": 100,
"tenant_full_access": false,
"timezone": "UTC"
}No content
Reset dealer's password.
NzAwNTUxOTA5NzczMTQ4MTYwThe password of dealer.
OK
No content
Error
POST /api/dealers/{id}/password HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 21
{
"password": "xxxxxx"
}No content
Delete a dealer by it's unique ID.
NzAwNTUxOTA5NzczMTQ4MTYwNo Content
No content
Dealer still has child Dealers (RESOURCE_IN_USE).
Error
POST /api/dealers/{id}/destroy HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
No content
Retrieve a collection of IP blacklist entries or whitelist entries.
Use the filter query parameter to retrieve just a subset of a collection.
Use the search query parameter to restrict the results of a request to match a search criterion.
Use the orderby query parameter to specify the sort order of the items returned from server.
The default order is ascending order.
Use the skip query parameter to set the number of items to skip at the start of a collection.
0Use the top query parameter to specify the page size of the result set.
100OK
Total number of resource.
100Error
GET /api/ip_filters HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"count": 1,
"items": [
{
"id": "xxxxxx",
"cidr": "",
"target": "DENY",
"expire_at": "2020-01-01T00:00:00Z",
"description": ""
}
]
}Add a new IP blacklist entry or whitelist entry to the system.
The CIDR notation IP address and prefix length,
like "192.0.2.0/24" or "2001:db8::/32", as defined in RFC 4632 and RFC 4291.
IP rule's target:
ACCEPT: An accepted rule.DENY: A rejection rule.
The RFC 3339 format is defined by The date_time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z
2017-07-21T17:32:28ZRemarks for the IP rule.
OK
NzAwNTUxOTA5NzczMTQ4MTYwError
POST /api/ip_filters HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 79
{
"cidr": "",
"target": "DENY",
"expire_at": "2020-01-01T00:00:00Z",
"description": ""
}{
"id": "xxxxxxxx"
}Retrieve IP blacklist entry or whitelist entry.
NzAwNTUxOTA5NzczMTQ4MTYwOK
NzAwNTUxOTA5NzczMTQ4MTYwThe CIDR notation IP address and prefix length,
like "192.0.2.0/24" or "2001:db8::/32", as defined in RFC 4632 and RFC 4291.
IP rule's target:
ACCEPT: An accepted rule.DENY: A rejection rule.
The RFC 3339 format is defined by The date_time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z
2017-07-21T17:32:28ZRemarks for the IP rule.
Error
GET /api/ip_filters/{id} HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"id": "xxxxxx",
"cidr": "",
"target": "DENY",
"expire_at": "2020-01-01T00:00:00Z",
"description": ""
}Update IP blacklist entry or whitelist entry that already exists.
NzAwNTUxOTA5NzczMTQ4MTYwThe CIDR notation IP address and prefix length,
like "192.0.2.0/24" or "2001:db8::/32", as defined in RFC 4632 and RFC 4291.
IP rule's target:
ACCEPT: An accepted rule.DENY: A rejection rule.
The RFC 3339 format is defined by The date_time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z
2017-07-21T17:32:28ZRemarks for the IP rule.
OK
No content
Error
POST /api/ip_filters/{id} HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 79
{
"cidr": "",
"target": "DENY",
"expire_at": "2020-01-01T00:00:00Z",
"description": ""
}No content
Destroy a certain IP rule.
NzAwNTUxOTA5NzczMTQ4MTYwNo Content
No content
Invalid rule ID supplied.
POST /api/ip_filters/{id}/destroy HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
No content
Export a collection of IP rules to file.
OK
Error
GET /api/ip_filters/export HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
binaryRetrieve a collection of transports
Use the filter query parameter to retrieve just a subset of a collection.
Use the search query parameter to restrict the results of a request to match a search criterion.
Use the orderby query parameter to specify the sort order of the items returned from server.
The default order is ascending order.
Use the skip query parameter to set the number of items to skip at the start of a collection.
0Use the top query parameter to specify the page size of the result set.
100OK
Total number of resource.
100Error
GET /api/transports HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"count": 1,
"items": [
{
"id": "xxxxxx",
"protocol": "UDP",
"port": 1000,
"verification": "DISABLE"
}
]
}Add a new transport.
The transport protocol:
Can be either:
UDP:TCP:TLS:
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
80Indicates if PBX wishes (Optional) or requires (Mandatory) TLS clients to present a client certificate:
DISABLE: disable client certificate.OPTIONAL: client authentication optional.MANDATORY: force client authentication.
Created transport
NzAwNTUxOTA5NzczMTQ4MTYwError
POST /api/transports HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 55
{
"protocol": "UDP",
"port": 1000,
"verification": "DISABLE"
}{
"id": "xxxxxxxx"
}Retrieve a transport by it's unique ID.
The unique ID of the transport.
NzAwNTUxOTA5NzczMTQ4MTYwOK
NzAwNTUxOTA5NzczMTQ4MTYwThe transport protocol:
Can be either:
UDP:TCP:TLS:
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
80Indicates if PBX wishes (Optional) or requires (Mandatory) TLS clients to present a client certificate:
DISABLE: disable client certificate.OPTIONAL: client authentication optional.MANDATORY: force client authentication.
Error
GET /api/transports/{id} HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"id": "xxxxxx",
"protocol": "UDP",
"port": 1000,
"verification": "DISABLE"
}Update a new transport.
NzAwNTUxOTA5NzczMTQ4MTYwA 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
80Indicates if PBX wishes (Optional) or requires (Mandatory) TLS clients to present a client certificate:
DISABLE: disable client certificate.OPTIONAL: client authentication optional.MANDATORY: force client authentication.
OK
No content
Error
POST /api/transports/{id} HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 38
{
"port": 1000,
"verification": "DISABLE"
}No content
Destroy transport
NzAwNTUxOTA5NzczMTQ4MTYwNo Content
No content
Error
POST /api/transports/{id}/destroy HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
No content
Query transport's status
The transport protocol:
Can be either:
UDP:TCP:TLS:
Success
Status of transport includes:
ACTIVATED:DEACTIVATED:
Error
GET /api/transports/{id}/status HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"status": "ACTIVATED"
}Returns a list of tenant summary information. Note that it uses a different, smaller representation of a tenant than retrieving a single tenant.
Use the filter query parameter to retrieve just a subset of a collection.
Use the search query parameter to restrict the results of a request to match a search criterion.
Use the orderby query parameter to specify the sort order of the items returned from server.
The default order is ascending order.
Use the skip query parameter to set the number of items to skip at the start of a collection.
0Use the top query parameter to specify the page size of the result set.
100OK
Total number of resource.
100Error
GET /api/tenants HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"count": 1,
"items": [
{
"id": "xxxxxx",
"name": "example",
"domain": "example.com",
"max_extensions": 100,
"max_cc_users": 30,
"max_advanced_users": 10,
"current_extensions": 100,
"max_concurrent_calls": 100,
"enabled": true,
"website": "https://example.com",
"timezone": "",
"currency": "",
"region": "",
"avatar_file_name": "example",
"avatar_file_size": 100,
"avatar_file_url": "",
"created_at": "2020-01-01T00:00:00Z",
"enable_last_call_routing": false,
"last_call_routing_duration": 1,
"dealer_id": "xxxxxx",
"dealer_name": "example",
"dealer_display_name": "example",
"dealer_level": "DISTRIBUTOR"
}
]
}Create a new Tenant. In Modular mode, an enabled Tenant owned by a Dealer must fit both the Dealer quota and the shared System License quota. A disabled Tenant may be preconfigured without reserving module quota.
The name of the tenant.
The SIP domain of tenant.
It is usually a fully qualified domain name (FQDN).
If there is no FQDN, you can also use the IP address of the PBX server as the SIP domain.
The SIP domain name is only used for SIP message authentication and does not require analysis.
The official website of tenant.
The IANA Time Zone names, such as "Asia/Shanghai".
The Currency code (ISO 4217).
USDA valid country code based on iso3166-1 alpha-3 standard. see: https://www.iso.org/iso-3166-country-codes.html
Enable this tenant or not.
trueAllow extension video recording.
falseAllow the user result api to return the user password and the user extension password.
falseAllow extension audio recording.
falseAllow call queue audio recording.
falseAllow ring group audio recording.
falseAllow trunk audio recording.
falseAllow virtual receptionist audio recording.
falseAllow dual track recording for calls.
falseEnable call billing or not.
falseEnable call billing feature or not.
falseEnable call statistics feature or not.
trueEnable contact center feature or not.
trueEnable message channels feature or not.
trueEnable Microsoft Teams feature or not.
trueEnable trunks feature or not.
trueEnable WhatsApp feature or not.
trueEnable CRM integrations feature or not.
trueWhether to enable night mode.
falseWhether to enable two-factor authentication.
falseWhether to enable-factor auto-provisioning of verify phone.
falseWhether to enable Pre-Call Announcement / Pre-Alert.
falseSome custom configuration options serialized as json string
The maximum number of extensions that the tenant is allowed to create.
In Modular mode this is the Tenant's Base allocation and every existing
Extension consumes one Base point. 0 means no quota and never means
unlimited.
1000Maximum number of Tenant extensions that may be assigned CC in Modular
mode. 0 means no CC quota.
0Maximum number of Tenant extensions that may be assigned Advanced in
Modular mode. 0 means no Advanced quota.
0The maximum number of concurrent calls that the tenant is allowed to have.
20The maximum number of ring groups that the tenant is allowed to create.
20The maximum number of virtual receptionists that the tenant is allowed to create.
20The maximum number of call queues that the tenant is allowed to create.
20The maximum number of conference rooms that the tenant is allowed to be online at the same time.
20The maximum size of disk space that the tenant is allowed to have.
Specify a positive number and specify the unit at the same time, KB, MB, GB, PB are all allowed.
For example: 100MB, 1000GB. Leave it empty, means unlimited.
""The maximum size of disk space that the tenant is allowed to have for IM service.
Specify a positive number and specify the unit at the same time, KB, MB, GB, PB are all allowed.
For example: 100MB, 1000GB. Leave it empty, means unlimited.
""The maximum size of disk space that the extension user is allowed to have for IM service.
Specify a positive number and specify the unit at the same time, KB, MB, GB, PB are all allowed.
For example: 100MB, 1000GB. Leave it empty, means unlimited.
1GBThe retention period in days of recordings.
180The retention period in days of call report files.
30The retention period in days of audit logs and event logs.
180The retention period in days of temporary files.
30The match method of contact:
Can be either:
DISABLE: Disable match.MATCH_EXACTLY: Match exactly.MATCH_LENGTH: Match at least specified number of characters.
MATCH_EXACTLYPossible values: The matched length of characters when contact_match_type is MATCH_LENGTH.
Method for adding Group, Queue or DID/DDI Names to Caller ID:
Can be either:
DISABLE: Do not add.APPEND: Append names.PREPEND: Prepend names.
APPENDPossible values: Method for adding Group, Queue or DID/DDI Names to Caller ID:
Can be either:
DISABLE: Do not add.APPEND: Append names.PREPEND: Prepend names.
APPENDPossible values: The interval for synchronizing contacts from the server, in minutes.
720Comma-separated list of email address that should receive notifications.
Allow up to 15 email addresses.
Whether to force reset the initial password.
falseThe template file name used to generate the user configuration file for the soft phone.
app.xmlThe recording access mode:
Can be either:
PRIVATE: Access the recording file using the private link.PUBLIC: Access the recording file using the public link.
PUBLICPossible values: Whether to enable last call routing.
falseThe last call routing look back period in hours.
1Created
NzAwNTUxOTA5NzczMTQ4MTYwError
POST /api/tenants HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 2516
{
"name": "example",
"domain": "example.com",
"website": "https://example.com",
"timezone": "",
"currency": "",
"region": "",
"enabled": true,
"enable_video_recording": true,
"ai_engine": {
"enabled": true,
"transcription_quota": 100
},
"enable_audio_recording": false,
"enable_call_queue_audio_recording": false,
"enable_ring_group_audio_recording": false,
"enable_trunk_audio_recording": false,
"enable_virtual_receptionist_audio_recording": false,
"enable_dual_track_recording": true,
"enable_billing": true,
"enable_feature_billing": true,
"enable_feature_call_statistics": true,
"enable_feature_contact_center": true,
"enable_feature_message_channels": true,
"enable_feature_microsoft_teams": true,
"enable_feature_trunks": true,
"enable_feature_whats_app": true,
"enable_night_mode": true,
"enable_two_factor_authentication": true,
"enable_verify_phone_auto_provisioning": true,
"custom_options": "",
"max_extensions": 1000,
"max_cc_users": 300,
"max_advanced_users": 100,
"max_concurrent_calls": 100,
"max_ring_groups": 100,
"max_virtual_receptionists": 100,
"max_call_queues": 100,
"max_conference_rooms": 100,
"disk_quota": "",
"im_disk_quota": "",
"extension_im_disk_quota": "",
"recording_retention": 30,
"call_report_retention": 30,
"log_retention": 30,
"temp_file_retention": 30,
"office_hours": {
"monday": {
"enabled": true,
"ranges": [
{
"from": "09:00",
"to": "17:00"
}
]
},
"tuesday": {
"enabled": true,
"ranges": [
{
"from": "09:00",
"to": "17:00"
}
]
},
"wednesday": {
"enabled": true,
"ranges": [
{
"from": "09:00",
"to": "17:00"
}
]
},
"thursday": {
"enabled": true,
"ranges": [
{
"from": "09:00",
"to": "17:00"
}
]
},
"friday": {
"enabled": true,
"ranges": [
{
"from": "09:00",
"to": "17:00"
}
]
},
"saturday": {
"enabled": true,
"ranges": [
{
"from": "09:00",
"to": "17:00"
}
]
},
"sunday": {
"enabled": true,
"ranges": [
{
"from": "09:00",
"to": "17:00"
}
]
}
},
"e164": {
"enabled": true,
"international_code": "",
"country": "",
"area_code": "",
"national_code": "",
"prefix": "",
"remove_special_chars": false,
"remove_duplicate_countries": false,
"remove_duplicate_area_codes": false
},
"cdr_event": {
"enabled": true,
"auth": "BASIC",
"username": "xxxxxx",
"password": "xxxxxx",
"token": "xxxxxx",
"url": "https://example.com"
},
"extension_event": {
"enabled": true,
"auth": "BASIC",
"username": "xxxxxx",
"password": "xxxxxx",
"token": "xxxxxx",
"url": "https://example.com"
},
"contact_match_type": "DISABLE",
"contact_match_length": 1,
"contact_append_type": "DISABLE",
"contact_inbound_rule_append_type": "DISABLE",
"contact_update_interval": 720,
"email_recipients": "",
"password_force_reset": false,
"recording_access_mode": "PUBLIC",
"enable_last_call_routing": false,
"last_call_routing_duration": 1,
"enable_pre_call_announcement": false
}{
"id": "xxxxxxxx"
}Get detailed properties for a tenant.
NzAwNTUxOTA5NzczMTQ4MTYwOK
NzAwNTUxOTA5NzczMTQ4MTYwThe name of the tenant.
The SIP domain of tenant.
It is usually a fully qualified domain name (FQDN).
If there is no FQDN, you can also use the IP address of the PBX server as the SIP domain.
The SIP domain name is only used for SIP message authentication and does not require analysis.
The official website of tenant.
The IANA Time Zone names, such as "Asia/Shanghai".
The Currency code (ISO 4217).
USDA valid country code based on iso3166-1 alpha-3 standard. see: https://www.iso.org/iso-3166-country-codes.html
Enable this tenant or not.
trueAllow extension video recording.
falseAllow extension audio recording.
falseAllow call queue audio recording.
falseAllow ring group audio recording.
falseAllow trunk audio recording.
falseAllow virtual receptionist audio recording.
falseAllow dual track recording for calls.
falseEnable call billing or not.
falseAllow the user result api to return the user password and the user extension password.
falseEnable call billing feature or not.
falseEnable call statistics feature or not.
trueEnable contact center feature or not.
trueEnable message channels feature or not.
trueEnable Microsoft Teams feature or not.
trueEnable trunks feature or not.
trueEnable WhatsApp feature or not.
trueEnable CRM integrations feature or not.
trueWhether to enable night mode.
falseWhether to enable two-factor authentication.
falseWhether to enable-factor auto-provisioning of verify phone.
falseWhether to enable Pre-Call Announcement / Pre-Alert.
falseSome custom configuration options serialized as json string
The maximum number of extensions that the tenant is allowed to create.
In Modular mode this is the Tenant's Base allocation and every existing
Extension consumes one Base point. 0 means no quota and never means
unlimited.
1000Maximum number of Tenant extensions that may be assigned CC in Modular
mode. 0 means no CC quota.
0Maximum number of Tenant extensions that may be assigned Advanced in
Modular mode. 0 means no Advanced quota.
0The maximum number of concurrent calls that the tenant is allowed to have.
20The maximum number of ring groups that the tenant is allowed to create.
20The maximum number of virtual receptionists that the tenant is allowed to create.
20The maximum number of call queues that the tenant is allowed to create.
20The maximum number of conference rooms that the tenant is allowed to be online at the same time.
20The maximum size of disk space that the tenant is allowed to have.
Specify a positive number and specify the unit at the same time, KB, MB, GB, PB are all allowed.
For example: 100MB, 1000GB. Leave it empty, means unlimited.
""The used disk quota, an number followed by unit (KB, MB, GB, PB).
The maximum size of disk space that the tenant is allowed to have for IM service.
Specify a positive number and specify the unit at the same time, KB, MB, GB, PB are all allowed.
For example: 100MB, 1000GB. Leave it empty, means unlimited.
""The maximum size of disk space that the extension user is allowed to have for IM service.
Specify a positive number and specify the unit at the same time, KB, MB, GB, PB are all allowed.
For example: 100MB, 1000GB. Leave it empty, means unlimited.
1GBThe retention period in days of recordings.
180The retention period in days of call report files.
30The retention period in days of audit logs and event logs.
180The retention period in days of temporary files.
30The template file name used to generate the user configuration file for the soft phone.
app.xmlThe match method of contact:
Can be either:
DISABLE: Disable match.MATCH_EXACTLY: Match exactly.MATCH_LENGTH: Match at least specified number of characters.
MATCH_EXACTLYPossible values: The matched length of characters when contact_match_type is MATCH_LENGTH.
Method for adding Group, Queue or DID/DDI Names to Caller ID:
Can be either:
DISABLE: Do not add.APPEND: Append names.PREPEND: Prepend names.
APPENDPossible values: Method for adding Group, Queue or DID/DDI Names to Caller ID:
Can be either:
DISABLE: Do not add.APPEND: Append names.PREPEND: Prepend names.
APPENDPossible values: The interval for synchronizing contacts from the server, in minutes.
720Comma-separated list of email address that should receive notifications.
Allow up to 15 email addresses.
Whether to force reset the initial password.
falseThe RFC 3339 format is defined by The date_time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z
2017-07-21T17:32:28ZThe name of the file.
The file size in bytes.
0The relative path to file url for file downloading.
/api/blobs/WexWdABcd5D4PDgzTKV3gAAAEu00WcKThe recording access mode:
Can be either:
PRIVATE: Access the recording file using the private link.PUBLIC: Access the recording file using the public link.
PUBLICPossible values: Whether to enable last call routing.
falseThe last call routing look back period in hours.
1NzAwNTUxOTA5NzczMTQ4MTYwThe user's account name.
Only letters, numbers, and the following special characters can be added: underscore, dash, single quote, and period (_, -, ', and .).
Username cannot start or end with period (.).
admin, system, administrator, and root are reserved names for system admin only with case ignored.
The display name of user.
Dealer level includes:
DISTRIBUTOR: the first level of dealers.SUB_DISTRIBUTOR: the second level of dealers.RESELLER: the third level of dealers.
Error
GET /api/tenants/{id} HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"id": "xxxxxx",
"name": "example",
"domain": "example.com",
"website": "https://example.com",
"timezone": "",
"currency": "",
"region": "",
"enabled": true,
"enable_video_recording": true,
"ai_engine": {
"enabled": true,
"transcription_quota": 100
},
"enable_audio_recording": false,
"enable_call_queue_audio_recording": false,
"enable_ring_group_audio_recording": false,
"enable_trunk_audio_recording": false,
"enable_virtual_receptionist_audio_recording": false,
"enable_dual_track_recording": true,
"enable_billing": true,
"enable_feature_billing": true,
"enable_feature_call_statistics": true,
"enable_feature_contact_center": true,
"enable_feature_message_channels": true,
"enable_feature_microsoft_teams": true,
"enable_feature_trunks": true,
"enable_feature_whats_app": true,
"enable_night_mode": true,
"enable_two_factor_authentication": true,
"enable_verify_phone_auto_provisioning": true,
"enable_pre_call_announcement": false,
"custom_options": "",
"max_extensions": 1000,
"max_cc_users": 300,
"max_advanced_users": 100,
"max_concurrent_calls": 100,
"max_ring_groups": 100,
"max_virtual_receptionists": 100,
"max_call_queues": 100,
"max_conference_rooms": 100,
"disk_quota": "",
"used_disk_quota": "",
"im_disk_quota": "",
"extension_im_disk_quota": "",
"recording_retention": 30,
"call_report_retention": 30,
"log_retention": 30,
"temp_file_retention": 30,
"office_hours": {
"monday": {
"enabled": true,
"ranges": [
{
"from": "09:00",
"to": "17:00"
}
]
},
"tuesday": {
"enabled": true,
"ranges": [
{
"from": "09:00",
"to": "17:00"
}
]
},
"wednesday": {
"enabled": true,
"ranges": [
{
"from": "09:00",
"to": "17:00"
}
]
},
"thursday": {
"enabled": true,
"ranges": [
{
"from": "09:00",
"to": "17:00"
}
]
},
"friday": {
"enabled": true,
"ranges": [
{
"from": "09:00",
"to": "17:00"
}
]
},
"saturday": {
"enabled": true,
"ranges": [
{
"from": "09:00",
"to": "17:00"
}
]
},
"sunday": {
"enabled": true,
"ranges": [
{
"from": "09:00",
"to": "17:00"
}
]
}
},
"outbound_caller_ids": [
{
"provider_id": "xxxxxx",
"provider_name": "some trunk",
"provider_brand": "Generic",
"provider_did_numbers": "1000-2000",
"caller_id": "1000",
"description": "example",
"display_name": "1000"
}
],
"e164": {
"enabled": true,
"international_code": "",
"country": "",
"area_code": "",
"national_code": "",
"prefix": "",
"remove_special_chars": false,
"remove_duplicate_countries": false,
"remove_duplicate_area_codes": false
},
"cdr_event": {
"enabled": true,
"auth": "BASIC",
"username": "xxxxxx",
"password": "xxxxxx",
"token": "xxxxxx",
"url": "https://example.com"
},
"extension_event": {
"enabled": true,
"auth": "BASIC",
"username": "xxxxxx",
"password": "xxxxxx",
"token": "xxxxxx",
"url": "https://example.com"
},
"contact_match_type": "DISABLE",
"contact_match_length": 1,
"contact_append_type": "DISABLE",
"contact_inbound_rule_append_type": "DISABLE",
"contact_update_interval": 720,
"email_recipients": "",
"password_force_reset": false,
"created_at": "2020-01-01T00:00:00Z",
"avatar_file_name": "example",
"avatar_file_size": 100,
"avatar_file_url": "",
"soft_phone_template": "app.xml",
"recording_access_mode": "PUBLIC",
"enable_last_call_routing": false,
"last_call_routing_duration": 1,
"dealer_id": "xxxxxx",
"dealer_name": "example",
"dealer_display_name": "example",
"dealer_level": "DISTRIBUTOR"
}Update Tenant properties by its unique ID. In Modular mode, increasing an enabled Tenant's quota or re-enabling a Tenant must fit both its owning Dealer quota and the shared System License quota. Quota errors use LICENSE_QUOTA_EXCEEDED; detail.scope is dealer or system to identify the exhausted pool. Disabled Tenants retain their configured quota without reserving License points.
NzAwNTUxOTA5NzczMTQ4MTYwThe name of the tenant.
The SIP domain of tenant.
It is usually a fully qualified domain name (FQDN).
If there is no FQDN, you can also use the IP address of the PBX server as the SIP domain.
The SIP domain name is only used for SIP message authentication and does not require analysis.
The official website of tenant.
The IANA Time Zone names, such as "Asia/Shanghai".
The Currency code (ISO 4217).
USDA valid country code based on iso3166-1 alpha-3 standard. see: https://www.iso.org/iso-3166-country-codes.html
Enable this tenant or not.
trueAllow extension video recording.
falseAllow extension audio recording.
falseAllow call queue audio recording.
falseAllow ring group audio recording.
falseAllow trunk audio recording.
falseAllow virtual receptionist audio recording.
falseAllow dual track recording for calls.
falseEnable call billing or not.
falseEnable call billing feature or not.
falseAllow the user result api to return the user password and the user extension password.
falseEnable call statistics feature or not.
trueEnable contact center feature or not.
trueEnable message channels feature or not.
trueEnable Microsoft Teams feature or not.
trueEnable trunks feature or not.
trueEnable WhatsApp feature or not.
trueEnable CRM integrations feature or not.
trueWhether to enable night mode.
falseWhether to enable two-factor authentication.
falseWhether to enable-factor auto-provisioning of verify phone.
falseWhether to enable Pre-Call Announcement / Pre-Alert.
falseSome custom configuration options serialized as json string
The maximum number of extensions that the tenant is allowed to create.
In Modular mode this is the Tenant's Base allocation and every existing
Extension consumes one Base point. 0 means no quota and never means
unlimited.
1000Maximum number of Tenant extensions that may be assigned CC in Modular
mode. 0 means no CC quota.
0Maximum number of Tenant extensions that may be assigned Advanced in
Modular mode. 0 means no Advanced quota.
0The maximum number of concurrent calls that the tenant is allowed to have.
20The maximum number of ring groups that the tenant is allowed to create.
20The maximum number of virtual receptionists that the tenant is allowed to create.
20The maximum number of call queues that the tenant is allowed to create.
20The maximum number of conference rooms that the tenant is allowed to be online at the same time.
20The maximum size of disk space that the tenant is allowed to have.
Specify a positive number and specify the unit at the same time, KB, MB, GB, PB are all allowed.
For example: 100MB, 1000GB. Leave it empty, means unlimited.
""The maximum size of disk space that the tenant is allowed to have for IM service.
Specify a positive number and specify the unit at the same time, KB, MB, GB, PB are all allowed.
For example: 100MB, 1000GB. Leave it empty, means unlimited.
""The maximum size of disk space that the extension user is allowed to have for IM service.
Specify a positive number and specify the unit at the same time, KB, MB, GB, PB are all allowed.
For example: 100MB, 1000GB. Leave it empty, means unlimited.
1GBThe retention period in days of recordings.
180The retention period in days of call report files.
30The retention period in days of audit logs and event logs.
180The retention period in days of temporary files.
30The match method of contact:
Can be either:
DISABLE: Disable match.MATCH_EXACTLY: Match exactly.MATCH_LENGTH: Match at least specified number of characters.
MATCH_EXACTLYPossible values: The matched length of characters when contact_match_type is MATCH_LENGTH.
Method for adding Group, Queue or DID/DDI Names to Caller ID:
Can be either:
DISABLE: Do not add.APPEND: Append names.PREPEND: Prepend names.
APPENDPossible values: Method for adding Group, Queue or DID/DDI Names to Caller ID:
Can be either:
DISABLE: Do not add.APPEND: Append names.PREPEND: Prepend names.
APPENDPossible values: The interval for synchronizing contacts from the server, in minutes.
720Comma-separated list of email address that should receive notifications.
Allow up to 15 email addresses.
Whether to force reset the initial password.
falseThe template file name used to generate the user configuration file for the soft phone.
app.xmlThe recording access mode:
Can be either:
PRIVATE: Access the recording file using the private link.PUBLIC: Access the recording file using the public link.
PUBLICPossible values: Whether to enable last call routing.
falseThe last call routing look back period in hours.
1OK
No content
Error
POST /api/tenants/{id} HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 2548
{
"name": "example",
"domain": "example.com",
"website": "https://example.com",
"timezone": "",
"currency": "",
"region": "",
"enabled": true,
"enable_video_recording": true,
"ai_engine": {
"enabled": true,
"transcription_quota": 100
},
"enable_audio_recording": false,
"enable_call_queue_audio_recording": false,
"enable_ring_group_audio_recording": false,
"enable_trunk_audio_recording": false,
"enable_virtual_receptionist_audio_recording": false,
"enable_dual_track_recording": true,
"enable_billing": true,
"enable_feature_billing": true,
"enable_feature_call_statistics": true,
"enable_feature_contact_center": true,
"enable_feature_message_channels": true,
"enable_feature_microsoft_teams": true,
"enable_feature_trunks": true,
"enable_feature_whats_app": true,
"enable_night_mode": true,
"enable_two_factor_authentication": true,
"enable_verify_phone_auto_provisioning": true,
"enable_pre_call_announcement": false,
"custom_options": "",
"max_extensions": 1000,
"max_cc_users": 300,
"max_advanced_users": 100,
"max_concurrent_calls": 100,
"max_ring_groups": 100,
"max_virtual_receptionists": 100,
"max_call_queues": 100,
"max_conference_rooms": 100,
"disk_quota": "",
"im_disk_quota": "",
"extension_im_disk_quota": "",
"recording_retention": 30,
"call_report_retention": 30,
"log_retention": 30,
"temp_file_retention": 30,
"office_hours": {
"monday": {
"enabled": true,
"ranges": [
{
"from": "09:00",
"to": "17:00"
}
]
},
"tuesday": {
"enabled": true,
"ranges": [
{
"from": "09:00",
"to": "17:00"
}
]
},
"wednesday": {
"enabled": true,
"ranges": [
{
"from": "09:00",
"to": "17:00"
}
]
},
"thursday": {
"enabled": true,
"ranges": [
{
"from": "09:00",
"to": "17:00"
}
]
},
"friday": {
"enabled": true,
"ranges": [
{
"from": "09:00",
"to": "17:00"
}
]
},
"saturday": {
"enabled": true,
"ranges": [
{
"from": "09:00",
"to": "17:00"
}
]
},
"sunday": {
"enabled": true,
"ranges": [
{
"from": "09:00",
"to": "17:00"
}
]
}
},
"e164": {
"enabled": true,
"international_code": "",
"country": "",
"area_code": "",
"national_code": "",
"prefix": "",
"remove_special_chars": false,
"remove_duplicate_countries": false,
"remove_duplicate_area_codes": false
},
"cdr_event": {
"enabled": true,
"auth": "BASIC",
"username": "xxxxxx",
"password": "xxxxxx",
"token": "xxxxxx",
"url": "https://example.com"
},
"extension_event": {
"enabled": true,
"auth": "BASIC",
"username": "xxxxxx",
"password": "xxxxxx",
"token": "xxxxxx",
"url": "https://example.com"
},
"contact_match_type": "DISABLE",
"contact_match_length": 1,
"contact_append_type": "DISABLE",
"contact_inbound_rule_append_type": "DISABLE",
"contact_update_interval": 720,
"email_recipients": "",
"password_force_reset": false,
"soft_phone_template": "app.xml",
"recording_access_mode": "PUBLIC",
"enable_last_call_routing": false,
"last_call_routing_duration": 1
}No content
Switch between tenants.
NzAwNTUxOTA5NzczMTQ4MTYwOK
No content
Error
POST /api/tenants/switch HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
No content
Get the dealer to which the tenant belongs.
NzAwNTUxOTA5NzczMTQ4MTYwOK
Error
GET /api/tenants/{id}/dealers HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"items": [
{
"id": "xxxxxx",
"level": "DISTRIBUTOR",
"name": "example",
"display_name": "example"
}
]
}Designate tenant to dealer.
NzAwNTUxOTA5NzczMTQ4MTYwNzAwNTUxOTA5NzczMTQ4MTYwOK
No content
Error
POST /api/tenants/{id}/dealers/{dealer_id} HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
No content
Remove tenant from dealer.
NzAwNTUxOTA5NzczMTQ4MTYwNzAwNTUxOTA5NzczMTQ4MTYwNo Content
No content
Error
POST /api/tenants/{id}/dealers/{dealer_id}/destroy HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
No content
NzAwNTUxOTA5NzczMTQ4MTYwNo Content
No content
Invalid name supplied
Tenant not found
POST /api/tenants/{id}/destroy HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
No content
Bulk retrieve tenants statistics.
NzAwNTUxOTA5NzczMTQ4MTYwOK
Error
POST /api/tenants/summaries/query HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 23
{
"items": [
"xxx",
"yyy"
]
}{
"items": [
{
"tenant_id": "xxx",
"tenant_name": "example",
"total_users": 1000,
"online_users": 100
}
]
}Requests the latest complete result from CallManager and atomically commits its authorization fields to the shared PostgreSQL snapshot before returning them. If the snapshot commit fails, the uncommitted result is not exposed as active. Product, customer, call and online-user information remains sourced from CallManager. Modular License deployments additionally return the effective Base, CC and Advanced points. license_status reports the most recent asynchronous activation result and may be omitted by older CallManager versions.
OK
API version of PortSIP PBX.
Product name of PortSIP PBX.
PortSIP PBXMax Simultaneous Calls allowed for this version.
Max online users allowed for this license.
License key of PortSIP PBX. It may be an empty string for a node or
floating result representing an installation without a Key. A modular
result always contains a Key.
Company name of license user.
Contact email of license user.
The exact current License type confirmed by CallManager. node and
floating preserve the existing PBX user-limit behavior. Only modular
enables independent Base, CC, and Advanced quotas.
Confirmed effective module points returned by CallManager. 0 means that
the module has no usable quota; it never means unlimited.
Confirmed effective module points returned by CallManager. 0 means that
the module has no usable quota; it never means unlimited.
Confirmed effective module points returned by CallManager. 0 means that
the module has no usable quota; it never means unlimited.
Error
GET /api/license HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"api_version": "22",
"product_name": "PortSIP PBX",
"max_sim_calls": 100,
"max_online_users": 100,
"license_key": "XXXX-XXXX-XXXX",
"company_name": "Example Company",
"contact_email": "admin@example.com",
"license_type": "modular",
"license_status": {
"activated_unix_seconds": 1787711520,
"status_reason": "LICENSE_STATUS_OK"
},
"base_max_users": 100,
"cc_max_users": 50,
"advanced_max_users": 20
}Saves the Key in the existing protected system location and notifies CallManager once after the database transaction commits. HTTP 200 means that the Key was saved and the notification was accepted by NATS; it does not mean that CallManager consumed it or that authentication succeeded. Continue polling GET /license for the confirmed License result. The current confirmed snapshot remains active until CallManager pushes a new complete authorization result.
License key of PortSIP PBX. It may be an empty string for a node or
floating result representing an installation without a Key. A modular
result always contains a Key.
The Key was stored and submitted for asynchronous authentication.
No content
Error
The Key was saved but the NATS notification failed; the administrator may submit it again.
POST /api/license HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 39
{
"license_key": "xxxxxxxxxxxxxxxxxxxxx"
}No content
Retrieve content of certificate key.
OK
Content of this certificate file for TLS or WSS transport protocol. The certificate file MUST be PEM-encoded with X.509.
Content of this private certificate file for TLS or WSS transport protocol.
Error
GET /api/key HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"crt": "",
"key": ""
}Update certificate key.
Content of this certificate file for TLS or WSS transport protocol. The certificate file MUST be PEM-encoded with X.509.
Content of this private certificate file for TLS or WSS transport protocol.
No Content
No content
Error
POST /api/key HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 19
{
"crt": "",
"key": ""
}No content
Update brand information.
The color scheme:
Updating the color scheme does not change the logo or favicon.
Can be either:
BLUE: BlueDARK: DarkGREEN: GreenLIGHT_BLUE: Light BluePURPLE: Purple
The unique ID of the file.
NzAwNTUxOTA5NzczMTQ4MTYwThe unique ID of the file.
NzAwNTUxOTA5NzczMTQ4MTYwThe title text.
This text will be displayed as the title.
The copyright text.
This text will be displayed as the copyright.
The product name text.
This text will be displayed as the product name.
The website text.
This text will be displayed as the product website.
The forum url.
This text will be displayed as the forum url.
The bottom text, maximum size is 256 characters. This text will be displayed at the bottom of the login page. It can be either plain text or HTML code.
OK
No content
Error
POST /api/brand HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 115
{
"theme": "BLUE",
"title": "",
"copyright": "",
"product": "",
"website": "https://example.com",
"forum": "",
"bottom_text": ""
}No content
Get details of current dealer.
OK
NzAwNTUxOTA5NzczMTQ4MTYwEnable this dealer or not.
trueDealer level includes:
DISTRIBUTOR: the first level of dealers.SUB_DISTRIBUTOR: the second level of dealers.RESELLER: the third level of dealers.
The user's account name.
Only letters, numbers, and the following special characters can be added: underscore, dash, single quote, and period (_, -, ', and .).
Username cannot start or end with period (.).
admin, system, administrator, and root are reserved names for system admin only with case ignored.
The email address.
example@example.comThe display name of user.
The website of user.
The mobile phone number of user.
The address.
The description of dealer.
The maximum number of tenants that the dealer is allowed to create.
100Maximum Base quota that this Dealer can allocate to direct children.
In Modular mode this is the Dealer's Base allocation; 0 means no Base
quota and never means unlimited. A top-level Dealer limit assigned by the
System administrator may exceed the System License total; enabled Tenant
allocation is still constrained by the shared System License.
50000Maximum CC quota that this Dealer can allocate to direct children in
Modular mode. 0 means no CC quota. A top-level Dealer limit assigned by
the System administrator may exceed the System License total.
0Maximum Advanced quota that this Dealer can allocate to direct children
in Modular mode. 0 means no Advanced quota. A top-level Dealer limit
assigned by the System administrator may exceed the System License total.
0The IANA Time Zone names, such as "Asia/Shanghai".
Error
GET /api/dealer HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"id": "xxxxxx",
"enabled": true,
"level": "DISTRIBUTOR",
"name": "example",
"email": "example@example.com",
"display_name": "example",
"website": "https://example.com",
"phone": "",
"address": "",
"description": "",
"max_tenants": 100,
"max_extensions": 1000,
"max_cc_users": 300,
"max_advanced_users": 100,
"timezone": "UTC"
}Modify the settings of the current dealer.
The email address.
example@example.comThe display name of user.
The website of user.
The mobile phone number of user.
The address.
The description of dealer.
The IANA Time Zone names, such as "Asia/Shanghai".
OK
No content
Error
POST /api/dealer HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 146
{
"email": "example@example.com",
"display_name": "example",
"website": "https://example.com",
"phone": "",
"address": "",
"description": "",
"timezone": "UTC"
}No content
Get status of current dealer.
OK
The version information of PortSIP PBX.
The effective License type (node, floating, or modular). The value is
read from the shared system License snapshot when available. Only
modular enables module quotas.
The maximum number of sub-dealers.
The number of current sub-dealers.
The maximum number of authorized users purchased by the dealer from distributor.
The number of current users of the dealer.
The maximum number of tenants the current dealer is allowed to create.
The number of current tenants of the dealer.
Error
GET /api/dealer/status HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"version": "",
"license_type": "modular",
"max_dealers": 100,
"current_dealers": 10,
"max_users": 1000,
"current_users": 100,
"max_tenants": 100,
"current_tenants": 10,
"license_usage": {
"base": {
"max": 1000,
"allocated": 800,
"used": 650
},
"cc": {
"max": 500,
"allocated": 300,
"used": 250
},
"advanced": {
"max": 200,
"allocated": 100,
"used": 80
}
}
}Change current dealer username.
The user's account name.
Only letters, numbers, and the following special characters can be added: underscore, dash, single quote, and period (_, -, ', and .).
Username cannot start or end with period (.).
admin, system, administrator, and root are reserved names for system admin only with case ignored.
OK
No content
Error
POST /api/dealer/username HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 18
{
"name": "example"
}No content
Reset current dealer password.
The password of dealer.
The password of dealer.
OK
No content
Error
POST /api/dealer/password HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 49
{
"old_password": "xxxxxx",
"new_password": "xxxxxx"
}No content
Get a collection of assignees of provider.
NzAwNTUxOTA5NzczMTQ4MTYwOK
Error
GET /api/providers/{id}/assignees HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"items": [
{
"tenant_id": "xxxxxx",
"tenant_name": "example",
"did_numbers": "1000-2000",
"concurrency": 100
}
]
}Check if a provider is assigned to the tenant.
NzAwNTUxOTA5NzczMTQ4MTYwNzAwNTUxOTA5NzczMTQ4MTYwOK
NzAwNTUxOTA5NzczMTQ4MTYwThe name of the tenant.
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.
The max number of concurrent calls.
Not Found
GET /api/providers/{id}/assignees/{tenant_id} HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"tenant_id": "xxxxxx",
"tenant_name": "example",
"did_numbers": "1000-2000",
"concurrency": 100
}Assign provider to tenant.
NzAwNTUxOTA5NzczMTQ4MTYwNzAwNTUxOTA5NzczMTQ4MTYwThe 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.
The max number of concurrent calls.
No Content
No content
Error
POST /api/providers/{id}/assignees/{tenant_id} HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 45
{
"did_numbers": "1000-2000",
"concurrency": 100
}No content
Unassign provider from tenant.
NzAwNTUxOTA5NzczMTQ4MTYwNzAwNTUxOTA5NzczMTQ4MTYwNo Content
No content
Provider is still referenced by a tenant inbound or outbound rule (RESOURCE_IN_USE).
Error
POST /api/providers/{id}/assignees/{tenant_id}/destroy HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
No content
Retrieve settings of data flow server.
OK
Host IPV4 address.
Host IPV6 address.
Host IPV4 address.
Host IPV6 address.
Error
GET /api/dataflow HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"private_ipv4": "127.0.0.1",
"private_ipv6": "::1",
"public_ipv4": "192.0.2.0",
"public_ipv6": "2001:0db8:0a0b:12f0::1"
}Update data flow server configurations.
Host IPV4 address.
Host IPV6 address.
Host IPV4 address.
Host IPV6 address.
OK
No content
Error
POST /api/dataflow HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 114
{
"private_ipv4": "127.0.0.1",
"private_ipv6": "::1",
"public_ipv4": "192.0.2.0",
"public_ipv6": "2001:0db8:0a0b:12f0::1"
}No content
Query the current status of the Dataflow server. If the Dataflow server configuration is incomplete or the status request fails, the status is returned as OFFLINE.
OK
The current status of the Dataflow server:
ONLINE: the Dataflow server is online.OFFLINE: the Dataflow server is offline or its status cannot be determined.
Error
GET /api/dataflow/status HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"status": "ONLINE"
}Retrieve data flow server token
OK
The api token for extended servers.
xxxxxxyyyyyyyyyyyyyyyzzzzzzzzzzzz.Error
GET /api/dataflow/token HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"token": "xxxxxxxxxxxxxxxxxxxxxx"
}Regenerate data flow server token
OK
The api token for extended servers.
xxxxxxyyyyyyyyyyyyyyyzzzzzzzzzzzz.Error
POST /api/dataflow/token HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"token": "xxxxxxxxxxxxxxxxx"
}Destroy data flow server Token.
No Content
No content
Error
POST /api/dataflow/token/destroy HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
No content
Last updated
Was this helpful?