/// <summary> /// Initialize telephony and VoIP stack. On success register accounts. /// </summary> /// <returns>initialiation status</returns> public int Initialize(IVoipProxy proxy) { _stack = proxy; int status = 0; /// if (!IsInitialized) { //// register to signaling proxy interface ICallProxyInterface.CallStateChanged += OnCallStateChanged; ICallProxyInterface.CallIncoming += OnIncomingCall; ICallProxyInterface.CallNotification += OnCallNotification; // Initialize call table _calls = new Dictionary <int, IStateMachine>(); } // (re)initialize voip proxy status = StackProxy.initialize(); if (status != 0) { return(status); } // (re)register _initialized = true; return(status); }
private void bbtnRegister_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { StackProxy.initialize(); CallManager.StackProxy = StackProxy; Config.CFNRFlag = false; Config.CFUFlag = false; Config.DefaultAccountIndex = 0; Config.AAFlag = Settings.AutoAnswer; Config.DNDFlag = Settings.DoNotDisturb; if (Config.Accounts.Count > 0) { Registrar.unregisterAccounts(); } Config.Accounts.Clear(); AccountConfig acc = new AccountConfig(); acc.AccountName = Settings.UserName; acc.DisplayName = Settings.UserName; acc.DomainName = Settings.Domain; acc.HostName = Settings.Host; acc.Password = Settings.Password; acc.TransportMode = ETransportMode.TM_UDP; acc.UserName = Settings.UserName; acc.Id = Settings.UserName; acc.ProxyAddress = ""; Config.Accounts.Add(acc); //ConfigStruct.listenPort = Settings.Port; //ConfigStruct.noUDP = false; //ConfigStruct.noTCP = true; //ConfigStruct.stunServer = ""; //ConfigStruct.publishEnabled = false; //ConfigStruct.expires = 3600; //ConfigStruct.VADEnabled = true; //ConfigStruct.ECTail = 200; //ConfigStruct.nameServer = Settings.Host; //ConfigStruct.pollingEventsEnabled = false; CallManager.Config = Config; StackProxy.Config = Config; Registrar.Config = Config; pjsipPresenceAndMessaging.Instance.Config = Config; CallManager.CallStateRefresh -= CallManager_CallStateRefresh; CallManager.CallStateRefresh += CallManager_CallStateRefresh; //CallManager.IncomingCallNotification += CallManager_IncomingCallNotification; Registrar.AccountStateChanged -= Instance_AccountStateChanged; Registrar.AccountStateChanged += Instance_AccountStateChanged; if (CallManager.Initialize() == 0) { Registrar.registerAccounts(); } else { lMessages.Caption = "Popraw ustawienia."; lStatus.Caption = "Nie połączono"; timerMessages.Start(); } int noOfCodecs = StackProxy.getNoOfCodecs(); for (int i = 0; i < noOfCodecs; i++) { string codecname = StackProxy.getCodec(i); StackProxy.setCodecPriority(codecname, 128); } StackProxy.DtmfDigitReceived -= Instance_DtmfDigitReceived; StackProxy.DtmfDigitReceived += Instance_DtmfDigitReceived; }