/// <summary> /// Opens an IBOS3 address by phone number. The number will be taken from a TAPI /// event and will be passed to the IBOS3 remote control endpoint to open the address. /// </summary> /// <param name="args"></param> static void Main(string[] args) { TapiManager tapiManager = new TapiManager("TapiCallMonitor.net"); if (tapiManager.Initialize() == false) { Console.WriteLine("No Tapi devices found."); Console.ReadLine(); } else { foreach (TapiLine line in tapiManager.Lines) { try { line.NewCall += OnNewCall; line.Monitor(); } catch (TapiException ex) { Console.WriteLine(ex.Message); } } Console.WriteLine("Waiting for calls"); Console.ReadLine(); tapiManager.Shutdown(); } }
private void Form1_Load(object sender, EventArgs e) { if (_mgr.Initialize()) { comboBox1.DataSource = _mgr.Lines; foreach (TapiProvider tsp in _mgr.Providers) { ListViewItem lvi = listView1.Items.Add(string.Format("0x{0:X}", tsp.Id)); lvi.SubItems.Add(tsp.Name); } } }
static void Main(string[] args) { TapiManager z = new TapiManager("SimpleCall"); z.Initialize(); TapiLine[] phone = z.Lines; TapiLine line = phone[16]; Console.WriteLine(line); line.Open(MediaModes.Modem); Console.WriteLine(line.Capabilities.MediaModes); }
private void MainForm_Load(object sender, EventArgs e) { if (_mgr.Initialize()) { _lines.DataSource = _mgr.Lines; foreach (TapiLine line in _mgr.Lines) { line.Changed += this.OnLineStateChanged; line.NewCall += this.OnNewCall; line.Ringing += this.OnRinging; } } }
static void RunCommTest() { TapiManager mgr = new TapiManager("EnumDevices"); mgr.Initialize(); foreach (TapiLine lineEx in mgr.Lines) { Console.WriteLine(lineEx.Name); } TapiLine line = mgr.GetLineByName("Conexant D110 MDC V.92 Modem", true); if (line != null) { line.Open(MediaModes.DataModem); TapiCall call = line.Addresses[0].MakeCall("2145551212"); Console.WriteLine(call.GetCommDevice()); try { using (FileStream fs = call.GetCommStream()) { byte[] data = ASCIIEncoding.ASCII.GetBytes("Hello"); fs.Write(data, 0, data.Length); using (StreamReader sr = new StreamReader(fs)) { Console.WriteLine(sr.ReadToEnd()); } } call.Drop(); } catch (Exception ex) { call.Drop(); while (ex != null) { Console.WriteLine("{0}", ex.ToString()); ex = ex.InnerException; } } } else { Console.WriteLine("Not found."); } Console.ReadLine(); mgr.Shutdown(); }
static void Main(string[] args) { using (TapiManager mgr = new TapiManager("EnumTapiLines")) { try { if (!mgr.Initialize()) { Console.WriteLine("TAPI failed to find any lines or phones to manage."); } if (mgr.Lines.Length > 0) { int count = 1; foreach (TapiLine line in mgr.Lines) { Console.WriteLine("{0}: \"{1}\" ppid={2}\n{3}\n--Status--\n{4}", count++, line.Name, line.PermanentId, line.Capabilities.ToString("f"), line.Status.ToString("f")); } } else { Console.WriteLine("No Tapi lines found."); } if (mgr.Phones.Length > 0) { int count = 1; foreach (TapiPhone phone in mgr.Phones) { Console.WriteLine("{0}: \"{1}\" ppid={2}\n{3}\n--Status--\n{4}", count++, phone.Name, phone.PermanentId, phone.Capabilities.ToString("f"), phone.Status.ToString("f")); } } else { Console.WriteLine("No Tapi phones found."); } } catch (TapiException ex) { Console.WriteLine(ex); } } }
public static void start() { // Console.ReadLine(); while (true) { // { if (_mgr.Initialize()) { // _mgr.NewCall += NewCall; // _mgr.LineChanged += LineChanged; // _mgr.CallInfoChanged += CallInfoChanged; // _mgr.CallStateChanged += CallStateChanged; TapiLine line = _mgr.GetLineByName("EXTENSION 200 Keyset", false); if (line != null) { try { // //line.Monitor(); Console.WriteLine("Line: {0} opened!", line.Name); line.NewCall += new EventHandler <NewCallEventArgs>(NewCall); ; line.Changed += new EventHandler <LineInfoChangeEventArgs>(Changed); line.CallInfoChanged += new EventHandler <CallInfoChangeEventArgs>(CallInfoChanged); line.CallStateChanged += new EventHandler <CallStateEventArgs>(CallStateChanged); line.AddressChanged += new EventHandler <AddressInfoChangeEventArgs>(AddressChanged); line.Monitor(); // line.Open(line.Capabilities.MediaModes); Console.WriteLine("Monitoring Started!"); } catch (TapiException e) { Console.WriteLine(e); throw; } _mgr.Shutdown(); } } } }
static void MainPhone(string[] args) { using (TapiManager mgr = new TapiManager("Test")) { mgr.Initialize(); foreach (TapiPhone phone in mgr.Phones) { Console.WriteLine(phone.Name); Console.WriteLine(phone.Capabilities.ToString("f")); phone.Open(); if (phone.Display != null) { Console.WriteLine(phone.Display.Text); } Console.WriteLine(phone.Status); foreach (PhoneButton pb in phone.Buttons) { Console.WriteLine(pb); } if (phone.Handset != null) { Console.WriteLine(phone.Handset); phone.Handset.Volume = 100; phone.Handset.Gain = 20; } if (phone.Headset != null) { Console.WriteLine(phone.Headset); } if (phone.Speaker != null) { Console.WriteLine(phone.Speaker); } phone.Close(); } } }
static void MainDS(string[] args) { TapiManager mgr = new TapiManager("devspec", TapiVersion.V30); mgr.Initialize(); foreach (TapiLine line in mgr.Lines) { line.Monitor(); byte[] arr = new byte[] { 08, 00, 80, 00 }; line.Addresses[0].DeviceSpecific(arr); } }
private void TapiMonitorForm_Load(object sender, EventArgs e) { if (tapiManager.Initialize() == false) { MessageBox.Show("No Tapi devices found."); this.Close(); return; } foreach (TapiLine line in tapiManager.Lines) { try { line.NewCall += OnNewCall; line.CallStateChanged += OnCallStateChanged; line.CallInfoChanged += OnCallInfoChanged; line.Monitor(); } catch (TapiException ex) { LogError(ex.Message); } } }
public static void MainDI(string[] args) { TapiManager mgr = new TapiManager("devspec", TapiVersion.V30); mgr.Initialize(); foreach (TapiLine line in mgr.Lines) { try { line.Open(MediaModes.InteractiveVoice); foreach (TapiCall call in line.GetCalls()) { Console.WriteLine(call.CalledId.ToString()); } } catch (Exception ex) { Console.WriteLine(ex.Message); } } mgr.Shutdown(); }
/* is called when main win is loaded */ public void init() { App.isMgrInitializationPhase = true; bool didInitalize = false; try { didInitalize = mgr.Initialize(); // CRITICAL - will remain in an endless loop, if the windows system CONTROL PANEL is opened and the current bound TAPI DRIVER configuration is opened! } catch (Exception ex) { App.log(ex.Message); } App.isMgrInitializationPhase = false; if (didInitalize) { App.Setup.Lines.Clear(); App.Setup.Addresses.Clear(); currentLine = null; currentAddress = null; addressCollection = null; currentOutgoingCall = null; currentIncomingCall = null; allLinesAndAddresses = ""; lineCollection = mgr.Lines; App.log(String.Format("{0}x TSP (Telephony service provider) lines detected", lineCollection.Count())); foreach (TapiLine line in lineCollection) { App.Setup.Lines.Add(line.Name); //line.Changed += Line_Changed; //line.NewCall += Line_NewCall; //line.Ringing += Line_Ringing; allLinesAndAddresses += "|" + line.Name; if (line.Addresses != null) { if (line.Addresses.Count() > 0) { foreach (TapiAddress adr in line.Addresses) { allLinesAndAddresses += "~" + adr.Address; } } else { App.log(String.Format("Line '{0}' addresses are empty!", line.Name)); } } else { App.log(String.Format("Line '{0}' addresses collection is NULL!", line.Name)); } } if (allLinesAndAddresses != "") { allLinesAndAddresses = allLinesAndAddresses.Substring(1); } if (App.Setup.Line != "") { setCurrentLine(App.Setup.Line); } if (App.Setup.Address != "") { setCurrentAddress(App.Setup.Address); } App.isRefreshingTapiSession = true; // start session } }
protected override void OnStart(string[] args) { try { //Trace.Listeners.Add(new TextWriterTraceListener("asteriskconnector.log")); log.Debug("Initializing tapi connector..."); Calls = new Hashtable(); manager = new TapiManager("TALK TAPI CTI Service"); if (manager.Initialize()) { log.Debug("Creating LineControlServer Proxy: "); ss = new StateServer(Properties.Settings.Default.LineControlServerUrl); log.Debug("Creating TAPICTIService..."); host = new ServiceHost(new TAPICTIService(manager)); log.Debug("Hosting TAPICTIService..."); host.Open(); log.Debug("Creating TAPISnapshotService..."); snapshotHost = new ServiceHost(new TAPISnapshotServer(manager)); log.Debug("Hosting TAPISnapshotService..."); snapshotHost.Open(); isInitialized = true; } else { log.Debug("Unable to initialize TAPI Manager"); } } catch (Exception e) { log.Debug("Error while initializing TAPIConnector: " + e.Message); } log.Debug("TAPI Connector starting"); if (isInitialized) { manager.AddressChanged += new EventHandler <AddressInfoChangeEventArgs>(manager_AddressChanged); manager.CallInfoChanged += new EventHandler <CallInfoChangeEventArgs>(manager_CallInfoChanged); manager.CallStateChanged += new EventHandler <CallStateEventArgs>(manager_CallStateChanged); manager.LineAdded += new EventHandler <LineAddedEventArgs>(manager_LineAdded); manager.LineChanged += new EventHandler <LineInfoChangeEventArgs>(manager_LineChanged); manager.LineRemoved += new EventHandler <LineRemovedEventArgs>(manager_LineRemoved); manager.LineRinging += new EventHandler <RingEventArgs>(manager_LineRinging); manager.NewCall += new EventHandler <NewCallEventArgs>(manager_NewCall); manager.PhoneAdded += new EventHandler <PhoneAddedEventArgs>(manager_PhoneAdded); manager.PhoneRemoved += new EventHandler <PhoneRemovedEventArgs>(manager_PhoneRemoved); manager.ReinitRequired += new EventHandler(manager_ReinitRequired); foreach (TapiLine line in manager.Lines) { line.Changed += new EventHandler <LineInfoChangeEventArgs>(line_Changed); line.AddressChanged += new EventHandler <AddressInfoChangeEventArgs>(line_AddressChanged); line.CallInfoChanged += new EventHandler <CallInfoChangeEventArgs>(line_CallInfoChanged); line.CallStateChanged += new EventHandler <CallStateEventArgs>(line_CallStateChanged); line.NewCall += new EventHandler <NewCallEventArgs>(line_NewCall); line.Ringing += new EventHandler <RingEventArgs>(line_Ringing); if (!line.IsOpen) { try { log.Debug("Opening line: " + line.ToString() + " name: " + line.Name); line.Open(line.Capabilities.MediaModes); try { log.Debug("Parsing " + line.ToString() + " adresses"); foreach (TapiAddress address in line.Addresses) { address.CallInfoChanged += new EventHandler <CallInfoChangeEventArgs>(address_CallInfoChanged); address.CallStateChanged += new EventHandler <CallStateEventArgs>(address_CallStateChanged); address.Changed += new EventHandler <AddressInfoChangeEventArgs>(address_Changed); address.NewCall += new EventHandler <NewCallEventArgs>(address_NewCall); ss.SetLineControl(GetLineControl(address)); } } catch (Exception e) { log.Error("Error while parsing " + line.ToString() + " addresses: " + e.Message); } //linedevspecific etrali try { log.Debug(line.ToString() + " device specific data : " + System.Text.Encoding.ASCII.GetString(line.Status.DeviceSpecificData)); line.NegotiateExtensions(Properties.Settings.Default.DevSpecificMinVersion, Properties.Settings.Default.DevSpecificMaxVersion, new EventHandler <DeviceSpecificEventArgs>(line_DevSpecific)); } catch (Exception lne) { log.Error("Unable to negotiate dev specific extensions for " + line.ToString() + " " + lne.ToString()); } } catch { log.Error("Error while opening line: " + line.ToString()); } } } } }
private void Form1_Load(object sender, EventArgs e) { // Cofig irakurri //sMySql = ConfigurationManager.AppSettings["mysql_ip"]; sMySql = ConfigurationManager.AppSettings["mysql_ip"]; // Fitxatu MySql.Data.MySqlClient.MySqlConnection conn; string myConnectionString; myConnectionString = "server=" + sMySql + ";uid=root;database=deiak;"; try { conn = new MySql.Data.MySqlClient.MySqlConnection(); conn.ConnectionString = myConnectionString; conn.Open(); MySqlCommand cmd = new MySqlCommand(); cmd.Connection = conn; // Gaur fitxatu dugun begiratu cmd.CommandText = "SELECT count(userid) AS Zenbat FROM fitxatu WHERE userid=@userid and DATE(`hasi`)=@hasi"; cmd.Parameters.AddWithValue("@userid", Environment.UserName); cmd.Parameters.AddWithValue("@hasi", DateTime.Now.ToString("yyyy-MM-dd")); Int32 res; res = Convert.ToInt32(cmd.ExecuteScalar()); if (res == 0) { // Ez dugunez fitxatu gaur, orain egingo dugu. cmd.CommandText = "INSERT INTO fitxatu(userid,hasi) VALUES(@userid,@orain)"; // ez du behar @userid goian definitu dugulako //cmd.Parameters.Add("@userid", MySqlDbType.VarChar).Value = Environment.UserName; cmd.Parameters.Add("@orain", MySqlDbType.DateTime).Value = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); cmd.ExecuteNonQuery(); } } catch (MySql.Data.MySqlClient.MySqlException ex) { MessageBox.Show(ex.Message); } if (tapiManager.Initialize() == false) { MessageBox.Show("No Tapi devices found."); this.Close(); return; } foreach (TapiLine line in tapiManager.Lines) { try { line.NewCall += OnNewCall; line.CallStateChanged += OnCallStateChanged; line.CallInfoChanged += OnCallInfoChanged; line.Monitor(); } catch (TapiException ex) { LogError(ex.Message); } } }
protected override void OnStart(string[] args) { try { //Trace.Listeners.Add(new TextWriterTraceListener("asteriskconnector.log")); log.Debug("Initializing tapi connector..."); Calls = new Hashtable(); manager = new TapiManager("TALK TAPI CTI Service"); if (manager.Initialize()) { log.Debug("Creating LineControlServer Proxy: "); ss = new StateServer(Properties.Settings.Default.LineControlServerUrl); log.Debug("Creating TAPICTIService..."); host = new ServiceHost(new TAPICTIService(manager)); log.Debug("Hosting TAPICTIService..."); host.Open(); log.Debug("Creating TAPISnapshotService..."); snapshotHost = new ServiceHost(new TAPISnapshotServer(manager)); log.Debug("Hosting TAPISnapshotService..."); snapshotHost.Open(); isInitialized = true; } else { log.Debug("Unable to initialize TAPI Manager"); } } catch (Exception e) { log.Debug("Error while initializing TAPIConnector: " + e.Message); } log.Debug("TAPI Connector starting"); if (isInitialized) { manager.AddressChanged += new EventHandler<AddressInfoChangeEventArgs>(manager_AddressChanged); manager.CallInfoChanged += new EventHandler<CallInfoChangeEventArgs>(manager_CallInfoChanged); manager.CallStateChanged += new EventHandler<CallStateEventArgs>(manager_CallStateChanged); manager.LineAdded += new EventHandler<LineAddedEventArgs>(manager_LineAdded); manager.LineChanged += new EventHandler<LineInfoChangeEventArgs>(manager_LineChanged); manager.LineRemoved += new EventHandler<LineRemovedEventArgs>(manager_LineRemoved); manager.LineRinging += new EventHandler<RingEventArgs>(manager_LineRinging); manager.NewCall += new EventHandler<NewCallEventArgs>(manager_NewCall); manager.PhoneAdded += new EventHandler<PhoneAddedEventArgs>(manager_PhoneAdded); manager.PhoneRemoved += new EventHandler<PhoneRemovedEventArgs>(manager_PhoneRemoved); manager.ReinitRequired += new EventHandler(manager_ReinitRequired); foreach (TapiLine line in manager.Lines) { line.Changed += new EventHandler<LineInfoChangeEventArgs>(line_Changed); line.AddressChanged += new EventHandler<AddressInfoChangeEventArgs>(line_AddressChanged); line.CallInfoChanged += new EventHandler<CallInfoChangeEventArgs>(line_CallInfoChanged); line.CallStateChanged += new EventHandler<CallStateEventArgs>(line_CallStateChanged); line.NewCall += new EventHandler<NewCallEventArgs>(line_NewCall); line.Ringing += new EventHandler<RingEventArgs>(line_Ringing); if (!line.IsOpen) { try { log.Debug("Opening line: " + line.ToString() + " name: " + line.Name); line.Open(line.Capabilities.MediaModes); try { log.Debug("Parsing " + line.ToString() +" adresses"); foreach (TapiAddress address in line.Addresses) { address.CallInfoChanged += new EventHandler<CallInfoChangeEventArgs>(address_CallInfoChanged); address.CallStateChanged += new EventHandler<CallStateEventArgs>(address_CallStateChanged); address.Changed += new EventHandler<AddressInfoChangeEventArgs>(address_Changed); address.NewCall += new EventHandler<NewCallEventArgs>(address_NewCall); ss.SetLineControl(GetLineControl(address)); } } catch (Exception e) { log.Error("Error while parsing " + line.ToString() + " addresses: " + e.Message); } //linedevspecific etrali try { log.Debug(line.ToString() + " device specific data : " + System.Text.Encoding.ASCII.GetString(line.Status.DeviceSpecificData)); line.NegotiateExtensions(Properties.Settings.Default.DevSpecificMinVersion, Properties.Settings.Default.DevSpecificMaxVersion, new EventHandler<DeviceSpecificEventArgs>(line_DevSpecific)); } catch (Exception lne) { log.Error("Unable to negotiate dev specific extensions for " + line.ToString() + " " + lne.ToString()); } } catch { log.Error("Error while opening line: " + line.ToString()); } } } } }