/// <summary> /// Initializes a new instance of the <see cref="CallHandler" /> class. /// </summary> /// <param name="statefulCall">The stateful call.</param> /// <param name="settings">The settings.</param> /// <param name="eventPublisher">The event publisher.</param> public CallHandler( ICall statefulCall, IAzureSettings settings, IEventPublisher eventPublisher ) : base(TimeSpan.FromMinutes(10), statefulCall?.GraphLogger) { _settings = (AzureSettings)settings; _eventPublisher = eventPublisher; this.Call = statefulCall; this.Call.OnUpdated += this.CallOnUpdated; this.Call.Participants.OnUpdated += this.ParticipantsOnUpdated; this.BotMediaStream = new BotMediaStream(this.Call.GetLocalMediaSession(), this.Call.Id, this.GraphLogger, eventPublisher, _settings); if (_settings.CaptureEvents) { var path = Path.Combine(Path.GetTempPath(), BotConstants.DefaultOutputFolder, _settings.EventsFolder, statefulCall.GetLocalMediaSession().MediaSessionId.ToString(), "participants"); _capture = new CaptureEvents(path); } }