-
Notifications
You must be signed in to change notification settings - Fork 479
Description
Hi Alfred,
I'm working with @djhenley and @Ola-Palm at Swedish Radio on our implementation of Baresip. As I hope you are aware, we are using Baresip on a daily basis and it's at the core of radio production at Sveriges Radio.
So I just want to extend an enormous THANK YOU for the continuous improvements of Baresip. This magical application helps our journalist do their normal day to day work at ease with amazing sound quality and in these Covid-19 times also providing remote production capabilities!
So to the actual point.. :)
We are using the MQTT or TCP connection with a Node.js app (hoping to distribute this soon). While connected to the "bus" the messages arrives in a nice JSON formatted way. But when connecting at a later stage, like during a call, we need to get the current state. Therefor our app is sending the "/callstat" and "/uastat" command to get the current state. While this comes back as a "sort of" formatted JSON blob, there could be some improvements. We are now parsing the text blob to get some key things like,
- are we registered and with what credentials?
- are we in a call and with who?
- are we in a call with what settings?
In the best of worlds, we would like to get a JSON object with the current state.
So my question to you,
-
What is needed and where should we put a receiver for commands coming from the MQTT/TCP connection? (So that we could respond with a full JSON response).
-
I'm suggesting a JSON response for the general state request, what is your opinion on the contents? and as mentioned above, the basic things are most important, like registration status and call status.
-
Is there anything that need to be considered for implementations not using SIP?
Best regards
Roger
{
accountId: "cuser-id|rogersan-0x7fc96e722770",
accountName: "Display Name Account",
settings {
answermode: "auto|manual|..",
callTransfer: true|false,
},
sip: {
state: "registered|unregistered",
registered: true|false,
uri: "me@sip-example.com",
displayName: "Me Nice Name",
domain: "sip-example.com",
authUser: "me",
responseCode: "200 OK",
SRV: sip-example.com.
AF: "v4",
regInterval: 3779,
pubInterval: "??",
nat: true|false,
stun: {
user: "",
server: ""
},
},
call {
state: "disconnected|connecting|connected|disconnecting",
peerUri: "you@sip-example.com",
peerDisplayName: "You Nice Name",
direction: "incoming|outgoing",
started: "unix-timestamp",
localAttributes: {
minptime: "20"
ptime: "20",
lostPackets: 0
},
remoteAttributes: {
ptime: "20",
jitterBuffer: "200",
jitterBufferType: "fixed|auto",
qosRec: "<dscp-value-rtp>",
lostPackets: 0
}
}
}