void Application_Start(object sender, EventArgs e) { // Code that runs on application startup JulMar.Atapi.TapiManager tapiManager = new JulMar.Atapi.TapiManager("TestWebApp"); if (!tapiManager.Initialize()) System.Diagnostics.EventLog.WriteEntry("Application", "TapiManager failed to initialize"); else { Application["tapi"] = tapiManager; } } void Application_End(object sender, EventArgs e) { // Code that runs on application shutdown JulMar.Atapi.TapiManager tapiManager = (JulMar.Atapi.TapiManager)Application["tapi"]; if (tapiManager != null) tapiManager.Shutdown(); }
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Untitled Page</title> </head> <body> <form id="form1" runat="server"> <div> <h1>Sample TAPI Dialer</h1> <asp:Label runat="server" Text="Select Line:" /> <asp:DropDownList ID="lineList" runat="server" /> <br /> <asp:Label runat="server" Text="Number to dial:" /> <asp:TextBox runat="server" Width="100" ID="number" /> <asp:Button runat="server" ID="dial" OnClick="DialNumber" Text=" Dial " /> <asp:Button runat="server" ID="refresh" Text=" Refresh " /> <br /> <br /> <asp:ListBox runat="server" ID="events" Width="400" Height="300" EnableViewState="false" /> </div> </form> </body> </html>
using System; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Collections.Specialized; using JulMar.Atapi; public partial class _Default : System.Web.UI.Page { static StringCollection data = new StringCollection(); protected void Page_Load(object sender, EventArgs e) { TapiManager tapiManager = (TapiManager)Application["tapi"]; if (!Page.IsPostBack) { if (tapiManager != null) lineList.DataSource = tapiManager.Lines; } events.DataSource = data; DataBind(); } protected void DialNumber(object sender, EventArgs e) { TapiManager tapiManager = (TapiManager)Application["tapi"]; string lineName = lineList.SelectedValue; TapiLine line = tapiManager.GetLineByName(lineName, true); if (line != null) { if (!line.IsOpen) { try { line.Open(MediaModes.InteractiveVoice); } catch { line.Open(MediaModes.DataModem); } line.NewCall += new EventHandler<NewCallEventArgs>(line_NewCall); line.CallInfoChanged += new EventHandler<CallInfoChangeEventArgs>(line_CallInfoChanged); line.CallStateChanged += new EventHandler<CallStateEventArgs>(line_CallStateChanged); } if (number.Text.Length > 0) { TapiCall call = line.MakeCall(number.Text); data.Add(string.Format("Created call: {0}", call)); } } } static void line_NewCall(object sender, NewCallEventArgs e) { data.Add(string.Format("New call: {0}, {1}", e.Call, e.Privilege)); } static void line_CallStateChanged(object sender, CallStateEventArgs e) { data.Add(string.Format("CallState: {0} is now {1}", e.Call.ToString(), e.CallState)); } static void line_CallInfoChanged(object sender, CallInfoChangeEventArgs e) { data.Add(string.Format("CallInfo: {0} {1}", e.Call.ToString(), e.Change)); } }
Disclaimer The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.