3

I am trying to integrate the Quickblox Webrtc Video Calling feature into a iOS Swift App. However, i'm having a lot of trouble with their SDK & api documentation, and it seems they don't have a tech team to help people with questions about their platforms, so maybe we can all help each other, so here are a few questions that I've noticed a lot of people have been asking on both StackOverFlow and Github regarding their webrtc SDK. Please restrict answers to the Swift language. The docs link is http://quickblox.com/developers/SimpleSample-videochat-ios

My code so far:

class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?


func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    // Override point for customization after application launch.

    //Firebase config
    FIRApp.configure()


    //Quickblox config
    QBSettings.setApplicationID(xxxxx)
    QBSettings.setAuthKey("xxxxxxxxxxx")
    QBSettings.setAuthSecret("xxxxxxxx-xxxx")
    QBSettings.setAccountKey("xxxxxxxxxxxxxxxxxxxx")

    return true
}

Thats my appdelegate.swift now for the part that giving me problems the actual videochatviewcontroller. The documentation is very vague at the start all is says is:

// Initialize QuickbloxWebRTC and configure signaling

// You should call this method before any interact with QuickbloxWebRTC QBRTCClient.initializeRTC() // Call this method when you finish your work with QuickbloxWebRTC QBRTCClient.deinitializeRTC()

I do not know if I am to call this in my appdelegate.swift or if I should call this in VideoChatViewController's viewDidLoad method or should I create a new method altogether?


Secondly,the docs say to CALL USERS use this method, but its not a method, just random variables, also it doesn't tell tell whether it goes to the viewDidLoad or to a newly created method :

QBRTCClient.instance().addDelegate(self) // self class must conform to QBRTCClientDelegate protocol

// 2123, 2123, 3122 - opponent's

let opponentsIDs = [3245, 2123, 3122]

let newSession = QBRTCClient.instance().createNewSessionWithOpponents(opponentsIDs, withConferenceType: QBRTCConferenceType.Video)

// userInfo - the custom user information dictionary for the call. May be nil.

let userInfo :[String:String] = ["key":"value"]

newSession.startCall(userInfo)

Next, they are vague regarding the method to receive a new session, below they refer to self.session which they never explain where this variable is from or what it consist of

func didReceiveNewSession(session: QBRTCSession!, userInfo: [NSObject : AnyObject]!) {

    if self.session != nil {

        // we already have a video/audio call session, so we reject another one
        // userInfo - the custom user information dictionary for the call from caller. May be nil.

        let userInfo :[String:String] = ["key":"value"]

        session.rejectCall(userInfo)
    }

    else {

        self.session = session
    }
}

Does quickblox require authenticated Quickblox users to use their webrtc or can I Authenticate users with Firebase or parse?

Where do I use QBRTCConfig in the appdelegate or the viewDidLoad? I have tried both and have seen it used in both methods.

Ravi Dhorajiya
  • 1,531
  • 3
  • 21
  • 26
CVApps
  • 43
  • 4

0 Answers0