We are integrating the Zoom Video SDK with Twilio Audio, following this article: IVR Dial Trees with Video SDK. We currently have 17 Twilio numbers purchased for various countries, working with Twilio Video.
Just for the sake of clarification, am I right that the global_dial_in_numbers, which are currently unavailable in our session object for Zoom Video SDK API, will be available after purchasing the PSTN (audio conferencing) add-on?
I donāt have an access to a Zoom Account. Have I rightly understood that once the add-on is purchased, the business will be able to access the dial-in numbers for necessary countries in the admin panel, and provide them to the development team for integration with our Twilio setup?
Until December, we need to maintain simultaneous usage of our current Twilio Video setup. How can we manage this in the best way? During the transition period, is it possible to use these Zoom-provided numbers for Twilio Video as well, ensuring a seamless switch between the two services?
I would make sure you are just swapping Twilio Video with Zoom Video SDK. You can keep your Twilio Programmable Voice the same, but connect it to Zoom Video SDK instead of Twilio Programmable Video.
Does that make sense? Happy to walk you through it on a meeting as well.
Update the backend code with the logic you outlined in your article using the sendDigits approach.
I really appreciate the offer to have a meeting, but fingers crossed , I wonāt get stuck so badly that I need it! If I do, Iāll be ready with my SOS emoji .
And also when connecting to a Zoom session via JWT, we can set a user_identity key in the token payload, which is crucial for mapping users to our system. [from docs: param user_key (string) - Another identifier for the user. Set with the user_identity key in the Video SDK JWT payload]
However, using the sendDigits approach for phone dial-ins doesnāt seem to offer a way to set this user_identity. Is there a way to achieve this, or any recommended workarounds? Itās quite important for us to uniquely identify users for tracking and managing sessions in our backend.
I had a bit of a āEureka!ā moment, almost like Newton under the apple tree. The idea is to capture the From number in Twilio webhook, save it in our system, and then, when using Zoomās API to list session users, we can match the call_number to identify exactly which user from our system has dialed in.
This way, we can identify and track dial-in users based on their phone numbers, just like we do with user_identity in JWTs.
Our organization has separate environments for testing and production purposes. We also want to keep our production Zoom Live Video SDK API keys private.
To achieve that, we registered 2 separate Zoom accounts and used them for testing and production environments accordingly. In case we want to use Audio Conferencing addon, we will need to have a $100 commitment for each account.
Please advise. Can we use one account for the development and production but have 2 separate API keys on this account? Is there some kind of sandbox or test account for this purpose offered by Zoom?
I hope youāre doing well. We recently purchased the PSTN audio add-on for our Zoom Video SDK integration. However, Iām encountering a critical issue with the sendDigits functionality in Twilio, which requires numeric data [from Twilio docs, "sendDigits attribute may only contain the following characters "0123456789#w].
According to the documentation here and the recent changelog update here, the session_number should be returned, but itās missing in the API response.
Hereās an example of the data Iām receiving (GET https://api.zoom.us/v2/videosdk/sessions/Xc090QtISQmEEGvBGGOWQw==?type=live):
This is blocking our dial-in integration, as sendDigits cannot process the session ID due to non-numeric characters. Could you please assist or escalate this issue?
Thanks you for having an opportunity to have a meeting! I booked it on Friday! Before that, I wanted to clarify the flow we discussed to make sure Iām on the right track.
So thus the concept is:
Twilio Number is an Entry Point: The user dials into the Twilio number, which acts as middleware.
Connect to Zoom PSTN Number: Using the sendDigits property, Twilio dials the Zoom PSTN number and passes the Zoom session information (session number, participant ID, and passcode).
I believe the zoomSessionNumber corresponds to session_number from the docs, and the zoomDialInNumber is the number from the global_dial_in_numbers field. However, weāre currently not receiving the global_dial_in_numbers field via the API, even though we purchased the audio add-on.
Could you clarify how to configure the admin panel so that these numbers are returned? A screenshot would be incredibly helpful. I also noticed in your YouTube video here, the dial-in numbers werenāt displayed. Is this related?
Thanks again, and Iām looking forward to our meeting!
@tommy Iāve also run into another challenge that will appear immediately after user connects to the Zoom meeting using sendDigits approach. In our Twilio Video integration, we use a server-side callback to notify the frontend (via WebSockets) when a dial-in participant connects or disconnects, allowing us to display them in real-time.
For Zoom Video SDK, I canāt find an equivalent solution for dial-in users. I know there are hooks for the Meeting SDK, but is there a way to notify the frontend when dial-in users connect/disconnect in the Video SDK?
@tommy
Iāve been reviewing the Zoom documentation in a more meticulous way and found the session.user_data event, which seems to handle user events, including dial-in users.
I believe the flow is that I would need to subscribe to this event using the Event Subscription API (an access to which. should be purchased), configure the webhook endpoint in the admin panel (e.g., via ngrok for testing), and then forward the data to the frontend via WebSockets for real-time updates.