コード例 #1
0
        /// <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);
        }
コード例 #2
0
ファイル: Main.cs プロジェクト: OlekMotyka/VoIP-Client
        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;
        }