You're invited to Zoomtopia 2022! Our annual user conference will take place in the Americas on November 8-9 and in APAC, Japan, and EMEA on November 17.
Learn more about our hybrid event experienceEverything you need to work together, all in one place.
Explore Zoom One's Collaboration ToolsConnect virtually from anywhere with Zoom Meetings
Collaborate together with Zoom Chat
Call the world with Zoom Phone
Create and brainstorm with Zoom Whiteboard
Rich conversation analytics to improve sales
Send and receive messages and calendar invitations
Innovative video solutions for every meeting space.
Bring meeting spaces online with Zoom Rooms
Conference Room Connector links existing rooms to Zoom
Innovative solutions for every space
Solutions to host impactful virtual and hybrid experiences.
Find a Solution for Every EventHost hybrid and virtual events with Zoom Events
Elevate your brand with single session events powered by Zoom Sessions
Broadcast at scale with Zoom Webinars
Host and attend classes, group events, and more OnZoom
An omnichannel cloud solution optimized for video.
Engage customers with Zoom Contact Center
Deliver intelligent support with conversational AI
Zoom solutions elevate collaboration across vertical use cases.
Discover Zoom Industry SolutionsEnabling exciting new ways to teach, learn, and connect globally
Transforming client engagement and employee experiences
Improving collaboration between agencies, ministries and constituents
Connecting care, collaboration, and medical innovation
Real-time communication, anywhere in the world
Bridging the in-store and online experiences
Expert support and services for all your design, strategy, implementation, event, and hardware needs.
Global Services
Flexible subscription plans for hardware
An open platform that allows developers to build Zoom apps and integrations.
Explore over 1,500 apps in Zoom App Marketplace
Documentation for building on Zoom's platform using APIs, Webhooks, and SDKs
Resources that help developers evaluate & build with our solutions
Post your questions and get help from our developer community
Zoom Partners bring Zoom's communications platform to market through alliance, sales, and service partnerships.
Explore Zoom's technology ecosystem
Find a trusted Partner
Learn about Zoom's Partner Programs
Access marketing & sales resources
Login to the Partner Portal and click 'Learn'
Discover new ways to use Zoom solutions to power your modern workforce.
Access expert-led tutorials on Zoom products and features.
Network with other Zoom users, and share your own product and industry insights.
Get documentation on deploying, managing, and using the Zoom platform.
Keep your Zoom client up to date to access the latest features.
Download CenterDownload hi-res images and animations to elevate your next Zoom meeting.
Browse Backgrounds2022-03-12 07:53 PM - edited 2022-03-12 08:00 PM
Hi everyone,
I have zoom integration in my iOS app.
I am using SwiftUI.
App user receives meeting number and password from API and initiate zoom call by button click.
Here is the code I have
struct StartZoomVC: UIViewControllerRepresentable {
@Binding var meetingNumber: String
@Binding var passCode: String
let newVC = UIViewController()
private let delegate: MobileRTCMeetingServiceDelegate
//private let authDelegate: MobileRTCAuthDelegate
init(delegate: MobileRTCMeetingServiceDelegate, zoomMeetingNumber: Binding<String>, zoomPasscode: Binding<String>) {
self._meetingNumber = zoomMeetingNumber
self._passCode = zoomPasscode
self.delegate = delegate
}
func makeUIViewController(context: Context) -> UIViewController {
newVC.view.tag = 83838383
newVC.view.backgroundColor = .white
return newVC
}
func updateUIViewController(_ taskViewController: UIViewController, context: Context) {
askPermissionsForCameraFeed()
print("check video permissions")
}
func askPermissionsForCameraFeed() {
AVCaptureDevice.requestAccess(for: AVMediaType.video) { response in
if response {
//access granted
getMainWindowToShareWithAppDelegate()
} else {
print("wtf")
}
}
}
func getMainWindowToShareWithAppDelegate(){
DispatchQueue.main.async {
let scene = UIApplication.shared.connectedScenes.first
let windowSceneDelegate = scene?.delegate as? UIWindowSceneDelegate
let window = (windowSceneDelegate?.window)!
UIApplication.shared.delegate = AppDelegate.Shared
let delegate = UIApplication.shared.delegate as! AppDelegate
delegate.window = window
print("finding window to provide to zoom sdk")
print(meetingNumber)
print(passCode)
joinMeeting(meetingNumber: meetingNumber, meetingPassword: passCode)
}
}
func startMeeting() {
// 5. Obtain the MobileRTCMeetingService from the Zoom SDK, this service can start meetings, join meetings, leave meetings, etc.
if let meetingService = MobileRTC.shared().getMeetingService() {
//6. Set the ViewContoller to be the MobileRTCMeetingServiceDelegate
meetingService.delegate = delegate
/*** 5. Create a MobileRTCMeetingStartParam to provide the MobileRTCMeetingService with the necessary info to start an instant meeting. In this case we will use MobileRTCMeetingStartParam4LoginlUser(), since the user has logged into Zoom. ***/
let startMeetingParameters = MobileRTCMeetingStartParam4LoginlUser()
// 6. Call the startMeeting function in MobileRTCMeetingService. The Zoom SDK will handle the UI for you, unless told otherwise.
meetingService.startMeeting(with: startMeetingParameters)
}
}
/*func logIn(email: String, password: String) {
// 2. Obtain the MobileRTCAuthService from the Zoom SDK, this service can log in a Zoom user, log out a Zoom user, authorize the Zoom SDK etc.
if let authorizationService = MobileRTC.shared().getAuthService() {
// 3. Call the login function in MobileRTCAuthService. This will attempt to log in the user.
//authorizationService.login(withEmail: email, password: password, rememberMe: false)
}else {
print("authorization service failed")
}
}*/
func joinMeeting(meetingNumber: String, meetingPassword: String) {
// Obtain the MobileRTCMeetingService from the Zoom SDK, this service can start meetings, join meetings, leave meetings, etc.
if let meetingService = MobileRTC.shared().getMeetingService() {
// Create a MobileRTCMeetingJoinParam to provide the MobileRTCMeetingService with the necessary info to join a meeting.
// In this case, we will only need to provide a meeting number and password.
// 2. Set the ViewContoller to be the MobileRTCMeetingServiceDelegate
meetingService.delegate = delegate
let joinMeetingParameters = MobileRTCMeetingJoinParam()
joinMeetingParameters.meetingNumber = meetingNumber
joinMeetingParameters.password = meetingPassword
MobileRTC.shared().getMeetingSettings()?.disableShowVideoPreview(whenJoinMeeting: true)
MobileRTC.shared().getMeetingSettings()?.enableCustomMeeting = false
if #available(iOS 13.0, *) {
// 13.0 and above
//MobileRTC.shared().setMobileRTCRootController(self.newVC as? UINavigationController)
}
// Call the joinMeeting function in MobileRTCMeetingService. The Zoom SDK will handle the UI for you, unless told otherwise.
// If the meeting number and meeting password are valid, the user will be put into the meeting. A waiting room UI will be presented or the meeting UI will be presented.
DispatchQueue.main.async {
meetingService.joinMeeting(with: joinMeetingParameters)
}
}
}
}
extension StartZoomVC {
class Delegate: NSObject, MobileRTCMeetingServiceDelegate {
func onMeetingError(_ error: MobileRTCMeetError, message: String?) {
switch error {
case .passwordError:
print("Could not join or start meeting because the meeting password was incorrect.")
case .success:
print("onMeetingError : MobileRTCMeetError_Success")
default:
print("Could not join or start meeting with MobileRTCMeetError: \(error) \(message ?? "")")
}
}
func onMeetingEndedReason(_ reason: MobileRTCMeetingEndReason) {
print("Join meeting end reason.")
}
// Is called when the user joins a meeting.
func onJoinMeetingConfirmed() {
print("Join meeting confirmed.")
if let meetingService = MobileRTC.shared().getMeetingService() {
let newView = meetingService.meetingView()
print("what am I seeing !")
}
}
// Is called upon meeting state changes.
func onMeetingStateChange(_ state: MobileRTCMeetingState) {
print("onMeetingStateChange")
print(state)
switch state {
case .connecting:
print("Connecting")
case .disconnecting:
print("disconnecting")
case .ended:
print("ended")
case .failed:
print("failed")
case .idle:
print("idle")
case .inMeeting:
print("in meeting")
case .inWaitingRoom:
print("in waiting room")
case .joinBO:
print("join bo")
case .leaveBO:
print("leave bo")
case .locked:
print("locked")
case .reconnecting:
print("reconnecting")
case .unknow:
print("unknown")
case .unlocked:
print("unlocked")
case .waitingExternalSessionKey:
print("waiting external session key")
case .waitingForHost:
print("waiting for host")
case .webinarDePromote:
print("de promote")
case .webinarPromote:
print("promote")
default:
print("bad things happened")
}
}
}
}
Here is how I call zoom method from swiftui on button click
StartZoomVC(delegate: StartZoomVC.Delegate(), zoomMeetingNumber: $meetingNumber, zoomPasscode: $meetingPassword)
The error I am getting is this
Could not join or start meeting with MobileRTCMeetError: MobileRTCMeetError the meeting does not exist
Here is full state log trace
onMeetingStateChange
MobileRTCMeetingState
Connecting
onMeetingStateChange
MobileRTCMeetingState
disconnecting
onMeetingStateChange
MobileRTCMeetingState
failed
Could not join or start meeting with MobileRTCMeetError: MobileRTCMeetError the meeting does not exist
onMeetingStateChange
MobileRTCMeetingState
Connecting
Join meeting end reason.
onMeetingStateChange
MobileRTCMeetingState
ended
The main problem is that the user (iPhone) cannot join to the call
Please note meeting ID and pass is correct.
2022-03-16 02:06 PM
Hi @ggarnik please ask this over in our Developer Forum where they'll be able to better assist
2022-11-09 09:39 AM
Hi @ggarnik , did you find any solution for this error (Could not join or start meeting with MobileRTCMeetError: MobileRTCMeetError the meeting does not exist) Please help me I stuck here from almost 1month.