private void btnConnect_Click(object sender, EventArgs e) { string address = this.tbAddress.Text; int port = int.Parse(this.tbPort.Text); string user = this.tbUser.Text; string password = this.tbPassword.Text; btnConnect.Enabled = false; manager = new ManagerConnection(address, port, user, password); manager.UnhandledEvent += new ManagerEventHandler(manager_Events); try { // Uncomment next 2 line comments to Disable timeout (debug mode) // manager.DefaultResponseTimeout = 0; // manager.DefaultEventTimeout = 0; manager.Login(); } catch (Exception ex) { MessageBox.Show("Error connect\n" + ex.Message); manager.Logoff(); this.Close(); } btnDisconnect.Enabled = true; }
private static void checkManagerAPI() { manager = new ManagerConnection(ASTERISK_HOST, ASTERISK_PORT, ASTERISK_LOGINNAME, ASTERISK_LOGINPWD); manager.NewState += new NewStateEventHandler(dam_NewStateEvent); manager.Dial += new DialEventHandler(dam_Dial); manager.PingInterval = 0; // +++ try { manager.Login(); // Login only (fast) Console.WriteLine("Asterisk version : " + manager.Version); } catch (Exception ex) { Console.WriteLine(ex); Console.ReadLine(); manager.Logoff(); return; } Console.ReadLine(); manager.Logoff(); }
public static void Init() { if (Properties.Settings.Default.Server == String.Empty) { return; } try { LogWriter.Instance.WriteToLog("Try connect to ATS"); manager = new ManagerConnection( Properties.Settings.Default.Server, Properties.Settings.Default.Port, Properties.Settings.Default.User, Properties.Settings.Default.Password, Encoding.UTF8 ); manager.Login(); LogWriter.Instance.WriteToLog("ATS version " + manager.AsteriskVersion); } catch (Exception err) { MessageBox.Show("Ошибка подключения с серверу: " + err.Message, "Ошиюка", MessageBoxButton.OK, MessageBoxImage.Error); LogWriter.Instance.WriteToLog("ATS init error " + err.Message); } }
public static void OriginarLigacao(string quemLiga, string quemAtende) { try { _manager.Login(); var ramalOriginario = quemLiga; var canalParaLigacao = quemAtende; var actionLigacao = new OriginateAction { Context = "default", //"from-internal", Priority = "1", Channel = $"SIP/{canalParaLigacao}", //SIP/peer/9001 CallerId = "Chapeleta de Ouro", Exten = ramalOriginario, Timeout = 15000, Async = true }; var originateResponse = _manager.SendAction(actionLigacao, actionLigacao.Timeout); } catch (Exception e) { Console.WriteLine(e.Message); } }
public IActionResult Index() { manager.Login(); ManagerResponse response = manager.SendAction(new GetConfigAction("manager.conf")); List <GetConfigResponse> getConfig = new List <GetConfigResponse>(); if (response.IsSuccess()) { GetConfigResponse responseConfig = (GetConfigResponse)response; getConfig.Add(responseConfig); return(View(getConfig)); } else { Console.WriteLine(""); return(View()); } //{ // Console.WriteLine("\nUpdateConfig action"); // UpdateConfigAction config = new UpdateConfigAction("manager.conf", "manager.conf"); // config.AddCommand(UpdateConfigAction.ACTION_NEWCAT, "testadmin"); // config.AddCommand(UpdateConfigAction.ACTION_APPEND, "testadmin", "secret", "blabla"); // ManagerResponse Newresponse = manager.SendAction(config); // Console.WriteLine(Newresponse); //} }
private void ButtonConnect_Click(object sender, EventArgs e) { manager = new ManagerConnection(TextBoxHost.Text, (int)NumericUpDownPort.Value, TextBoxLogin.Text, TextBoxPassword.Text); manager.FireAllEvents = true; manager.PingInterval = 0; manager.UnhandledEvent += UnhandledEvent; manager.Hangup += Hangup; manager.NewState += NewState; try { manager.Login(); GroupBoxCall.Enabled = true; GroupBoxCommand.Enabled = true; GroupBoxState.Enabled = true; TextBoxOutput.Text += "-----Connected-----" + Environment.NewLine + "Asterisk version : " + manager.Version + Environment.NewLine + Environment.NewLine; } catch (Exception ex) { GroupBoxCall.Enabled = false; GroupBoxCommand.Enabled = false; GroupBoxState.Enabled = false; TextBoxOutput.Text += "-----Not connected-----" + Environment.NewLine + ex.Message + Environment.NewLine + Environment.NewLine; } }
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()); }
static void Main(string[] args) { manager = new ManagerConnection(ASTERISK_HOST, ASTERISK_PORT, ASTERISK_LOGINNAME, ASTERISK_LOGINPWD); manager.PingInterval = 0; // +++ try { manager.Login(); // Login only (fast) Console.WriteLine("Asterisk version : " + manager.Version); } catch (Exception ex) { Console.WriteLine(ex); Console.ReadLine(); manager.Logoff(); return; } if (args.Count() == 4) { string originateChannel = args[0]; string originateCallerId = args[1]; string originateExten = args[2]; string originateContext = args[3]; //string originateChannel = "SIP/billy"; //string originateCallerId = "<1001>"; //string originateExten = "1002"; //string originateContext = "phones"; OriginateAction oc = new OriginateAction(); //oc.Channel = originateChannel; //oc.CallerId = originateCallerId; //oc.Context = originateContext; //oc.Exten = originateExten; //oc.Priority = 2; //oc.Timeout = 15000; oc.Channel = originateChannel; oc.CallerId = originateCallerId; oc.Application = "Dial"; oc.Data = "Local/" + originateExten + "@" + originateContext; oc.Timeout = 15000; try { ManagerResponse originateResponse = manager.SendAction(oc, oc.Timeout); } catch (Exception e) { Console.WriteLine("error: {0}", e.Message); } } manager.Logoff(); }
private static void DisplayQueue() { _manager = Sessao.Configuracao.ConexaoAsterisk.ToManagerConnection(); try { #if NOTIMEOUT manager.Connection.DefaultTimeout = 0; manager.Connection.DefaultEventTimeout = 0; #endif _manager.Login(); } catch (Exception ex) { Console.WriteLine(ex.Message); Console.WriteLine("Press ENTER to next test or CTRL-C to exit."); Console.ReadLine(); return; } ResponseEvents re; try { re = _manager.SendEventGeneratingAction(new QueueStatusAction()); } catch (EventTimeoutException e) { // this happens with Asterisk 1.0.x as it doesn't send a QueueStatusCompleteEvent re = e.PartialResult; } foreach (ManagerEvent e in re.Events) { if (e is QueueParamsEvent) { QueueParamsEvent qe = (QueueParamsEvent)e; Console.WriteLine("QueueParamsEvent" + "\n\tQueue:\t\t" + qe.Queue + "\n\tServiceLevel:\t" + qe.ServiceLevel); } else if (e is QueueMemberEvent) { QueueMemberEvent qme = (QueueMemberEvent)e; Console.WriteLine("QueueMemberEvent" + "\n\tQueue:\t\t" + qme.Queue + "\n\tLocation:\t" + qme.Location); } else if (e is QueueEntryEvent) { QueueEntryEvent qee = (QueueEntryEvent)e; Console.WriteLine("QueueEntryEvent" + "\n\tQueue:\t\t" + qee.Queue + "\n\tChannel:\t" + qee.Channel + "\n\tPosition:\t" + qee.Position); } } Console.WriteLine("Press ENTER to next test or CTRL-C to exit."); Console.ReadLine(); }
//public CentralIp() //{ // Host = "172.17.1.102"; // Port = 5038; // User = "******"; // Password = "******"; // Prefijo = "53981456935675425"; // Conn = new ManagerConnection(Host, Port, User, Password); // Conn.Login(10000); //} public CentralIp(String Host, Int32 Port, String User, String Password, String Prefijo = "", String CodigoPais = "", String CodigoArea = "") { this.Host = Host; this.Port = Port; this.User = User; this.Password = Password; this.Prefijo = Prefijo; this.CodigoPais = CodigoPais; this.CodigoArea = CodigoArea; Conn = new ManagerConnection(Host, Port, User, Password); Conn.Login(10000); }
private bool QuaySoGoiDien(Asterisk.NET.Manager.ManagerConnection manager, string line, string phoneNumber) { bool bRet = false; const string ORIGINATE_CONTEXT = "from-internal"; if (manager == null) { return(false); } try { if (!manager.IsConnected()) { manager = new ManagerConnection(AsteriskInfo.AST_HOSTNAME, AsteriskInfo.AST_PORT_NUMBER, AsteriskInfo.AST_USERNAME, AsteriskInfo.AST_PASSWORD); manager.Login(); } if (manager.IsConnected()) { Text = "Gọi đi : Kết nối tổng đài IP thành công"; } else { Text = "Gọi đi : Kết nối tổng đài IP thất bại !!!"; } OriginateAction oc = new OriginateAction(); oc.Context = ORIGINATE_CONTEXT; oc.Priority = 1; oc.Channel = "SIP/" + line; oc.CallerId = line; oc.Exten = phoneNumber; oc.Timeout = 30000; ManagerResponse originateResponse = manager.SendAction(oc, oc.Timeout); if (originateResponse.IsSuccess()) { bRet = true; } else { bRet = false; } } catch (Exception ex) { LogError.WriteLogError("QuaySoGoiDien2", ex); } return(bRet); }
public void Login() { if (manager.IsConnected()) { return; } try { manager.Login(); BindEvents(); } catch (Exception e) { StartReconnectProcess(); } }
public static void Main(string[] args) { _manager = Sessao.Configuracao.ConexaoAsterisk.ToManagerConnection(x => { x.FireAllEvents = true; x.PingInterval = 0; }); _manager.Login(10000); //Task.Run(() => InicieTracking(_manager)); //Task.Run(CheckFastAGI); //Task.Run(ExecuteLigacoes); CreateWebHostBuilder(args).Build().Run(); }
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); } }
public static Tuple <ManagerConnection, string> TryLogin(LoginCredentials creds, bool saveToFile = true) { ManagerConnection _ami = null; string resultString = pabxLogin(creds.host, creds.login.ToString(), creds.password); Console.WriteLine(resultString); bool result = !resultString.ToLower().Contains("incorrect"); if (result) // Save credentials if valid { dynamic resultJson = JObject.Parse(resultString); creds.ami_login = resultJson.username; creds.ami_password = resultJson.password; Console.WriteLine("Retrieved AMI login Successfully"); SaveCreds(creds); //MessageBox.Show("Host: " + creds.host + " AMI Login : "******" AMI PW: " + creds.ami_password); _ami = new ManagerConnection(creds.host, 5038, creds.ami_login, creds.ami_password); _ami.Login(); _ami.UseASyncEvents = true; } return(new Tuple <ManagerConnection, string>(_ami, (result != false).ToString())); }
private void connectToAsterisk() { try { // Conexion al Servidor Asterisk //asteriskManager = new ManagerConnection("192.168.10.200", 5038, "johan", "johan"); // Server Pruebas asteriskManager = new ManagerConnection("10.0.0.75", 5038, "ccempaques", "ccempaques"); // Server Empaques asteriskManager.UnhandledEvent += new ManagerEventHandler(asteriskManager_Events); // Login con --> Objeto astriskManager asteriskManager.Login(); } // Conexion Falla catch (Exception ex) { MessageBox.Show("NO ME HE CONECTADO AL SERVIDOR ASTERISK.\n\n" + ex.ToString(), "Error en la Conexion AMI", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); asteriskManager.Logoff(); this.Close(); } }
protected override void OnStart(string[] args) { log.Debug("Starting AsteriskConnector..."); try { manager.Login(); log.Debug("Getting sip peers..."); SIPPeersAction sipaction = new SIPPeersAction(); manager.SendAction(sipaction); CommandAction ca = new CommandAction("sip show users"); CommandResponse cr = (CommandResponse)manager.SendAction(ca, 10000); char[] splitter = { ' ' }; foreach (string user in cr.Result) { string[] usersplit = user.Split(splitter); List <string> userprop = new List <string>(); foreach (string split in usersplit) { if (split.Length != 0) { userprop.Add(split); } } if (userprop.Count == 5) { log.Debug("User " + userprop.ToArray()[0] + " password: "******"Exception while starting AsteriskConnector: " + e.Message); } }
//------------------------------------------------------------------------------------------------------------- void FmHistoryShown(object sender, EventArgs e) { datetimeFrom.Value = DateTime.Now.AddDays(-7); datetimeTO.Value = DateTime.Now; ReloadData(); manager = new ManagerConnection(ASTERISK_HOST, ASTERISK_PORT, ASTERISK_LOGINNAME, ASTERISK_LOGINPWD); try { manager.Login(); Log("History: Manager connection aviable. Peer '" + ASTERISK_PEER_NUMBER); //lbConnectionBroken.Visible = false; RINGENABLED = true; } catch (Exception err) { Log("Error: History: Manager connection NOT aviable." + err.Message); RINGENABLED = false; //this.Close(); return; } }
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); }
private static void checkManagerAPI() { manager = new ManagerConnection(ASTERISK_HOST, ASTERISK_PORT, ASTERISK_LOGINNAME, ASTERISK_LOGINPWD); // Register user event class manager.RegisterUserEventClass(typeof(UserAgentLoginEvent)); // Add or Remove events manager.UserEvents += new UserEventHandler(dam_UserEvents); // Dont't display this event manager.NewExten += new NewExtenEventHandler(manager_IgnoreEvent); // Display all other manager.UnhandledEvent += new ManagerEventHandler(dam_Events); // +++ Only to debug purpose manager.FireAllEvents = true; // manager.DefaultEventTimeout = 0; // manager.DefaultResponseTimeout = 0; manager.PingInterval = 0; // +++ try { manager.Login(); // Login only (fast) Console.WriteLine("Asterisk version : " + manager.Version); } catch (Exception ex) { Console.WriteLine(ex); Console.ReadLine(); manager.Logoff(); return; } { Console.WriteLine("\nGetConfig action"); ManagerResponse response = manager.SendAction(new GetConfigAction("manager.conf")); if (response.IsSuccess()) { GetConfigResponse responseConfig = (GetConfigResponse)response; foreach (int key in responseConfig.Categories.Keys) { Console.WriteLine(string.Format("{0}:{1}", key, responseConfig.Categories[key])); foreach (int keyLine in responseConfig.Lines(key).Keys) { Console.WriteLine(string.Format("\t{0}:{1}", keyLine, responseConfig.Lines(key)[keyLine])); } } } else { Console.WriteLine(response); } } { Console.WriteLine("\nUpdateConfig action"); UpdateConfigAction config = new UpdateConfigAction("manager.conf", "manager.conf"); config.AddCommand(UpdateConfigAction.ACTION_NEWCAT, "testadmin"); config.AddCommand(UpdateConfigAction.ACTION_APPEND, "testadmin", "secret", "blabla"); ManagerResponse response = manager.SendAction(config); Console.WriteLine(response); } // Originate call example Console.WriteLine("\nPress ENTER key to originate call.\n" + "Start phone (or connect) or make a call to see events.\n" + "After all events press a key to originate call."); Console.ReadLine(); OriginateAction oc = new OriginateAction(); oc.Context = ORIGINATE_CONTEXT; oc.Priority = "1"; oc.Channel = ORIGINATE_CHANNEL; oc.CallerId = ORIGINATE_CALLERID; oc.Exten = ORIGINATE_EXTEN; oc.Timeout = ORIGINATE_TIMEOUT; // oc.Variable = "VAR1=abc|VAR2=def"; // oc.SetVariable("VAR3", "ghi"); ManagerResponse originateResponse = manager.SendAction(oc, oc.Timeout); Console.WriteLine("Response:"); Console.WriteLine(originateResponse); Console.WriteLine("Press ENTER key to next test."); Console.ReadLine(); // // Display result of Show Queues command // { CommandAction command = new CommandAction(); CommandResponse response = new CommandResponse(); if (manager.AsteriskVersion == AsteriskVersion.ASTERISK_1_6) { command.Command = "queue show"; } else { command.Command = "show queues"; } try { response = (CommandResponse)manager.SendAction(command); Console.WriteLine("Result of " + command.Command); foreach (string str in response.Result) { Console.WriteLine("\t" + str); } } catch (Exception err) { Console.WriteLine("Response error: " + err); } Console.WriteLine("Press ENTER to next test or CTRL-C to exit."); Console.ReadLine(); } // // Display Queues and Members // ResponseEvents re; try { re = manager.SendEventGeneratingAction(new QueueStatusAction()); } catch (EventTimeoutException e) { // this happens with Asterisk 1.0.x as it doesn't send a QueueStatusCompleteEvent re = e.PartialResult; } foreach (ManagerEvent e in re.Events) { if (e is QueueParamsEvent) { QueueParamsEvent qe = (QueueParamsEvent)e; Console.WriteLine("QueueParamsEvent" + "\n\tQueue:\t\t" + qe.Queue + "\n\tServiceLevel:\t" + qe.ServiceLevel); } else if (e is QueueMemberEvent) { QueueMemberEvent qme = (QueueMemberEvent)e; Console.WriteLine("QueueMemberEvent" + "\n\tQueue:\t\t" + qme.Queue + "\n\tLocation:\t" + qme.Location); } else if (e is QueueEntryEvent) { QueueEntryEvent qee = (QueueEntryEvent)e; Console.WriteLine("QueueEntryEvent" + "\n\tQueue:\t\t" + qee.Queue + "\n\tChannel:\t" + qee.Channel + "\n\tPosition:\t" + qee.Position); } } Console.WriteLine("Press ENTER to next test or CTRL-C to exit."); Console.ReadLine(); // // To test create 3 extensions: // 1 - SIP/4012 w/o voicemail (with eyeBeam softphone) // 2 - IAX2/4008 w/o voicemail (with iaxComm softphone) // 3 - SIP/4010 w/ voicemal but no phone connect // RedirectCall: call from IAX2/4008 to SIP/4012 // Don't answer on SIP/4012 and call must redirect to SIP/4010 (to voicemail really) // Dial event used to define redirect channel Console.WriteLine("Redirect Call from " + ORIGINATE_CHANNEL + " to " + ORIGINATE_EXTRA_CHANNEL + " or press ESC."); // Wait for Dial Event from ORIGINATE_CHANNEL DialEventHandler de = new DialEventHandler(dam_Dial); manager.Dial += de; while (transferChannel == null) { System.Threading.Thread.Sleep(100); if (Console.KeyAvailable && Console.ReadKey(true).Key == ConsoleKey.Escape) { break; } } manager.Dial -= de; // Now send Redirect action RedirectAction ra = new RedirectAction(); ra.Channel = transferChannel; ra.ExtraChannel = ORIGINATE_EXTRA_CHANNEL; ra.Context = ORIGINATE_CONTEXT; ra.Exten = ORIGINATE_EXTRA_EXTEN; ra.Priority = 1; try { ManagerResponse mr = manager.SendAction(ra, 10000); Console.WriteLine("Transfer Call" + "\n\tResponse:" + mr.Response + "\n\tMessage:" + mr.Message ); } catch (Exception ex) { Console.WriteLine(ex.Message); } // Monitor call. // Call from IA2/4008 to SIP/4012 // Link event used to define monitor channel Console.WriteLine("Monitor call. Please call " + ORIGINATE_CHANNEL + " and answer or press ESC."); // Wait for Link event LinkEventHandler le = new LinkEventHandler(dam_Link); manager.Link += le; while (monitorChannel == null) { System.Threading.Thread.Sleep(100); if (Console.KeyAvailable && Console.ReadKey(true).Key == ConsoleKey.Escape) { break; } } manager.Link -= le; // Now send Monitor action MonitorAction ma = new MonitorAction(); ma.Channel = monitorChannel; ma.File = "voicefile"; ma.Format = "gsm"; ma.Mix = true; try { ManagerResponse mr = manager.SendAction(ma, 10000); Console.WriteLine("Monitor Call" + "\n\tResponse:" + mr.Response); } catch (Exception ex) { Console.WriteLine(ex.Message); } manager.Logoff(); }
public AstTray() { InitializeComponent(); // Add context menu item var click2CallMenuItem = new ToolStripClick2Call(); click2CallMenuItem.Call += click2CallMenuItem_Call; // contextMenuStrip1.Items.Insert(0, click2CallMenuItem); this.toolStrip3.Items.Add(click2CallMenuItem); if (ConfigurationManager.AppSettings["astHost"] == null) { MessageBox.Show( "Unable to read configuration file. Maybe you need to rename App.config.example to App.config and add your own details to it?"); Environment.Exit(0); } try { AstCon = new ManagerConnection(ConfigurationManager.AppSettings["astHost"], int.Parse(ConfigurationManager.AppSettings["astPort"]), ConfigurationManager.AppSettings["astUser"], ConfigurationManager.AppSettings["astPass"]); AstCon.NewState += astCon_NewState; AstCon.Link += astCon_Link; // added to support AMI 1.0 (Asterisk 1.4) AstCon.ConnectionState += astCon_ConnectionState; AstCon.Login(); // Load Directories if (ConfigurationManager.AppSettings["sharedDirectoryType"] != null) { switch (ConfigurationManager.AppSettings["sharedDirectoryType"].ToUpper()) { case "CISCODIRECTORY": SharedDiretory = CiscoDirectoryHelper.GetCiscoDirectory( ConfigurationManager.AppSettings["sharedDirectoryPath"]); break; } } // Load into views if (SharedDiretory != null) { foreach (var item in SharedDiretory) { sharedDirectoryListView.Items.Add(new ListViewItem(new[] { item.Name, item.Number })); } } astTrayNotify.ShowBalloonTip(3000, "Connected", "Connected to Asterisk", ToolTipIcon.Info); } catch (Exception ex) { MessageBox.Show( $"Error connecting to {ConfigurationManager.AppSettings["astHost"]}. Error: {ex.Message}"); // Terminate Application Application.Exit(); } }
/// <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 void NewCallerQForm_Load(object sender, EventArgs e) { // Размещаем форму в правом нижнем углу экрана this.Top = Screen.PrimaryScreen.WorkingArea.Height - this.Height; this.Left = 0; //Screen.PrimaryScreen.WorkingArea.Width - this.Width; //pnTransferCallForm.Width = 0; if (!String.IsNullOrEmpty(CALLER_FIO)) { CaptionPanel.BackColor = Color.Green; TITLElabel.BackColor = Color.Green; //this.BackColor = Color.FromArgb(255, 255, 185); } else { CaptionPanel.BackColor = SystemColors.HotTrack; TITLElabel.BackColor = SystemColors.HotTrack; //this.BackColor = Color.FromArgb(255, 225, 195); } if (important == true) { CaptionPanel.BackColor = Color.Red; TITLElabel.BackColor = Color.Red; } TITLElabel.Text = string.Format("Incoming {0} ({1})", CALLER_NAME, CALLER_ID); FIOlabel.Text = CALLER_FIO; ORGlabel.Text = CALLER_ORG; DEPlabel.Text = CALLER_DEP; POSlabel.Text = CALLER_POS; MAINPHONElabel.Text = CALLER_MAINPHONE; CELLPHONElabel.Text = CALLER_CELLPHONE; WORKPHONElabel.Text = CALLER_WORKPHONE; EMAILlabel.Text = CALLER_EMAIL; URL_label.Text = CALLER_URL; BEGIN_CALL_TIME = DateTime.Parse(DateTime.Now.ToLongTimeString()); tmr_call_time = new System.Windows.Forms.Timer(); tmr_call_time.Tick += new EventHandler(Tick_tmr_call_time); tmr_call_time.Interval = 1000; tmr_call_time.Start(); if (!string.IsNullOrEmpty(CALLER_NOTE)) { nf = new NoteForm(); nf.Owner = this; nf.CALLER_NOTE = CALLER_NOTE; nf.Show(this); } manager = new ManagerConnection(ASTERISK_HOST, ASTERISK_PORT, ASTERISK_LOGINNAME, ASTERISK_LOGINPWD); try { manager.Login(); Log("History: Manager connection aviable. Peer '" + ASTERISK_PEER_NUMBER); //lbConnectionBroken.Visible = false; RINGENABLED = true; } catch (Exception err) { Log("Error: History: Manager connection NOT aviable." + err.Message); RINGENABLED = false; //this.Close(); return; } }
public AsteriskSipController(IOptions <AsteriskOptions> options) { this.options = options.Value; manager = new ManagerConnection(this.options.Host, this.options.Port, this.options.UserName, this.options.Secret); manager.Login(); }
/// <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); }
public TelephonyHandler() { _managerConnection = new ManagerConnection("192.168.26.128", 5038, "notificall", "notificall"); _managerConnection.Login(); }