This API is used for communicating with the client. It provides the following functionality for apps:
The API is exclusively provided by the myApps client. The corresponding provider name is "@client".
The API doesn't define any service info.
{
"@client": {
"title": "innovaphone myApps",
"url": "http:\/\/pbx.example.com\/PBX0\/APPCLIENT\/13XXXX\/appclient.htm",
"info": { },
"model": {
"user": {
"domain": "example.com",
"sip": "bob",
"guid": "5db8519be826c148a8877f10f8bc2d73",
"dn": "Bob Hansen",
"num": "201",
"email": "bob@example.com"
},
"home": {
"phone": [ ],
"contacts": [
"id=3#s=john.doe&d=John%20Doe",
"id=4#s=joe.bloggs&d=Joe%20Bloggs"
]
},
"deviceApps": [
{
"name": "phone",
"title": "Phone",
"deviceapp": "phone"
}
],
"profileApp": "profile",
"launcher": true,
"adminSettings": {
"autostart": {
"value": false,
"force": true
},
"taskbar": {
"value": true,
"force": true
},
"offline": {
"value": 300000,
"force": true
},
"video": {
"value": true,
"force": true
},
"hotkeyDial": {
"value": "F8",
"force": true
},
"hotkeyAccept": {
"value": "CTRL + ALT + F9",
"force": true
},
"hotkeyReject": {
"value": "WIN + F10",
"force": true
},
"logFlags": {
"value": "00000000d6800001",
"force": true
},
"docking": {
"value": 0,
"force": true
},
"notifications": {
"value": false,
"force": true
}
"noVpnAddresses": {
"value": false,
"force": true
}
"disableOutlookSearch": {
"value": false,
"force": true
}
}
}
}
}
All messages are JSON objects that have a mandatory attribute "mt" that specifies the message type. The provider will echo the "src" attribute from requests in the corresponding responses.
{ mt: "UpdateProfile" }{ mt: "SetAttachedToHome", reference: "id=13#s=doe&d=John%20Doe", attached: true }{ mt: "ShowStatusInfo", url: "https://apps.example.com/phone/activecall.htm?app=phone&call=4", id: "4" }ShowStatusInfo.
{ mt: "CloseStatusInfo", id: "4" }{ mt: "SubscribePresence", sip: "atlantis" }{ mt: "SubscribePresence", num: "201" }SubscribePresence.sip or num is given, all presence subscriptions of the consumer are closed.{ mt: "UnsubscribePresence", sip: "atlantis" }{ mt: "UnsubscribePresence", num: "201" }{ mt: "SubscribeDialog", sip: "atlantis" }{ mt: "SubscribeDialog", num: "201" }SubscribeDialog.sip or num is given, all dialog subscriptions of the consumer are closed.{ mt: "UnsubscribeDialog", sip: "atlantis" }{ mt: "UnsubscribeDialog", num: "201" }
SubscribePresence.
{
"mt": "PresenceUpdated",
"sip": "atlantis",
"up": true,
"ep": {
"sip": "atlantis",
"dn": "Atlantis",
"num": "201"
},
"presence": [
{
"contact": "calendar:",
"status": "open",
"activity": "",
"note": "Frei bis 26.04.2018, 11:00 (Beschäftigt: Fixes) #free #until:1524733200000 #next-activity:busy #next:41:5:42:5",
"displayNote": "Frei bis 26.4.2018 11:00 (Beschäftigt: Fixes)",
"params": {
"free": "",
"until": 1524733200000,
"next-activity": "busy",
"next": "41:5:42:5"
}
},
{
"contact": "im:",
"status": "closed",
"activity": "",
"displayNote": "",
"params": {}
}
]
}
SubscribeDialog.true for outgoing calls. false for incoming calls.true if the call is put on hold by the monitored endpoint.true if the call is put on hold by the remote endpoint.true if the call is waiting.true if the call is finished. The consumer can remove the call from its local model.
{
"mt": "DialogInfo",
"sip": "endeavour",
"callId": "e44379a033ec5a01ebd500903328631a",
"confId": "13d9c5a033ec5a01ead500903328631a",
"remote": {
"sip": "atlantis",
"dn": "Atlantis",
"num": "201"
},
"state": {
"name": "connected",
"outgoing": true,
"hold": true
}
}
{
"mt": "DialogInfo",
"sip": "endeavour",
"callId": "e44379a033ec5a01ebd500903328631a",
"deleted": true
}
The URI format for app links consists of
Example: contacts?id=13#s=doe&d=John%20Doe