Ejemplo n.º 1
0
        /// <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();
            }
        }
Ejemplo n.º 2
0
 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);
        }
Ejemplo n.º 4
0
 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;
         }
     }
 }
Ejemplo n.º 5
0
        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();
        }
Ejemplo n.º 6
0
        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);
                }
            }
        }
Ejemplo n.º 7
0
        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();
                    }
                }
            }
        }
Ejemplo n.º 8
0
        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();
                }
            }
        }
Ejemplo n.º 9
0
        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);
            }
        }
Ejemplo n.º 10
0
        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);
                }
            }
        }
Ejemplo n.º 11
0
        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();
        }
Ejemplo n.º 12
0
        /* 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
            }
        }
Ejemplo n.º 13
0
        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());
                        }
                    }
                }
            }
        }
Ejemplo n.º 14
0
        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);
                }
            }
        }
Ejemplo n.º 15
0
        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());
                        }
                    }
                }
            }
        }