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()); }
public void Login() { if (manager.IsConnected()) { return; } try { manager.Login(); BindEvents(); } catch (Exception e) { StartReconnectProcess(); } }
//------------------------------------------------------------------------------------------------------------- void OKbuttonClick(object sender, EventArgs e) { if ((manager != null) && (manager.IsConnected() == true)) { manager.Logoff(); } this.Close(); }
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); } }
//------------------------------------------------------------------------------------------------------------- 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(); } }
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}..."; }
/// <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); }
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); }
/// <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); }