2013
Moderator Registered 16 years 20 days
Guntram Diehl (innovaphone) Friday, 18 June 2021, 11:03 AM in response to iqbal
Re: Agenda SDK Dialog: custom softphone app connection to pbx as User -> how to decrypt user password?
As follow up from the SDK dialog, I want to sum up what is needed to connect as a device App to a user device as for example a custom softphone:
  • App Object with URL to the AppService
  • Set Websocket checkmark. so that the App object connects to the AppService and is sending the AppInfo request. You should respond to the with AppInfoResult which should include a deviceapp:"softphone" property. This is done within the AppWebsocketAppInfo(const char * app, class json_io & msg, word base) function call on a App Service on our AP
  • Set App Object to hidden, so that the App does not appear, when the App Service is not available
  • Grant access to PbxSignal in the App object
  • Configure a device for the user, with unique hw-id, name which is displayed and app which refers to the App Object
The you should be able to register to the device with the following JS code:

function SoftphoneLogin(start) {

class Elm extends HTMLElement {
constructor(content) {
super();
this.setAttribute("style", "display:block");
if (content) this.innerText = content;
}
}
customElements.define("innovaphone-elm", Elm);

var app = new innovaphone.appwebsocket.Connection("wss://172.16.64.50/PBX0/APPS/websocket", start.name);
document.body.appendChild(new Elm("started"));

app.Xonconnected= function () {
document.body.appendChild(new Elm("connected"));
var hw = app.obj();
if (hw.startsWith("dev:")) hw = hw.substring(4);
app.send({ mt: "Register", api: "PbxSignal", hw: hw });
}
app.Xonmessage= function (obj) {
if (obj.mt == "RegisterResult") document.body.appendChild(new Elm("registered " + obj.addr));
}
}

find attached the PBX config used for this sample as XML export. There is a little bit more configured then needed for this sample
pbx.xml
← You can define your color theme preference here