NAV
cURL HTTPS

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.

Bild

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/

Bild

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://pbx.pascom.net/pascom/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 interesst

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.

Bild

Then hover with your mouse cursor over a datafield of interesst. In our example, we need the users display name.

Bild

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
/identity User Management
/ipdevice Manage all IP Devices on the pascom phone system
/ipphone Manage IP Phones
/location Location / Workspace Management
/queue Manage call queues and agents
/redirect Call forwarding Management
/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 or restart xmpp server 050309
waitconfirm 0=start immediatelly, 1=wait for admin to confirm the job in the Web-UI


Prepare the Request Body (JSON)

{ "executor": "tsk", "task": 20613, "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\":20613,\"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 astarisk 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

*requiered



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 astarisk 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

*requiered



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 astarisk 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

*requiered



Example Path

/MDC/USER/10



Prepare the Request Body (JSON)

{ "value": "6;0" }

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\":20613,\"waitconfirm\":0,\"args\":[\"argument1\",\"argument2\",\"argument3\"]}"




DELETE / Data with {key}

Remove Data in astarisk 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

*requiered



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: */*"




/berofix

With the /berofix command you receive data about connected berofix gateway devices.

GET / Detect All Connected Berofix Devices

This Get Command will take some time, dependent on the number of interfaces connected to the pascom pbx.

Parameters

Parameter Type Description Example Value
new boolean Optionally exclude already configured gateways, show only new ones true / false

Make a Request (cURL/HTTPS)

https://pascom.cloud/yourpbx/services/berofix/detect?new=false
curl -X GET "https://pascom.cloud/yourpbx/services/berofix/detect?new=false" -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
byuid Integer Used to check role-based permissions. This is supposed to be used from the dialplan to verify access 101

*requiered



Prepare the Request Body (JSON)

{ "039swi_state": true, "byuid" : 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,\"byuid\":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




PUSH / 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

*requiered

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

*requiered

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




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)

*requiered



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

*requiered



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

*requiered



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

*requiered



Send the DELETE to the pascom pbx (cURL)

curl -X DELETE "https://pascom.cloud/yourpbx/services/faxserver/waiting/TestFax1" -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,
  "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
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




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

*requiered



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 POST 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

*requiered



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 Informations

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 POST 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\"}}"




POST / Invoce 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

*requiered



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 Informations about the pascom TUI/CLI

Start a new call or track an existing call via the Terminal Console.

Bild

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

*requiered



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 / Invoce 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

*requiered



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

*requiered



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 -X POST "https://pascom.cloud/yourpbx/services/identity/tsander/validatePin" -H "accept: application/json" -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 / Device state of a IP phone

With the following get command you will receive the device state of a specific IP phone on the pascom telephone system.

Parameters

Parameter Type Description
mac String Mac address of the ipphone
key String name of the ipphone

Please specify either macs or keys, never both/none.

Make a Request (cURL/HTTPS)

https://pascom.cloud/yourpbx/services/ipphone/states?macs=00041fffffff

curl -X GET "https://pascom.cloud/yourpbx/services/ipphone/states?macs=00041fffffff" -H "accept: */*"




Get a Server Response (JSON)

  {
  "Snom 000413850046 [Tina Sander]": {
    "state": "Unavailable",
    "ip_address": "",
    "013pee_username": "Tj2FymJBH850046",
    "071ipp_mac": "00041fffffff"
  }
}

Data in Response explained

Data Description
state State of the ipphone
ip_address IP Address of the ipphone
013pee_username Peer Username of the ipphone
071ipp_mac Mac address of the ipphone




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

*requiered



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

*requiered



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)

{ "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)

  1. To logout a user from location send a JSON Object with the corresponding parameters.

{"action":"logout","username":"admin"}

or

{"action":"logout","extension":"9999"}


  1. 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\"}"




/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
email 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
email 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
email 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
email 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
email 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
email 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
email 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 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)


  1. Login or logout a agent on a queue

{ "action": "logout", "identity": "tsander", "penalty": "0" }


  1. Pause an agent with pausename or code

{ "action": "pause", "identity": "tsander", "reason": "lunch" }

or with code

{ "action": "pause", "identity": "tsander", "code": "40" }


  1. 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)


  1. Login or logout a agent on a queue

{ "action": "logout", "identity": "tsander", "penalty": "0" }


  1. Pause an agent with pausename or code

{ "action": "pause", "identity": "tsander", "reason": "lunch" }

or with code

{ "action": "pause", "identity": "tsander", "code": "40" }


  1. 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\"}"




/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": 7,
    "016voi_mailbox": "224",
    "016voi_name": "Adrian Turitzo",
    "016voi_tmstmp": "2019-11-27 09:07:48.721753",
    "016voi_save": true
  }

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_save Save recordings to server - true/false




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. 224

*required

Make a Request (cURL/HTTPS)

https://pascom.cloud/yourpbx/services/voicemailbox/224
curl -X GET "https://pascom.cloud/yourpbx/services/voicemailbox/224" -H "accept: */*"




Get a Server Response (JSON)

{
  "016voi_id": 7,
  "016voi_email": "aturizo@bootcamp.de",
  "016voi_mailbox": "224",
  "016voi_name": "Adrian Turitzo",
  "016voi_tmstmp": "2019-11-27 09:07:48.721753",
  "016voi_format": "wav",
  "016voi_save": true,
  "md5pass": "621c4c18706ab90abb1eb41647a8575e",
  "folders": [
    "INBOX",
    "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_save Save recordings to server - true/false
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




HEADER / 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


Prepare the Request Body (JSON)

{"action":"mailto","address":"ihremail@pascom.net","subject":"testmail"}

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\":\"youremailadress.com\",\"subject\":\"testmail\"}"




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
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?