/// <summary> /// Creates the call object and uses the configure method to activate the /// video / audio support if the values are set to true. /// </summary> /// generating new frames after this call so the user can see himself before /// the call is connected.</param> public virtual void SetupCall() { Append("Setting up ..."); //hacks to turn off certain connection types. If both set to true only //turn servers are used. This helps simulating a NAT that doesn't support //opening ports. //hack to turn off direct connections //Byn.Net.Native.AWebRtcPeer.sDebugIgnoreTypHost = true; //hack to turn off connections via stun servers //Byn.Net.Native.WebRtcDataPeer.sDebugIgnoreTypSrflx = true; NetworkConfig netConfig = CreateNetworkConfig(); Debug.Log("Creating call using NetworkConfig:" + netConfig); //setup the server mCall = UnityCallFactory.Instance.Create(netConfig); if (mCall == null) { Append("Failed to create the call"); return; } mCall.LocalFrameEvents = mLocalFrameEvents; string[] devices = UnityCallFactory.Instance.GetVideoDevices(); if (devices == null || devices.Length == 0) { Debug.Log("no device found or no device information available"); } else { foreach (string s in devices) { Debug.Log("device found: " + s); } } Append("Call created!"); mCall.CallEvent += Call_CallEvent; //this happens in awake now to allow an ui or other external app //to change media config before calling SetupCall //mMediaConfig = CreateMediaConfig(); //make a deep clone to avoid confusion if settings are changed //at runtime. mMediaConfigInUse = mMediaConfig.DeepClone(); Debug.Log("Configure call using MediaConfig: " + mMediaConfigInUse); mCall.Configure(mMediaConfigInUse); mUi.SetGuiState(false); if (mBlockSleep) { //backup sleep timeout and set it to never sleep mSleepTimeoutBackup = Screen.sleepTimeout; Screen.sleepTimeout = SleepTimeout.NeverSleep; } }
/// <summary> /// Creates the call object and uses the configure method to activate the /// video / audio support if the values are set to true. /// generating new frames after this call so the user can see himself before /// the call is connected. /// </summary> public virtual void SetupCall() { Append("Setting up ..."); //hacks to turn off certain connection types. If both set to true only //turn servers are used. This helps simulating a NAT that doesn't support //opening ports. //hack to turn off direct connections //Byn.Net.Native.AWebRtcPeer.sDebugIgnoreTypHost = true; //hack to turn off connections via stun servers //Byn.Net.Native.WebRtcDataPeer.sDebugIgnoreTypSrflx = true; NetworkConfig netConfig = CreateNetworkConfig(); Debug.Log("Creating call using NetworkConfig:" + netConfig); //setup the server mCall = UnityCallFactory.Instance.Create(netConfig); if (mCall == null) { Append("Failed to create the call"); return; } mCall.LocalFrameEvents = mLocalFrameEvents; string[] devices = UnityCallFactory.Instance.GetVideoDevices(); if (devices == null || devices.Length == 0) { Debug.Log("no device found or no device information available"); } else { foreach (string s in devices) { Debug.Log("device found: " + s + " IsFrontFacing: " + UnityCallFactory.Instance.IsFrontFacing(s)); } } Append("Call created!"); mCall.CallEvent += Call_CallEvent; //make a deep clone to avoid confusion if settings are changed //at runtime. mMediaConfigInUse = mMediaConfig.DeepClone(); //try to pick a good default video device if the user wants to send video but //didn't bother to pick a specific device if (mMediaConfigInUse.Video && string.IsNullOrEmpty(mMediaConfigInUse.VideoDeviceName)) { mMediaConfigInUse.VideoDeviceName = UnityCallFactory.Instance.GetDefaultVideoDevice(); } Debug.Log("Configure call using MediaConfig: " + mMediaConfigInUse); mCall.Configure(mMediaConfigInUse); mUi.SetGuiState(false); }