public static void Main(string[] args) { { // start main systems LogManager.MakeInstance(new LogManager()); CaptureSystem.MakeInstance(new CaptureSystem()); TrackingSystem.MakeInstance(new TrackingSystem()); VirtualDeviceManager.MakeInstance(new VirtualDeviceManager()); } { // prepare content managers ContentMaster.MakeInstance(new ContentMaster()); var contentSettings = new ContentManagerSettings(); string resourceRoot = ContentMaster.FindResourceRoot(); contentSettings.SetResourcePaths(resourceRoot, resourceRoot, "(no-file)"); string userRoot = ContentMaster.FindConfigRoot(); contentSettings.SetConfigPaths(userRoot, userRoot, "(no-file)"); ContentMaster.Instance.Load(contentSettings); } { // load last configuration var profile = ContentMaster.Instance.Profiles.LoadDefaultProfile(); new ProfileActivator().ActivateProfile(profile).Wait(); } { // start webserver var server = new Webface.WebfaceServer(); server.Start(); Console.ReadLine(); server.Stop(); } { // cleanup main systems VirtualDeviceManager.MakeInstance(null); TrackingSystem.MakeInstance(null); CaptureSystem.MakeInstance(null); LogManager.MakeInstance(null); EquipmentMaster.MakeInstance(null); } }
private SipProxyWrapper() { _processor = new CommandProcessor(); _deviceMgr = new VirtualDeviceManager(this); _rtpManager = new RTPServerManager(); _inviteMgr = new InviteHolderManager(this); _sipProxy = new SIP_Proxy(new SIP_Stack()); _sipProxy.Stack.Realm = "seecool"; //本地域,当需要验证远程注册用户的时候,发送此域。 _sipProxy.Stack.UserAgent = "NetGateway www.seecool.cc"; //必须设置。 _sipProxy.Stack.Error += M_stack_Error; _sipProxy.Stack.RequestReceived += M_stack_RequestReceived; _sipProxy.Stack.Logger.WriteLog += Logger_WriteLog; _sipProxy.ProxyMode = SIP_ProxyMode.Registrar | SIP_ProxyMode.Statefull | SIP_ProxyMode.B2BUA; _sipProxy.AddressExists += SipProxy_AddressExists; //验证地址。 _sipProxy.Authenticate += SipProxy_Authenticate; //验证授权 _sipProxy.Registrar.CanRegister += Registrar_CanRegister; _sipProxy.IsLocalUri += SipProxy_IsLocalUri; _sipProxy.Stack.ValidateRequest += Stack_ValidateRequest; }