Introduction
Welcome to the pascom REST API. You can use our API to query data from the pascom phone system and send commands to your pbx. You can use the pascom REST API with an onsite PBX or a cloud PBX.
Authentication
Log in to the web interface of your pascom telephone system. Under Information - Developer, click the Button Show Rest Credentials.
You can use the credentials for authentication with Username and Password or the Basic Auth String.
Username: moby
Password: generated by your pascom pbx
Basic Auth String: generated by your pascom pbx
Authentication via Webbrowser
For authentication via https with your webbrowser, use the username and password. The login window appears with any query. The Webbrowser automatically caches your login credentials.
https://pascom.cloud/yourpbx/services/identity/
Authentication via cURL
You can authenticate yourself to the pascom telephone system via curl commands. Both with username and password and with the Basic Auth String
Authentication via: Username & Password
curl -u "moby:yourpassword" -X GET "https://pascom.cloud/yourpbx/services/cdr/" -H "accept: application/json"
Authentication via: Basic Auth String
curl -H "Authorization:Basic yourbasicauthstring" -X GET "https://pascom.cloud/yourpbx/services/cdr/" -H "accept: application/json"
Find Parameters of interest
When managing and setting up your pascom telephone system, you will see often a hint for many data fields by hovering over the description with the mouse cursor.
Example: How to find the internal Parameter of the Users Display Name?
Log in to the web interface of your pascom telephone system. Go to User - User List, select a User and Click on Edit.
Then hover with your mouse cursor over a datafield of interesst. In our example, we need the users display name.
And the internal parameter of the user display name is: 003use_bez.
Get Rawdata with HTTPS requests
Some commands have the option to output the response as unformatted text. To use this option, add the command ?rawdata=1 after the HTTPS request and the complete Query will look like this.
https://pascom.cloud/yourpbx/services/identity/?rawdata=1
REST-API Endpoint Overview
Below you find an overview of the Rest API Endpoints and their application usages
Command | Description |
---|---|
/apply | Receive Job Informations and shedule new jobs |
/astb | Manage Asterisk Database |
/berofix | Receive data about connected berofix gateways |
/cdr | Call Data Records / Call History Management |
/condition | Manage your extension switches |
/connector | Control the pascom Connector Profiles |
/device | Manage Devices within the pascom phone system |
/extension | Extension Management |
/faxdevice | Control Fax Devices |
/faxserver | Manage Facsimiles |
/gateway | Receive data about connected gateways |
/identity | User Management |
/ipdevice | Manage all IP Devices on the pascom phone system |
/ipphone | Manage IP Phones |
/location | Location / Workspace Management |
/monitor | Manage voice recordings |
/phonebook | Manage phonebook entries |
/queue | Manage call queues and agents |
/redirect | Call forwarding Management |
/role | Receive data about configured roles |
/trunk | Receive data about configured trunks |
/voicemal | Manage all Voicemailboxes |
/apply
With the /apply command you receive job information from the pascom pbx and you can also schedule new jobs, which are then executed by the telephone system or the system administrator.
GET / Job Informations
Receive data on all job information from the pascom telephone system
Parameters
Parameter | Type | Description |
---|---|---|
limit | String | Only up to N Entries, default to 20 if ommited |
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/apply/?limit=5
curl -X GET "https://pascom.cloud/yourpbx/services/apply/?limit=5" -H "accept: */*"
Get a Server Response (JSON)
Results are ordered by desc. timestamp
{
"061job_id": "9",
"061job_sollzeit": "2020-11-25 04:08:01",
"061job_aktion": "tsk050331",
"061job_aktioninfo": "Console",
"061job_parameter": "",
"061job_status": "2",
"061job_impact": "9",
"003use_id": "1",
"061job_erledigtproz": "100",
"061job_erledigtinfo": "'Debug' log messages is not enabled for [sys.asterisk.configure.logger.file.logfiles.syslog.local0].",
"061job_tmstmp": "2020-11-25 04:08:01",
"061job_logfile": "20201125040801_050331_9.log"
}
Data in Response explained
Data | Description |
---|---|
061job_id | Id of the job |
061job_sollzeit | Timestamp of job execution |
061job_aktion | Action ID = executor + task ID |
061job_aktioninfo | Info tag of the job |
061job_parameter | Contains the arguments of the job |
061job_status | Id of the job status. (p.e. 1 = job running, 2 = successful, 3 = canceled, 4 = error) |
061job_impact | Job priority 0-9 (9= highest impact) |
061job_erledigtproz | Shows job completion in percent |
061job_erledigtinfo | Info Tag of job completion |
061job_tmstmp | Timestamp of job creation |
061job_logfile | Name of the log file |
POST / Schedule a new Job
With this post command you can send a json structure to the pascom telephone system.
Actions to use
Parameter | Description |
---|---|
executor | tsk or pl |
task | Task-ID - Id of the task visible in the commander. e.g. apply telephony config 050205 |
waitconfirm | 0=start immediatelly, 1=wait for admin to confirm the job in the Web-UI |
Prepare the Request Body (JSON)
{ "executor": "tsk", "task": "050205", "waitconfirm": 0, "args": [ "argument1", "argument2", "argument3" ] }
Send the POST to the pascom pbx (cURL)
curl -X POST "https://pascom.cloud/yourpbx/services/apply/" -H "accept: */*" -H "Content-Type: application/json" -d "{\"executor\":\"tsk\",\"task\":\"050205\",\"waitconfirm\":0,\"args\":[\"argument1\",\"argument2\",\"argument3\"]}"
Get a Server Response (JSON)
{
"061job_id": "10",
"061job_sollzeit": "2020-11-25 09:08:09",
"061job_aktion": "tsk20613",
"061job_aktioninfo": "Task 20613",
"061job_parameter": "argument1|argument2|argument3",
"061job_status": "0",
"061job_impact": "9",
"003use_id": "3",
"061job_erledigtproz": "0",
"061job_erledigtinfo": "",
"061job_tmstmp": "2020-11-25 09:08:09",
"061job_logfile": ""
}
Data in Response explained
Data | Description |
---|---|
061job_id | Id of the job |
061job_sollzeit | Timestamp of job execution |
061job_aktion | Action ID = executor + task ID |
061job_aktioninfo | Info tag of the job |
061job_parameter | Contains the arguments of the job |
061job_status | Id of the job status. (p.e. 1 = job running, 2 = successful, 3 = canceled, 4 = error) |
061job_impact | Job priority 0-9 (9= highest impact) |
003use_id | Id of the User started the job |
061job_erledigtproz | Shows job completion in percent |
061job_erledigtinfo | Info Tag of job completion |
061job_tmstmp | Timestamp of job creation |
061job_logfile | Name of the log file |
/astdb
With the /astdb command you receive data directly from the Asterisk database of the pascom telephone system. You can also insert and delete data in the Asterisk database.
GET / All Data
Return all asterisk database key value pairs from family MDC and API.
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/astdb/
curl -X GET "https://pascom.cloud/yourpbx/services/astdb/" -H "accept: */*"
Get a Server Response (JSON)
[
{
"key": "/MDC/DEVICE/1",
"value": "0,999,0,999,0,999"
},
{
"key": "/MDC/LOCATION/10",
"value": "11"
},
{
"key": "/MDC/USER/10",
"value": "9;0"
}
]
Data in Response explained
Data | Description |
---|---|
key | Path of the Database entry |
value | Value of the Database entry |
GET / Data from given {family}
Return asterisk db values for given family. Possible family values are MDC and API
Parameters
Parameter | Type | Description |
---|---|---|
family* | String | First level of the path - MDC or API |
*required
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/astdb/MDC
curl -X GET "https://pascom.cloud/yourpbx/services/astdb/MDC" -H "accept: */*"
Get a Server Response (JSON)
[
{
"key": "/MDC/DEVICE/1",
"value": "0,999,0,999,0,999"
},
{
"key": "/MDC/LOCATION/10",
"value": "11"
},
{
"key": "/MDC/USER/10",
"value": "9;0"
}
]
Data in Response explained
Data | Description |
---|---|
key | Path of the Database entry |
value | Value of the Database entry |
GET / Data with {Key}
Return asterisk db values for given family and use the second Path with key to specify the query even more.
Parameters
Parameter | Type | Description |
---|---|---|
family* | String | First level of the path - MDC or API |
family* | String | Second path - DEVICE, LOCATION, USER |
key* | String | Number p.e. 10 |
*required
Example Path
/MDC/USER/10
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/astdb/MDC/USER/10
curl -X GET "https://pascom.cloud/yourpbx/services/astdb/MDC/USER/10" -H "accept: */*"
Get a Server Response (JSON)
{
"key": "/MDC/USER/10",
"value": "9;0"
}
POST / Data with {key}
Insert key-value pair in asterisk db. Path needs to have 3 levels with a JSON request Body containing the value.
Parameters
Parameter | Type | Description |
---|---|---|
family* | String | First level of the path - MDC or API |
family* | String | Second path - DEVICE, LOCATION, USER |
key* | String | Number p.e. 10 |
*required
Example Path
/MDC/USER/10
Prepare the Request Body (JSON)
{ "value": "1234" }
Send the POST to the pascom pbx (cURL)
curl -i -X POST "https://pascom.cloud/yourpbx/services/astdb/API/ALIAS/22222" -H "Content-Type: application/json" -d "{\"key\":\"API/ALIAS/22222\",\"value\":\"1234\"}""
DELETE / Data with {key}
Remove Data in asterisk db. Path needs to have 3 levels.
Parameters
Parameter | Type | Description |
---|---|---|
family* | String | First level of the path - MDC or API |
family* | String | Second path - DEVICE, LOCATION, USER |
key* | String | Number p.e. 10 |
*required
Example Path
/MDC/USER/10
Send the DELETE to the pascom pbx (cURL)
curl -X DELETE "https://pascom.cloud/yourpbx/services/astdb/MDC/USER/10" -H "accept: */*"
/cdr
With the /cdr command you receive all data for the evaluation of your call history.
GET / Phonecall Records
Return query specific data of your phonecall records located on your pascom telephone system. You can use the following parameters to specify your query.
Parameters
Parameter | Type | Description | Example Value |
---|---|---|---|
id | integer | Phonecall record ID | 284 |
phonecallid | integer | Phonecall ID, not unique | 1 |
chain | string | chain ID | 1600937255312_3 |
chaindata | bool | Include full chain of records | true / false |
parentid | integer | Parent phonecall record ID | 283 |
limit | integer | Limit number of the fetched records | 5 |
timefrom | string | Unix timestamp (miliseconds) or YYYY-MM-DD. Fetch records with timestamp equal to or newer than this value | 2020-11-30 |
timeto | string | Unix timestamp (miliseconds) or YYYY-MM-DD. Fetch records with timestamp equal to or older than this value | 2020-11-30 |
srcuserid | string | Id of the caller | 3 |
srcusername | string | The caller username | mmustermann |
srcextension | string | The Caller internal extension | 101 |
srcname | string | The caller display name. Wildcard % is allowed | Max Mustermann |
srcnumber | string | The caller number. Wildcard % is allowed | 101 |
srcdeviceid | string | The caller device ID | 1 |
srcdevicename | string | The caller device name | pascom Softphone [Max Mustermann] |
srclocationid | integer | The caller location ID | – |
srclocationname | string | The caller location name | – |
srcphonebookentryid | integer | The caller phonebook entry ID | 1 |
srcprefix | string | Prefix for incoming calls | – |
srcinternal | bool | “false” for external callers, “true” for internal callers. If ommited, internal and external callers | true / false |
dstuserid | integer | The call recipient ID | 3 |
dstusername | string | The call recipient username | ameyer |
dstextension | string | The call recipient extension | 230 |
dstname | string | The call recipient display name. Wildcard % is allowed | Anna Meyer |
dstnumber | string | The call recipient number. Wildcard % is allowed | 230 or external number |
dstdeviceid | integer | The call recipient device ID | 3 |
dstdevicename | string | The call recipient device name | pascom Softphone [Anny Meyer] |
dstlocationid | integer | The call recipient location ID | – |
dstlocationname | string | The call recipient location name | – |
dstphonebookentryid | integer | The call recipient phonebook entry ID | 17 |
dstprefix | string | Prefix for outbound calls | – |
dstinternal | bool | “false” for external call recipients, “true” for internal call recipients. If ommited, both internal and external call recipients | true / false |
durationfrom | integer | Fetch records with equal or longer duration than given value in Seconds | 120 |
connectedfrom | integer | Fetch records with equal or longer connection time than given value in Seconds. | 60 |
holddurationfrom | integer | Fetch records with equal or longer held time than given value in Seconds. | 180 |
held | bool | “true” for held calls, “false” for not held calls. If ommited filter will not apply | true / false |
recorded | bool | “true” for recorded calls, “false” for non recorded calls. If ommited filter will not apply | true / false |
recordid | string | Call recording (monitoring) ID | – |
result | string | Result of the call process | noanswer, hangup, transfer |
resultDetails | string | Details of the results | voicemail, src, dst, abondon, elsewhere, timeout, picked, caller, agent |
via | string | Origin of the call process | noanswer, queue, transfer, fax |
viadetail | string | Initiator of the call process | action, src, dst, caller, agent, picked |
order | string | Sort of result | asc, desc |
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/cdr/?id=284&chaindata=false
curl -X GET "https://pascom.cloud/yourpbx/services/cdr/?id=284&chaindata=false" -H "accept: application/json"
Get a Server Response (JSON)
Descending order by timestamp by default
{
"id": 284,
"timestamp": 1600937267828,
"time": "2020-09-24T08:47:47 +0000",
"parentId": 283,
"chain": "1600937255312_3",
"phonecallId": 5,
"result": "transfer",
"resultDetails": "dst",
"via": "queue",
"viaDetails": "caller",
"recordId": "",
"duration": 10,
"connected": 0,
"holdCount": 0,
"holdDuration": 0,
"srcInternal": true,
"srcUserId": 3,
"srcUserName": "agrassl",
"srcName": "Andreas Grassl",
"srcDeviceId": 1,
"srcDeviceName": "pascom Softphone [Andreas Grassl]",
"srcLocationId": 2,
"srcLocationName": "Andreas Grassl",
"srcPrefix": "",
"srcNumber": "101",
"srcExtension": "101",
"srcPhonebookEntryId": 1,
"dstInternal": true,
"dstUserId": "",
"dstUserName": "",
"dstName": "Support",
"dstDeviceId": "",
"dstDeviceName": "",
"dstLocationId": "",
"dstLocationName": "",
"dstPrefix": "",
"dstNumber": "300",
"dstExtension": "300",
"dstPhonebookEntryId": 17,
"data": {
"queue": {
"queueId": 3,
"queueName": "Support",
"joinPosition": 1,
"ringedAgents": 0,
"leavePosition": 1,
"joinQueueState": {
"countEntries": 1,
"countMembersBusy": 0,
"countActiveMembers": 5,
"countPausedMembers": 0,
"countMembersRinging": 0,
"countInactiveMembers": 0,
"countMembersNotInUse": 0,
"countMembersUnavailable": 5,
"countMembersPerPauseReason": []
},
"queueExtension": "300"
}
}
}
Data in Response explained
Data | Description |
---|---|
id | ID of the call record |
timestamp | Internal UNIX timestamp |
time | Time of the call record (human readable) |
parentId | ID of the parent phonecall record |
chain | Chain Id of all phonerecords that belong to the chain |
phonecallId | Phonecall Id |
result | Result of the call process like noanswer, hangup, transfer |
resultDetails | Details of the results like voicemail, src, dst, abondon, elsewhere, timeout, picked, caller, agent |
via | Origin of the call process p.e. noanswer, queue, transfer, fax |
viaDetails | Initiator of the call process p.e. action, src, dst, caller, agent, picked |
recordId | Call recording (monitoring) ID |
duration | Complete Duration of the call in seconds |
connected | Time of call connected in seconds |
holdCount | How many times the call was on hold during this call |
holdDuration | Duration the call was onhold |
srcInternal | “false” for external callers, “true” for internal callers |
srcUserId | Id of the caller |
srcUserName | The caller username |
srcName | The caller display name |
srcDeviceId | The caller device ID |
srcDeviceName | The caller device name |
srcLocationId | The caller location ID |
srcLocationName | The caller location name |
srcPrefix | Prefix for incoming calls |
srcNumber | The caller number |
srcExtension | The Caller internal extension |
srcPhonebookEntryId | The caller phonebook entry ID |
dstInternal | “false” for external call recipients, “true” for internal call recipients |
dstUserId | The call recipient ID |
dstUserName | The call recipient username |
dstName | The call recipient display name |
dstDeviceId | The call recipient device ID |
dstDeviceName | The call recipient device name |
dstLocationId | The call recipient location ID |
dstLocationName | The call recipient location name |
dstPrefix | Prefix for outbound calls |
dstNumber | The call recipient number |
dstExtension | The call recipient extension |
dstPhonebookEntryId | The call recipient phonebook entry ID |
data | JSON containing additional data |
queueId | The queue Id |
queueName | Name of the call queue p.e. “Support” |
joinPosition | Position the caller joins the call queue |
ringedAgents | Counts the Agents that was ringed |
leavePosition | Position the caller leaves the call queue |
joinQueueState | Nested JSON with additional state data |
countEntries | Number of the call entries waiting in the queue |
countMembersBusy | Number of the members who are talking |
countActiveMembers | Number of active members logged in and not paused |
countPausedMembers | Number of paused members (logged in but paused) |
countMembersRinging | Count of all members ringing |
countInactiveMembers | Count of all members are inactive |
countMembersNotInUse | Number of the members who are online and idle atm (not phoneing) |
countMembersUnavailable | Number of the members who are logged in but phone is not reachable |
countMembersPerPauseReason | Count members per pausereason like “lunchbreak” |
queueExtension | The internal extension of the call queue |
GET / Live Data of all active Phonecalls
Return highlevel informations about all current active calls. No active calls returns a 204 response containing no data.
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/cdr/live
curl -X GET "https://pascom.cloud/yoorpbx/services/cdr/live" -H "accept: */*"
Get a Server Response (JSON)
{
"phonecallId": 62,
"timestamp": 1607331710930,
"time": "2020-12-07T09:01:50 +0000",
"parentId": "",
"via": "",
"viaDetails": "",
"duration": 10,
"connected": 10,
"ringing": 0,
"holdCount": 0,
"holdDuration": 0,
"state": "BUSY",
"srcInternal": true,
"srcName": "Andreas Grassl",
"srcNumber": "101",
"srcPrefix": "",
"srcUserId": 3,
"srcUserName": "agrassl",
"srcDeviceId": 1,
"srcDeviceName": "pascom Softphone [Andreas Grassl]",
"srcLocationId": 2,
"srcLocationName": "Andreas Grassl",
"srcExtension": "101",
"dstInternal": true,
"dstName": "System call",
"dstNumber": "*101",
"dstPrefix": "",
"dstUserId": "",
"dstUserName": "",
"dstDeviceId": "",
"dstDeviceName": "",
"dstLocationId": "",
"dstLocationName": "",
"dstExtension": "",
"data": {
"voicemail": []
}
}
Data in Response explained
Data | Description |
---|---|
phonecallId | Phonecall Id |
timestamp | Internal UNIX timestamp |
time | Time of the call record (human readable) |
parentId | ID of the parent phonecall record |
via | Origin of the call process p.e. noanswer, queue, transfer, fax |
viaDetails | Initiator of the call process p.e. action, src, dst, caller, agent, picked |
duration | Duration of the call in seconds |
connected | Time of call connected in seconds |
ringing | Time taken for the call to be answered by a user |
holdCount | How many times the call was on hold during this call |
holdDuration | Duration the call was onhold |
state | State of the current call e.g. ringing, busy, hold, hangup |
srcInternal | “false” for external callers, “true” for internal callers |
srcName | The caller display name |
srcNumber | The caller number |
srcPrefix | Prefix for incoming calls |
srcUserId | Id of the caller |
srcUserName | The caller username |
srcDeviceId | The caller device ID |
srcDeviceName | The caller device name |
srcLocationId | The caller location ID |
srcLocationName | The caller location name |
srcExtension | The Caller internal extension |
dstInternal | “false” for external call recipients, “true” for internal call recipients |
dstName | The call recipient display name |
dstNumber | The call recipient number |
dstPrefix | Prefix for outbound calls |
dstUserId | The call recipient ID |
dstUserName | The call recipient username |
dstDeviceId | The call recipient device ID |
dstDeviceName | The call recipient device name |
dstLocationId | The call recipient location ID |
dstLocationName | The call recipient location name |
dstExtension | The call recipient extension |
data | JSON containing additional data |
voicemail | Additional voicemail data |
GET / Live Data of specific active Phonecall
Return detailed highlevel informations about a specific active call. No active calls returns a 204 response containing no data.
Parameters
Parameter | Type | Description | Example Value |
---|---|---|---|
Id | integer | Phonecall record ID | 62 |
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/cdr/live/62
curl -X GET "https://pascom.cloud/yourpbx/services/cdr/live/62" -H "accept: */*"
Get a Server Response (JSON)
{
"phonecallId": 62,
"timestamp": 1607331710930,
"time": "2020-12-07T09:01:50 +0000",
"parentId": "",
"via": "",
"viaDetails": "",
"duration": 10,
"connected": 10,
"ringing": 0,
"holdCount": 0,
"holdDuration": 0,
"state": "BUSY",
"srcInternal": true,
"srcName": "Andreas Grassl",
"srcNumber": "101",
"srcPrefix": "",
"srcUserId": 3,
"srcUserName": "agrassl",
"srcDeviceId": 1,
"srcDeviceName": "pascom Softphone [Andreas Grassl]",
"srcLocationId": 2,
"srcLocationName": "Andreas Grassl",
"srcExtension": "101",
"dstInternal": true,
"dstName": "System call",
"dstNumber": "*101",
"dstPrefix": "",
"dstUserId": "",
"dstUserName": "",
"dstDeviceId": "",
"dstDeviceName": "",
"dstLocationId": "",
"dstLocationName": "",
"dstExtension": "",
"data": {
"voicemail": []
}
}
Data in Response explained
Data | Description |
---|---|
phonecallId | Phonecall Id |
timestamp | Internal UNIX timestamp |
time | Time of the call record |
parentId | ID of the parent phonecall record |
via | Origin of the call process p.e. noanswer, queue, transfer, fax |
viaDetails | Initiator of the call process p.e. action, src, dst, caller, agent, picked |
duration | Duration of the call in seconds |
connected | Time of call connected in seconds |
ringing | Time taken for the call to be answered by a user |
holdCount | How many times the call was on hold during this call |
holdDuration | Duration the call was onhold |
state | State of the current call e.g. ringing, busy, hold, hangup |
srcInternal | “false” for external callers, “true” for internal callers |
srcName | The caller display name |
srcNumber | The caller number |
srcPrefix | Prefix for incoming calls |
srcUserId | Id of the caller |
srcUserName | The caller username |
srcDeviceId | The caller device ID |
srcDeviceName | The caller device name |
srcLocationId | The caller location ID |
srcLocationName | The caller location name |
srcExtension | The Caller internal extension |
dstInternal | “false” for external call recipients, “true” for internal call recipients |
dstName | The call recipient display name |
dstNumber | The call recipient number |
dstPrefix | Prefix for outbound calls |
dstUserId | The call recipient ID |
dstUserName | The call recipient username |
dstDeviceId | The call recipient device ID |
dstDeviceName | The call recipient device name |
dstLocationId | The call recipient location ID |
dstLocationName | The call recipient location name |
dstExtension | The call recipient extension |
data | JSON containing additional data |
voicemail | Additional voicemail data |
/condition
With the /condition command you receive all data of your extension switches.
GET / All Registered Extension Switches
With this get command you will receive data about all existing extension switches on the pascom telephone system
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/condition/switch
curl -X GET "https://pascom.cloud/yourpbx/services/condition/switch" -H "accept: */*"
Get a Server Response (JSON)
[
{
"038con_id": 44,
"038con_bez": "AfterHours",
"039swi_state": false,
"009ext_extension": "503"
},
]
Data in Response explained
Data | Description |
---|---|
038con_id | ID of the extension switch |
038con_bez | The display name of the extension switch |
039swi_state | Is extension switch active? (True / False) |
009ext_extension | Internal extension of the switch |
GET / Switch By Its Extension
With this get command you will receive data about a specific switch by its internal extension on the pascom telephone system.
Parameters
Parameter | Type | Description | Example Value |
---|---|---|---|
extension | string | The extension to which a extension-switch is registered | 503 |
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/condition/switch/503
curl -X GET "https://pascom.cloud/yourpbx/services/condition/switch/503" -H "accept: */*"
Get a Server Response (JSON)
[
{
"038con_id": 44,
"038con_bez": "AfterHours",
"039swi_state": false,
"009ext_extension": "503"
},
]
Data in Response explained
Data | Description |
---|---|
038con_id | ID of the extension switch |
038con_bez | The display name of the extension switch |
039swi_state | Is extension switch active? (True / False) |
009ext_extension | Internal extension of the switch |
POST / Change The State of a Switch
With this post command you can change the state of a specific switch by its internal extension on the pascom telephone system.
Parameters
Parameter | Type | Description | Example |
---|---|---|---|
extension* | String | The extension to the related extension-switch | 503 |
*required
Prepare the Request Body (JSON)
Parameter | Type | Description | Example |
---|---|---|---|
003use_id* | Integer | Used to check role-based permissions. This is supposed to be used from the dialplan to verify access | 101 |
*required
{ "039swi_state": true, "003use_id" : 101 }
Send the POST to the pascom pbx (cURL)
curl -X POST "https://pascom.cloud/yourpbx/services/condition/switch/503" -H "accept: */*" -H "Content-Type: application/json" -d "{\"039swi_state\":true,\"003use_id\":101}"
/connector
With the /connector command you can control the connector profiles via the pascom API. Get an overview of all connector profiles, perform actions and load or import data via a CSV file.
GET / List of all connector profiles
With the following query you will receive a complete list of all your connector profiles on the pascom telephone system.
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/connector/
curl -X GET "https://pascom.cloud/yourpbx/services/connector/" -H "accept: */*"
Get a Server Response (JSON)
[
{
"076imp_id": 2,
"076imp_bez": "Benutzerimport via csv",
"076imp_doc": null,
"076imp_prefilter": "//Use a filter like this to filter the row before it gets mapped using the variables\r\n//You also have access to all system settings via $settings\r\n//The function must return true or false\r\n//return array_key_exists('displayName', $row);\r\nreturn true;",
"076imp_source": "CSV",
"076imp_tmstmp": "2020-11-26 09:16:49.949779",
"076imp_options": "{\"type\":\"url\",\"encoding\":\"UTF-8\",\"delimiter\":\",\",\"ending\":\"CRLF\",\"enclosure\":\"NONE\",\"csv_file_url\":\"https:\\/\\/docs.google.com\\/spreadsheets\\/d\\/e\\/2PACX-1vSG7ogLnzLyhw2IOMDPSehDSD3_4YacBIqe5GBCfk-yxz9OG17t1HbYZr9wXIu1FYfk720e9yU33IbS\\/pub?output=csv\",\"ignore_cert\":\"0\",\"username\":\"\"}",
"076imp_mode": 2,
"076imp_template": "{\r\n \"identity\": [{\r\n\r\n \"003use_bez\": \"{{{displayname}}}\",\r\n \"003use_name\": \"{{{username}}}\",\r\n \"003use_pw\": \"{{{password}}}\",\r\n \"011acc_pin\": \"{{{pin}}}\",\r\n \"009ext_extension\": \"{{{phone}}}\",\r\n \"016voi_email\": \"{{{email}}}\",\r\n\r\n \"post\": {\r\n \"phonebook\": [{\r\n \"028pho_bez\": \"{{{displayname}}}\",\r\n \"028pho_firstname\": \"{{{givenname}}}\",\r\n \"028pho_lastname\": \"{{{surname}}}\",\r\n \"028pho_email\": \"{{{email}}}\"\r\n }]\r\n{{#if phonemac}}\r\n ,\"ipphone\": [{\r\n \"071ipp_mac\": \"{{{tolower phonemac}}}\",\r\n \"071ipp_targetip\": \"{{{phoneip}}}\",\r\n \"071ipp_authuser\": \"{{{phoneuser}}}\",\r\n \"071ipp_authpass\": \"{{{phonepass}}}\",\r\n \"010012devloc_inttimeout\": \"{{{inttimeout}}}\",\r\n \"010012devloc_intdelay\": \"{{{intdelay}}}\",\r\n \"010012devloc_exttimeout\": \"{{{exttimeout}}}\",\r\n \"010012devloc_extdelay\": \"{{{extdelay}}}\",\r\n \"010012devloc_quetimeout\": \"{{{quetimeout}}}\",\r\n \"010012devloc_quedelay\": \"{{{quedelay}}}\"\r\n }]\r\n{{/if}}\r\n{{#if fax}}\r\n ,\"faxdevice\": [{\r\n \"010dev_bez\":\t\t\"{{{displayname}}}\",\r\n \"009ext_extension\":\t\"{{{fax}}}\",\r\n \"020fax_email\": \t\"{{{email}}}\"\r\n }]\r\n{{/if}}\r\n }\r\n }]\r\n}"
}
]
Data in Response explained
Data | Description |
---|---|
076imp_id | ID of the connector profile |
076imp_doc | Notes / documentation of the connector profile |
076imp_bez | Display name of the connector profile |
076imp_prefilter | Use a filter to filter the row before it gets mapped using the variables\r\n//You also have access to all system settings via $settings\r\n//The function must return true or false\r\n//return array_key_exists(‘displayName’, $row);\r\nreturn true;" |
076imp_source | Determines the source of the connector profile e.g. CSV, LDAP etc. |
076imp_tmstmp | tmstmp are changed when some data in the row is changed |
076imp_options | Options set to configure the behavior of the connector profile e.g. encoding, data upload, row ending etc. |
076imp_mode | 1 = Create and Update Records 2 = Create and update records. Remove missing records from previous imports. |
076imp_template | The template mapped through the query |
POST / Perform a connector action
With the following push command you can perform actions for the connector profile on the pascom telephone system. Per Example: Execute a User Import
Parameters
Parameter | Type | Description |
---|---|---|
profile* | String | The profiles name |
*required
Actions to use
Action | Description |
---|---|
action | execute |
Prepare the Request Body (JSON)
{ "action": "execute" }
Send the POST to the pascom pbx (cURL)
curl -X POST "https://pascom.cloud/yourpbx/services/connector/Benutzerimport via csv/action" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"action\":\"execute\"}"
POST / Upload CSV file and import data
With the following post command you can import data from a csv file. IMPORTANT! This works only with manual CSV profiles.
Parameters
Parameter | Type | Description |
---|---|---|
profile* | String | The profiles name |
*required
DATA from example CSV File
displayname,username,password,pin,phone,email,givenname,surname,createSoftphone Michael Sander,msander,12345678,0000,106,msander@test.de,Michael,Sander,ja
Send the POST to the pascom pbx (cURL)
This POST contains the example data of the CSV File directly in the cURL.
curl -X POST "https://pascom.cloud/yourpbx/services/connector/User import via csv/push" -H "accept: application/json" -H "Content-Type: application/octet-stream" -d "displayname,username,password,pin,phone,email,givenname,surname,createSoftphoneMichael Sander,msander,12345678,0000,106,msander@test.de,Michael,Sander,ja"
Send the POST to the pascom pbx (cURL)
This POST contains the CSV File which will be uploaded and processed.
curl -X POST "https://pascom.cloud/yourpbx/services/connector/csv-import/push" -H "accept: application/json" -H "Content-Type: text/csv" --data-binary @home/path/csv-import.csv
Get a Server Response (JSON)
{
"jobId": "95"
}
Data in Response explained
Data | Description |
---|---|
jobId | ID of the job performed on the phone system |
/device
With the /device command you can receive informations about all configured devices on your pascom pbx.
GET / List all Devices
With the following get command you will receive a complete list of all your devices on the pascom telephone system. The result contains only header-fields like device type and name.
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/device/
curl -X GET "https://pascom.cloud/yourpbx/services/device/" -H "accept: */*"
Get a Server Response (JSON)
[
{
"066dev_bez": "Virtual Fax Device",
"010dev_bez": "Fax Tina Sander",
"010dev_tmstmp": "2020-03-06 09:14:24.719775"
},
{
"066dev_bez": "Integrated Softphone",
"010dev_bez": "Fax Stefanie Baumann",
"010dev_tmstmp": "2020-03-06 09:14:50.586919"
},
{
"066dev_bez": "Integrated External Phone",
"010dev_bez": "mobile 13 [Otto Wankler]",
"010dev_tmstmp": "2020-01-10 09:19:34.72883"
}
]
Data in Response explained
Data | Description |
---|---|
066dev_bez | Type of the device |
010dev_bez | Automatically generated description of the device |
010dev_tmstmp | tmstmp are changed when some data in the row is changed |
GET / List one Device with all details
With the following get command you will receive all data from a specific device on the pascom telephone system.
Parameters
Parameter | Type | Description |
---|---|---|
name | String | Device Name. Fetch the device list to get the names. |
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/device/pascom Softphone [Tina Sander]
curl -X GET "https://pascom.cloud/yourpbx/services/device/pascom Softphone [Tina Sander]" -H "accept: */*"
Get a Server Response (JSON)
{
"066dev_id": 26,
"066dev_bez": "Integrated Softphone",
"066dev_tmstmp": "2018-08-03 12:53:06.163208",
"010dev_id": 3,
"068bas_id": null,
"010dev_bez": "pascom Softphone [Tina Sander]",
"010dev_tmstmp": "2019-11-27 09:07:45.396768",
"009ext_id": 6,
"090por_id": null,
"010dev_token": null,
"010dev_caption": null,
"009ext_extension": "221",
"009ext_tmstmp": "2021-01-08 09:04:22.472136",
"028pho_id": 2,
"srtp_mode": 0,
"012loc_id": 3,
"010012devloc_intdelay": "0",
"010012devloc_inttimeout": "999",
"010012devloc_extdelay": "0",
"010012devloc_exttimeout": "999",
"010012devloc_tmstmp": "2019-11-27 09:07:45.396768",
"010012devloc_quedelay": "0",
"010012devloc_quetimeout": "999",
"010012devloc_configurable": false,
"011acc_id": 3,
"012loc_bez": "Tina Sander",
"012loc_doc": null,
"012loc_static": true,
"012loc_tmstmp": "2019-11-27 09:07:45.396768",
"011acc_tmstmp": "2021-01-08 09:04:22.472136",
"011acc_voiidwatch": 4,
"011acc_calleridnum": null,
"020fax_id": null,
"003use_id": 4,
"016voi_id": 4,
"011acc_callwaiting": false,
"003use_lastlogin": "2021-01-20 15:38:52.583355",
"003use_name": "tsander",
"003use_tmstmp": "2021-01-20 15:38:52.583355",
"003use_doc": null,
"003use_enabled": true,
"003use_bez": "Tina Sander",
"003use_authrole": null,
"034pro_id": 1,
"003use_auth_method": "LOCAL",
"003use_state": "USER_AVAILABLE",
"003use_statusText": "",
"107ava_id": 1,
"034pro_bez": "Deutsch",
"034pro_kz": "de",
"034pro_tmstmp": "2020-04-30 22:04:57.391568",
"034pro_locale": "de_DE",
"034pro_default": true,
"016voi_email": "tsander@bootcamp.de",
"016voi_mailbox": "221",
"016voi_name": "Tina Sander",
"016voi_tmstmp": "2019-11-27 09:07:45.396768",
"016voi_format": "wav",
"016voi_save": true,
"015ipd_id": 3,
"013pee_id": 3,
"015ipd_option": "{}",
"015ipd_tmstmp": "2019-11-27 09:07:45.396768",
"015ipd_nat": false,
"013pee_option": null,
"013pee_username": "jb3jT4cflUPVnO1",
"013pee_password": "9A81BFDB04909C7149D7BF467ACB2CC9",
"013pee_tmstmp": "2019-11-27 09:07:45.396768",
"listtrc": "040701",
"edittrc": "041104",
"editid": 3,
"protocol": "PJSIP",
"locatable": true,
"dynLocatable": false,
"extension": "221",
"connection": null,
"capabilities": [
"dial",
"hangup",
"offhook",
"transfer",
"hold",
"enable",
"conference",
"mute",
"dtmf"
],
"srtp": false,
"device_caption": "pascom Softphone [Tina Sander]"
}
Data in Response explained
Data | Description |
---|---|
066dev_id | ID of the device |
066dev_bez | Type of the device |
066dev_tmstmp | tmstmp are changed when some data in the row is changed |
010dev_id | Device Id |
068bas_id | Base Config Id |
010dev_bez | Automatically generated description of the device |
010dev_tmstmp | tmstmp are changed when some data in the row is changed |
009ext_id | Extension Id |
090por_id | Port Id |
010dev_token | Provisioning token |
010dev_caption | Individual description of the Device |
009ext_extension | Internal extension of the user |
009ext_tmstmp | tmstmp are changed when some data in the row is changed |
028pho_id | Phonebook entry Id |
srtp_mode | 0 = disabled 1 = all supported devices (snom, yealink) and md-softphone 2 = all supported devices + generic softphone |
012loc_id | Location Id |
010012devloc_intdelay | Internal delay of the device set by user / admin |
010012devloc_inttimeout | Internal timeout of the device set by user / admin |
010012devloc_extdelay | External delay of the device set by user / admin |
010012devloc_exttimeout | External timeout of the device set by user / admin |
010012devloc_tmstmp | tmstmp are changed when some data in the row is changed |
010012devloc_quedelay | Delay of calls from queues set by user / admin |
010012devloc_quetimeout | Delay of calls from queues set by user / admin |
010012devloc_configurable | Configuration from user allowed? “true/false” |
011acc_id | Account Id |
012loc_bez | Description of the Location |
012loc_doc | Location comments |
012loc_static | true = static / false = dynamic |
012loc_tmstmp | tmstmp are changed when some data in the row is changed |
011acc_tmstmp | tmstmp are changed when some data in the row is changed |
011acc_voiidwatch | Monitored voicemailbox |
011acc_calleridnum | Own caller ID number |
020fax_id | Fax Device Id |
003use_id | User Id |
016voi_id | Voicemailbox Id |
011acc_callwaiting | Is call waiting enabled? “true/false” |
003use_lastlogin | Last login via the pascom client |
003use_name | Login name of the user |
003use_tmstmp | tmstmp are changed when some data in the row is changed |
003use_doc | Notes / comments of the user |
003use_enabled | User with 003use_enabled=false can’t authenticate to the pascom server. Enables/Disables the Users login function. |
003use_bez | Display name of the user |
003use_authrole | Role of the user wihtin the pascom phone system |
034pro_id | Preferred language Id |
003use_auth_method | Authentication method: local = against pascom, extern = via LDAP |
003use_state | State of the user e.g. USER_UNKNOWN, USER_AVAILABLE, USER_AWAY, USER_BUSY |
003use_statusText | Individual status text |
107ava_id | Avatar Id |
034pro_bez | Name of the preferred language (“Deutsch”) |
034pro_kz | Language shortcode (de, en) |
034pro_locale | Local code of preferred Language (de_DE, en_EN) |
034pro_default | Is preferred Language default? (true/false) |
016voi_email | Configured email adress for the voicemailbox |
016voi_mailbox | Internal voicemailbox extension of the user |
016voi_name | name of the voicemailbox |
016voi_tmstmp | tmstmp are changed when some data in the row is changed |
016voi_format | Voicemailbox Audio recorded format (wav) |
016voi_save | True = Saved serverside + send to Email False = send only Email |
015ipd_id | Ip device Id |
013pee_id | Peer Id |
015ipd_option | Sip options of the IP device |
015ipd_tmstmp | tmstmp are changed when some data in the row is changed |
015ipd_nat | True = NAT activated False= NAT deactivated |
013pee_option | Peer options |
013pee_username | Peer username |
013pee_password | Peer password |
013pee_tmstmp | tmstmp are changed when some data in the row is changed |
protocol | Protocol used by the device |
locatable | set to true if device can be assigned to the location |
dynLocatable | set to true if device can be assigned to the dynamic location (e.g. mobile phone can’t be assigned to dynamic location) |
extension | Used extension by the device |
connection | description how this device is conected e.g. via trunk, gateway |
capabilities | Functions used by the device |
srtp | true if srtp is enabled for this device |
device_caption | Overwrite the device name with your own caption |
/extension
With the /extension command you can receive informations about your extensions on your pascom pbx. You can clearly see which extension belongs to which user and what the respective extension type is.
GET / List all extensions or resolve a single target number
With the following get command you will receive a complete list of all your extensions on the pascom telephone system.
Parameters
Parameter | Type | Description |
---|---|---|
target | String | If set: only resolve the to-be-dialed target number, decide if external or internal. (e.g. 08955555444) |
viasetting | String | If set without target: only resolve a to-be-dialed target number from a system setting (e.g. sys.asterisk.dialplan.global.voicebox.own.value) |
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/extension/
curl -X GET "https://pascom.cloud/yourpbx/services/extension/" -H "accept: */*"
Get a Server Response (JSON)
[
{
"009ext_extension": "110",
"typ": "Notrufnummer",
"text": "Alte Notrufnummer",
"src": "075emergency",
"resource": "extensions/extension-3"
},
{
"009ext_extension": "200",
"typ": "Warteschlange",
"text": "Zentrale",
"src": "029team",
"resource": "queues/queue-1"
},
{
"009ext_extension": "224",
"typ": "Benutzer",
"text": "Adrian Turitzo",
"src": "011account",
"resource": "users/user-7"
}
]
Data in Response explained
Data | Description |
---|---|
009ext_extension | Internal extension |
typ | Type description |
text | Display Name |
src | Intarnal source the extension belongs to |
resource | Source Path of the extension |
/faxdevice
With the /faxdevice command you get informations about your virtual fax devices on the pascom phone system.
GET / List of all virtual Fax Devices
With the following query you will receive a complete list of all your virtual fax devices on the pascom telephone system.
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/faxdevice/
curl -X GET "https://pascom.cloud/yourpbx/services/faxdevice/" -H "accept: */*"
Get a Server Response (JSON)
[
{
"066dev_id": 3,
"066dev_bez": "Virtual Fax Device",
"066dev_tmstmp": "2018-08-03 12:52:51.10237",
"010dev_id": 18,
"068bas_id": null,
"010dev_bez": "Fax Stefanie Baumann",
"010dev_tmstmp": "2020-03-06 09:14:50.586919",
"009ext_id": 10,
"090por_id": null,
"010dev_token": null,
"010dev_caption": null,
"009ext_extension": "302",
"009ext_tmstmp": "2020-03-06 09:14:50.586919",
"028pho_id": null,
"srtp_mode": 0,
"020fax_id": 2,
"020fax_email": "sbaumann@voipjack.de",
"020fax_caption": null,
"020fax_tmstmp": "2020-03-06 09:14:50.586919",
"011acc_id": 7,
"011acc_tmstmp": "2020-03-06 10:14:13.207059",
"011acc_voiidwatch": 8,
"011acc_calleridnum": null,
"003use_id": 8,
"016voi_id": 8,
"011acc_callwaiting": false,
"listtrc": "040701",
"edittrc": null,
"editid": 18,
"protocol": null,
"locatable": false,
"dynLocatable": false,
"extension": "302",
"connection": null,
"capabilities": [],
"srtp": false,
"device_caption": "Fax Stefanie Baumann"
}
]
Data in Response explained
Data | Description |
---|---|
066dev_id | ID of the device |
066dev_bez | Type of the device |
066dev_tmstmp | tmstmp are changed when some data in the row is changed |
010dev_id | Device Id |
068bas_id | Base Config Id |
010dev_bez | Automatically generated description of the device |
010dev_tmstmp | tmstmp are changed when some data in the row is changed |
009ext_id | Extension Id |
090por_id | Port Id |
010dev_token | Provisioning token |
010dev_caption | Individual description of the Device |
009ext_extension | Internal extension of the user |
009ext_tmstmp | tmstmp are changed when some data in the row is changed |
028pho_id | Phonebook entry Id |
srtp_mode | 0 = disabled 1 = all supported devices (snom, yealink) and md-softphone 2 = all supported devices + generic softphone |
020fax_id | Fax Device Id |
020fax_email | Email address for the virtual fax |
020fax_caption | Customized caption for the fax |
011acc_id | Account Id |
011acc_tmstmp | tmstmp are changed when some data in the row is changed |
011acc_voiidwatch | Monitored voicemailbox |
011acc_calleridnum | Own caller ID number |
003use_id | User Id |
016voi_id | Voicemailbox Id |
011acc_callwaiting | Is call waiting enabled? “true/false” |
protocol | Protocol used by the device |
locatable | set to true if device can be assigned to the location |
dynLocatable | set to true if device can be assigned to the dynamic location (e.g. mobile phone can’t be assigned to dynamic location) |
extension | Used extension by the device |
connection | description how this device is conected e.g. via trunk, gateway |
capabilities | Functions used by the device |
srtp | true if srtp is enabled for this device |
device_caption | Overwrite the device name with your own caption |
GET / Details about a specific virtual Fax Device
With the following query you will receive detailed data from a specific virtual fax device on the pascom telephone system.
Parameters
Parameter | Type | Description |
---|---|---|
extenOrEmail* | String | The virtual fax device extension or email address |
*required
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/faxdevice/302
curl -X GET "https://pascom.cloud/yourpbx/services/faxdevice/302" -H "accept: */*"
Get a Server Response (JSON)
{
"db_003use_id=8
db_003use_lastlogin='2020-11-20 07:15:17.426222'
db_003use_name='sbaumann'
db_003use_pw='0897B482054336CD8F8E9C8144E868B1'
db_003use_tmstmp='2020-11-20 07:15:17.426222'
db_003use_doc=''
db_003use_enabled='1'
db_003use_bez='Stefanie Baumann'
db_003use_authrole=''
db_034pro_id='1'
db_003use_auth_method='LOCAL'
db_003use_state='USER_AVAILABLE'
db_003use_statusText='Verfügbar'
db_107ava_id='6'
db_011acc_id='7'
db_011acc_tmstmp='2020-03-06 10:14:13.207059'
db_011acc_voiidwatch='8'
db_011acc_calleridnum=''
db_020fax_id='2'
db_009ext_id='21'
db_011acc_pin='C7F799F62538EB357D2F6CDE4C2F9980'
db_016voi_id='8'
db_011acc_callwaiting=''
db_020fax_email='sbaumann@voipjack.de'
db_020fax_caption=''
db_020fax_tmstmp='2020-03-06 09:14:50.586919'
db_010dev_id='18'
db_066dev_id='3'
db_068bas_id=''
db_010dev_bez='Fax Stefanie Baumann'
db_010dev_tmstmp='2020-03-06 09:14:50.586919'
db_090por_id=''
db_010dev_token=''
db_010dev_caption=''
db_009ext_extension='302'
db_009ext_tmstmp='2020-03-06 09:14:50.586919'
db_028pho_id=''
TEMPLATE=de
SENDTO=sbaumann@voipjack.de
ModemDialCmd: AT+VSID=302\nATDT%s
LocalIdentifier: "name of pbx"
}
Data in Response explained
Data | Description |
---|---|
003use_id | ID of the user |
003use_lastlogin | Last login via the pascom client |
003use_name | Login name of the user |
003use_pw | MD5 Hash of user password |
003use_tmstmp | tmstmp are changed when some data in the row is changed |
003use_doc | Notes / documentation of the user |
003use_enabled | User with 003use_enabled=false can’t authenticate to the pascom server. Enables/Disables the Users login function. |
003use_bez | Display name of the user |
003use_authrole | Role of the user wihtin the pascom phone system |
034pro_id | Preferred language |
003use_auth_method | Authentication method: local = against pascom, extern = via LDAP |
003use_state | State of the user e.g. USER_UNKNOWN, USER_AVAILABLE, USER_AWAY, USER_BUSY |
003use_statusText | State text shown to all Users |
107ava_id | Avatar Id |
011acc_id | Account ID |
011acc_tmstmp | tmstmp are changed when some data in the row is changed |
011acc_voiidwatch | Monitored voicemailbox |
011acc_calleridnum | Own caller ID number |
020fax_id | Fax Device Id |
009ext_id | Extension Id |
016voi_id | ID of the voicemailbox |
011acc_callwaiting | Is call waiting enabled? “true/false” |
020fax_email | Email address for the virtual fax |
020fax_caption | Customized caption for the fax |
020fax_tmstmp | tmstmp are changed when some data in the row is changed |
010dev_id | Device Id |
066dev_id | ID of the device |
066dev_bez | Type of the device |
010dev_bez | Automatically generated description of the device |
010dev_tmstmp | tmstmp are changed when some data in the row is changed |
090por_id | Port Id |
010dev_token | Provisioning token |
010dev_caption | Individual description of the Device |
009ext_extension | Internal extension of the user |
009ext_tmstmp | tmstmp are changed when some data in the row is changed |
028pho_id | Phonebook entry Id |
TEMPLATE | Language of the virtual fax usage |
SENDTO | PFax documents send to email address |
ModemDialCmd | Internal command for sending fax |
LocalIdentifier | Name of the phone system |
/faxserver
With the /faxdevice command you get informations about your virtual fax server on the pascom phone system. Perform actions on the fax server directly via the pascom REST API.
GET / Fax Server Configuration
With the following query you will receive the configuration data of your virtual fax server on the pascom telephone system.
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/faxserver/
curl -X GET "https://pascom.cloud/yourpbx/services/faxserver/" -H "accept: */*"
Get a Server Response (JSON)
[
{
"027mod_id": 1,
"027mod_quantity": "2",
"027mod_tmstmp": "2021-02-16 08:26:51.282084",
"027mod_inbound": "1",
"027mod_mailmode": "attachment",
"027mod_mailserver": "TestServer",
"027mod_mailprotocol": "IMAP",
"027mod_mailusername": "Test",
"027mod_mailpassword": "53F05CAF712FDF55CC6D7D0C5D311327",
"027mod_mailignorecert": "yes",
"027mod_mailpollinterval": "60",
"027mod_mailremovefrommb": "no",
"027mod_caption": "bootcamp",
"027mod_connection": "ssl"
}
]
Data in Response explained
Data | Description |
---|---|
027mod_id | ID of the virtual fax server |
027mod_quantity | Total number of fax lines |
027mod_tmstmp | tmstmp are changed when some data in the row is changed |
027mod_inbound | Dedicated lines for inbound |
027mod_mailmode | off = Disabled, content = Fax with content of the email, attachement = Fax only attachment |
027mod_mailserver | Name of the mailserver |
027mod_mailprotocol | Transport pop3 or imap |
027mod_mailusername | Mailserver username |
027mod_mailpassword | MD5 Hash of mailserver password |
027mod_mailignorecert | Ignore invalid certificates - yes or no |
027mod_mailpollinterval | Polling interval in seconds |
027mod_mailremovefrommb | Remove from mailbox - yes or no |
027mod_caption | Customized Name for the Fax Server |
027mod_connection | Connection Type - SSL, StartTLS, Plain |
GET / List all received Facsimiles
With the following query you will receive detailed data of all received Facsimiles on the pascom telephone system.
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/faxserver/received
curl -X GET "https://pascom.cloud/yourpbx/services/faxserver/received" -H "accept: */*"
Get a Server Response (JSON)
{
"fax000000010.tif": {
"filename": "fax000000010.tif",
"": "fax000000010.tif",
"sender": "yourpbx",
"pages": "4",
"quality": "Fine",
"page": "default",
"received": "2021-02-16 09:39:50",
"timetorecv": "0:02:38",
"signalrate": "9600 bit/s",
"dataformat": "2-D MMR",
"errcorrect": "Yes",
"callid1": "301",
"callid2": "1613464778194_20",
"callid3": "<NONE>",
"callid4": "301",
"subaddress": "",
"sigrate": "9600",
"error": "",
"duration": "0:02:38",
"length": "4294967295",
"size": "156272",
"owner": "10",
"resolution": "196",
"time": "2021/02/16 08.42.20",
"width": "1728",
"receiving": "",
"cidname": "1613464778194_20",
"cidnumber": "301",
"066dev_id": 3,
"066dev_bez": "Virtual Fax Device",
"066dev_tmstmp": "2018-08-03 12:52:51.10237",
"010dev_id": 17,
"068bas_id": null,
"010dev_bez": "Fax Andreas Grassl",
"010dev_tmstmp": "2020-03-06 09:14:24.719775",
"009ext_id": 4,
"090por_id": null,
"010dev_token": null,
"010dev_caption": null,
"009ext_extension": "301",
"009ext_tmstmp": "2020-03-06 09:14:24.719775",
"028pho_id": null,
"srtp_mode": 0,
"020fax_id": 1,
"020fax_email": "schulung@pascom.io",
"020fax_caption": null,
"020fax_tmstmp": "2020-03-06 09:14:24.719775",
"011acc_id": 2,
"011acc_tmstmp": "2021-02-16 08:37:27.299591",
"011acc_voiidwatch": 2,
"011acc_calleridnum": null,
"003use_id": 3,
"016voi_id": 2,
"011acc_callwaiting": false,
"listtrc": "040701",
"edittrc": null,
"editid": 17,
"protocol": null,
"locatable": false,
"dynLocatable": false,
"extension": "301",
"connection": null,
"capabilities": [],
"srtp": false,
"device_caption": "Fax Andreas Grassl"
},
Data in Response explained
Data | Description |
---|---|
filename | Internal name of the fax file |
sender | Name of the sender - PBX name |
pages | Count of fax pages |
quality | Overall quality of transmission |
received | Timestamp received the fax |
timetorecv | Transmission duration for sending the fax |
signalrate | Signal Rate of the Transmission |
dataformat | Format of transmitted data |
errcorrect | Error correction - yes or no |
callid1 | Participated Caller Ids in this transmission |
subaddress | — |
sigrate | Signal Rate of transmission |
error | Errors during transmission |
duration | Duration time of transmission |
length | Document length |
size | Document size in Bytes |
owner | — |
resolution | Pixel density of Document |
time | Time of transmission |
width | — |
receiving | — |
cidname | Callerid Name |
cidnumer | Extension of Fax Receiver |
066dev_id | ID of the device |
066dev_bez | Type of the device |
066dev_tmstmp | tmstmp are changed when some data in the row is changed |
010dev_id | Device Id |
068bas_id | Base Config Id |
010dev_bez | Automatically generated description of the device |
010dev_tmstmp | tmstmp are changed when some data in the row is changed |
009ext_id | Extension Id |
090por_id | Port Id |
010dev_token | Provisioning token |
010dev_caption | Individual description of the Device |
009ext_extension | Internal extension of the user |
009ext_tmstmp | tmstmp are changed when some data in the row is changed |
028pho_id | Phonebook entry Id |
srtp_mode | 0 = disabled 1 = all supported devices (snom, yealink) and md-softphone 2 = all supported devices + generic softphone |
020fax_id | Fax Device Id |
020fax_email | Email address for the virtual fax |
020fax_caption | Customized caption for the fax |
011acc_id | Account Id |
011acc_tmstmp | tmstmp are changed when some data in the row is changed |
011acc_voiidwatch | Monitored voicemailbox |
011acc_calleridnum | Own caller ID number |
003use_id | User Id |
016voi_id | Voicemailbox Id |
011acc_callwaiting | Is call waiting enabled? “true/false” |
protocol | Protocol used by the device |
locatable | set to true if device can be assigned to the location |
dynLocatable | set to true if device can be assigned to the dynamic location (e.g. mobile phone can’t be assigned to dynamic location) |
extension | Used extension by the device |
connection | description how this device is conected e.g. via trunk, gateway |
capabilities | Functions used by the device |
srtp | true if srtp is enabled for this device |
device_caption | Overwrite the device name with your own caption |
GET / List of all sent/completed Facsimiles
With the following query you will receive a List of all sent / completed Facsimiles on the pascom telephone system.
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/faxserver/done
curl -X GET "https://pascom.cloud/yourpbx/services/faxserver/done" -H "accept: */*"
Get a Server Response (JSON)
{
"3": {
"id": "3",
"subaddress": "",
"jobtag": "Das ist ein Fax.pdf",
"notify": "schulung@pascom.io",
"sender": "schulung",
"scheduled": "2020-03-06 10:53:28",
"state": "D",
"failedTries": "0",
"totalDials": "1",
"dialstring": "302",
"failedDials": "0",
"priority": "200",
"killtime": "",
"modem": "any",
"error": "",
"totalTries": "1",
"totalPages": "1",
"time": ""
}
}
Data in Response explained
Data | Description |
---|---|
id | ID of the Fax |
subaddress | — |
jobtag | Fax title |
notify | Notify email address for transmission report |
sender | Name of the sender |
scheduled | Time of job execution |
state | D = done |
failedTries | Transmission retrys on Fail |
totalDials | Count of total dials |
dialstring | — |
priority | — |
killtime | — |
modem | — |
error | Errors during transmission |
totalTries | Count of total transmission tries |
totalPages | Count of pages send |
time | — |
GET / Receive a downloadable PDF file
With the following query you will receive a downloadable PDF file from a received Fax.
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/faxserver/received
curl -X GET "https://pascom.cloud/yourpbx/services/faxserver/received" -H "accept: */*"
Get a Server Response (JSON)
{
"fax000000001.tif": {
"filename": "fax000000001.tif",
"sender": "pascom0",
"pages": "1",
"pdf": "https://pascom-test.cloud/qatest/asset/faxserver/received/1682683633500_76.pdf?token=j_cJcr0sBZK5j1u9E_4cwQ&expires=1683097117"
},
}
Data in Response explained
Data | Description |
---|---|
filename | filename of the received fax |
sender | sender name |
pages | page count |
download url for the pdf file |
POST / Send a Fax via REST
This POST command requires several steps to send a fax via the pascom REST API. For this to work, some preparations needs to be made, which are shown below.
1. Create Fax ID and get Upload URL
In the first step we need a FAX ID, which we can create ourselves. As soon as the fax document has an ID, we get an upload URL as response from the server.
Parameters
Parameter | Type | Description |
---|---|---|
id* | String | Fax document ID e.g. TestFax1 (minimum character lengh = 8) |
*required
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpx/services/faxserver/prepare/TestFax01
curl -X GET "https://pascom.cloud/yourpbx/services/faxserver/prepare/TestFax01" -H "accept: */*"
Get a Server Response (JSON)
{
"id": "TestFax1",
"url": "/yourpbx/asset/faxserver/upload/TestFax1?token=89AUb6YK3hFuMB9t8cNzlQ&expires=1613550337"
}
Data in Response explained
Data | Description |
---|---|
id | Custom document id |
url | Upload URL (Important!: Upload URL expires after 30 Seconds) |
2. Upload Fax Document
In the next step we need to upload the fax document using the previously generated URL
Parameters
Parameter | Type | Description |
---|---|---|
id* | String | Fax document ID e.g. TestFax1 |
*required
Upload the FILE to the pascom pbx (cURL)
curl -i -F filea=@TestFax1.pdf "https://pascom.cloud/yourpbx/asset/faxserver/upload/TestFax1?token=cjpX8qcgkwv1KbaoRBTvWw&expires=1613552360"
Important! You do not need to perform any authentification with this cURL, because your credentials are included in the token.
Get a Server Response (JSON)
{
"HTTP/1.1 200 OK
Date: Wed, 17 Feb 2021 08:59:16 GMT
Server: nginx
Content-Type: application/octet-stream
Content-Length: 0"
}
3. Set the Jobdetails for a waiting Document and schedule it for sending
With the next step you can create the job for a waiting document and schedule it for sending. This creates a hylafax job on the pascom phone system and returns the hylafax id on success.
Parameters
Parameter | Type | Description |
---|---|---|
id* | String | Fax document ID e.g. TestFax1 |
*required
Actions to use
Action | Description |
---|---|
Action | send |
fax | Destination number internal or external |
tag | Define a titel for the fax transmission |
notify | Set a email address for notification |
prefix | Default - auto |
Prepare the Request Body (JSON)
{ "action": "send", "fax": "301", "tag": "TestFax", "notify": "Emailaddress", "prefix": "auto" }
Send the POST to the pascom pbx (cURL)
curl -X POST "https://pascom.cloud/yourpbx/services/faxserver/waiting/TestFax1" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"action\":\"send\",\"fax\":\"301\",\"tag\":\"TestFax\",\"notify\":\"Emailaddress\",\"prefix\":\"auto\"}"
Get a Server Response (JSON)
[
"request id is 13 (group id 13) for host localhost (1 file)"
]
(Optional) Delete a waiting Document and remove it from Server
In case you want to delete a waiting document from the server, use the following DELETE command.
Parameters
Parameter | Type | Description |
---|---|---|
id* | String | Fax document ID e.g. TestFax1 |
*required
Send the DELETE to the pascom pbx (cURL)
curl -X DELETE "https://pascom.cloud/yourpbx/services/faxserver/waiting/TestFax1" -H "accept: */*"
/gateway
With the /gateway command you can get informations about connected gateways to the pascom phone system.
GET / List all connected gateways
With the following query you will receive a complete list of all your gateways connected to the pascom phone system.
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/gateway/
curl -X GET "https://pascom.cloud/yourpbx/services/gateway/" -H "accept: */*"
GET / Current State of a specific gateway
With the following query you will get the current state from a specific gateway connected to the pascom telephone system.
Parameters
Parameter | Type | Description |
---|---|---|
macs | String | Comma separated list of mac addresses, if you need the state of more than one gateway |
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/gateway/states?macs=XXXXXXXXXXXXXXXX
curl -X GET "https://pascom.cloud/yourpbx/services/gateway/states?macs=xxxxxxxxxxxx" -H "accept: */*"
/identity
With the /identity command you can control and manage everything around users. Get data from your users and their devices. Perform actions directly via the pascom telephone system’s REST API.
GET / All User Data
With the following query you will receive a complete list of all your users on the pascom telephone system.
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/identity/
curl -X GET "https://pascom.cloud/yourpbx/services/identity/" -H "accept: */*"
Get a Server Response (JSON)
{
"003use_id": 3,
"003use_lastlogin": "2020-11-30 07:26:23.250536",
"003use_name": "agrassl",
"003use_tmstmp": "2020-11-30 07:26:23.250536",
"003use_doc": null,
"003use_enabled": true,
"003use_bez": "Andreas Grassl",
"003use_authrole": "ROLE_SYSADMIN",
"034pro_id": 1,
"003use_auth_method": "LOCAL",
"003use_state": "USER_AVAILABLE",
"003use_statusText": "Verfügbar",
"107ava_id": 11,
"011acc_id": 2,
"011acc_tmstmp": "2020-11-20 07:16:27.994049",
"011acc_voiidwatch": 2,
"011acc_calleridnum": null,
"020fax_id": 1,
"009ext_id": 4,
"016voi_id": 2,
"011acc_callwaiting": false,
"009ext_extension": "101",
"009ext_tmstmp": "2020-11-20 07:16:27.994049",
"028pho_id": 1,
"016voi_mailbox": "101",
"016voi_email": "schulung@pascom.io",
"faxextension": "301",
"xmppRoleTmstmp": "2019-11-27 08:52:16.31468",
"skills": []
}
Data in Response explained
Data | Description |
---|---|
003use_id | ID of the user |
003use_lastlogin | last login time of this user e.g. last client connection |
003use_name | Login name of the user |
003use_tmstmp | tmstmp are changed when some data in the row is changed |
003use_doc | Notes / documentation of the user |
003use_enabled | User with 003use_enabled=false can’t authenticate to the pascom server. Enables/Disables the Users login function. |
003use_bez | Display name of the user |
003use_authrole | Role of the user wihtin the pascom phone system |
034pro_id | Preferred language |
003use_auth_method | Authentication method: local = against pascom, extern = via LDAP |
003use_state | State of the user e.g. USER_UNKNOWN, USER_AVAILABLE, USER_AWAY, USER_BUSY |
003use_statusText | State text shown to all users |
107ava_id | Internal Avatar Id of the user |
011acc_id | Account ID |
011acc_tmstmp | tmstmp are changed when some data in the row is changed |
011acc_voiidwatch | Monitored voicemailbox |
011acc_calleridnum | Own caller ID number |
020fax_id | Id of the fax device assigned to the user |
009ext_id | Id of the extension |
016voi_id | ID of the voicemailbox |
011acc_callwaiting | Is call waiting enabled? “true/false” |
009ext_extension | Internal extension of the User |
009ext_tmstmp | tmstmp are changed when some data in the row is changed |
028pho_id | Phonebook entry Id |
016voi_mailbox | Internal voicemailbox extension of the user |
016voi_email | Configured email adress for the voicemailbox |
faxextension | Internal fax extension of the user |
xmppRoleTmstmp | timestamp when the user is for the first time assigned in any xmpp.group role |
skills | Data about the skills assigned to a user |
GET / Specific User Data
With the following query you will receive all data from a specific user on the pascom telephone system.
Parameters
Parameter | Type | Description |
---|---|---|
UserName | String | The login name of the user |
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/identity/tsander
curl -X GET "https://pascom.cloud/yourpbx/services/identity/tsander" -H "accept: */*"
Get a Server Response (JSON)
{
"003use_id": 4,
"003use_lastlogin": "2019-11-27 10:33:08.992277",
"003use_name": "tsander",
"003use_tmstmp": "2019-11-27 10:33:08.992277",
"003use_doc": null,
"003use_enabled": true,
"003use_bez": "Tina Sander",
"003use_authrole": null,
"034pro_id": 1,
"003use_auth_method": "LOCAL",
"003use_state": null,
"003use_statusText": null,
"107ava_id": 1,
"011acc_id": 3,
"011acc_tmstmp": "2019-11-27 09:07:45.396768",
"011acc_voiidwatch": 4,
"011acc_calleridnum": null,
"020fax_id": null,
"009ext_id": 6,
"016voi_id": 4,
"011acc_callwaiting": false,
"009ext_extension": "221",
"009ext_tmstmp": "2019-11-27 09:07:45.396768",
"028pho_id": 2,
"017pro_id": 4,
"skills": []
}
Data in Response explained
Data | Description |
---|---|
003use_id | ID of the user |
003use_lastlogin | Last login via the pascom client |
003use_name | Login name of the user |
003use_tmstmp | tmstmp are changed when some data in the row is changed |
003use_doc | Notes / documentation of the user |
003use_enabled | User with 003use_enabled=false can’t authenticate to the pascom server. Enables/Disables the Users login function. |
003use_bez | Display name of the user |
003use_authrole | Role of the user wihtin the pascom phone system |
034pro_id | Preferred language |
003use_auth_method | Authentication method: local = against pascom, extern = via LDAP |
003use_state | State of the user e.g. USER_UNKNOWN, USER_AVAILABLE, USER_AWAY, USER_BUSY |
003use_statusText | State text shown to all Users |
107ava_id | Avatar Id |
011acc_id | Account ID |
011acc_tmstmp | tmstmp are changed when some data in the row is changed |
011acc_voiidwatch | Monitored voicemailbox |
011acc_calleridnum | Own caller ID number |
020fax_id | Fax Device Id |
009ext_id | Extension Id |
016voi_id | ID of the voicemailbox |
011acc_callwaiting | Is call waiting enabled? “true/false” |
009ext_extension | Internal extension of the User |
009ext_tmstmp | tmstmp are changed when some data in the row is changed |
028pho_id | Phonebook entry Id |
017pro_id | If set, this is the currently active profile. If null, no profile is active |
016voi_mailbox | Internal voicemailbox extension of the user |
016voi_email | Configured email adress for the voicemailbox |
faxextension | Internal fax extension of the user |
xmppRoleTmstmp | timestamp when the user is for the first time assigned in any xmpp.group role |
skills | Data about the skills assigned to a user |
GET / State of a User
With the following query you will receive the state from a specific user on the pascom telephone system. (p.e is the user available/unavailable or busy)
Parameters
Parameter | Type | Description |
---|---|---|
key | String | Comma separated list of usernames. (eg. admin, johndoe, janedoe) |
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/identity/states?keys=tsander
curl -X GET "https://pascom.cloud/yourpbx/services/identity/states?keys=tsander" -H "accept: */*"
Get a Server Response (JSON)
{
"tsander": {
"state": "Unavailable",
"003use_bez": "Tina Sander"
}
}
Data in Response explained
Data | Description |
---|---|
state | The status of the Asterisk CLI “core show hints” |
003use_bez | Display name of the user |
GET / List current Devices of a User
With the following query you will receive a list of all current devices from a specific user on the pascom telephone system.
Parameters
Parameter | Type | Description |
---|---|---|
UserName | String | The users login name |
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/identity/tsander/device
curl -X GET "https://pascom.cloud/yourpbx/services/identity/tsander/device" -H "accept: */*"
Get a Server Response (JSON)
{
"pascom Softphone [Tina Sander]": {
"066dev_id": 26,
"066dev_bez": "Integrated Softphone",
"066dev_tmstmp": "2018-08-03 12:53:06.163208",
"010dev_id": 3,
"068bas_id": null,
"010dev_bez": "pascom Softphone [Tina Sander]",
"010dev_tmstmp": "2019-11-27 09:07:45.396768",
"009ext_id": 6,
"090por_id": null,
"010dev_token": null,
"010dev_caption": null,
"009ext_extension": "221",
"009ext_tmstmp": "2019-11-27 09:07:45.396768",
"028pho_id": 2,
"srtp_mode": 0,
"012loc_id": 3,
"010012devloc_intdelay": "0",
"010012devloc_inttimeout": "999",
"010012devloc_extdelay": "0",
"010012devloc_exttimeout": "999",
"010012devloc_tmstmp": "2019-11-27 09:07:45.396768",
"010012devloc_quedelay": "0",
"010012devloc_quetimeout": "999",
"010012devloc_configurable": false,
"011acc_id": 3,
"012loc_bez": "Tina Sander",
"012loc_doc": null,
"012loc_static": true,
"012loc_tmstmp": "2019-11-27 09:07:45.396768",
"011acc_tmstmp": "2019-11-27 09:07:45.396768",
"011acc_voiidwatch": 4,
"011acc_calleridnum": null,
"020fax_id": null,
"003use_id": 4,
"016voi_id": 4,
"011acc_callwaiting": false,
"003use_lastlogin": "2019-11-27 10:33:08.992277",
"003use_name": "tsander",
"003use_tmstmp": "2019-11-27 10:33:08.992277",
"003use_doc": null,
"003use_enabled": true,
"003use_bez": "Tina Sander",
"003use_authrole": null,
"034pro_id": 1,
"003use_auth_method": "LOCAL",
"003use_state": null,
"003use_statusText": null,
"107ava_id": 1,
"034pro_bez": "Deutsch",
"034pro_kz": "de",
"034pro_tmstmp": "2020-04-30 22:04:57.391568",
"034pro_locale": "de_DE",
"034pro_default": true,
"016voi_email": "tsander@testmail.de",
"016voi_mailbox": "221",
"016voi_name": "Tina Sander",
"016voi_tmstmp": "2019-11-27 09:07:45.396768",
"016voi_format": "wav",
"016voi_save": true,
"015ipd_id": 3,
"013pee_id": 3,
"015ipd_option": "{}",
"015ipd_tmstmp": "2019-11-27 09:07:45.396768",
"015ipd_nat": false,
"013pee_option": null,
"013pee_username": "jb3jT4cflUPVnO1",
"013pee_password": "9A81BFDB04909C7149D7BF467ACB2CC9",
"013pee_tmstmp": "2019-11-27 09:07:45.396768",
"listtrc": "040701",
"edittrc": "041104",
"editid": 3,
"protocol": "PJSIP",
"locatable": true,
"dynLocatable": false,
"extension": "221",
"connection": null,
"capabilities": [
"dial",
"hangup",
"offhook",
"transfer",
"hold",
"enable",
"conference",
"mute",
"dtmf"
],
"srtp": false,
"device_caption": "pascom Softphone [Tina Sander]"
}
}
Data in Response explained
Data | Description |
---|---|
066dev_id | ID of the device |
066dev_bez | Type of the device |
066dev_tmstmp | tmstmp are changed when some data in the row is changed |
010dev_id | Device Id |
068bas_id | Base Config Id |
010dev_bez | Automatically generated description of the device |
010dev_tmstmp | tmstmp are changed when some data in the row is changed |
009ext_id | Extension Id |
090por_id | Port Id |
010dev_token | Provisioning token |
010dev_caption | Individual description of the Device |
009ext_extension | Internal extension of the user |
009ext_tmstmp | tmstmp are changed when some data in the row is changed |
028pho_id | Phonebook entry Id |
srtp_mode | 0 = disabled 1 = all supported devices (snom, yealink) and md-softphone 2 = all supported devices + generic softphone |
012loc_id | Location Id |
010012devloc_intdelay | Internal delay of the device set by user / admin |
010012devloc_inttimeout | Internal timeout of the device set by user / admin |
010012devloc_extdelay | External delay of the device set by user / admin |
010012devloc_exttimeout | External timeout of the device set by user / admin |
010012devloc_tmstmp | tmstmp are changed when some data in the row is changed |
010012devloc_quedelay | Delay of calls from queues set by user / admin |
010012devloc_quetimeout | Delay of calls from queues set by user / admin |
010012devloc_configurable | Configuration from user allowed? “true/false” |
011acc_id | Account Id |
012loc_bez | Description of the Location |
012loc_doc | Location comments |
012loc_static | true = static / false = dynamic |
012loc_tmstmp | tmstmp are changed when some data in the row is changed |
011acc_tmstmp | tmstmp are changed when some data in the row is changed |
011acc_voiidwatch | Monitored voicemailbox |
011acc_calleridnum | Own caller ID number |
020fax_id | Fax Device Id |
003use_id | User Id |
016voi_id | Voicemailbox Id |
011acc_callwaiting | Is call waiting enabled? “true/false” |
003use_lastlogin | Last login via the pascom client |
003use_name | Login name of the user |
003use_tmstmp | tmstmp are changed when some data in the row is changed |
003use_doc | Notes / comments of the user |
003use_enabled | User with 003use_enabled=false can’t authenticate to the pascom server. Enables/Disables the Users login function. |
003use_bez | Display name of the user |
003use_authrole | Role of the user wihtin the pascom phone system |
034pro_id | Preferred language Id |
003use_auth_method | Authentication method: local = against pascom, extern = via LDAP |
003use_state | State of the user e.g. USER_UNKNOWN, USER_AVAILABLE, USER_AWAY, USER_BUSY |
003use_statusText | Individual status text |
107ava_id | Avatar Id |
034pro_bez | Name of the preferred language (“Deutsch”) |
034pro_kz | Language shortcode (de, en) |
034pro_locale | Local code of preferred Language (de_DE, en_EN) |
034pro_default | Is preferred Language default? (true/false) |
016voi_email | Configured email adress for the voicemailbox |
016voi_mailbox | Internal voicemailbox extension of the user |
016voi_name | name of the voicemailbox |
016voi_format | Voicemailbox Audio recorded format (wav) |
016voi_save | True = Saved serverside + send to Email False = send only Email |
015ipd_id | Ip device Id |
013pee_id | Peer Id |
015ipd_option | Sip options of the IP device |
015ipd_tmstmp | tmstmp are changed when some data in the row is changed |
015ipd_nat | True = NAT activated False= NAT deactivated |
013pee_option | Peer options |
013pee_username | Peer username |
013pee_password | Peer password |
013pee_tmstmp | tmstmp are changed when some data in the row is changed |
protocol | Protocol used by the device |
locatable | set to true if device can be assigned to the location |
dynLocatable | set to true if device can be assigned to the dynamic location (e.g. mobile phone can’t be assigned to dynamic location) |
extension | Used extension by the device |
connection | description how this device is conected e.g. via trunk, gateway |
capabilities | Functions used by the device |
srtp | true if srtp is enabled for this device |
device_caption | Overwrite the device name with your own caption |
GET / Details about a specific device of a specific user
With the following query you will receive data about a specific device from a specific user on the pascom telephone system. To find out a specific device name, list all devices of a specific user.
Parameters
Parameter | Type | Description |
---|---|---|
UserName | String | The users login name |
DevName | String | Name of the Device p.e. “010dev_bez”: “pascom Softphone[Tina Sander]” |
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/identity/tsander/device/pascomSoftphone[Tina Sander]
curl -X GET "https://pascom.cloud/yourpbx/services/identity/tsander/device/pascomSoftphone[Tina Sander]" -H "accept: */*"
Get a Server Response (JSON)
{
"066dev_id": 26,
"066dev_bez": "Integrated Softphone",
"066dev_tmstmp": "2018-08-03 12:53:06.163208",
"010dev_id": 3,
"068bas_id": null,
"010dev_bez": "pascom Softphone [Tina Sander]",
"010dev_tmstmp": "2019-11-27 09:07:45.396768",
"009ext_id": 6,
"090por_id": null,
"010dev_token": null,
"010dev_caption": null,
"009ext_extension": "221",
"009ext_tmstmp": "2019-11-27 09:07:45.396768",
"028pho_id": 2,
"srtp_mode": 0,
"012loc_id": 3,
"010012devloc_intdelay": "0",
"010012devloc_inttimeout": "999",
"010012devloc_extdelay": "0",
"010012devloc_exttimeout": "999",
"010012devloc_tmstmp": "2019-11-27 09:07:45.396768",
"010012devloc_quedelay": "0",
"010012devloc_quetimeout": "999",
"010012devloc_configurable": false,
"011acc_id": 3,
"012loc_bez": "Tina Sander",
"012loc_doc": null,
"012loc_static": true,
"012loc_tmstmp": "2019-11-27 09:07:45.396768",
"011acc_tmstmp": "2019-11-27 09:07:45.396768",
"011acc_voiidwatch": 4,
"011acc_calleridnum": null,
"020fax_id": null,
"003use_id": 4,
"016voi_id": 4,
"011acc_callwaiting": false,
"003use_lastlogin": "2019-11-27 10:33:08.992277",
"003use_name": "tsander",
"003use_tmstmp": "2019-11-27 10:33:08.992277",
"003use_doc": null,
"003use_enabled": true,
"003use_bez": "Tina Sander",
"003use_authrole": null,
"034pro_id": 1,
"003use_auth_method": "LOCAL",
"003use_state": null,
"003use_statusText": null,
"107ava_id": 1,
"034pro_bez": "Deutsch",
"034pro_kz": "de",
"034pro_tmstmp": "2020-04-30 22:04:57.391568",
"034pro_locale": "de_DE",
"034pro_default": true,
"016voi_email": "tsander@bootcamp.de",
"016voi_mailbox": "221",
"016voi_name": "Tina Sander",
"016voi_tmstmp": "2019-11-27 09:07:45.396768",
"016voi_format": "wav",
"016voi_save": true,
"015ipd_id": 3,
"013pee_id": 3,
"015ipd_option": "{}",
"015ipd_tmstmp": "2019-11-27 09:07:45.396768",
"015ipd_nat": false,
"013pee_option": null,
"013pee_username": "jb3jT4cflUPVnO1",
"013pee_password": "9A81BFDB04909C7149D7BF467ACB2CC9",
"013pee_tmstmp": "2019-11-27 09:07:45.396768",
"listtrc": "040701",
"edittrc": "041104",
"editid": 3,
"protocol": "PJSIP",
"locatable": true,
"dynLocatable": false,
"extension": "221",
"connection": null,
"capabilities": [
"dial",
"hangup",
"offhook",
"transfer",
"hold",
"enable",
"conference",
"mute",
"dtmf"
],
"srtp": false,
"device_caption": "pascom Softphone [Tina Sander]"
}
Data in Response explained
Data | Description |
---|---|
066dev_id | ID of the device |
066dev_bez | Type of the device |
066dev_tmstmp | tmstmp are changed when some data in the row is changed |
010dev_id | Device Id |
068bas_id | Base Config Id |
010dev_bez | Internal name of the device |
010dev_tmstmp | tmstmp are changed when some data in the row is changed |
009ext_id | Extension Id |
090por_id | Port Id |
010dev_token | Provisioning Token |
010dev_caption | Individual description of the Device |
009ext_extension | Extension of the user |
009ext_tmstmp | tmstmp are changed when some data in the row is changed |
028pho_id | Phonebook entry Id |
srtp_mode | 0 = disabled 1 = all supported devices (snom, yealink) and md-softphone 2 = all supported devices + generic softphone |
012loc_id | Location Id |
010012devloc_intdelay | Internal delay of the device set by user / admin |
010012devloc_inttimeout | Internal timeout of the device set by user / admin |
010012devloc_extdelay | External delay of the device set by user / admin |
010012devloc_exttimeout | External timeout of the device set by user / admin |
010012devloc_tmstmp | tmstmp are changed when some data in the row is changed |
010012devloc_quedelay | Delay of calls from queues set by user / admin |
010012devloc_quetimeout | Delay of calls from queues set by user / admin |
010012devloc_configurable | Configuration from user allowed? “true/false” |
011acc_id | Account Id |
012loc_bez | Description of the Location |
012loc_doc | Location comments |
012loc_static | true = static / false = dynamic |
012loc_tmstmp | tmstmp are changed when some data in the row is changed |
011acc_tmstmp | tmstmp are changed when some data in the row is changed |
011acc_voiidwatch | Monitored voicemailbox |
011acc_calleridnum | Own caller ID number |
020fax_id | Fax Id |
003use_id | ID of the user |
016voi_id | ID of the voicemailbox |
011acc_callwaiting | Is call waiting enabled? “true/false” |
003use_lastlogin | Last login via the pascom client |
003use_name | Login name of the user |
003use_tmstmp | tmstmp are changed when some data in the row is changed |
003use_doc | Notes / documentation of the user |
003use_enabled | User with 003use_enabled=false can’t authenticate to the pascom server. Enables/Disables the Users login function. |
003use_bez | Display name of the user |
003use_authrole | Role of the user wihtin the pascom phone system |
034pro_id | Preferred language |
003use_auth_method | Authentication method: local = against pascom, extern = via LDAP |
003use_state | State of the user e.g. USER_UNKNOWN, USER_AVAILABLE, USER_AWAY, USER_BUSY |
003use_statusText | State text shown to all Users |
107ava_id | Avatar Id |
034pro_bez | Name of the preferred language (“Deutsch”) |
034pro_kz | Language shortcode (de, en) |
034pro_locale | Local code of preferred Language (de_DE, en_EN) |
034pro_default | Is preferred Language default? (true/false) |
016voi_email | Configured email adress for the voicemailbox |
016voi_mailbox | Internal voicemailbox extension of the user |
016voi_name | Voicemailbox from User? (p.e Tina Sander) |
016voi_format | Voicemailbox Audio recorded format (wav) |
016voi_save | Voicemail files send to email? (true/false) |
015ipd_id | Ip device Id |
013pee_id | Peer Id |
015ipd_option | Sip options of the IP device |
015ipd_tmstmp | tmstmp are changed when some data in the row is changed |
015ipd_nat | True = NAT activated False= NAT deactivated |
013pee_option | Peer options |
013pee_username | Peer username |
013pee_password | Peer password |
013pee_tmstmp | tmstmp are changed when some data in the row is changed |
protocol | Protocol used by the device |
locatable | set to true if device can be assigned to the location |
dynLocatable | set to true if device can be assigned to the dynamic location (e.g. mobile phone can’t be assigned to dynamic location) |
extension | Used extension by the device |
connection | description how this device is conected e.g. via trunk, gateway |
capabilities | Functions used by the device |
srtp | true if srtp is enabled for this device |
device_caption | Overwrite the device name with your own caption |
GET / Details about default device of a specific user
With the following query you will receive data about the default device from a specific user on the pascom telephone system.
Important, to control the default device, the user must be logged in to the pascom client and a device for outgoing calls must be defined. The default device is then also the device used for outgoing calls.
Parameters
Parameter | Type | Description |
---|---|---|
UserName* | String | The users login name |
*required
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/identity/tsander/defaultdevice
curl -X GET "https://pascom.cloud/yourpbx/services/identity/tsander/defaultdevice" -H "accept: */*"
Get a Server Response (JSON)
{
"066dev_id": 26,
"066dev_bez": "Integrated Softphone",
"066dev_tmstmp": "2018-08-03 12:53:06.163208",
"010dev_id": 3,
"068bas_id": null,
"010dev_bez": "pascom Softphone [Tina Sander]",
"010dev_tmstmp": "2021-02-12 14:02:14.647804",
"009ext_id": 6,
"090por_id": null,
"010dev_token": null,
"010dev_caption": null,
"009ext_extension": "241",
"009ext_tmstmp": "2021-02-12 14:02:14.647804",
"028pho_id": 2,
"srtp_mode": 0,
"012loc_id": 3,
"010012devloc_intdelay": "60",
"010012devloc_inttimeout": "-999",
"010012devloc_extdelay": "0",
"010012devloc_exttimeout": "-999",
"010012devloc_tmstmp": "2021-02-12 13:56:52.997637",
"010012devloc_quedelay": "0",
"010012devloc_quetimeout": "-999",
"010012devloc_configurable": true,
"011acc_id": 3,
"012loc_bez": "Tina Sander",
"012loc_doc": null,
"012loc_static": true,
"012loc_tmstmp": "2021-02-12 14:02:14.647804",
"011acc_tmstmp": "2021-02-12 14:02:14.647804",
"011acc_voiidwatch": 4,
"011acc_calleridnum": null,
"020fax_id": null,
"003use_id": 4,
"016voi_id": 4,
"011acc_callwaiting": false,
"003use_lastlogin": "2021-02-15 09:32:49.509848",
"003use_name": "tsander",
"003use_tmstmp": "2021-02-15 10:32:50.132038",
"003use_doc": null,
"003use_enabled": true,
"003use_bez": "Tina Sander",
"003use_authrole": null,
"034pro_id": 1,
"003use_auth_method": "LOCAL",
"003use_state": "USER_AVAILABLE",
"003use_statusText": "Verfügbar",
"107ava_id": 1,
"034pro_bez": "Deutsch",
"034pro_kz": "de",
"034pro_tmstmp": "2020-04-30 22:04:57.391568",
"034pro_locale": "de_DE",
"034pro_default": true,
"016voi_email": "tsander@bootcamp.de",
"016voi_mailbox": "241",
"016voi_name": "Tina Sander",
"016voi_tmstmp": "2021-02-12 14:02:14.647804",
"016voi_format": "wav",
"016voi_save": true,
"015ipd_id": 3,
"013pee_id": 3,
"015ipd_option": "{}",
"015ipd_tmstmp": "2019-11-27 09:07:45.396768",
"015ipd_nat": false,
"013pee_option": null,
"013pee_username": "jb3jT4cflUPVnO1",
"013pee_password": "9A81BFDB04909C7149D7BF467ACB2CC9",
"013pee_tmstmp": "2019-11-27 09:07:45.396768",
"peerInfo": {"Asterisk Endpoint values"},
"listtrc": "040701",
"edittrc": "041104",
"editid": 3,
"protocol": "PJSIP",
"locatable": true,
"dynLocatable": false,
"extension": "241",
"connection": null,
"capabilities": [
"dial",
"hangup",
"offhook",
"transfer",
"hold",
"enable",
"conference",
"mute",
"dtmf"
],
"srtp": false,
"device_caption": "pascom Softphone [Tina Sander]"
}
Data in Response explained
Data | Description |
---|---|
066dev_id | ID of the device |
066dev_bez | Type of the device |
066dev_tmstmp | tmstmp are changed when some data in the row is changed |
010dev_id | Device Id |
068bas_id | Base Config Id |
010dev_bez | Internal name of the device |
010dev_tmstmp | tmstmp are changed when some data in the row is changed |
009ext_id | Extension Id |
090por_id | Port Id |
010dev_token | Provisioning Token |
010dev_caption | Individual description of the Device |
009ext_extension | Extension of the user |
009ext_tmstmp | tmstmp are changed when some data in the row is changed |
028pho_id | Phonebook entry Id |
srtp_mode | 0 = disabled 1 = all supported devices (snom, yealink) and md-softphone 2 = all supported devices + generic softphone |
012loc_id | Location Id |
010012devloc_intdelay | Internal delay of the device set by user / admin |
010012devloc_inttimeout | Internal timeout of the device set by user / admin |
010012devloc_extdelay | External delay of the device set by user / admin |
010012devloc_exttimeout | External timeout of the device set by user / admin |
010012devloc_tmstmp | tmstmp are changed when some data in the row is changed |
010012devloc_quedelay | Delay of calls from queues set by user / admin |
010012devloc_quetimeout | Delay of calls from queues set by user / admin |
010012devloc_configurable | Configuration from user allowed? “true/false” |
011acc_id | Account Id |
012loc_bez | Description of the Location |
012loc_doc | Location comments |
012loc_static | true = static / false = dynamic |
012loc_tmstmp | tmstmp are changed when some data in the row is changed |
011acc_tmstmp | tmstmp are changed when some data in the row is changed |
011acc_voiidwatch | Monitored voicemailbox |
011acc_calleridnum | Own caller ID number |
020fax_id | Fax Id |
003use_id | ID of the user |
016voi_id | ID of the voicemailbox |
011acc_callwaiting | Is call waiting enabled? “true/false” |
003use_lastlogin | Last login via the pascom client |
003use_name | Login name of the user |
003use_tmstmp | tmstmp are changed when some data in the row is changed |
003use_doc | Notes / documentation of the user |
003use_enabled | User with 003use_enabled=false can’t authenticate to the pascom server. Enables/Disables the Users login function. |
003use_bez | Display name of the user |
003use_authrole | Role of the user wihtin the pascom phone system |
034pro_id | Preferred language |
003use_auth_method | Authentication method: local = against pascom, extern = via LDAP |
003use_state | State of the user e.g. USER_UNKNOWN, USER_AVAILABLE, USER_AWAY, USER_BUSY |
003use_statusText | State text shown to all Users |
107ava_id | Avatar Id |
034pro_bez | Name of the preferred language (“Deutsch”) |
034pro_kz | Language shortcode (de, en) |
034pro_locale | Local code of preferred Language (de_DE, en_EN) |
034pro_default | Is preferred Language default? (true/false) |
016voi_email | Configured email adress for the voicemailbox |
016voi_mailbox | Internal voicemailbox extension of the user |
016voi_name | Voicemailbox from User? (p.e Tina Sander) |
016voi_format | Voicemailbox Audio recorded format (wav) |
016voi_save | Voicemail files send to email? (true/false) |
015ipd_id | Ip device Id |
013pee_id | Peer Id |
015ipd_option | Sip options of the IP device |
015ipd_tmstmp | tmstmp are changed when some data in the row is changed |
015ipd_nat | True = NAT activated False= NAT deactivated |
013pee_option | Peer options |
013pee_username | Peer username |
013pee_password | Peer password |
013pee_tmstmp | tmstmp are changed when some data in the row is changed |
peerInfo | Asterisk endpoint values |
protocol | Protocol used by the device |
locatable | set to true if device can be assigned to the location |
dynLocatable | set to true if device can be assigned to the dynamic location (e.g. mobile phone can’t be assigned to dynamic location) |
extension | Used extension by the device |
connection | description how this device is conected e.g. via trunk, gateway |
capabilities | Functions used by the device |
srtp | true if srtp is enabled for this device |
device_caption | Overwrite the device name with your own caption |
GET / List all profiles of a user
Receive all profiles of a specific user.
Parameters
Parameter | Type | Description |
---|---|---|
username* | String | username of the specific user - 003use_name |
*required
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/identity/tsander/profile
curl -X GET "https://pascom.cloud/yourpbx/services/identity/tsander/profile" -H "accept: */*"
Get a Server Response (JSON)
Results are ordered by desc. timestamp
[
{
"017pro_id": 18,
"017pro_bez": "Meeting",
"017pro_scope": "user",
"017pro_tmstmp": ""
},
{
"017pro_id": 4
}
]
Data in Response explained
Data | Description |
---|---|
017pro_id | Id of the profile |
017pro_bez | Description of the profile |
017pro_scope | If it is a user oder admin profile |
017pro_tmstmp | Timestamp of creation |
PUT / Change one or more Database fields of an User
With this put command you can change one or more database fields of an User. If you want to see example values, create a list of user details and use the values as a sample.
Parameters
Parameter | Type | Description |
---|---|---|
userName* | String | The users login name |
*required
Actions to use
Action | Description |
---|---|
003use_name | Login name of the user |
003use_enabled | User with 003use_enabled=false can’t authenticate to the pascom server. Enables/Disables the Users login function. (true/false=) |
003use_bez | Display name of the user |
003use_authrole | Role of the user wihtin the pascom phone system |
034pro_id | Preferred language |
003use_auth_method | Authentication method: local = against pascom, extern = via LDAP |
009ext_extension | Internal extension of the User |
016voi_email | Configured email adress for the voicemailbox |
011acc_voiidwatch | Monitored voicemailbox |
skills | Data about the skills assigned to a user |
Prepare the Request Body (JSON)
{ "009ext_extension":"250" }
Send the PUT to the pascom pbx (cURL)
curl -X PUT "https://pascom.cloud/yourpbx/services/identity/tsander" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"009ext_extension\":\"250\"}"
PUT / Update a Device for a specific User
With this PUT Command you can update the device settings of a specific device from a specific user on the pascom phone system.
Parameters
Parameter | Type | Description |
---|---|---|
userName* | String | The users login name |
*required
Actions to use
To specify the device you want to update, you need simply the name of the device. E.g. (pascom Softphone [Tina Sander]). To Update the follow me Settings of the given device, the configuration must be changeable by the user. More Information
Action | Description |
---|---|
010012devloc_intdelay | Internal delay e.g. 10 seconds |
010012devloc_inttimeout | Internal timeout e.g. 60 seconds |
010012devloc_extdelay | External delay e.g. 10 seconds |
010012devloc_exttimeout | External timeout e.g. 60 seconds |
010012devloc_quedelay | Queue delay e.g. 0 seconds |
010012devloc_quetimeout | Queue timeout e.g. 0 seconds |
Important - if you set a timeout to 0 seconds, the complete rule for e.g. the queue will be deactivated.
Prepare the Request Body (JSON)
{ "pascom Softphone [Tina Sander]": { "010012devloc_intdelay": "10", "010012devloc_inttimeout": "60", "010012devloc_extdelay": "10", "010012devloc_exttimeout": "60", "010012devloc_quedelay": "0", "010012devloc_quetimeout": "0" } }
Send the PUT to the pascom pbx (cURL)
curl -X PUT "https://pascom.cloud/yourpbx/services/identity/tsander/device" -H "accept: */*" -H "Content-Type: application/json" -d "{\"pascom Softphone [Tina Sander]\":{\"010012devloc_intdelay\":\"10\",\"010012devloc_inttimeout\":\"60\",\"010012devloc_extdelay\":\"10\",\"010012devloc_exttimeout\":\"60\",\"010012devloc_quedelay\":\"0\",\"010012devloc_quetimeout\":\"0\"}}"
PUT / Activate a profile
With this put command you can activate a profile of an user.
Actions to use
Parameter | Description |
---|---|
username* | username of the user - see 003use_name |
profileId* | Id of the profile - see 017pro_id |
*required
Prepare the Request Body (JSON)
- Empty
Send the PUT to the pascom pbx (cURL)
curl -X POST "https://pascom.cloud/yourpbx/services/identity/tsander/profile/15/activate" -H "accept: */*" -H "Content-Type: application/json"
Get a Server Response (JSON)
- 200 OK
POST / Invoke a action on a specific user
With this post command you can perform various actions on a specific user within the pascom telephone system.
Parameters
Parameter | Type | Description |
---|---|---|
userName* | String | The users login name |
*required
Actions to use
Action | Description |
---|---|
ToggleRecording | Turn on/off recording |
StartRecording | Start a recording |
StopRecording | Stop a recording |
Prepare the Request Body (JSON)
{ "action": "ToggleRecording", "sipcallid": "52f2494277a7-vl8wtu81wt3y", "channel": "PJSIP/CASpl97tFbsNUr", "deviceName": "pascom Softphone [Tina Sander]" }
Fields sipcallid, channelid and deviceName are not strictly required. If these fields are not set, the active call is automatically recorded.
How to find ChannelId and SipCallId?
Log in to the web interface of your pascom telephone system. Then open the Asterisk CLI via the Terminal-Logo.
More Information about the pascom TUI/CLI
Start a new call or track an existing call via the Terminal Console.
In the Log you can find the ChannelId and the SipCallId of a call.
Send the POST to the pascom pbx (cURL)
curl -X POST "https://pascom.cloud/yourpbx/services/identity/tsander/action" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"action\":\"ToggleRecording\",\"sipcallid\":\"52f2494277a7-vl8wtu81wt3y\",\"channel\":\"PJSIP/CASpl97tFbsNUr\",\"deviceName\":\"pascom Softphone [Tina Sander]\"}"
POST / Invoke a action on a specific device of the given user
Control specific devices of a user with this command. For example, you can start calls and hang up, as well as perform a number of other actions.
Parameters
Parameter | Type | Description |
---|---|---|
userName* | String | The users login name |
devName* | String | The name of the device |
*required
Actions to use
Action | Description |
---|---|
Action | Possible Actions: dial pickup hangup offhook hold transfer conference dtmf |
Destination | Number internal or external |
Prefix | Use a Prefix or leave it on “auto” |
Prepare the Request Body (JSON)
{ "action": "dial", "destination": "101", "prefix": "auto" }
Send the POST to the pascom pbx (cURL)
curl -X POST "https://pascom.cloud/yourpbx/services/identity/tsander/device/pascom Softphone [Tina Sander]/action" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"action\":\"dial\",\"destination\":\"101\",\"prefix\":\"auto\"}"
Get a Server Response (JSON)
{
"response": "dial commited"
}
POST / Invoke a action on a specific users default device
Control the default device of a user with this command. For example, you can start calls and hang up, as well as perform a number of other actions. Important, to control the default device, the user must be logged in to the pascom client and a device for outgoing calls must be defined. The default device is then also the device used for outgoing calls.
Parameters
Parameter | Type | Description |
---|---|---|
userName* | String | The users login name |
*required
Actions to use
Action | Description |
---|---|
Action | Possible Actions: dial pickup hangup offhook hold transfer conference dtmf |
Destination | Number internal or external |
Prefix | Use a Prefix or leave it on “auto” |
Prepare the Request Body (JSON)
{ "action": "dial", "destination": "101", "prefix": "auto" }
Send the POST to the pascom pbx (cURL)
curl -X POST "https://pascom.cloud/yourpx/services/identity/tsander/defaultdevice/action" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"action\":\"dial\",\"destination\":\"101\",\"prefix\":\"auto\"}"
Get a Server Response (JSON)
{
"response": "dial commited"
}
POST / Validate a user PIN
With this command you can perform a MD5 based comparison of the users PIN.
Parameters
Parameter | Type | Description |
---|---|---|
userName* | String | The users login name |
*required
Actions to use
Action | Description |
---|---|
PIN | MD5 hash of the PIN Example: 81dc9bdb52d04dc20036dbd8313ed055 |
Prepare the Request Body (JSON)
{ "PIN": "81dc9bdb52d04dc20036dbd8313ed055" }
Send the POST to the pascom pbx (cURL)
curl -i -H "Authorization:Basic ..." -X POST "https://pascom-test.cloud/qatest/services/identity/7007/validatePin" -H "Content-Type: application/json" -d "{\"PIN\":\"81dc9bdb52d04dc20036dbd8313ed055\"}"
/ipdevice
With the /ipdevice command you can receive informations about your IPDevices on the pascom phone system. Get the state of the devices and or a list of all generic IP Phones.
GET / Device state for a list of devices
With the following get command you will receive a list of states for all your IPdevices on the pascom telephone system. Customize your query and build your own lists.
Parameters
Parameter | Type | Description |
---|---|---|
keys | String | Comma separated list of device names. |
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/ipdevice/states
curl -X GET "https://pascom.cloud/yourpbx/services/ipdevice/states" -H "accept: */*"
Get a Server Response (JSON)
{
"mobile 2 [Veronika Mendes]": {
"state": "Unavailable",
"010dev_bez": "mobile 2 [Veronika Mendes]",
"010dev_id": 2,
"013pee_username": "vcn4Z4eBgcREdbC",
"ip_address": ""
},
"Snom 000413a301e5 [Stefanie Baumann]": {
"state": "Unavailable",
"010dev_bez": "Snom 000413a301e5 [Stefanie Baumann]",
"010dev_id": 27,
"013pee_username": "MmT5k1Q2Fa301e5",
"ip_address": ""
},
"pascom Softphone [Markus Weber]": {
"state": "Unavailable",
"010dev_bez": "pascom Softphone [Markus Weber]",
"010dev_id": 4,
"013pee_username": "ZCi6aKqYTGxOVyY",
"ip_address": ""
}
Data in Response explained
Data | Description |
---|---|
state | The status of the Asterisk CLI “core show hints” |
010dev_bez | Automatically generated description of the device |
010dev_id | Device Id |
013pee_username | Peer username |
ip_address | IP Address of the device |
GET / List all generic sip devices
With the following get command you will receive a list of all your generic IP Devices on the pascom telephone system.
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/ipdevice/
curl -X GET "https://pascom.cloud/yourpbx/services/ipdevice/" -H "accept: */*"
Get a Server Response (JSON)
[
{
"066dev_id": 1,
"066dev_bez": "Generic SIP Phone",
"066dev_tmstmp": "2018-08-03 12:52:49.136529",
"010dev_id": 29,
"068bas_id": 11,
"010dev_bez": "SIP EGA2MQMhL8uUuYW [Nicht zugeordnet]",
"010dev_tmstmp": "2021-01-22 08:54:51.994976",
"009ext_id": null,
"090por_id": null,
"010dev_token": "v1-1QgEgvqBf87H480p",
"010dev_caption": "Xlite",
"015ipd_id": 27,
"013pee_id": 27,
"015ipd_option": "{}",
"015ipd_tmstmp": "2021-01-22 08:54:51.994976",
"015ipd_nat": false,
"013pee_option": null,
"013pee_username": "EGA2MQMhL8uUuYW",
"013pee_tmstmp": "2021-01-22 08:54:51.994976",
"013pee_password_md5": "6a858c4b08b4f3f5ea994635b86196e1"
}
]
Data in Response explained
Data | Description |
---|---|
066dev_id | ID of the device |
066dev_bez | Type of the device |
066dev_tmstmp | tmstmp are changed when some data in the row is changed |
010dev_id | Device Id |
068bas_id | Base Config Id |
010dev_bez | Automatically generated description of the device |
010dev_tmstmp | tmstmp are changed when some data in the row is changed |
009ext_id | Extension Id |
090por_id | Port Id |
010dev_token | Provisioning token |
010dev_caption | Individual description of the Device |
015ipd_id | Ip device Id |
013pee_id | Peer Id |
015ipd_option | Sip options of the IP device |
015ipd_tmstmp | tmstmp are changed when some data in the row is changed |
015ipd_nat | True = NAT activated False= NAT deactivated |
013pee_option | Peer options |
013pee_username | Peer username |
013pee_tmstmp | tmstmp are changed when some data in the row is changed |
013pee_password_md5 | Peer password as md5 hash |
/ipphone
With the /ipphone command you can control and manage everything around IP hardware phones. Get data from your devices and perform actions directly via the pascom telephone system’s REST API.
GET / List all IP Phones
With the following get command you will receive a complete list of all your IP phones on the pascom telephone system.
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/ipphone/
curl -X GET "https://pascom.cloud/yourpbx/services/ipphone/" -H "accept: */*"
Get a Server Response (JSON)
{
"071ipp_id": 5,
"071ipp_mac": "000413a301e5",
"071ipp_authuser": "admin",
"071ipp_cur_fw": "10.1.49.11",
"071ipp_cur_model": "D735",
"071ipp_cur_request": "2020-10-15 14:15:59",
"071ipp_cur_info": "successful",
"071ipp_tmstmp": "2020-10-15 12:07:38.065471",
"069fir_id": null,
"015ipd_id": 25,
"010dev_id": 27,
"013pee_id": 25,
"015ipd_option": "{}",
"015ipd_tmstmp": "2020-10-15 12:15:59.57324",
"015ipd_nat": false,
"066dev_id": 5,
"068bas_id": 1,
"010dev_bez": "Snom 000413a301e5 [Stefanie Baumann]",
"010dev_tmstmp": "2020-10-15 12:07:38.065471",
"009ext_id": null,
"090por_id": null,
"010dev_token": "v1-MBNkypy6Ww51usz7",
"010dev_caption": "Baumann Snom",
"068bas_bez": "Snom",
"068bas_doc": "Snom",
"068bas_default": "1",
"068bas_tmstmp": "2020-12-14 21:38:56.491254",
"068bas_config": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<settings>\n
<phone-settings>\n \n {{!-- Preferences --}}\n <language perm=\"R\">
{{{list_key lang \"de_DE\" \"Deutsch\" \"en_US\" \"English\"}}}</language>\n
<pnp_config perm=\"R\">off</pnp_config>\n
<http_user perm=\"R\">{{{071ipp_authuser}}}</http_user>\n
<http_pass perm=\"R\">{{{071ipp_authpass}}}</http_pass>\n
.........................................................",
"068bas_scope": "system",
"066dev_bez": "Snom Phone",
"066dev_tmstmp": "2018-08-03 12:52:52.19567",
"071ipp_authpass_md5": "21232f297a57a5a743894a0e4a801fc3"
}
Data in Response explained
Data | Description |
---|---|
071ipp_id | ID of the IP phone |
071ipp_mac | Mac address of the IP phone |
071ipp_authuser | User to authenticate on the PUI |
071ipp_cur_fw | Current Firmware |
071ipp_cur_model | IP Phone Model |
071ipp_cur_request | Timestamp of the request |
071ipp_cur_info | Request state info |
071ipp_tmstmp | tmstmp are changed when some data in the row is changed |
069fir_id | Firmware ID |
015ipd_id | IP device Id |
010dev_id | Device Id |
013pee_id | Peer Id |
015ipd_option | Sip options of the IP device |
015ipd_tmstmp | tmstmp are changed when some data in the row is changed |
015ipd_nat | True = NAT activated False= NAT deactivated |
066dev_id | ID of the device |
068bas_id | Base Config Id |
010dev_bez | Automatically generated description of the device |
010dev_tmstmp | tmstmp are changed when some data in the row is changed |
009ext_id | Extension Id |
090por_id | Port Id |
010dev_token | Provisioning token |
010dev_caption | Individual description of the Device |
068bas_bez | Automatically generated description of the base config |
068bas_doc | Base Config documentation field |
068bas_default | 0 = not the default base configuration 1 = is default base configuration |
068bas_tmstmp | tmstmp are changed when some data in the row is changed |
068bas_config | complete base config |
068bas_scope | “custom” or “system” base configuration |
066dev_bez | Type of the device |
066dev_tmstmp | tmstmp are changed when some data in the row is changed |
071ipp_authpass_md5 | Auth pass in md5 hash |
GET / Details about a specific IP Phone
With the following get command you will receive detailed data of a specific IP phone on the pascom telephone system.
Parameter | Type | Description |
---|---|---|
mac* | String | Mac address of the ipphone |
*required
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/ipphone/00041fffffff
curl -X GET "https://pascom.cloud/yourpbx/services/ipphone/00041fffffff" -H "accept: */*"
Get a Server Response (JSON)
{
"010dev_id": 31,
"066dev_id": 5,
"068bas_id": 1,
"010dev_bez": "Snom 000413850046 [Andreas Grassl]",
"010dev_tmstmp": "2021-02-08 10:23:58.030167",
"009ext_id": null,
"090por_id": null,
"010dev_token": "v1-rt2pDhKsha5be4G4",
"010dev_caption": null,
"066dev_bez": "Snom Phone",
"066dev_tmstmp": "2018-08-03 12:52:52.19567",
"015ipd_id": 29,
"013pee_id": 34,
"015ipd_option": "{}",
"015ipd_tmstmp": "2021-02-08 10:23:58.030167",
"015ipd_nat": false,
"013pee_option": null,
"013pee_username": "Tj2FymJBH850046",
"013pee_password": "jJdv5qRiFiSlPry",
"013pee_tmstmp": "2021-02-08 10:23:58.030167",
"071ipp_id": 8,
"071ipp_mac": "00041fffffff",
"071ipp_authuser": null,
"071ipp_cur_fw": null,
"071ipp_cur_model": null,
"071ipp_cur_request": null,
"071ipp_cur_info": null,
"071ipp_tmstmp": "2021-02-08 10:23:58.030167",
"069fir_id": null,
"capabilities": [
"conference",
"dial",
"factory_reset",
"firmware_update",
"hangup",
"hold",
"transfer",
"offhook",
"reboot",
"probe",
"dtmf"
],
"ip_address": "",
"071ipp_authpass_md5": "d41d8cd98f00b204e9800998ecf8427e"
}
Data in Response explained
Data | Description |
---|---|
010dev_id | Device Id |
066dev_id | ID of the device |
068bas_id | Base Config Id |
010dev_bez | Automatically generated description of the device |
010dev_tmstmp | tmstmp are changed when some data in the row is changed |
009ext_id | Extension Id |
090por_id | Port Id |
010dev_token | Provisioning token |
010dev_caption | Individual description of the Device |
066dev_bez | Type of the device |
066dev_tmstmp | tmstmp are changed when some data in the row is changed |
015ipd_id | IP device Id |
013pee_id | Peer Id |
015ipd_option | Sip options of the IP device |
015ipd_tmstmp | tmstmp are changed when some data in the row is changed |
015ipd_nat | True = NAT activated False= NAT deactivated |
013pee_option | Peer Options |
013pee_username | Peer username |
013pee_password | Peer password |
013pee_tmstmp | tmstmp are changed when some data in the row is changed |
071ipp_id | ID of the IP phone |
071ipp_mac | Mac address of the IP phone |
071ipp_authuser | User to authenticate on the PUI |
071ipp_cur_fw | Current Firmware |
071ipp_cur_model | IP Phone Model |
071ipp_cur_request | Timestamp of the request |
071ipp_cur_info | Request state info |
071ipp_tmstmp | tmstmp are changed when some data in the row is changed |
069fir_id | Firmware ID |
capabilities | Functions used by the device |
ip_address | IP Address of the ipphone |
071ipp_authpass_md5 | Auth pass in md5 hash |
POST / Invoke a action on a specific IP Phone
With the following post command you can perform various actions on a specific IP phone within the pascom telephone system.
Parameters
Parameter | Type | Description |
---|---|---|
mac* | String | Mac address of the ipphone |
*required
Actions to use
Action | Description |
---|---|
Action | Possible Actions: dial pickup hangup offhook hold transfer conference dtmf |
Destination | Number internal or external |
Prepare the Request Body (JSON)
- e.g. perform a dial action on the ip phone
{ "action": "dial", "destination": "101" }
Send the POST to the pascom pbx (cURL)
curl -X POST "https://pascom.cloud/yourpbx/services/ipphone/00041fffffff/action" -H "accept: application/json" -H "Content-Type: application/json" -d "{ "action": "dial", "destination": "101", }"
/location
With the /location command you can receive informations about locations / workspaces on your pascom phonesystem. Furthermore you can Login and Logout a user from an location or relocate to another location.
GET / Get a list with all dynamic locations
With the following get command you will receive a complete list of all your dynamic locations on the pascom telephone system.
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/location/
curl -X GET "https://pascom.cloud/yourpbx/services/location/" -H "accept: */*"
Get a Server Response (JSON)
[
{
"012loc_id": 21,
"011acc_id": 6,
"012loc_bez": "HomeOffice",
"012loc_doc": null,
"012loc_static": false,
"012loc_tmstmp": "2021-01-22 09:53:43.336609",
"011acc_tmstmp": "2019-11-27 09:07:48.721753",
"011acc_voiidwatch": 7,
"011acc_calleridnum": null,
"020fax_id": null,
"003use_id": 7,
"009ext_id": 9,
"016voi_id": 7,
"011acc_callwaiting": false,
"003use_lastlogin": "2019-11-27 10:26:16.607283",
"003use_name": "aturitzo",
"003use_tmstmp": "2019-11-27 11:26:22.711736",
"003use_doc": null,
"003use_enabled": true,
"003use_bez": "Adrian Turitzo",
"003use_authrole": null,
"034pro_id": 1,
"003use_auth_method": "LOCAL",
"003use_state": null,
"003use_statusText": null,
"107ava_id": 4
}
]
Data in Response explained
Data | Description |
---|---|
012loc_id | Location Id |
011acc_id | Account ID |
012loc_bez | Description of the Location |
012loc_doc | Location comments |
012loc_static | true = static / false = dynamic |
012loc_tmstmp | tmstmp are changed when some data in the row is changed |
011acc_tmstmp | tmstmp are changed when some data in the row is changed |
011acc_voiidwatch | Monitored voicemailbox |
011acc_calleridnum | Own caller ID number |
020fax_id | Fax Device Id |
003use_id | User Id |
009ext_id | Id of the extension |
016voi_id | ID of the voicemailbox |
011acc_callwaiting | Is call waiting enabled? “true/false” |
003use_lastlogin | Last login via the pascom client |
003use_name | Login name of the user |
003use_tmstmp | tmstmp are changed when some data in the row is changed |
003use_doc | Notes / comments of the user |
003use_enabled | User with 003use_enabled=false can’t authenticate to the pascom server. Enables/Disables the Users login function. |
003use_bez | Display name of the user |
003use_authrole | Role of the user wihtin the pascom phone system |
034pro_id | Preferred language Id |
003use_auth_method | Authentication method: local = against pascom, extern = via LDAP |
003use_state | State of the user e.g. USER_UNKNOWN, USER_AVAILABLE, USER_AWAY, USER_BUSY |
003use_statusText | Individual status text |
107ava_id | Avatar Id |
POST / Logout a user from location or relocate to another location
With the following post command you you can Login and Logout a user from an location or relocate to another location.
Parameters
Parameter | Type | Description |
---|---|---|
param* | String | Name of the target location or ID of the target location, e.g HomeOffice |
*required
Prepare the Request Body (JSON)
- To logout a user from location send a JSON Object with the corresponding parameters.
{"action":"logout","username":"admin"}
or
{"action":"logout","extension":"9999"}
- To relocate a user send {“username”:“admin”} or {“extension”:“9999”}
{"action":"relocate","username":"admin"}
or
{"action":"relocate","extension":"9999"}
Send the POST to the pascom pbx (cURL)
curl -X POST "https://pascom.cloud/yourpbx/services/location/HomeOffice" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"action\":\"logout\",\"username\":\"aturitzo\"}"
/monitor
With the /monitor command you can manage and download your call recordings on the pascom telephone system
GET / Call Detail Information including recordings
Return query specific data of your phonecall records located on your pascom telephone system including recordings. By default entries are in descending order. Only entries with at least one recording are included.See /cdr command for query details.
Parameters
Parameter | Type | Description | Example Value |
---|---|---|---|
id | integer | Phonecall record ID | 284 |
phonecallid | integer | Phonecall ID, not unique | 1 |
chain | string | chain ID | 1600937255312_3 |
chaindata | bool | Include full chain of records | true / false |
parentid | integer | Parent phonecall record ID | 283 |
limit | integer | Limit number of the fetched records | 5 |
timefrom | string | Unix timestamp (miliseconds) or YYYY-MM-DD. Fetch records with timestamp equal to or newer than this value | 2020-11-30 |
timeto | string | Unix timestamp (miliseconds) or YYYY-MM-DD. Fetch records with timestamp equal to or older than this value | 2020-11-30 |
srcuserid | string | Id of the caller | 3 |
srcusername | string | The caller username | mmustermann |
srcextension | string | The Caller internal extension | 101 |
srcname | string | The caller display name. Wildcard % is allowed | Max Mustermann |
srcnumber | string | The caller number. Wildcard % is allowed | 101 |
srcdeviceid | string | The caller device ID | 1 |
srcdevicename | string | The caller device name | pascom Softphone [Max Mustermann] |
srclocationid | integer | The caller location ID | – |
srclocationname | string | The caller location name | – |
srcphonebookentryid | integer | The caller phonebook entry ID | 1 |
srcprefix | string | Prefix for incoming calls | – |
srcinternal | bool | “false” for external callers, “true” for internal callers. If ommited, internal and external callers | true / false |
dstuserid | integer | The call recipient ID | 3 |
dstusername | string | The call recipient username | ameyer |
dstextension | string | The call recipient extension | 230 |
dstname | string | The call recipient display name. Wildcard % is allowed | Anna Meyer |
dstnumber | string | The call recipient number. Wildcard % is allowed | 230 or external number |
dstdeviceid | integer | The call recipient device ID | 3 |
dstdevicename | string | The call recipient device name | pascom Softphone [Anny Meyer] |
dstlocationid | integer | The call recipient location ID | – |
dstlocationname | string | The call recipient location name | – |
dstphonebookentryid | integer | The call recipient phonebook entry ID | 17 |
dstprefix | string | Prefix for outbound calls | – |
dstinternal | bool | “false” for external call recipients, “true” for internal call recipients. If ommited, both internal and external call recipients | true / false |
durationfrom | integer | Fetch records with equal or longer duration than given value in Seconds | 120 |
connectedfrom | integer | Fetch records with equal or longer connection time than given value in Seconds. | 60 |
holddurationfrom | integer | Fetch records with equal or longer held time than given value in Seconds. | 180 |
held | bool | “true” for held calls, “false” for not held calls. If ommited filter will not apply | true / false |
recorded | bool | “true” for recorded calls, “false” for non recorded calls. If ommited filter will not apply | true / false |
recordid | string | Call recording (monitoring) ID | – |
result | string | Result of the call process | noanswer, hangup, transfer |
resultDetails | string | Details of the results | voicemail, src, dst, abondon, elsewhere, timeout, picked, caller, agent |
via | string | Origin of the call process | noanswer, queue, transfer, fax |
viadetail | string | Initiator of the call process | action, src, dst, caller, agent, picked |
order | string | Sort of result | asc, desc |
calldata | bool | Include call detail information | true / false |
calcduration | bool | If true duration of each recording will be calculated. Can be slow! | true / false |
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/monitor/?id=601
curl -X GET "https://pascom.cloud/yourpbx/services/monitor/?id=601" -H "accept: */*"
Get a Server Response (JSON)
Descending order by timestamp by default
{
"id": 601,
"timestamp": 1633588307540,
"time": "2021-10-07T06:31:47 +0000",
"parentId": "",
"chain": "1633588307546_2",
"phonecallId": 2,
"result": "hangup",
"resultDetails": "",
"via": "",
"viaDetails": "",
"recordId": "1633588307.14_1633588308.25",
"duration": 14,
"connected": 7,
"holdCount": 0,
"holdDuration": 0,
"srcInternal": true,
"srcUserId": 10,
"srcUserName": "lmeier",
"srcName": "Linda Meier",
"srcDeviceId": 15,
"srcDeviceName": "pascom Softphone [Linda Meier]",
"srcLocationId": 9,
"srcLocationName": "Linda Meier",
"srcPrefix": "",
"srcNumber": "216",
"srcExtension": "216",
"srcPhonebookEntryId": 9,
"dstInternal": true,
"dstUserId": 4,
"dstUserName": "agrassl",
"dstName": "Andreas Grassl",
"dstDeviceId": 4,
"dstDeviceName": "pascom Softphone [Andreas Grassl]",
"dstLocationId": 3,
"dstLocationName": "Andreas Grassl",
"dstPrefix": "",
"dstNumber": "102",
"dstExtension": "102",
"dstPhonebookEntryId": 2,
"data": [],
"recordings": [
{
"ruleid": "1",
"file": "1",
"state": "n",
"type": "auto",
"formats": [
{
"format": "wav",
"size": 111724
}
]
}
]
}
Data in Response explained
Data | Description |
---|---|
id | ID of the call record |
timestamp | Internal UNIX timestamp |
time | Time of the call record (human readable) |
parentId | ID of the parent phonecall record |
chain | Chain Id of all phonerecords that belong to the chain |
phonecallId | Phonecall Id |
result | Result of the call process like noanswer, hangup, transfer |
resultDetails | Details of the results like voicemail, src, dst, abondon, elsewhere, timeout, picked, caller, agent |
via | Origin of the call process p.e. noanswer, queue, transfer, fax |
viaDetails | Initiator of the call process p.e. action, src, dst, caller, agent, picked |
recordId | Call recording (monitoring) ID |
duration | Complete Duration of the call in seconds |
connected | Time of call connected in seconds |
holdCount | How many times the call was on hold during this call |
holdDuration | Duration the call was onhold |
srcInternal | “false” for external callers, “true” for internal callers |
srcUserId | Id of the caller |
srcUserName | The caller username |
srcName | The caller display name |
srcDeviceId | The caller device ID |
srcDeviceName | The caller device name |
srcLocationId | The caller location ID |
srcLocationName | The caller location name |
srcPrefix | Prefix for incoming calls |
srcNumber | The caller number |
srcExtension | The Caller internal extension |
srcPhonebookEntryId | The caller phonebook entry ID |
dstInternal | “false” for external call recipients, “true” for internal call recipients |
dstUserId | The call recipient ID |
dstUserName | The call recipient username |
dstName | The call recipient display name |
dstDeviceId | The call recipient device ID |
dstDeviceName | The call recipient device name |
dstLocationId | The call recipient location ID |
dstLocationName | The call recipient location name |
dstPrefix | Prefix for outbound calls |
dstNumber | The call recipient number |
dstExtension | The call recipient extension |
dstPhonebookEntryId | The call recipient phonebook entry ID |
data | JSON containing additional data |
recordings | JSON containing additional recording data |
ruleid | The monitor rule which triggered/allowed the recording. In the case of splitted recordings, prefixes r_ and t_ should be used. r_ for caller part and t_ for callee part |
file | Number of the recording within this call (usually 1) |
state | t = Temporary. The recording is still in progress and the conversation is not finished. n = New. The Call has been terminated and no more files will be added. a = Archive. As soon as the post-processing task has processed a call, it marks the files with the Archive flag. |
type | Start recording automatical or manual |
format | File format of the recording |
size | Filesize in kb |
GET / Details about recordings for one specific call
Return detailed informations about a recording of a specific call. For query you will need a recordid.
Parameters
Parameter | Type | Description | Example Value |
---|---|---|---|
recordid* | string | Recording ID of the call | 1633588307.14_1633588308.25 |
calldata | bool | Include call detail information | True / False |
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/monitor/1633590916.26_1633590917.37?calldata=false
curl -X GET "https://pascom.cloud/yourpbx/services/monitor/1633590916.26_1633590917.37?calldata=false" -H "accept: */*"
Get a Server Response (JSON)
{
"recordId": "1633590916.26_1633590917.37",
"recordings": [
{
"ruleid": "1",
"file": "1",
"state": "n",
"duration": 6,
"type": "auto",
"formats": [
{
"format": "wav",
"size": 93164
}
]
}
]
}
Data in Response explained
Data | Description |
---|---|
recordings | JSON containing additional recording data |
ruleid | The monitor rule which triggered/allowed the recording. In the case of splitted recordings, prefixes r_ and t_ should be used. r_ for caller part and t_ for callee part |
file | Number of the recording within this call (usually 1) |
state | t = Temporary. The recording is still in progress and the conversation is not finished. n = New. The Call has been terminated and no more files will be added. a = Archive. As soon as the post-processing task has processed a call, it marks the files with the Archive flag. |
duration | Duration of the recording in seconds |
type | Start recording automatical or manual |
format | File format of the recording |
size | Filesize in kb |
GET / Download one specific recorded audio file
Download a recording of a specific call. For query you will need a recordid.
Parameters
Parameter | Type | Description | Example Value |
---|---|---|---|
recordid* | string | Recording ID of the call | 1633588307.14_1633588308.25 |
ruleid | string | The monitor rule which triggered/allowed the recording. In the case of splitted recordings, prefixes r_ and t_ should be used. r_ for caller part and t_ for callee part | 1 |
file | string | Number of the recording within this call (usually 1) | 1 |
format | string | Fileformat (default wav) | wav |
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/monitor/1633590916.26_1633590917.37/1/1/wav
curl -X GET "https://pascom.cloud/yourpbx/services/monitor/1633590916.26_1633590917.37/1/1/wav" -H "accept: audio/x-wav"
/phonebook
With the /phonebook command you can control and manage everything around phonebook entries. Get data and create / delete entries directly via the pascom telephone system’s REST API. It is of course possible to use queries and commands for the private phonebook of a specific user, as well as for the global phonebook.
GET / List all or some global Phonebook Entries
With the following query you will receive a list of your phonebook entries on the pascom telephone system. You can specifiy the query even more, by using the parameters below.
Parameters
Parameter | Type | Description |
---|---|---|
search | String | A text/number fragment. All records with at least one field containing the search-term will be returned. |
letter | String | A single character to filter the search entries |
offset | String | Offset within the result set |
limit | String | Maximum number of entries to return |
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/phonebook/?search=Tina
curl -X GET "https://pascom.cloud/yourpbx/services/phonebook/?search=Tina" -H "accept: */*"
Get a Server Response (JSON)
{
"total": 1,
"limit": 0,
"offset": 0,
"scroll": 0,
"entries": [
{
"type": "011account",
"id": 2,
"phonebookType": null,
"phonebookName": null,
"displayname": "Tina Sander",
"firstname": null,
"surname": null,
"phone": "250",
"email": "emailaddress",
"fax": "303",
"mobile": null,
"homephone": null,
"organisation": null,
"notes": null,
"labelList": []
}
]
}
Data in Response explained
Data | Description |
---|---|
total | Total count of results |
limit | Limited results |
offset | Offset of the results |
scroll | Scroll limit of offset |
type | Internal type of data |
id | Phonebook entry ID |
phonebookType | Internal Type of phonebook |
phonebookName | Name of the phonebook |
displayname | Display name of the user |
firstname | Firstname of the contact |
surname | Surname of the contact |
phone | Phonenumber |
Emailaddress of the contact | |
fax | Faxnumber |
mobile | Mobilenumber |
homephone | Private phonenumber |
organisation | Company name of the conact |
notes | Infos about the contact |
labellist | Attached labels to the phonebook entry |
GET / List private Phonebook Entries of a specific User
With the following query you will receive a list of private phonebook entries from a specific user on the pascom telephone system. If the parameter scope is set to “all”, it will find entires also in the global phonebook.
Parameters
Parameter | Type | Description |
---|---|---|
username* | String | Username of the phonebook owner |
scope | String | Set parameter all, so the result will include global phonebook entries also |
search | String | A text/number fragment. All records with at least one field containing the search-term will be returned. |
letter | String | A single character to filter the search entries |
offset | String | Offset within the result set |
limit | String | Maximum number of entries to return |
*required
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/phonebook/identity/tsander
curl -X GET "https://pascom.cloud/yourpbx/services/phonebook/identity/tsander" -H "accept: */*"
Get a Server Response (JSON)
{
"total": 1,
"limit": 0,
"offset": 0,
"scroll": 0,
"entries": [
{
"type": "028phonebook",
"id": 23,
"phonebookType": "identity",
"phonebookName": "tsander",
"displayname": "Chaos Computer - Tobias Mustermann",
"firstname": "Tobias",
"surname": "Mustermann",
"phone": "0991123455677",
"email": "tmustermann@cc.de",
"fax": "0991123455671",
"mobile": "017712345678",
"homephone": "0991123455677",
"organisation": "Chaos Computer",
"notes": "Some Notes about the contact",
"labelList": []
}
]
}
Data in Response explained
Data | Description |
---|---|
total | Total count of results |
limit | Limited results |
offset | Offset of the results |
scroll | Scroll limit of offset |
type | Internal type of data |
id | Phonebook entry ID |
phonebookType | Internal Type of phonebook |
phonebookName | Name of the phonebook |
displayname | Display name of the user |
firstname | Firstname of the contact |
surname | Surname of the contact |
phone | Phonenumber |
Emailaddress of the contact | |
fax | Faxnumber |
mobile | Mobilenumber |
homephone | Private phonenumber |
organisation | Company name of the conact |
notes | Infos about the contact |
labellist | Attached labels to the phonebook entry |
GET / Data of a specific Phonebook Entry by ID
With the following query you will receive data about a specific phonebook entry on the pascom telephone system.
Parameters
Parameter | Type | Description |
---|---|---|
phonebookEntryId* | String | The phonebook entries id e.g. 23 |
*required
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/phonebook/23
curl -X GET "https://pascom.cloud/yourpbx/services/phonebook/23" -H "accept: */*"
Get a Server Response (JSON)
{
"type": "028phonebook",
"id": 23,
"phonebookType": "identity",
"phonebookName": "tsander",
"displayname": "Chaos Computer - Tobias Mustermann",
"firstname": "Tobias",
"surname": "Mustermann",
"phone": "0991123455677",
"email": "tmustermann@cc.de",
"fax": "0991123455671",
"mobile": "017712345678",
"homephone": "0991123455677",
"organisation": "Chaos Computer",
"notes": "Some Notes about the contact",
"labelList": []
}
Data in Response explained
Data | Description |
---|---|
type | Internal type of data |
id | Phonebook entry ID |
phonebookType | Internal Type of phonebook |
phonebookName | Name of the phonebook |
displayname | Display name of the user |
firstname | Firstname of the contact |
surname | Surname of the contact |
phone | Phonenumber |
Emailaddress of the contact | |
fax | Faxnumber |
mobile | Mobilenumber |
homephone | Private phonenumber |
organisation | Company name of the conact |
notes | Infos about the contact |
labellist | Attached labels to the phonebook entry |
HEAD / Overview about Phonebook Entries
With the following HEAD command you will receive a short overview of your phonebook entries on the pascom telephone system. This command returns only the response header.
Parameters
Parameter | Type | Description |
---|---|---|
search | String | A text/number fragment. All records with at least one field containing the search-term will be returned. |
letter | String | A single character to filter the search entries |
offset | String | Offset within the result set |
limit | String | Maximum number of entries to return |
Make a Request (cURL)
curl -X HEAD "https://pascom.cloud/yourpbx/services/phonebook/" -H "accept: */*"
Get a Server Response (JSON)
{
"cache-control: no-store, no-cache, must-revalidate
connection: Keep-Alive
content-type: PLAIN
date: Fri, 19 Feb 2021 08:56:50 GMT
expires: Thu, 19 Nov 1981 08:52:00 GMT
keep-alive: timeout=5, max=100
pragma: no-cache
server: nginx
x-limit: 0
x-offset: 0
x-scroll: 0
x-total: 15
x-totalfiltered: 15"
}
POST / Create a new global Phonebook Entry
With this POST command you can create a new phonebook entry in the global phonebook on the pascom telephone system.
Actions to use
Action | Description |
---|---|
type | Internal type of data (“028phonebook”) |
displayname | Display name of the user |
firstname | Firstname of the contact |
surname | Surname of the contact |
phone | Phonenumber |
Emailaddress of the contact | |
fax | Faxnumber |
mobile | Mobilenumber |
homephone | Private phonenumber |
organisation | Company name of the conact |
notes | Infos about the contact |
labellist | Attached labels to the phonebook entry |
Prepare the Request Body (JSON)
{ "type": "028phonebook", "displayname": "Chaos Computer - Michael Mustermann", "firstname": "Michael", "surname": "Mustermann", "phone": "0991123455677", "email": "mmustermann@cc.de", "fax": "0991123455671", "mobile": "017712345678", "homephone": "0991123455677", "organisation": "Chaos Computer", "notes": "Some Notes about the contact", "labelList": [] }
Send the POST to the pascom pbx (cURL)
curl -X POST "https://pascom.cloud/yourpbx/services/phonebook/" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"type\":\"028phonebook\",\"displayname\":\"Chaos Computer - Michael Mustermann\",\"firstname\":\"Michael\",\"surname\":\"Mustermann\",\"phone\":\"0991123455677\",\"email\":\"mmustermann@cc.de\",\"fax\":\"0991123455671\",\"mobile\":\"017712345678\",\"homephone\":\"0991123455677\",\"organisation\":\"Chaos Computer\",\"notes\":\"Some Notes about the contact\",\"labelList\":[]}"
POST / Create a new private Phonebook Entry
With this POST command you can create a new phonebook entry in a specific users private phonebook on the pascom telephone system.
Parameters
Parameter | Type | Description |
---|---|---|
username* | String | Username of the phonebook owner |
*required
Actions to use
Action | Description |
---|---|
type | Internal type of data (“028phonebook”) |
displayname | Display name of the user |
firstname | Firstname of the contact |
surname | Surname of the contact |
phone | Phonenumber |
Emailaddress of the contact | |
fax | Faxnumber |
mobile | Mobilenumber |
homephone | Private phonenumber |
organisation | Company name of the conact |
notes | Infos about the contact |
labellist | Attached labels to the phonebook entry |
Prepare the Request Body (JSON)
{ "type": "028phonebook", "displayname": "Chaos Computer - Michael Mustermann", "firstname": "Michael", "surname": "Mustermann", "phone": "0991123455677", "email": "mmustermann@cc.de", "fax": "0991123455671", "mobile": "017712345678", "homephone": "0991123455677", "organisation": "Chaos Computer", "notes": "Some Notes about the contact", "labelList": [] }
Send the POST to the pascom pbx (cURL)
curl -X POST "https://pascom.cloud/yourpbx/services/phonebook/identity/tsander" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"type\":\"028phonebook\",\"displayname\":\"Chaos Computer - Michael Mustermann\",\"firstname\":\"Michael\",\"surname\":\"Mustermann\",\"phone\":\"0991123455677\",\"email\":\"mmustermann@cc.de\",\"fax\":\"0991123455671\",\"mobile\":\"017712345678\",\"homephone\":\"0991123455677\",\"organisation\":\"Chaos Computer\",\"notes\":\"Some Notes about the contact\",\"labelList\":[]}"
POST / Update a global Phonebook Entry
With this POST command you can update a existing global phonebook entry on the pascom telephone system.
Parameters
Parameter | Type | Description |
---|---|---|
phonebookEntryId* | String | The phonebook entries id |
*required
Actions to use
Action | Description |
---|---|
type | Internal type of data (“028phonebook”) |
displayname | Display name of the user |
firstname | Firstname of the contact |
surname | Surname of the contact |
phone | Phonenumber |
Emailaddress of the contact | |
fax | Faxnumber |
mobile | Mobilenumber |
homephone | Private phonenumber |
organisation | Company name of the conact |
notes | Infos about the contact |
labellist | Attached labels to the phonebook entry |
Prepare the Request Body (JSON)
{ "type": "028phonebook", "displayname": "Chaos Computer - Max Mustermann", "firstname": "Max", "surname": "Mustermann", "phone": "004999129691222", "email": "mmustermann@cc.de", "fax": "0991123455677", "mobile": "017712345678", "homephone": "", "organisation": "Chaos Computer", "notes": "", "labelList": [] }
Send the POST to the pascom pbx (cURL)
curl -X POST "https://pascom.cloud/yourpbx/services/phonebook/12" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"type\":\"028phonebook\",\"displayname\":\"Chaos Computer - Max Mustermann\",\"firstname\":\"Max\",\"surname\":\"Mustermann\",\"phone\":\"004999129691222\",\"email\":\"mmustermann@cc.de\",\"fax\":\"0991123455677\",\"mobile\":\"017712345678\",\"homephone\":\"\",\"organisation\":\"Chaos Computer\",\"notes\":\"\",\"labelList\":[]}"
POST / Update a private Phonebook Entry
With this POST command you can update a existing private phonebook entry of a specific user on the pascom telephone system.
Parameters
Parameter | Type | Description |
---|---|---|
phonebookEntryId* | String | The phonebook entries id |
*required
Actions to use
Action | Description |
---|---|
type | Internal type of data (“028phonebook”) |
phonebookType | Internal Type of phonebook - private = “identity” |
phonebookName | Name of the phonebook (phonebook owner) |
displayname | Display name of the user |
firstname | Firstname of the contact |
surname | Surname of the contact |
phone | Phonenumber |
Emailaddress of the contact | |
fax | Faxnumber |
mobile | Mobilenumber |
homephone | Private phonenumber |
organisation | Company name of the conact |
notes | Infos about the contact |
labellist | Attached labels to the phonebook entry |
Prepare the Request Body (JSON)
{ "type": "028phonebook", "phonebookType": "identity", "phonebookName": "tsander", "displayname": "Chaos Computer", "firstname": "Michael", "surname": "Muster", "phone": "0991123455677", "email": "mmustermann@cc.de", "fax": "0991123455671", "mobile": "", "homephone": "0991123455677", "organisation": "Chaos Computer", "notes": "Some Notes about the contact", "labelList": [] }
Send the POST to the pascom pbx (cURL)
curl -X POST "https://pascom.cloud/yourpbx/services/phonebook/29" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"type\":\"028phonebook\",\"phonebookType\":\"identity\",\"phonebookName\":\"tsander\",\"displayname\":\"Chaos Computer\",\"firstname\":\"Michael\",\"surname\":\"Muster\",\"phone\":\"0991123455677\",\"email\":\"mmustermann@cc.de\",\"fax\":\"0991123455671\",\"mobile\":\"017712345678\",\"homephone\":\"\",\"organisation\":\"Chaos Computer\",\"notes\":\"Some Notes about the contact\",\"labelList\":[]}"
POST / Copy or Move a Phonebook Entry
With this POST command you can copy or move a existing phonebook entry on the pascom telephone system. Of course, you can use the actions for global phonebook entries as well as for private phonebook entries. You can also move or copy phonebook entries back and forth between private and global.
Parameters
Parameter | Type | Description |
---|---|---|
phonebookEntryId* | String | The phonebook entries id |
*required
Actions to use
Action | Description |
---|---|
action | Move or Copy |
source | global = type:null, name:null private = type:identity,name:phonebook owner |
target | global = type:null, name:null private = type:identity,name:phonebook owner |
Prepare the Request Body (JSON)
This example shows, how to copy a global phonebook entry to a private phonebook of Tina Sander (tsander).
{ "action": "copy", "source": { "type": "null", "name": "null" }, "target": { "type": "identity", "name": "tsander" }}
Send the POST to the pascom pbx (cURL)
curl -X POST "https://pascom.cloud/yourpbx/services/phonebook/12/action" -H "accept: */*" -H "Content-Type: application/json" -d "{\"action\":\"copy\",\"source\":{\"type\":\"null\",\"name\":\"null\"},\"target\":{\"type\":\"identity\",\"name\":\"tsander\"}}"
DELETE / Remove a Phonebook Entry
With this DELETE command you can remove a existing phonebook entry on the pascom telephone system. It does not matter if the phone book entry is in the global or private phone book.
Parameters
Parameter | Type | Description |
---|---|---|
phonebookEntryId* | String | The phonebook entries id |
*required
Send the DELETE to the pascom pbx (cURL)
curl -X DELETE "https://pascom.cloud/yourpbx/services/phonebook/12" -H "accept: */*"
/queue
With the /queue command you can control and manage everything around Queues. Get data from your Queues and perform actions directly via the pascom telephone system’s REST API. Login and Logout Agents and switch theyre pause state.
GET / List of all Queues
With the following query you will receive a complete list of all your queues on the pascom telephone system. Only the header fields are included.
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/queue/
curl -X GET "https://pascom.cloud/yourpbx/services/queue/" -H "accept: */*"
Get a Server Response (JSON)
[
{
"029tea_bez": "Zentrale",
"009ext_extension": "200",
"036que_prefix": null,
"036que_calleridname": null,
"qid": "q_1",
"members": {
"countActiveMembers": 6,
"countMembersNotInUse": 0,
"countMembersUnavailable": 6,
"countMembersBusy": 0,
"countMembersRinging": 0,
"countInactiveMembers": 1,
"countPausedMembers": 0,
"countMembersPerPauseReason": []
},
"countEntries": 0
}
]
Data in Response explained
Data | Description |
---|---|
029tea_bez | Display name auf the queue |
009ext_extension | internal extension of the queue |
036que_prefix | Login code of the queue |
036que_calleridname | Display name |
qid | ID of the queue |
members | Additional data about the assigned Agents of the queue |
countActiveMembers | Counts all Agents in active state |
countMembersNotInUse | Counts all Agents logged of |
countMembersUnavailable | Counts all Agents are in unavailable state |
countMembersBusy | Counts all Agents are currently busy |
countMembersRinging | Counts all Agents are in ringing state |
countInactiveMembers | Counts all Agents are inactive |
countPausedMembers | Counts all Agents are paused |
countMembersPerPauseReason | Counts all Agents per defined pause reason |
countEntries | Number of the call entries waiting in the team |
GET / Data of a specific Queue
With the following query you will receive data of a specific queue on the pascom telephone system. Only the header fields are included.
Parameters
Parameter | Type | Description |
---|---|---|
queue | String | The queues name |
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/queue/Zentrale
curl -X GET "https://pascom.cloud/yourpbx/services/queue/Zentrale" -H "accept: */*"
Get a Server Response (JSON)
{
"009ext_id": 5,
"009ext_extension": "200",
"009ext_tmstmp": "2019-11-27 08:54:41.847654",
"028pho_id": null,
"029tea_id": 1,
"029tea_bez": "Zentrale",
"029tea_calleridname": "Zentrale",
"029tea_inttimeout": "10",
"029tea_exttimeout": "10",
"029tea_strategy": "0",
"029tea_answer": "10",
"052moh_id": 1,
"016voi_id": 3,
"020fax_id": null,
"029tea_tmstmp": "2021-02-04 09:35:03.900158",
"029tea_cce": true,
"029tea_pickup": "nobody",
"036que_id": 1,
"036que_agenttimeout": null,
"036que_announcefreq": null,
"036que_leavewhenempty": "512",
"036que_joinempty": "256",
"036que_option": null,
"036que_prefix": null,
"036que_weight": null,
"036que_tmstmp": "2021-02-04 09:35:03.900158",
"036que_maxlen": null,
"030scr_id": null,
"036que_labidprio": null,
"036que_labidtimeout": null,
"qid": "q_1",
"members": [
{
"agent": "jgeissler",
"queue": "Zentrale",
"dynamic": false,
"loggedin": true,
"paused": false,
"pausereason": "",
"phonebookentry": {
"type": "028phonebook",
"id": 10,
"phonebookType": "",
"phonebookName": "",
"displayname": "Jenny Geissler",
"firstname": "",
"surname": "",
"phone": "324",
"email": "jgeissler@bootcamp.de",
"fax": "",
"mobile": "",
"homephone": "",
"organisation": "",
"notes": "",
"labelList": []
}
}
],
"entries": [],
"pausereasons": []
}
Data in Response explained
Data | Description |
---|---|
009ext_id | Extension Id |
009ext_extension | Internal extension of the queue |
009ext_tmstmp | tmstmp are changed when some data in the row is changed |
028pho_id | Phonebook entry Id |
029tea_id | ID of the queue |
029tea_bez | Type of the queue |
029tea_calleridname | Display name auf the queue |
029tea_inttimeout | Internal timeout set in seconds |
029tea_exttimeout | External timeout set in seconds |
029tea_strategy | Used call strategy: 0 = ring all, 1 = one after another, 2 = longest back, 3 = fewest calls, 4 = randomly, 5 = mem successively, 6 = randomly - ordered, 7 = randomly weighted, |
029tea_answer | Answer channel in msec |
052moh_id | ID of the MOH playlist |
016voi_id | Voicemailbox Id |
029tea_tmstmp | tmstmp are changed when some data in the row is changed |
029tea_cce | Send call completed elsewhere - true/false |
029tea_pickup | nobody = no one, online = available agents and non-members, offline = non-available agents and non-members, nonmember = only non-members, alle = whole group, |
036que_id | ID of the queue |
036que_agenttimeout | Timeout of the Agent |
036que_announcefreq | Set the announce frequency in seconds |
036que_leavewhenempty | 256 = true, 512 = false |
036que_joinempty | 256 = true, 512 = false |
036que_option | Configured queue options |
036que_prefix | Login Code of the queue |
036que_weight | Weight of the queue |
036que_tmstmp | tmstmp are changed when some data in the row is changed |
036que_maxlen | Maximum number of people waiting |
030scr_id | ID of the assigned skill based routing script |
036que_labidprio | Priority from label |
036que_labidtimeout | Timeout from a label |
qid | ID of the queue |
members | Additional data about the assigned Agents of the queue |
agent | Display Name of the agent |
queue | Display Name of the queue |
dynamic | Is Agent a dynamic member - true/false |
loggedin | Is Agent loggedin - true/false |
paused | Is Agent pasued - true/false |
pasusereason | Display Name of the defined pause reason |
phonebookentry | Phonebookentry of the Agent |
type | Internal type of phonebook |
id | Phonebook ID |
phonebookType | for private phonebook it’s “identity” for global it’s null |
phonebookName | for private phonebook it’s “username” for global it’s null |
displayname | Display Name of the contact |
firstname | First Name of the contact |
surname | Surname of the contact |
phone | Phonenumber of the contact |
Email of the contact | |
fax | Faxnumber of the contact |
mobile | Mobilenumber of the contact |
homephone | Private phonenumber of the contact |
organisation | Company Name of the contact |
notes | Additional notes of the contact |
labelList | Array of labels assigned to the contact |
entries | Call objects which are waiting in the queue |
pausereasons | Array of usable pausereasons for the agent |
POST / Perfom various Actions on a queue Agent
With the following post command you can perform various actions on a queue agent for a specific queue. For Example, you can login and logout Agents and trigger pausereasons.
Parameters
Parameter | Type | Description |
---|---|---|
queue* | String | The queues name |
*required
Actions to use
Action | Description |
---|---|
action | login, logout, pause, unpause |
identity | username of the agent (e.g. tsander) |
penalty | 0 |
reason | Name of the pausereason |
code | Code of the pausereason |
Prepare the Request Body (JSON)
- Login or logout a agent on a queue
{ "action": "logout", "identity": "tsander", "penalty": "0" }
- Pause an agent with pausename or code
{ "action": "pause", "identity": "tsander", "reason": "lunch" }
or with code
{ "action": "pause", "identity": "tsander", "code": "40" }
- Unpause an agent with pausename or code
{ "action": "unpause", "identity": "tsander", "reason": "lunch" }
or with code
{ "action": "unpause", "identity": "tsander", "code": "40" }
Send the POST to the pascom pbx (cURL)
curl -X POST "https://pascom.cloud/yourpbx/services/queue/Zentrale/action" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"action\":\"logout\",\"identity\":\"tsander\",\"penalty\":\"0\"}"
Get a Server Response (JSON)
{
"Response": "Success",
"ActionID": "60210455af8a6",
"Message": "Originate successfully queued"
}
POST / Perfom various Actions on a queue Agent on all queues
With the following post command you can perform various actions on a queue agent for all queues he is a member of. For Example, you can login and logout Agents and trigger pausereasons.
Actions to use
Action | Description |
---|---|
action | login, logout, pause, unpause |
identity | username of the agent (e.g. tsander) |
penalty | 0 |
reason | Name of the pausereason |
code | Code of the pausereason |
Prepare the Request Body (JSON)
- Login or logout a agent on a queue
{ "action": "logout", "identity": "tsander", "penalty": "0" }
- Pause an agent with pausename or code
{ "action": "pause", "identity": "tsander", "reason": "lunch" }
or with code
{ "action": "pause", "identity": "tsander", "code": "40" }
- Unpause an agent with pausename or code
{ "action": "unpause", "identity": "tsander", "reason": "lunch" }
or with code
{ "action": "unpause", "identity": "tsander", "code": "40" }
Send the POST to the pascom pbx (cURL)
curl -X POST "https://pascom.cloud/yourpbx/services/queue/action" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"action\":\"login\",\"identity\":\"tsander\",\"penalty\":\"0\"}"
Get a Server Response (JSON)
{
"Response": "Success",
"Message": "Originate successfully queued"
}
/redirect
With the /redirect command you can control and manage your redirects on the pascom phone system. Get a List about all redirects and modify them via the Rest API.
GET / List all redirects
With the following query you will receive a complete list of all your redirects on the pascom telephone system.
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/redirect/
curl -X GET "https://pascom.cloud/yourpbx/services/redirect/" -H "accept: */*"
Get a Server Response (JSON)
[
{
"source": "101",
"target": "200",
"old": "200"
}
]
Data in Response explained
Data | Description |
---|---|
source | source extension |
target | The redirect target extension |
old | When the redirect is deactivated, the old target extension will be shown here. |
POST / Set or Modify a redirect Entry
With the following POST Command you can set or modify a redirect on the pascom telephone system.
Parameters
Parameter | Type | Description |
---|---|---|
extension* | String | The to be set or modified extension |
*required
Actions to use
Parameter | Description |
---|---|
target | target extension |
Prepare the Request Body (JSON)
{ "target": "08955555" }
Send the POST to the pascom pbx (cURL)
curl -X POST "https://pascom.cloud/yourpbx/services/redirect/101" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"target\":\"08955555\"}"
Get a Server Response (JSON)
{
"status": 1,
"target": "08955555",
"old": "08955555",
"source": "101"
}
POST / Notify devices about the current rediect state
With the following POST Command you can notify devices about the current rediect state.
Parameters
Parameter | Type | Description |
---|---|---|
extension* | String | The to be set or modified extension |
*required
Actions to use
Parameter | Description |
---|---|
action | notify |
destination | currentdestination |
old | olddestination |
Prepare the Request Body (JSON)
{ "action": "notify", "destionation": "currentdestination", "old": "olddestination" }
Send the POST to the pascom pbx (cURL)
curl -X POST "https://pascom.cloud/yourpbx/services/redirect/101/action" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"action\":\"notify\",\"destionation\":\"currentdestination\",\"old\":\"olddestination\"}"
POST / Set or Modify a redirect Entry
With the following POST Command you can set or modify a redirect on the pascom telephone system.
Parameters
Parameter | Type | Description |
---|---|---|
extension* | String | The to be set or modified extension |
*required
Actions to use
Parameter | Description |
---|---|
target | target extension |
Prepare the Request Body (JSON)
{ "target": "08955555" }
Send the POST to the pascom pbx (cURL)
curl -X POST "https://pascom.cloud/yourpbx/services/redirect/101" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"target\":\"08955555\"}"
Get a Server Response (JSON)
{
"status": 1,
"target": "08955555",
"old": "08955555",
"source": "101"
}
POST / Notify devices about the current rediect state
With the following POST Command you can notify devices about the current rediect state.
Parameters
Parameter | Type | Description |
---|---|---|
extension* | String | The to be set or modified extension |
*required
Actions to use
Parameter | Description |
---|---|
action | notify |
destination | currentdestination |
old | olddestination |
Prepare the Request Body (JSON)
{ "action": "notify", "destionation": "currentdestination", "old": "olddestination" }
Send the POST to the pascom pbx (cURL)
curl -X POST "https://pascom.cloud/yourpbx/services/redirect/101/action" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"action\":\"notify\",\"destionation\":\"currentdestination\",\"old\":\"olddestination\"}"
/role
With the /role command you can get information about the roles on the pascom phone system.
GET / List all role names
With the following query you will receive a complete list of all your roles on the pascom telephone system. Optionally filtered by roletype.
Parameters
Parameter | Type | Description |
---|---|---|
roletype | String | Optional roletype filter ( xmpp.group redirect.group redirect.choice pickup.group location.group xmpp.supervisor ) |
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/role/
curl -X GET "https://pascom.cloud/yourpbx/services/role/" -H "accept: */*"
Get a Server Response (JSON)
[
"default",
"pickup_all",
"Recordings"
]
GET / Detailed description of one role
With the following query you will receive detailed information of a specific role on the pascom telephone system. You need the name of a role.
Parameters
Parameter | Type | Description |
---|---|---|
role* | String | Name of the role |
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/role/pickup_all
curl -X GET "https://pascom.cloud/yourpbx/services/role/pickup_all" -H "accept: */*"
Get a Server Response (JSON)
{
"064rol_id": 4,
"064rol_bez": "pickup_all",
"064rol_doc": null,
"064rol_scope": "user",
"064rol_tmstmp": "2020-08-26 11:07:29.315775",
"064rol_all_user": false,
"064rol_all_device": false,
"064rol_all_location": false,
"064rol_all_team": false,
"064rol_all_switches": false,
"types": [
"pickup.group"
],
"identities": [
"tklee",
"mschmitz",
"nbader",
"therrmann",
"hspindler",
"lmeier"
]
}
Data in Response explained
Data | Description |
---|---|
064rol_id | Id of the role |
064rol_bez | Name of the role |
064rol_doc | Documentation entry of the role |
064rol_scope | “system” = Default system role. Can not be removed “user” = User generated role |
064rol_tmstmp | tmstmp are changed when some data in the row is changed |
064rol_all_user | Automatically add new user. True / False |
064rol_all_device | Automatically add new devices. True / False |
064rol_all_location | Automatically add new locations. True / False |
064rol_all_team | Automatically add new teams. True / False |
064rol_all_switches | Automatically add new switches. True / False |
types | roletype |
identities | Participants within this role |
/trunk
With the /trunk command you can get informations about your trunks within the pascom telephone system.
GET / List all trunks
With the following query you will receive a complete list of all your trunks on the pascom telephone system. Only header fields are included.
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/trunk/
curl -X GET "https://pascom.cloud/yourpbx/services/trunk/" -H "accept: */*"
Get a Server Response (JSON)
{
"022tru_bez": "mnet2",
"022tru_tmstmp": "2021-09-23 06:12:40.897285",
"022tru_protocol": "PJSIP"
}
Data in Response explained
Data | Description |
---|---|
022tru_bez | Name of the trunk |
022tru_tmstmp | tmstmp are changed when some data in the row is changed |
022tru_protocol | Used protocol |
GET / Details about a specific trunk
With the following query you will receive all data from a specific trunk on the pascom telephone system.
Parameters
Parameter | Type | Description |
---|---|---|
trunk* | String | The name of the trunk. Fetch the trunk list to get the names. |
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/trunk/mnet2
curl -X GET "https://pascom.cloud/yourpbx/services/trunk/mnet2" -H "accept: */*"
Get a Server Response (JSON)
{
"mnet2": {
"022tru_id": 2,
"022tru_bez": "mnet2",
"022tru_ldapprefix": null,
"022tru_numprefix": "0",
"022tru_protocol": "PJSIP",
"022tru_tmstmp": "2021-09-23 06:12:40.897285",
"022tru_intvaz": "00",
"022tru_natvaz": "0",
"022tru_lkz": "49",
"022tru_onkz": "89",
"090por_id": null,
"022tru_ldap": true,
"009ext_id": null,
"030scr_id": null,
"022tru_redirect": "dial",
"022tru_ringing": "ringing",
"022tru_enabled": false,
"022tru_interface": null,
"022tru_template": "mnet@mnet",
"022tru_outformat": "NATIONAL"
}
Data in Response explained
Data | Description |
---|---|
022tru_id | ID of the trunk |
022tru_bez | Name of the trunk |
022tru_ldapprefix | Updates the prefix of all ldap phonebook entries |
022tru_numprefix | Prefix incomming number |
022tru_protocol | Used protocol |
022tru_tmstmp | tmstmp are changed when some data in the row is changed |
022tru_intvaz | International prefix |
022tru_natvaz | National prefix |
022tru_lkz | Country code |
022tru_onkz | Area code |
090por_id | Port id |
022tru_ldap | Phone number query in the phone book (true/false) |
009ext_id | Id of the extension |
030scr_id | ID of the assigned skill based routing script |
022tru_redirect | Direct transfer |
022tru_ringing | Generates ringtone |
022tru_enabled | Is trunk enabled? (true/false) |
022tru_interface | for onsite: respect user configurable interface |
022tru_template | Template used for the trunk |
022tru_outformat | Outgoing number format |
GET / State of all Trunks
With the following query you will receive the state from all trunks on the pascom telephone system.
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/trunk/status
curl -X GET "https://pascom.cloud/yourpbx/services/trunk/status" -H "accept: */*"
Get a Server Response (JSON)
{
"mnet2": {
"peer": {
"+49xxxxxxxxxx": "unavailable"
},
"register": {
"+49xxxxxxxxxx": "Registered"
}
}
}
Data in Response explained
Data | Description |
---|---|
peer | The status of the peer |
register | Status of the trunk |
/voicemail
With the /voicemail command you can control and manage everything around voicemailboxes. Get data from voicemails and manage recordings. Perform actions directly via the pascom telephone system’s REST API.
GET / List of all Voicemailboxes
With the following query you will receive a complete list of all your voicemailboxes on the pascom telephone system.
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/voicemailbox/
curl -X GET "https://pascom.cloud/yourpbx/services/voicemailbox/" -H "accept: */*"
Get a Server Response (JSON)
{
"016voi_id": 2,
"016voi_mailbox": "7007",
"016voi_name": "Sébästian 'Fischêr",
"016voi_tmstmp": "2023-04-27 12:25:53.143023",
"016voi_transcribe": "enabled"
},
Data in Response explained
Data | Description |
---|---|
016voi_id | ID of the voicemailbox |
016voi_mailbox | Internal voicemailbox extension of the user |
016voi_name | Name of the voicemailbox |
016voi_tmstmp | tmstmp are changed when some data is changed |
016voi_transcribe | AI transcribe feature for voicemails is enabled/disabled |
GET / Details about a specific Voicemailbox
With the following query you will receive detailed data from a specific voicemailbox on the pascom telephone system.
Parameters
Parameter | Type | Description |
---|---|---|
mailbox* | String | The user / team extension e.g. 7007 |
*required
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/voicemailbox/7007
curl -X GET "https://pascom.cloud/yourpbx/services/voicemailbox/7007" -H "accept: */*"
Get a Server Response (JSON)
{
"016voi_id": 2,
"016voi_email": "test-stage+sf@pascom.net",
"016voi_mailbox": "7007",
"016voi_name": "Sébästian 'Fischêr",
"016voi_tmstmp": "2023-04-27 12:25:53.143023",
"016voi_format": "wav",
"016voi_transcribe": "enabled",
"md5pass": "621c4c18706ab90abb1eb41647a8575e",
"folders": [
"INBOX",
"Old",
"Urgent",
"tmp"
]
}
Data in Response explained
Data | Description |
---|---|
016voi_id | ID of the voicemailbox |
016voi_email | Email for forwarding recordings |
016voi_mailbox | Internal voicemailbox extension of the user |
016voi_name | Name of the voicemailbox |
016voi_tmstmp | tmstmp are changed when some data is changed |
016voi_transcribe | AI transcribe feature for voicemails is enabled/disabled |
md5pass | MD5 Hash of the voicemailbox password |
folders | Folder on Server for saved recordings e.g. INBOX |
GET / List all Recordings in Voicemailbox
With the following query you will receive a list of recordings in a specific voicemailbox on the pascom telephone system. For this query to work, you need the INBOX Voicemailfolder and at least one recording saved.
Parameters
Parameter | Type | Description |
---|---|---|
mailbox* | String | The user / team extension e.g. 224 |
folder* | String | Voicemailbox Folder. e.g. INBOX can be a * for “all folders” |
limit | String | Limit result list to N entries. Limit defaults to 20 if omitted. |
*required
Make a Request (cURL/HTTPS)
https://pascom.cloud/yourpbx/services/voicemailbox/224/INBOX
curl -X GET "https://pascom.cloud/yourpbx/services/voicemailbox/224/INBOX" -H "accept: */*"
Get a Server Response (JSON)
[
{
"origmailbox": "224",
"context": "sub_mailbox-recording",
"macrocontext": "",
"exten": "s",
"rdnis": "unknown",
"priority": "7",
"callerchan": "PJSIP/CIHoybZzDoNMHyD-0000000b",
"callerid": "\"Tina Sander\" <221>",
"origdate": "Wed Feb 10 07:43:23 AM UTC 2021",
"origtime": "1612943003",
"category": "",
"msg_id": "1612943003-00000000",
"flag": "",
"duration": "12",
"calleridname": "Tina Sander",
"calleridnum": "221",
"file": "msg0000.txt",
"id": "msg0000",
"folder": "INBOX"
}
]
Data in Response explained
Data | Description |
---|---|
origmailbox | Extension of the Voicemailbox |
context | Voicemailbox action |
macrocontext | Context for the voicemailbox action |
exten | — |
rdnis | — |
priority | — |
callerchan | SIP Channel used for recording message |
callerid | Display name and Extension of caller |
origdate | Date message was recorded |
category | Internal timestamp |
msg_id | Internal ID of the recording |
flag | — |
duration | Length / duration of the recording |
calleridname | Display Name of the caller |
calleridnum | The callers extension |
file | filename of the recording |
id | ID of the file |
folder | folder the recording is located |
GET / Download Voicemail recording
With the following query you can download a recorded message from a specific voicemailbox on the pascom telephone system.
Parameters
Parameter | Type | Description |
---|---|---|
mailbox* | String | The user / team extension e.g. 224 |
folder* | String | Voicemailbox Folder. e.g. INBOX can be a * for “all folders” |
id* | String | Use a filename like msg0000 if a specific folder is given or internal id (e.g. 1612943003-00000000) if folder = * |
*required
Make a Request (HTTPS)
To simply download a recorded message via your browser, use the HTTPS URL.
https://pascom.cloud/yourpbx/services/voicemailbox/224/INBOX/msg0000
Make a Request (cURL)
To download a recorded message via cURL, you have to define a output file.(e.g. msg0000.wav). Furthermore, you must pay attention to the accept header. This must now be “audio/x-wav” instead of “application/json”.
curl -X GET "https://pascom.cloud/yourpbx/asset/voicemailbox/224/INBOX/msg0000" -H "accept: audio/x-wav" -o msg000.wav
HEAD / Get short Infos about a Voicemailbox
With the following query you will receive a response header of a specific voicemail on the pascom telephone system. So you will get a short overview about new and last messages.
Parameters
Parameter | Type | Description |
---|---|---|
mailbox* | String | The user / team extension e.g. 224 |
folder* | String | Voicemailbox Folder. e.g. INBOX can be a * for “all folders” |
Make a Request (cURL)
curl -I "https://pascom.cloud/yourpbx/services/voicemailbox/224/INBOX" -H "accept: */*"
Get a Server Response (JSON)
cache-control: no-store, no-cache, must-revalidate, connection: Keep-Alive content-type: PLAIN date: Wed, 10 Feb 2021 09:41:23 GMT expires: Thu, 19 Nov 1981 08:52:00 GMT keep-alive: timeout=5, max=100 pragma: no-cache server: nginx x-voicemail-count: 1 x-voicemail-count-inbox: 0 x-voicemail-count-old: 0 x-voicemail-lastmsg-folder: INBOX x-voicemail-lastmsg-id: msg0000 x-voicemail-lastmsg-tmstmp: 1612943003
POST / Perform actions for a specific mailbox message
With the following post command you can move messages between folders or send it via Email to archive the recording.
Parameters
Parameter | Type | Description |
---|---|---|
mailbox* | String | The user / team extension e.g. 224 |
folder* | String | Voicemailbox Folder. e.g. INBOX can be a * for “all folders” |
id* | String | Use a filename like msg0000 if a specific folder is given or internal id (e.g. 1612943003-00000000) if folder = * |
*required
Actions to use
Action | Description |
---|---|
action | Possible Actions: mailto move |
targetfolder | e.g. INBOX |
adress | Emailaddress |
subject | e.g. Testmail |
body | The body is content-type: text/plain - “not text/html” |
Prepare the Request Body (JSON)
{"action":"mailto","address":"fax@pascom.net","subject":"Voicemail","body":"This is plain text email body"}
or
{ "action": "move", "targetfolder": "INBOX" }
Send the POST to the pascom pbx (cURL)
curl -X POST "https://pascom.cloud/yourpbx/services/voicemailbox/224/INBOX/msg0000" -H "accept: */*" -H "Content-Type: application/json" -d "{"action":"mailto","address":"fax@pascom.net","subject":"Voicemail","body":"This is plain text email body"}"
Get a Server Response (JSON)
{
"response": "voicemail mailed"
}
DELETE / Remove a specific mailbox message
With the following DELETE command you can remove messages from a specific voicemailbox.
Parameters
Parameter | Type | Description |
---|---|---|
mailbox* | String | The user / team extension e.g. 224 |
folder* | String | Voicemailbox Folder. e.g. INBOX can be a * for “all folders” |
id* | String | Use a filename like msg0000 if a specific folder is given or internal id (e.g. 1612943003-00000000) if folder = * |
*required
Send the DELETE to the pascom pbx (cURL)
curl -X DELETE "https://pascom.cloud/yourpbx/services/voicemailbox/224/INBOX/msg0000" -H "accept: */*"
Errors
The pascom RESTAPI uses the following error codes:
Error Code | Meaning |
---|---|
204 | No Content - No data found |
400 | Bad Request - The server cannot or will not process the request due to an apparent client error |
401 | Unauthorized - Access denied If the request already included Authorization credentials, then the 401 response indicates that authorization has been refused for those credentials |
403 | Forbidden - Access denied The server understood the request, but is refusing to fulfill it. |
404 | Not Found - The requested resource could not be found but may be available in the future. Subsequent requests by the client are permissible. |
409 | Indicates that the request could not be processed because of conflict in the current state of the resource, such as an edit conflict between multiple simultaneous updates. |
500 | Internal Server Error - A generic error message, given when an unexpected condition was encountered and no more specific message is suitable - maybe a typo? |