Closed bwentzel closed 3 years ago
This seemed like it'd be useful to me so I've started writing a module in my spare time. But my own use case is pretty narrow:
I'd be curious to know from Bjorn (bwentzel@) and others if they have particular cases and hardware in mind.
Great to see some interest in this. By leveraging xAPI the companion module would support most Webex Devices.
Optimally a module would not be limited to specific functions, but open up the full xAPI with all its capabilities. Which means everything can be controlled or configured. And current status on the device could be used as feedback on buttons.
One approach may be to offer some commonly used functions; call, disconnect, volume control, start/stop screen sharing, mute/unmute, change camera preset etc. And then have an option to specify a full command in a custom command drop-down selection. Example of a relevant custom command: "xCommand Video Matrix Assign SourceId: 2 Output: 3". Where the part after xCommand would be what is entered as the desired command ("Video Matrix Assign SourceId: 1 Output: 2"). This command example is applicable on the Webex Codec Plus and Pro where it would route video from HDMI Input 1 to HDMI Output 2. In a typical meeting room scenario, this would give you a clean feed from the camera out on HDMI Output 2.
Relevant examples of what should be available as feedback would be xStatus Audio Volume (current volume), xstatus Audio Microphones Mute (mute status) and xstatus Conference Presentation Mode (Presentation sharing state).
In order to explore available commands on your Webex Devices, you can use these links: (please note this only shows commands available in the device current state. It will not show call state details when out of call) http://[IP address]/getxml?location=/Command --> All xCommands, example http://[IP address]/getxml?location=/Status --> All xStatus, example
With jsxapi, you can use this to list all commands (schema). /Path should be replaced with /Status, /Event, /Command or /Configure depending on what type of commands you want to list. await xapi.doc('/Path')
An update, we evidentially have two of us thinking alike:
If the two are really getting at the same thing, I'll probably drop mine - but Haakon and I are discussing in Slack. Perhaps there are ways I can help Haakon's effort here as his code looks far more extensive than my module.
Hopefully we can also work on the Cisco CMS module after this one, or perhaps even merge them. https://github.com/bitfocus/companion-module-requests/issues/342
CMS is basically the on-premisse weber server, and can be 100% controlled via rest api. I have some DX80 and SX80 that I can use to test, and also my CMS server.
Would this apply to the older C series codexes?
Would this apply to the older C series codexes?
That's the plan. I have a C60 and E20 that I'm going to work integrate. They worked on my module as the underlying API was similar, so I see no reason they couldn't work on the new module out of the box (or as an extension). That much said, we could hit snags.
From some initial testing, it seems less about hardware platform and more about firmware version.
I have an E20 and a SX20 running TE4.1.3 and TC6.0.0 respectively. These do not appear to work due to some key negotiation that is disabled in the underlying library. Hardware running on later versions, e.g. TC7.3.3) seem to work fine.
I may be able to send a PR to the underlying library (jsxapi) in order to support older versions, but I'm stopping short of that at the moment. What firmware versions are we talking about for C series here?
I have a C40 running 7.3.3. 7 was a huge revision.
TC7.3.3 is working on my SX20, I have TC7.3.6 installed on my C60 which I can test in a bit.
in case you want to join the Cisco Webex developer community chat:
xAPI Devs & Integrations - join via https://eurl.io/#rkp76XDrG
We created a Webex chat space with people working on this and those involved in Cisco https://eurl.io/#7Oppqg0w2
Seems like this should now be closable with https://github.com/bitfocus/companion-module-cisco-webex-websocket [URL updated, accidentally mentioned my personal copy]
Ability to interface the xAPI on Cisco Webex Devices running CE software. This would enable more sophisticated use of these devices in event productions. Check out this git repo: https://github.com/CiscoDevNet/awesome-xapi and specially the postman collection https://github.com/CiscoDevNet/postman-xapi
One quick way of adding support, may be to leverage jsxapi - JavaScript bindings for Cisco Collaboration Endpoint XAPI (by Cisco CE).