public void Dispose() { closeResetEvents(); // Calling part here if (voiceXmlBrowser != null) { voiceXmlBrowser.Dispose(); voiceXmlBrowser = null; } }
private void InitializeVoiceXmlBrowser() { voiceXmlBrowser = new Microsoft.Rtc.Collaboration.AudioVideo.VoiceXml.Browser(); voiceXmlBrowser.Disconnecting += new EventHandler <DisconnectingEventArgs>(HandleDisconnecting); voiceXmlBrowser.Disconnected += new EventHandler <DisconnectedEventArgs>(HandleDisconnected); voiceXmlBrowser.SessionCompleted += new EventHandler <SessionCompletedEventArgs>(HandleSessionCompleted); voiceXmlBrowser.SetAudioVideoCall(audioVideoCall); }
// Initializes the Browser object and registers event handlers. private void InitializeVoiceXmlBrowser() { // Create a Browser instance if one doesn’t already exist. if (_voiceXmlBrowser == null) { // Create the browser object, and bind all associated event handlers. Console.WriteLine("Call state: " + _audioVideoCall.State.ToString() + "\nMedia flow state: " + _audioVideoCall.Flow.State.ToString()); _voiceXmlBrowser = new Microsoft.Rtc.Collaboration.AudioVideo.VoiceXml.Browser(); _voiceXmlBrowser.Disconnecting += new EventHandler <DisconnectingEventArgs>(HandleDisconnecting); _voiceXmlBrowser.Disconnected += new EventHandler <DisconnectedEventArgs>(HandleDisconnected); _voiceXmlBrowser.SessionCompleted += new EventHandler <SessionCompletedEventArgs>(HandleSessionCompleted); } }
private void ProcessCall(object state) { WaitHandle.WaitAll(waitToProcessCall); InitializeVoiceXmlBrowser(); PlayMenu("mainmenu"); waitForMenuInput.WaitOne(); // Calling part here voiceXmlBrowser.Dispose(); voiceXmlBrowser = null; audioVideoCall.StateChanged -= this.AudioVideoCall_StateChanged; if (selectedOptions.Count >= 2) { if (!string.IsNullOrEmpty(selectedOptions[0]) && !string.IsNullOrEmpty(selectedOptions[1])) { string helpdeskExtension = parser.HelpdeskNumber(selectedOptions[0], selectedOptions[1]); if (!string.IsNullOrEmpty(helpdeskExtension)) { this.logger.Log("Transferring user {0} to helpdesk# {1}", audioVideoCall.OriginalDestinationUri, helpdeskExtension); if (audioVideoCall.State == CallState.Established) { audioVideoCall.BeginTransfer( helpdeskExtension, new CallTransferOptions(CallTransferType.Attended), result => { try { audioVideoCall.EndTransfer(result); } catch (OperationFailureException ofe) { this.logger.Log("The recipient declined or did not answer the call:{0}", ofe); } catch (RealTimeException rte) { this.logger.Log("Error transferring call:{0}", rte); } }, null); } } else { this.logger.Log("Unable to find helpdesk number for {0} -> {1}", selectedOptions[0], selectedOptions[1]); TerminateCall(); } } else { this.logger.Log("Option Selected are less than 2"); TerminateCall(); } } else { this.logger.Log("No user input"); TerminateCall(); } }