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 AddIMIncomingCall(CallReceivedEventArgs<InstantMessagingCall> e, CancellationTokenSource cts = null) { if (_state != TranscriptRecorderState.Active) { NonBlockingConsole.WriteLine("Warn: AddIMIncomingCall in unexpected TranscriptRecorderSession state: " + _state.ToString()); } IMTranscriptRecorder i = new IMTranscriptRecorder(this); ConversationParticipant caller = e.RemoteParticipant; Message m = new Message("InstantMessaging Conversation Participant Added.", caller.DisplayName, caller.UserAtHost, caller.Uri, DateTime.Now, _conversation.Id, _conversation.ConferenceSession.ConferenceUri, MessageType.ConversationInfo, MessageDirection.Outgoing); this.OnMessageReceived(m); _transcriptRecorders.Add(i); _conversationToCallTranscriptMapping[_conversationTranscriptRecorder].Add(i); i.InstantMessagingCall_Received(e); }