private void MenuItemCall_Click(object sender, RoutedEventArgs e) { MenuItem menuItem = e.OriginalSource as MenuItem; if (menuItem == null) return; if (menuItem == this.MenuItemCall_MakeAudioCall) { if (this.AVSession == null) { this.AVSession = MyAVSession.CreateOutgoingSession(this.sipService.SipStack, MediaType.Audio); this.AVSession.MakeCall(this.remotePartyUri); } else { LOG.Error("Already in Call"); } } else if (menuItem == this.MenuItemCall_MakeVideoCall) { if (this.AVSession == null) { this.AVSession = MyAVSession.CreateOutgoingSession(this.sipService.SipStack, MediaType.AudioVideo); this.AVSession.MakeCall(this.remotePartyUri); } else { LOG.Error("Already in Call"); } } else if (menuItem == this.MenuItemCall_AddRemoveVideo) { if (this.AVSession != null && this.AVSession.IsConnected) { if ((this.AVSession.MediaType & MediaType.Video) == MediaType.Video) { this.AVSession.Update(MediaType.Audio); } else { this.AVSession.Update(MediaType.AudioVideo); } } } else if (menuItem == this.MenuItemCall_MakeTransfer) { if (this.AVSession != null && this.AVSession.IsConnected) { lock (this.AVSession) { CallTransferWindow window = new CallTransferWindow(); window.ShowDialog(); if (!String.IsNullOrEmpty(window.TransferUri)) { this.transferUri = window.TransferUri; if (this.IsHeld) { this.AVSession.TransferCall(this.transferUri); } else { // FIXME: for now doubango will not send Hold prior to transfer this.isTransfering = true; this.AVSession.HoldCall(); } } } } else { LOG.Error("Invalid State"); } } else if (menuItem == this.MenuItemCall_HoldResume) { if (this.AVSession != null && this.AVSession.IsConnected) { lock (this.AVSession) { if (this.IsHeld) { this.AVSession.ResumeCall(); } else { this.AVSession.HoldCall(); } } } else { LOG.Error("Invalid State"); } } else if (menuItem == this.MenuItemCall_HangUp) { if (this.AVSession != null) { lock (this.AVSession) { this.AVSession.HangUpCall(); } } else { LOG.Error("Invalid State"); } } }
private void MenuItemCall_Click(object sender, RoutedEventArgs e) { MenuItem menuItem = e.OriginalSource as MenuItem; if (menuItem == null) { return; } if (menuItem == this.MenuItemCall_MakeAudioCall) { if (this.AVSession == null) { this.AVSession = MyAVSession.CreateOutgoingSession(this.sipService.SipStack, MediaType.Audio); this.AVSession.MakeCall(this.remotePartyUri); } else { LOG.Error("Already in Call"); } } else if (menuItem == this.MenuItemCall_MakeVideoCall) { if (this.AVSession == null) { this.AVSession = MyAVSession.CreateOutgoingSession(this.sipService.SipStack, MediaType.AudioVideo); this.AVSession.MakeCall(this.remotePartyUri); } else { LOG.Error("Already in Call"); } } else if (menuItem == this.MenuItemCall_AddRemoveVideo) { if (this.AVSession != null && this.AVSession.IsConnected) { if ((this.AVSession.MediaType & MediaType.Video) == MediaType.Video) { this.AVSession.Update(MediaType.Audio); } else { this.AVSession.Update(MediaType.AudioVideo); } } } else if (menuItem == this.MenuItemCall_MakeTransfer) { if (this.AVSession != null && this.AVSession.IsConnected) { lock (this.AVSession) { CallTransferWindow window = new CallTransferWindow(); window.ShowDialog(); if (!String.IsNullOrEmpty(window.TransferUri)) { this.transferUri = window.TransferUri; if (this.IsHeld) { this.AVSession.TransferCall(this.transferUri); } else { // FIXME: for now doubango will not send Hold prior to transfer this.isTransfering = true; this.AVSession.HoldCall(); } } } } else { LOG.Error("Invalid State"); } } else if (menuItem == this.MenuItemCall_HoldResume) { if (this.AVSession != null && this.AVSession.IsConnected) { lock (this.AVSession) { if (this.IsHeld) { this.AVSession.ResumeCall(); } else { this.AVSession.HoldCall(); } } } else { LOG.Error("Invalid State"); } } else if (menuItem == this.MenuItemCall_HangUp) { if (this.AVSession != null) { lock (this.AVSession) { this.AVSession.HangUpCall(); } } else { LOG.Error("Invalid State"); } } }