diff --git a/api_backend.go b/api_backend.go index 4fbc06b..7ac40ef 100644 --- a/api_backend.go +++ b/api_backend.go @@ -525,6 +525,7 @@ type BackendServerInfoDialout struct { Connected bool `json:"connected"` Address string `json:"address,omitempty"` UserAgent string `json:"useragent,omitempty"` + Version string `json:"version,omitempty"` Features []string `json:"features,omitempty"` } diff --git a/backend_server.go b/backend_server.go index 1a2ea7f..cd4ab40 100644 --- a/backend_server.go +++ b/backend_server.go @@ -1023,7 +1023,17 @@ func (b *BackendServer) serverinfoHandler(w http.ResponseWriter, r *http.Request if client := session.GetClient(); client != nil && client.IsConnected() { dialout.Connected = true dialout.Address = client.RemoteAddr() - dialout.UserAgent = client.UserAgent() + if ua := client.UserAgent(); ua != "" { + dialout.UserAgent = ua + // Extract version from user-agent, expects "software/version". + if pos := strings.IndexByte(ua, '/'); pos != -1 { + version := ua[pos+1:] + if pos = strings.IndexByte(version, ' '); pos != -1 { + version = version[:pos] + } + dialout.Version = version + } + } dialout.Features = session.GetFeatures() } info.Dialout = append(info.Dialout, dialout) diff --git a/docs/standalone-signaling-api-v1.md b/docs/standalone-signaling-api-v1.md index 111a6dc..6bf571f 100644 --- a/docs/standalone-signaling-api-v1.md +++ b/docs/standalone-signaling-api-v1.md @@ -1549,6 +1549,7 @@ will contain an additional property `dialout` with the following contents: "connected": true, "address": "192.168.1.0", "useragent": "spreed-webrtc-sip-bridge/1.2.3", + "version": "1.2.3", "features": [ "start-dialout", "datachannels",