Ejemplo n.º 1
0
        public bool Connect()
        {
            if (String.IsNullOrEmpty(Login) || String.IsNullOrEmpty(Address))
            {
                throw new ArgumentException("Не верны данные для подключения, проверте логин, пароль, адрес и порт!");
            }

            if (_connection != null)
            {
                if (_connection.IsConnected())
                {
                    _connection.Logoff();
                }
            }
            else
            {
                _connection = new ManagerConnection();
                _connection.FireAllEvents   = true;
                _connection.UnhandledEvent += _connection_UnhandledEvent;
                //_connection.Dial += _connection_Event_Dial; ;
                //_connection.Bridge += _connection_Event_Bridge;
                //_connection.Hangup += _connection_Event_Hangup;
            }

            _connection.Username = Login;
            _connection.Password = Password;
            _connection.Hostname = Address;
            _connection.Port     = Port;

            _connection.Login();

            return(_connection.IsConnected());
        }
Ejemplo n.º 2
0
 public void Login()
 {
     if (manager.IsConnected())
     {
         return;
     }
     try
     {
         manager.Login();
         BindEvents();
     }
     catch (Exception e)
     {
         StartReconnectProcess();
     }
 }
Ejemplo n.º 3
0
        //-------------------------------------------------------------------------------------------------------------

        void OKbuttonClick(object sender, EventArgs e)
        {
            if ((manager != null) && (manager.IsConnected() == true))
            {
                manager.Logoff();
            }
            this.Close();
        }
Ejemplo n.º 4
0
 private void TryRequestQueuesStatus()
 {
     try
     {
         if (managerConnection.IsConnected())
         {
             ClearCacheIfNeeded();
             RequestQueuesStatus();
         }
         else
         {
             LogToConsole($"Not connected.", ConsoleTextColor.Info);
             managerConnection.Login();
         }
     }
     catch (Exception e)
     {
         UpdateQueueStatusRequestStateIndicator("TX/RX Error");
         LogToConsole($"Communication error {e.Message}", ConsoleTextColor.Error);
     }
 }
Ejemplo n.º 5
0
        //-------------------------------------------------------------------------------------------------------------

        private void NewCallerQForm_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (tmr_call_time != null)
            {
                tmr_call_time.Stop();
                tmr_call_time.Dispose();
            }

            if (nf != null)
            {
                if ((manager != null) && (manager.IsConnected() == true))
                {
                    manager.Logoff();
                }

                nf.Close();
                nf.Dispose();
            }
        }
Ejemplo n.º 6
0
 void astCon_ConnectionState(object sender, ConnectionStateEvent e)
 {
     // Connection state has changed
     connectionStateLbl.Text = AstCon.IsConnected() ? $"Connected to: {AstCon.Username}@{AstCon.Hostname}" : $"Disconnected, reconnecting to {AstCon.Hostname}...";
 }
Ejemplo n.º 7
0
        /// <summary>
        /// Quay số gọi ra  - tổng đài ip
        /// </summary>
        private bool QuaySoGoiDien()
        {
            bool         bRet = false;
            const string ORIGINATE_CONTEXT = "from-internal";

            if (G_manager == null)
            {
                return(false);
            }
            try
            {
                if (!G_manager.IsConnected())
                {
                    G_manager = new ManagerConnection(AsteriskInfo.AST_HOSTNAME, AsteriskInfo.AST_PORT_NUMBER, AsteriskInfo.AST_USERNAME, AsteriskInfo.AST_PASSWORD);

                    LogError.WriteLogInfo("ReConnected:" + G_PhoneNumber);
                }
                if (G_manager.IsConnected())
                {
                    this.Invoke(new MethodInvoker(delegate
                    {
                        Text = "Gọi đi : Kết nối tổng đài IP thành công";
                    }));
                }
                else
                {
                    this.Invoke(new MethodInvoker(delegate
                    {
                        Text = "Gọi đi : Kết nối tổng đài IP thất bại !!!";
                    }));
                }
                G_manager.Login();
                var oc = new OriginateAction()
                {
                    Context  = ORIGINATE_CONTEXT,
                    Priority = 1,
                    Channel  = "SIP/" + G_lineIPPBX,
                    CallerId = G_lineIPPBX,
                    Exten    = G_PhoneNumber,
                    Timeout  = 5000,
                    //Async = true
                };
                if (G_manager.SendAction(oc).IsSuccess())
                {
                    bRet = true;
                }
                else
                {
                    bRet = false;
                }

                G_manager.Logoff();
            }
            catch (Exception ex)
            {
                //bw_Call.CancelAsync();
                bRet = false;
                G_manager.Logoff();
                LogError.WriteLogError("QuaySoGoiDien2", ex);
            }
            return(bRet);
        }
