02-18-2022 05:27 PM
Hi,
I'm writing Crestron code to control a Webex Room Kit Plus. The client has set up MS Teams integration, such that I get meetings booked and I need to dial them. I've done this before, and it worked well (not with MS Teams though, pretty sure it was standard Webex Teams).
This is what I get when I query the room booking list (some output anonymised where you see 'xxx'):
xCommand Bookings List
OK
*r BookingsListResult (status=OK):
*r BookingsListResult ResultInfo TotalRows: 1
*r BookingsListResult LastUpdated: "2022-02-15T23:24:59Z"
*r BookingsListResult Booking 1 Id: "webex-8"
*r BookingsListResult Booking 1 MeetingId: "066c0c09-2035-6b76-86db-c1fdbxxxc64e"
*r BookingsListResult Booking 1 Title: "test1"
*r BookingsListResult Booking 1 Agenda: ""
*r BookingsListResult Booking 1 Privacy: Private
*r BookingsListResult Booking 1 Organizer FirstName: "Mr Jones"
*r BookingsListResult Booking 1 Organizer LastName: ""
*r BookingsListResult Booking 1 Organizer Email: ""
*r BookingsListResult Booking 1 Organizer Id: "38481d6f-abd2-446f-8785-ccadxxx9b703"
*r BookingsListResult Booking 1 Time StartTime: "2022-02-15T23:30:00Z"
*r BookingsListResult Booking 1 Time StartTimeBuffer: 300
*r BookingsListResult Booking 1 Time EndTime: "2022-02-16T00:00:00Z"
*r BookingsListResult Booking 1 Time EndTimeBuffer: 0
*r BookingsListResult Booking 1 MaximumMeetingExtension: 30
*r BookingsListResult Booking 1 MeetingExtensionAvailability: Guaranteed
*r BookingsListResult Booking 1 BookingStatus: OK
*r BookingsListResult Booking 1 BookingStatusMessage: ""
*r BookingsListResult Booking 1 MeetingPlatform: "MicrosoftTeams"
*r BookingsListResult Booking 1 Cancellable: False
*r BookingsListResult Booking 1 Webex Enabled: False
*r BookingsListResult Booking 1 Webex Url: ""
*r BookingsListResult Booking 1 Webex MeetingNumber: ""
*r BookingsListResult Booking 1 Webex Password: ""
*r BookingsListResult Booking 1 Webex HostKey: ""
*r BookingsListResult Booking 1 Encryption: BestEffort
*r BookingsListResult Booking 1 Recording: Disabled
*r BookingsListResult Booking 1 DialInfo Calls Call 1 Number: "https://teams.microsoft.com/l/meetup-join/19%3ameeting_YxxxxxxxxjAtYTBlZC00MGYyLThhODItNzdhYTg3MWQ4NGVk%40thread.v2/0?context=%7b%22Tid%22%3a%22d96cb337-1a87-44cf-b69b-3cec334a4c1f%22%2c%22Oid%22%3a%22ce015e50-e425-4b62-a4ac-9fcd09c7e658%22%7d"
*r BookingsListResult Booking 1 DialInfo Calls Call 1 Protocol: WebRTC
*r BookingsListResult Booking 1 DialInfo ConnectMode: OBTP
*r BookingsListResult Booking 1 Spark MeetingType: Scheduled
*r BookingsListResult Booking 1 Spark Alert: True
*r BookingsListResult Booking 1 Spark LocusActive: False
*r BookingsListResult Booking 1 Spark Pending: False
** end
When I try to join the meeting, previously I have used the MeetingId and Call 1 Number like so:
xCommand Dial Number: <<call-number>> BookingId: <<meeting-id>>
However the codec responds with an error and I get this on screen.
This kind of makes sense as the Teams URL is huge. Does anyone have any experience with this? I'm going to approach my client who did the MS Teams integration and find out if they have any control over what numbers appear in the meeting information, perhaps they have selected the wrong format or field?
Additionally, if you use the microphone to follow the prompts, or connect a Touch 10 to the system, the codec has no problem connecting to the meeting. I just need to be able to do it from my Crestron touch panel.
Thanks in advance!
Mark
Solved! Go to Solution.
11-10-2022 07:32 PM
Ok, so I found the solution. Thanks @azte for the reminder to post it here!
Firstly, @Wayne DeNardi is correct that the protocol needs to be listed as WebRTC for this to work. Otherwise it might be "Protocol: Spark" in which case answering/joining the meeting is a different xCommand. In my case the end-point was definitely enabled in their Webex environment. The text to check is
*r BookingsListResult Booking 1 DialInfo Calls Call 1 Protocol: WebRTC
To answer/join, use:
xCommand WebRTC Join BookingId: <booking-id> Url: <call-number>
Where the booking Id comes in as
*r BookingsListResult Booking 1 Id: "this-is-the-booking-id"
And the call-number comes in as
*r BookingsListResult Booking 1 DialInfo Calls Call 1 Number: <this-is-the-call-number>
As I said Spark protocol answer/join is more the standard Dial syntax:
xCommand Dial Number: <call-number> BookingId: <booking-id>
Of course I found the solution in the manual in the end
02-18-2022 11:46 PM - edited 02-18-2022 11:50 PM
Can you really use the xcommand dial command with a WebRTC address? I would think that it only works with directory numbers or SIP uris.
AFAIK WebRTC can only be joined with OBTP or by using proximity in the Webex application from a client.
02-21-2022 06:29 PM
As @Roger Kallberg mentioned, however you are getting your meeting invite, it is sending a WebRTC link and call type to the endpoint, as can be seen by these two lines in your output:
*r BookingsListResult Booking 1 DialInfo Calls Call 1 Number: "https://teams.microsoft.com/l/meetup-join/19%3ameeting_YxxxxxxxxjAtYTBlZC00MGYyLThhODItNzdhYTg3MWQ4NGVk%40thread.v2/0?context=%7b%22Tid%22%3a%22d96cb337-1a87-44cf-b69b-3cec334a4c1f%22%2c%22Oid%22%3a%22ce015e50-e425-4b62-a4ac-9fcd09c7e658%22%7d" *r BookingsListResult Booking 1 DialInfo Calls Call 1 Protocol: WebRTC
Depending on your call control platform, your device may not be configured to allow a WebRTC call, and would more likely be expecting a SIP URI for the "Number".
Please remember to mark helpful responses and to set your question as answered if appropriate.
11-10-2022 03:38 PM
Plz have you got the solution for your issue?
11-10-2022 07:32 PM
Ok, so I found the solution. Thanks @azte for the reminder to post it here!
Firstly, @Wayne DeNardi is correct that the protocol needs to be listed as WebRTC for this to work. Otherwise it might be "Protocol: Spark" in which case answering/joining the meeting is a different xCommand. In my case the end-point was definitely enabled in their Webex environment. The text to check is
*r BookingsListResult Booking 1 DialInfo Calls Call 1 Protocol: WebRTC
To answer/join, use:
xCommand WebRTC Join BookingId: <booking-id> Url: <call-number>
Where the booking Id comes in as
*r BookingsListResult Booking 1 Id: "this-is-the-booking-id"
And the call-number comes in as
*r BookingsListResult Booking 1 DialInfo Calls Call 1 Number: <this-is-the-call-number>
As I said Spark protocol answer/join is more the standard Dial syntax:
xCommand Dial Number: <call-number> BookingId: <booking-id>
Of course I found the solution in the manual in the end
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide