API Description
URL
The root URL of the API is build following the following schema.
https://<appplatform>/<domain>/<instance>/api
For example:
https://apps.company.com/company.com/myinstance1/api
Endpoints
/groups GET
Returns a list of the current groups and their members.
curl 'https://apps.example.com/example.com/grpapi1/api/groups' \
-H 'Authorization: Bearer 98ms098sm09s8ms098sm09s8m' \
-X 'GET'
{
"Gruppe1": {
"name": "Gruppe1",
"pbx": "pbx-main",
"members": {
"7a33480adef46101472e009033400109": {
"guid": "7a33480adef46101472e009033400109",
...
},
"7a33480asef46101472e009033400109": {
"guid": "7a33480asef46101472e009033400109",
...
}
}
},
"Gruppe2": {
"name": "Gruppe2",
"pbx": "pbx-main",
"members": {
...
}
}, ...
}
/groups POST
Add, change or delete Group Memberships of Pbxobjects with HTTP POST
request.
The POST request must contain a valid JSON
formated message.
The keys that must be present in each request are the following:
Key |
Value |
cn |
the common name of the pbx object to change |
grp |
the name of the group to be changed |
action |
0=delete, 1=add or change |
state |
(optional) 0=static*, 1=dyn-in, 2=dyn-out |
active |
(optional) 0=not active*, 1=active |
As example a curl request to add a User testcaller5
to the new group TestGroup1
as dyn-in
as active
.
curl 'https://apps.example.com/example.com/grpapi1/api/groups' \
-H 'Authorization: Bearer 98ms098sm09s8ms098sm09s8m' \
-X 'POST' \
-d '{
"cn": "testcaller5",
"grp": "TestGroup1",
"action": 1,
"state": 1,
"active": 1
}'
To remove a User from a group the message would contain action: 0
:
curl 'https://apps.example.com/example.com/grpapi1/api/groups' \
-H 'Authorization: Bearer 98ms098sm09s8ms098sm09s8m' \
-X 'POST' \
-d '{
"cn": "testcaller5",
"grp": "TestGroup1",
"action": 0
}'
/pbx POST
Provides generic access to the PbxAdminApi as documented at the innovaphone SDK docs/ PbxAdminApi .
Example to get a specific user object from the pbx:
curl 'https://apps.example.com/example.com/grpapi1/api/pbx' \
-H 'Authorization: Bearer 98ms098sm09s8ms098sm09s8m' \
-X 'POST' \
-d '{
"mt": "GetObject",
"api": "PbxAdminApi",
"cn": "testcaller5"
}'
The response would contain the user object as JSON formated data.
{
"api": "PbxAdminApi",
"src": "callback0.6236058413386716",
"mt": "GetObjectResult",
"guid": "fa573952f5f461014152009033400109",
"cn": "testcaller5",
"dn": "testcaller5__",
"h323": "testcaller5",
"e164": "255",
"node": "root",
"loc": "pbx-main",
"ext-in": false,
"config": "",
"local": false,
"trace": false,
"hide": false,
"critical": false,
"no-dev": false,
"login-c": 0,
"login-t": 0,
"filter": "normal",
"phone": {},
"devices": [],
"grp": [
{
"name": "Support"
}
],
"presence": [],
"wakeups": [],
"gws": [],
"profiles": []
}
/objects GET
Returns a list of the userobjects replicated from the pbx ordered by GUID.
curl 'https://apps.example.com/example.com/grpapi1/api/objects' \
-H 'Authorization: Bearer 98ms098sm09s8ms098sm09s8m' \
-X 'GET'
{
"09eaa7a67b204d32afc7ba706c9ccdc8": {
"guid": "09eaa7a67b204d32afc7ba706c9ccdc8",
"h323": "patient21",
"cn": "Patient 21_",
"dn": "21, Patient",
"node": "master",
"loc": "pbx-main",
"grps": [
{
"name": "Patienten"
}
],
"pseudo": "user"
},
"0c368691dba74ca0bbb2af3de80cd261": {
"guid": "0c368691dba74ca0bbb2af3de80cd261",
"h323": "patient39",
"cn": "Patient 39",
"dn": "39, Patient",
"node": "master",
"loc": "pbx-main",
"grps": [
{
"name": "Patienten"
}
],
"pseudo": "user"
},
...
/set POST
Overwrite a objects groupsettings regarless of its current memberships.
curl 'https://apps.example.com/example.com/grpapi1/api/set' \
-H 'Authorization: Bearer 98ms098sm09s8ms098sm09s8m' \
-X 'POST' \
-d '{
"cn": "Patient 39",
"grp": [
{
"name": "Support"
},
{
"name": "TestGroup1",
"mode": "active",
"dyn": "in"
}
]
}'
{
"api": "PbxAdminApi",
"src": "callback0.7737017036309024",
"mt": "GetObjectResult",
"guid": "0c368691dba74ca0bbb2af3de80cd261",
"cn": "Patient 39",
"dn": "39, Patient",
"h323": "patient39",
"e164": "442",
"node": "master",
"loc": "pbx-main",
"ext-in": false,
"config": "Config User",
"apps-my": "users",
"local": false,
"trace": false,
"hide": false,
"critical": false,
"no-dev": true,
"login-c": 0,
"login-t": 0,
"filter": "_International",
"phone": {},
"grp": [
{
"name": "Support"
},
{
"name": "TestGroup1",
"mode": "active",
"dyn": "in"
}
],
"presence": [],
"wakeups": [],
"gws": [],
"profiles": []
}