Ejemplo n.º 8
0
        private bool QuaySoGoiDien(ManagerConnection manager, string line, string phoneNumber)
        {
            bool         bRet = false;
            const string ORIGINATE_CONTEXT = "from-internal";

            if (manager == null)
            {
                return(false);
            }
            try
            {
                G_manager = manager;
                string channel = string.Format("{0}/{1}", Config_Common.ChannelDial, line);
                if (!G_manager.IsConnected())
                {
                    G_manager = new ManagerConnection(AsteriskInfo.AST_HOSTNAME, AsteriskInfo.AST_PORT_NUMBER, AsteriskInfo.AST_USERNAME, AsteriskInfo.AST_PASSWORD);
                }
                G_manager.Login();
                if (G_manager.IsConnected())
                {
                    this.Invoke(new MethodInvoker(delegate
                    {
                        Text = "Gọi đi : Kết nối tổng đài IP thành công - " + channel;
                    }));
                }
                else
                {
                    this.Invoke(new MethodInvoker(delegate
                    {
                        Text = "Gọi đi : Kết nối tổng đài IP thất bại !!! - " + channel;
                    }));
                }
                OriginateAction oc = new OriginateAction()
                {
                    Context  = ORIGINATE_CONTEXT,
                    Priority = 1,
                    Channel  = channel,
                    CallerId = line,
                    Exten    = phoneNumber,
                    Timeout  = 15000
                };

                ManagerResponse originateResponse = G_manager.SendAction(oc, 30000);
                if (originateResponse.IsSuccess())
                {
                    bRet = true;
                }
                else
                {
                    bRet = false;
                }
                G_manager.Logoff();
            }
            catch (Exception ex)
            {
                bRet = false;
                G_manager.Logoff();
                LogError.WriteLogError("QuaySoGoiDien2", ex);
            }
            return(bRet);
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Quay số gọi ra  - tổng đài ip
        /// </summary>
        private bool QuaySoGoiDien()
        {
            bool         bRet = false;
            const string ORIGINATE_CONTEXT = "from-internal";

            if (G_manager == null)
            {
                return(false);
            }
            try
            {
                string channel = string.Format("{0}/{1}", Config_Common.ChannelDial, G_lineIPPBX);
                if (!G_manager.IsConnected())
                {
                    G_manager = new ManagerConnection(AsteriskInfo.AST_HOSTNAME, AsteriskInfo.AST_PORT_NUMBER, AsteriskInfo.AST_USERNAME, AsteriskInfo.AST_PASSWORD);

                    LogError.WriteLogInfo("ReConnected:" + G_PhoneNumber);
                }
                G_manager.Login();
                if (G_manager.IsConnected())
                {
                    this.Invoke(new MethodInvoker(delegate
                    {
                        Text = "Gọi đi : Kết nối tổng đài IP thành công - " + channel;
                    }));
                }
                else
                {
                    this.Invoke(new MethodInvoker(delegate
                    {
                        Text = "Gọi đi : Kết nối tổng đài IP thất bại !!! - " + channel;
                    }));
                }
                var oc = new OriginateAction()
                {
                    Context  = ORIGINATE_CONTEXT,
                    Priority = 1,
                    Channel  = channel,//"SIP/" + G_lineIPPBX,
                    CallerId = G_lineIPPBX,
                    Exten    = G_PhoneNumber + Config_Common.Asterisk_SetNumberSign,
                    Timeout  = Config_Common.Asterisk_CallOut_TimeOut,
                    //Async = true
                };
                //oc.SetVariable("exten", G_PhoneNumber);
                if (G_manager.SendAction(oc, oc.Timeout).IsSuccess())
                {
                    bRet = true;
                }
                else
                {
                    bRet = false;
                }

                G_manager.Logoff();
            }
            catch (Exception ex)
            {
                //bw_Call.CancelAsync();
                bRet = false;
                G_manager.Logoff();
                LogError.WriteLogError("QuaySoGoiDien2", ex);
            }
            return(bRet);
        }