internal void OnActiveMediaTypeCallToEstablish(Conversation conversation, TranscriptRecorderType addedModality) { // TODO: Will be called from ConferenceTranscriptRecorder after joining an invited conf & added Calls for each supported modality // Note: Requires Established async methods to be added to AV and IM if (addedModality == TranscriptRecorderType.AudioVideo) { AVTranscriptRecorder avRecorder = new AVTranscriptRecorder(this); // TODO: Log call established and added to conv/conf _transcriptRecorders.Add(avRecorder); _conversationToCallTranscriptMapping[_conversationTranscriptRecorder].Add(avRecorder); avRecorder.EstablishAudioVideoCall(conversation); } else if (addedModality == TranscriptRecorderType.InstantMessage) { IMTranscriptRecorder imRecorder = new IMTranscriptRecorder(this); // TODO: Log call established and added to conv/conf _transcriptRecorders.Add(imRecorder); _conversationToCallTranscriptMapping[_conversationTranscriptRecorder].Add(imRecorder); imRecorder.EstablishInstantMessagingCall(conversation); } }
public void AddAVIncomingCall(CallReceivedEventArgs <AudioVideoCall> e, CancellationTokenSource cts = null) { if (_state != TranscriptRecorderState.Active) { NonBlockingConsole.WriteLine("Warn: AddAVIncomingCall in unexpected TranscriptRecorderSession state: " + _state.ToString()); } AVTranscriptRecorder a = new AVTranscriptRecorder(this); ConversationParticipant caller = e.RemoteParticipant; Message m = new Message("AudioVideo Conversation Participant Added.", caller.DisplayName, caller.UserAtHost, caller.Uri, DateTime.Now, _conversation.Id, (_conversation.ConferenceSession == null) ? "null" : _conversation.ConferenceSession.ConferenceUri, MessageType.ConversationInfo, MessageDirection.Outgoing); this.OnMessageReceived(m); _transcriptRecorders.Add(a); _conversationToCallTranscriptMapping[_conversationTranscriptRecorder].Add(a); a.AudioVideoCall_Received(e); }