Create a Working PBX
To create a working domain, several steps must be done to replicate what the PBX Portal is doing.
Getting Started
Check this to learn how to retrieve authentication token - https://pbx.readme.io/reference/getting-started
Check if the PBX Domain does not exist yet
REQUEST
curl --location 'https://12345-hpbx.dashmanager.com/ns-api/?object=domain&action=read&domain=1domaintemplate.20681.service&format=json'
RESPONSE
This is the response if domain is existing.
[
{
"domain": "1domaintemplate.20681.service",
"territory": 20681,
"dial_match": "",
"description": "Coreys Domain Template",
"moh": "yes",
"mor": "no",
"mot": "no",
"rmoh": "no",
"rating": "no",
"resi": "no",
"mksdir": "yes",
"call_limit": 0,
"call_limit_ext": 0,
"sub_limit": 0,
"max_call_queue": 0,
"max_aa": 0,
"max_conference": 0,
"max_department": 0,
"max_user": 0,
"max_device": 0,
"time_zone": "US/Eastern",
"dial_plan": "1domaintemplate.20681.service",
"dial_policy": "Permit All",
"policies": "active",
"email_sender": "",
"smtp_host": "",
"smtp_port": "",
"smtp_uid": "",
"smtp_pwd": "",
"from_user": "[*]",
"from_host": "[*]",
"active_call": 0,
"countForLimit": 0,
"countExternal": 0,
"sub_count": 1,
"max_site": 0,
"max_fax": -1,
"address_id": "",
"sso": "",
"vmail_provisioned": "yes",
"callid_nmbr": 7477774604,
"callid_name": "Domain Template",
"callid_emgr": 7477774604,
"area_code": 747,
"vmail_transcribe": "no",
"language": "en_us"
}
]
It is safe to proceed to create a domain if the response is empty.
[]
Endpoint Reference - https://pbx.readme.io/reference/read-domain
Create the PBX Domain
REQUEST
curl --location 'https://12345-hpbx.dashmanager.com/ns-api/' \
--header 'Authorization: Bearer redacted' \
--form 'object="domain"' \
--form 'action="create"' \
--form 'domain="2domaintemplate.20681.service"' \
--form 'territory="20681"' \
--form 'description="Template Domain"' \
--form 'email_sender="[email protected]"'
RESPONSE
202 Accepted
Endpoint Reference - https://pbx.readme.io/reference/create-a-domain
Create a Dialplan (Dial Translation Table)
Change the following in the example request below
domain
dialplan
- should be same as domain
plan_description
- Don’t use special characters
REQUEST
curl --location 'https://12345-hpbx.dashmanager.com/ns-api/' \
--header 'Authorization: Bearer redacted' \
--form 'object="dialplan"' \
--form 'action="create"' \
--form 'domain="2domaintemplate.20681.service"' \
--form 'dialplan="2domaintemplate.20681.service"' \
--form 'plan_description="dial plan for 2domaintemplate.20681.service"'
RESPONSE
202 Accepted
Create Domain Dial Translation
Important to NOT change anything except
domain
dialplan
- should be the same as the domain
value
responder
needs to be <0000.resellerid.service>
. See below example request.
REQUEST
curl --location 'https://12345-hpbx.dashmanager.com/ns-api/' \
--header 'Authorization: Bearer redacted' \
--form 'object="dialrule"' \
--form 'action="create"' \
--form 'enable="yes"' \
--form 'domain="2domaintemplate.20681.service"' \
--form 'dialplan="2domaintemplate.20681.service"' \
--form 'matchrule="*"' \
--form 'to_user="[*]"' \
--form 'match_from="*"' \
--form 'dow="*"' \
--form 'tod_from="*"' \
--form 'tod_to="*"' \
--form 'valid_from="*"' \
--form 'valid_to="*"' \
--form 'responder="<0000.20681.service>"' \
--form 'to_scheme="[*]"' \
--form 'to_user="[*]"' \
--form 'to_host="[*]"' \
--form 'from_name="[*]"' \
--form 'from_scheme="[*]"' \
--form 'from_user="[*]"' \
--form 'from_host="[*]"' \
--form 'plan_description="chain to default"'
RESPONSE
202 Accepted
Create Domain User for Domain Defaults
New Users use these as defaults when created.
- Change the following required
domain
subscriber_login
(cannot be a duplicate of existing login)
email
dial_plan
- needs to match dial plan created above
callid_number
callid_name
callid_emgr
- Change the following (optional)
no_answer_timeout
subscriber_pin
(security, use strong number combination)
language
(en_us…)
data-limit
(25000…)
call_limit
time_zone
vmail_enabled
vmail_annc_time
vmail_sort_lifo
ntfy_missed_call
dial_policy
(set strictly)
dir_list
account_status
should bepwd reset
unless you set a password, if setting a password, use a very strong random password.
REQUEST
curl --location 'https://12345-hpbx.dashmanager.com/ns-api/' \
--header 'Authorization: Bearer redacted' \
--form 'object="subscriber"' \
--form 'action="create"' \
--form 'user="domain"' \
--form 'domain="2domaintemplate.20681.service"' \
--form 'vmail_provisioned="yes"' \
--form 'accept="yes"' \
--form 'reject="yes"' \
--form 'screen="yes"' \
--form 'no_answer_timeout="20"' \
--form 'first_name="domain"' \
--form 'last_name="user"' \
--form 'subscriber_login="[email protected]"' \
--form 'subscriber_pin="2511281"' \
--form 'language="en_us"' \
--form 'data_limit="25000"' \
--form 'call_limit="0"' \
--form 'time_zone="US/Eastern"' \
--form 'dir_anc="yes"' \
--form 'directory_order="1"' \
--form 'vmail_enabled="yes"' \
--form 'rej_anony="no"' \
--form 'vmail_annc_time="yes"' \
--form 'vmail_sort_lifo="no"' \
--form 'email="[email protected]"' \
--form 'ntfy_missed_call="no"' \
--form 'dial_plan="2domaintemplate.20681.service"' \
--form 'dial_policy="US and Canada"' \
--form 'callid_nmbr="7477774604"' \
--form 'callid_name="Domain Template"' \
--form 'callid_emgr="7477774604"' \
--form 'area_code="747"' \
--form 'presence="open"' \
--form 'dir_list="yes"' \
--form 'srv_code="system_user"' \
--form 'scope="Office Manager"' \
--form 'gauSession="0"' \
--form 'vmail_transcribe="no"' \
--form 'account_status="pwd reset"'
RESPONSE
202 Accepted
Endpoint Reference - https://pbx.readme.io/reference/create-subscriber
Create Additional User(s)
- Change the following required
domain
subscriber_login
(cannot be a duplicate of an existing login)
email
dial_plan
- needs to match dial plan created above
callid_number
callid_name
callid_emgr
- Change the following (optional)
no_answer_timeout
subscriber_pin
(security, use strong number combination)
language
(en_us…)
data-limit
(25000…)
call_limit
time_zone
vmail_enabled
vmail_annc_time
vmail_sort_lifo
vmail_transcribe
ntfy_missed_call
dial_policy
(set strictly)
dir_list
account_status
should be pwd reset
unless you set a password, if setting a password, use a very strong random password.
REQUEST
curl --location 'https://12345-hpbx.dashmanager.com/ns-api/' \
--header 'Authorization: Bearer redacted' \
--form 'object="subscriber"' \
--form 'action="create"' \
--form 'user="100"' \
--form 'domain="2domaintemplate.20681.service"' \
--form 'vmail_provisioned="yes"' \
--form 'accept="yes"' \
--form 'reject="yes"' \
--form 'screen="yes"' \
--form 'no_answer_timeout="20"' \
--form 'first_name="John"' \
--form 'last_name="Doey"' \
--form 'subscriber_login="[email protected]"' \
--form 'subscriber_pin="2511281"' \
--form 'language="en_us"' \
--form 'data_limit="25000"' \
--form 'call_limit="0"' \
--form 'time_zone="US/Eastern"' \
--form 'dir_anc="yes"' \
--form 'directory_order="1"' \
--form 'vmail_enabled="yes"' \
--form 'rej_anony="no"' \
--form 'vmail_annc_time="yes"' \
--form 'vmail_sort_lifo="no"' \
--form 'email="[email protected]"' \
--form 'ntfy_missed_call="no"' \
--form 'dial_plan="2domaintemplate.20681.service"' \
--form 'dial_policy="US and Canada"' \
--form 'callid_nmbr="7477774604"' \
--form 'callid_name="John Doe"' \
--form 'callid_emgr="7477774604"' \
--form 'area_code="747"' \
--form 'presence="open"' \
--form 'dir_list="yes"' \
--form 'scope="Basic User"' \
--form 'vmail_transcribe="no"' \
--form 'account_status="pwd reset"'
RESPONSE
202 Accepted
Create Device(s)
- Change the following
device
- should be “sip:” + “{subscriber id}” + “{optional postfix letter, lower case a-z}” + “{domain}”
uid
- Needs to match subscriber
aor
- needs to be same as device
authentication_key
- This is the SIP password, must be a strong random string
subscriber_name
- Optionally change the following
callid_emgr
- This is a device-level 911 override that overrides the subscriber 911
- Do not change the following
expires
REQUEST
curl --location 'https://12345-hpbx.dashmanager.com/ns-api/' \
--header 'Authorization: Bearer redacted' \
--form 'object="device"' \
--form 'action="create"' \
--form 'device="sip:[email protected]"' \
--form 'uid="[email protected]"' \
--form 'aor="sip:[email protected]"' \
--form 'subscriber_name="100"' \
--form 'expires="50"' \
--form 'callid_emgr="[*]"' \
--form 'authentication_key="redacted"'
RESPONSE
202 Accepted
Endpoint Reference - https://pbx.readme.io/reference/create-device
Updated 3 months ago