Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 9010925
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 16, 20262026-06-16T02:35:32+00:00 2026-06-16T02:35:32+00:00

I’m currently developing a TAPI-based application to provide intelligent caller ID to agents in

  • 0

I’m currently developing a TAPI-based application to provide “intelligent caller ID” to agents in our call center using our Cisco IP phone system. When a call comes in and the agent picks it up on a “real” phone at their workstation, the application, which lives in the workstation’s system tray, gets the number on the remote side of the call, and runs it through a central database to see if the number is known as belonging to one of our client companies or their reps. If so, we display information about who the agent is now talking to (person or client location name, company, title, etc).

I developed a proof of concept that monitors my cubicle’s phone, using Julmar’s excellent ATAPI library, and got it working well. However, the agents’ phones have a significant difference; they plug into a sidecar module with an additional 14 extensions connected to our 1-800 hunt line.

The problem I’m having now is that I need to know not just when a call is connected, but when it’s connected to the single phone I’m monitoring, sitting underneath the workstation on which the application is running. Currently, I can see line state changes on all the 800 lines, but I can’t tell which line state changes were the direct result of an action of the phone device I’m monitoring; obviously I can monitor changes in phone state and line state, but if two calls ringing on the 800 block are picked up by two agents at nearly the same time I can’t tell which phone got which call.

This information simply has to be available somewhere in the TAPI interface, if possibly not wrapped by ATAPI. Any hints on what I should be looking at, hopefully from someone who’s done this before, are appreciated.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-16T02:35:33+00:00Added an answer on June 16, 2026 at 2:35 am

    I found the fix.

    The ATAPI library is a bit disingenuous to those who just want to plug in and go. The CallStateChanged event of a TapiLine, whih you hook into to be notified of connected calls, uses a delegate that accepts a CallStateEventArgs as the EventArgs parameter. However, it turns out that CallStateEventArgs is a base class. Functional, but not complete for all cases.

    What’s actually passed to the event when a call is connected is a ConnectedCallStateEventArgs instance. This derived class exposes not only the old and new CallStates of the base class, but also the “call state mode” referenced in the Cisco docs, using a Mode readonly field of the ConnectModes enumeration type.

    From the Cisco docs, if you are monitoring a shared line (like from an 800 block), and a call on that line is picked up or joined into by the phone associated with the line instance you are monitoring, the call state mode will be “LINECONNECTEDMODE_ACTIVE”. If your phone is not a party to the call, it’s “LINECONNECTEDMODE_INACTIVE”. If the line isn’t shared, the connect mode for any connected call on the line will be a zero (“None” in the ATAPI library; if you get this value, assume your phone is a party to the call).

    Using this additional piece of information, it’s possible to know that the phone associated with the line is actually on the call. You will get one line instance for that specific 800 block line for every phone you are monitoring with your TAPI instances that can access the line, so you can know which of the two or three or ten phones you’re watching got the call. If you aren’t monitoring multiple phones on one computer/TAPI instance, and/or the call is not active on any phone you are monitoring, you can’t tell which phone does have the call; only that your phone(s) don’t.

    That’s enough for me; the agents only need to know to whom they’re talking, not anyone else. If we need an account for the floor manager’s desk that monitors all 20 of the phones that have 800 blocks, we can handle that later.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm using v2.0 of ClassTextile.php, with the following call: $testimonial_text = $textile->TextileRestricted($_POST['testimonial']); ... and
We're building an app, our first using Rails 3, and we're having to build
We are using XSLT to translate a RIXML file to XML. Our RIXML contains
Let's say I'm outputting a post title and in our database, it's Hello Y’all
link Im having trouble converting the html entites into html characters, (&# 8217;) i
That's pretty much it. I'm using Nokogiri to scrape a web page what has
Configuring TinyMCE to allow for tags, based on a customer requirement. My config is
I have a small JavaScript validation script that validates inputs based on Regex. I
I want use html5's new tag to play a wav file (currently only supported
I am using the SimpleRSS gem to parse a WordPress RSS feed. The only

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.