/// <summary> /// Starts the manager /// </summary> /// <returns></returns> public bool Start() { bool ret = true; LOG.Debug("Start Service Manager"); ret &= this.LogService.Start(); ret &= this.ConfigurationService.Start(); ret &= this.StackService.Start(); ret &= this.ContactService.Start(); ret &= this.HistoryService.Start(); ret &= this.AccessNetworkService.Start(); ret &= this.StatusService.Start(); ret &= this.SoundService.Start(); ret &= this.ScreenService.Start(); ret &= this.ServiceRealizeService.Start(); MediaSessionMgr.defaultsSetAgcEnabled(true); MediaSessionMgr.defaultsSetEchoSuppEnabled(true); MediaSessionMgr.defaultsSetEchoTail(100); MediaSessionMgr.defaultsSetEchoSkew(0); MediaSessionMgr.defaultsSetNoiseSuppEnabled(true); MediaSessionMgr.defaultsSetVadEnabled(false); MediaSessionMgr.defaultsSetJbMaxLateRate(1); MediaSessionMgr.defaultsSetRtcpEnabled(true); MediaSessionMgr.defaultsSetRtcpMuxEnabled(true); MediaSessionMgr.defaultsSetOpusMaxCaptureRate(16000); /* Because of WebRTC AEC only 8000 and 16000 are supported */ MediaSessionMgr.defaultsSetOpusMaxPlaybackRate(48000); MediaSessionMgr.defaultsSetAudioChannels(1, 1); // mono for both MediaSessionMgr.defaultsSetAudioPtime(20); // default video FPS. Will be updated using the SDP. MediaSessionMgr.defaultsSetAvpfMode(tmedia_mode_t.tmedia_mode_none); MediaSessionMgr.defaultsSetBandwidthVideoDownloadMax(-1); MediaSessionMgr.defaultsSetBandwidthVideoUploadMax(-1); MediaSessionMgr.defaultsSetPrefVideoSize( (tmedia_pref_video_size_t)Enum.Parse(typeof(tmedia_pref_video_size_t), this.configurationService.Get(Configuration.ConfFolder.QOS, Configuration.ConfEntry.PREF_VIDEO_SIZE, Configuration.DEFAULT_QOS_PREF_VIDEO_SIZE), true) ); int fps = this.configurationService.Get(Configuration.ConfFolder.QOS, Configuration.ConfEntry.VIDEO_FPS, 12); MediaSessionMgr.defaultsSetVideoFps(fps); MediaSessionMgr.defaultsSetScreenSize(352, 288); return(ret); }