Steven M. Sokol
2003-Oct-24 09:30 UTC
[Asterisk-Users] CTI interface(s) for Asterisk? [REALLY LONG MESSAGE - SORRY]
Hi. I have just finished Googling the list archive for information on doing CTI with Asterisk. I never found a definitive "here's how it's done" answer, but I did see a number of postings indicating that it was at least a possibility. (For those of you who already know about CTI, please pardon the pedantic introductions to each section.) Here are my questions: [First Party CTI (User Control Of Their Phone)] First party CTI allows application software on the user's/agent's desktop to control the functions of their telephone, and to receive call-related information with each call. Most of the time it is done by establishing a connection between the phone and the desktop directly. Sometimes it is done by establishing a connection to the PBX and telling it that you are the desktop UA for station X. In either case it allows users to place calls from within their PIM, and to pop screens based on caller information (generally ANI/Caller*ID). Questions: 1. Is there any generally accepted way of doing First Party Call Control for SIP hard-phones? Do we configure a "pseudo-soft-phone" to be the initial recipient of the call (thus grabbing all data related to the call) then deflecting the call to the actual hard-phone URI? If so, how do we monitor the "real" agent/station status? In the dreadful old world of proprietary PBXs/Phones, the phone manufacturer sometimes provides a 1st Party CTI interface in the form of a serial or USB connection on the phone, and a CTI driver (TAPI, JTAPI, TSAPI, CCXML, etc.) that runs on the desktop. Since we don't necessarily want to go pestering Grandstream, Snom, Cisco, etc. for CTI interfaces, is there a GOOD, ROBUST, SCALABLE way of doing this ourselves? 2. How about 1st party zaptel (analogue) CTI? Since this is much more along the lines traditional PBX connections, is there a good simple way to add Out-Of-Band CTI for these phones? Perhaps some kind of CCXML i/o gateway built into the code in pbx.c? [Third Party CTI (Global Monitoring/3rd Party Call Control)] Third party differs from first party in that an application has access to more than a single user agent device. 3rd party control allows for enhanced call routing based on ANI/Caller*ID, DNIS/DID, digits collected by an IVR, and also based on call center staffing and load (and probably lots of other factors). It provides omniscience (a god's eye view of the PBX) and omnipotence (a god's ability to control anything going on within the PBX). In the rotten old world of Avaya (my background) we have several third party CTI models to pick from. The most robust is ASAI on the Definity (MultiVantage) platforms. It allows you to: A) Grab a snapshot of a device, queue, or other entity; B) request and receive status monitoring information (events) about an entity; and C) 3rd party domain control (force a station off hook, move calls between queues, move agents from group to group, log stations into and out of groups, silently bridge calls to recording devices, place predictive calls and direct them to queues, etc). The ASAI interface is established by adding a small in-skin computer that monitors the internal signaling channels and sends commands across those channels to the primary call processing application. This separate device is needed because A) the primary processor is underpowered and B) because the primary processor runs a real-time tuned kernel and C) because they are the phone company and so they can do what they like. This ASAI interface can be accessed directly using some very lightweight drivers from Avaya (that cost big bucks) or by using and ASAI-to-TSAPI bridge that converts to/from ECMA CSTA (the formal TSAPI spec). This bridge normally runs on yet another PC and again costs an arm and two legs to install, plus other body parts to license and use. Question: What would it take to implement a similar (but hopefully more robust and easier to implement) system for Asterisk? Again I would think something more modern (like CCXML) would be a "best case" implementation, but there are a lot of legacy applications out there that could be integrated with Asterisk w/o modification if we added TSAPI and/or JTAPI and/or TAPI. Has anyone had any conversations with Mark about the best way to add this kind of functionality without impairing the near-real-time nature of Asterisk? Should this be posted to the Asterisk-Dev list instead? Does anybody have any experience at this kind of work? Comments please. Sorry for the REALLY LONG post. Cheers, Steven
Eric Wieling
2003-Oct-24 09:49 UTC
[Asterisk-Users] CTI interface(s) for Asterisk? [REALLY LONG MESSAGE - SORRY]
Generally you would use the Manager interface for that. Search the archives at http://www.digium.com/index.php?menu=mailing_list for more information. I've not personally used the Manager interface. On Fri, 2003-10-24 at 11:30, Steven M. Sokol wrote:> Hi. I have just finished Googling the list archive for information on > doing CTI with Asterisk. I never found a definitive "here's how it's > done" answer, but I did see a number of postings indicating that it was > at least a possibility. (For those of you who already know about CTI, > please pardon the pedantic introductions to each section.)-- Sample configs, scripts, more : http://www.fnords.org/~eric/asterisk/ BTEL Consulting 504-899-1387 or 850-484-4545 or 877-677-9643