Any modern enterprise has a computer system (or several), allowing to take into account and manage both internal and external resources of the enterprise. Internal resources are, for example, employees, goods, equipment, etc., and external resources are, for example, customers, suppliers and partners.
Examples of such systems are CRM, ERP, HRM, etc.
Also, the operation of any enterprise is impossible without communications: it is primarily a relationship with customers, partners, suppliers, as well as between employees of the enterprise, between the head office and branches, etc.
The main means of communication in the modern business world are the Internet and telephone. Despite the fact that the exchange of electronic messages came into our lives so much that sometimes it is unclear how we did without it before, it still could not replace live voice communication, and it is unlikely to ever be able to. Of course, such technologies as VOIP and voice mail are becoming more and more widespread, but nevertheless the most common type of business communications remains business negotiations over the phone.
In each, even the smallest, modern office there is a mini-PBX, most often a hardware room, the most common are office PBXs from Panasonic, LG, Siemens, Avaya, Samsung. The presence of an office PBX allows the enterprise to more efficiently use the existing city lines, and also allows the company's employees to communicate with each other without using external communication lines, providing cost savings on calls through the city, and you can also connect the main office with branches by linking the main PBX to the PBX branches via dedicated communication channels, also saving on the use of common user networks, and allowing you to have a unified numbering plan for the head office and branches.
So, we have a PBX, as well as a computer system that stores information about the people with whom we need to communicate, including telephone numbers. Of course, the question arises: how to make it so that from any workplace from the computer system interface you can call the required subscriber (client, partner, colleague) without memorizing the phone number, without rewriting it on a piece of paper, and not dialing him? After all, there is a computer, even if it is gaining!
I would also like that when our partners or customers call us, their phone number would be determined by the system, depending on this number, according to some pre-programmed rules, the call would be directed to a specific subscriber or their group (for example, customer calls should be automatically sent to sales department, vendor calls to the procurement department, and a call from an important partner to one of the company's top managers), while a pop-up window with the name in Caller and other related information. Well, it was useful that the data on the call (time, duration, external and internal subscribers, etc.) were automatically saved to the database for further analysis.
Computer-to-telephone integration (or CTI, an abbreviation for the English
"Computer Telephony Integration" ) comes to the rescue in such cases. CTI technology allows you to combine the capabilities of computer and telephone systems, allowing the computer to track calls and manage them using any pre-programmed call processing script.
However, when a Windows programmer is tasked with integrating an existing computer-information system of an enterprise with telephone equipment, after studying the issue, it becomes clear that for this the programmer will have to learn TAPI (Eng.
Telephony Application Programming Interface - application programming interface for telephony).
With the most optimistic estimates, this will take several months, and you will have to program, most likely in C \ C ++, because TAPI versions 1.x, 2.x is developed in C / C ++ and involves a rather complicated work with memory. With TAPI 3.x, the situation is somewhat different, it is designed using COM (
Component Object Model ) technology, but there may be difficulties with the support of various equipment of this version of the standard, since TAPI 3.x does not include all the features available in version 2.x, in addition, it is easier for manufacturers to write a driver (TSP, from English "
TAPI Service Provider ") for PBX using TAPI 2.x, since there is an almost direct correspondence between TSP driver interfaces and TAPI 2.x
Microsoft still has not released and does not plan versions of TAPI, which allows to work directly with telephony from “managed” languages ​​(
KB Article 841712 ).
For those developers who wish to integrate telephony into their applications without studying TAPI, there is the
Rander COM Telephony API (RanCOM) .
RanCOM was created using COM technology and allows you to start developing your own software products working with an office PBX in a short time. With the help of RanCOM, you can solve such tasks as:
- Getting information about the incoming call on the operator’s computer
- Automatic dialing
- Managing the distribution of incoming communication in real time (routing CallerID and other conditions)
- Monitoring PBX lines in real time
- Building IVR systems (automated systems, interactive menus, auto attendants)
The logic diagram of the software package based on RanCOM is as follows:

More information is available at:
http://randersoft.com/ru/RanCOM.shtmlHow does working with PBX look like from a programmer's point of view? Let's give a simple example:
Dim ranCom as RanCom;
Dim LineId
RanCom.Connect "myservername","myusername","mypassword"
LineId=RanCom.OpenLine("111")
RanCom.Dial2 "123"
RanCom.Disconnect
This is how a set of numbers from a program in Visual Basic for Applications looks like (for simplicity of understanding, but the algorithm will be the same in any language, only the syntax of calling RanCOM methods will change).
As you can see, everything is very simple: connecting to the server, opening a line, dialing a number, disconnecting.
And no tapi!
It’s also easy to get the caller’s number on an incoming call:
Dim call_info As CallInfo
Dim callerId
call_info = ran.GetCallInfo(call_id)
callerId=call_info.CallerId
')
Call identifier call_id is received by the message NewCall2 or through the function Getcalls.
As you can see, with the help of RanCOM, you can significantly save the developer’s time, and therefore the firm’s money to pay for his work, and the opportunities that are open to the developer are truly wide.
Here you can familiarize yourself with some of the most interesting projects implemented by our partners and customers with the help of the RanCOM component.
We are waiting for you on our website:
http://randersoft.com