Contact Center Solutions Industry News

[July 09, 2007]

A Primer on APIs

By TMCnet Special Guest
 
Now more than ever, application developers have the option to voice-enable their applications. Programs that traditionally did not have a voice component are now able to incorporate it. With IP telephony steadily increasing in popularity, there is a growing need for application developers to expand their capabilities to design solutions that are also suitable for an IP-centric world.
 
As the inclusion of voice expands, the number of voice developers steadily increases, with technology being developed to bring voice to applications where it was previously impossible or too complicated and expensive a proposition. Developers who have not previously worked with voice are now entering a market crowded with traditional application developers and delving into uncharted waters, with a diverse skill set and list of unique requirements for their applications.
 
The developer landscape is growing and changing. The knowledge base of developers varies widely. There is a universal desire to reduce time to market while keeping development costs low. This all means that the needs of developers are becoming disparate and complicated, dependant on their individual requirements. The software development kit (SDK) and application programming interface (API) that are selected by a developer are determined by these individual circumstances.
 
This article will examine the differences between, advantages and disadvantages of, and best environments for both low- and high-level APIs when developing voice-enabled applications.
 
High-Level APIs
Two decades ago, voice traveled only over the PSTN, mostly via analog with some digital TDM links. Today, voice can be packetized as data and is traveling over the Internet. IP telephony installations, whether pure IP or hybrid solutions, are beginning to outpace traditional PBX (News - Alert) installations.
 
The result of the advent and adoption of IP telephony is that increasing numbers of developers need tools that simplify telephony coding, giving them the power to design applications faster, decrease the time it takes to get their products to market and reduce overall development cost. High-level APIs might be the answer to these issues.
 
What exactly is a high-level API?
 
High-level APIs are designed to remove complexity and accelerate design time. A high-level API is a subset or wrapper of a low-level API, and typically delivers the basic requirements of what most developers need today in terms of functionality. The amount of code is greatly reduced for each function, in effect simplifying the development process and enabling the developer to plainly direct the API on what to do.
 
Developers no longer require expertise in extremely complex protocols such as SIP, ISDN and CAS. Instead, developers are able to design applications with a minimal understanding of each protocol because the high-level API abstracts media processing and call-control signaling, making all protocols the same.
 
Before we examine which applications would be best created using a high-level API and in what environments a developer should use this option, let us first discuss low-level APIs.
 
Low-Level APIs
Although there is increasing demand for high-level APIs, there is still a substantial requirement for a low-level option. Developers with experience and expertise in TDM and IP networks demand the granularity and design control only a low-level API can deliver.
 
Typically proprietary, low-level APIs constitute a highly evolved software engine that provides real-time management of resources including telecom network interfaces, switching, and DSP resources. In addition, low-level APIs provide access to a number of intricate functions related to telecom line protocols, circuit switching, voice processing and conferencing.
 
A low-level API is comprised of groups of features that reflect similar functionality. For example:
  • DSP functionality (echo cancellation, speech/energy detectors)
  • Voice processing (play/record, tone detection/generation)
  • Conferencing (add/remove members; switching and summing)
  • Trunk interface (onhook/offhook)
  • Phone interface (generate ringing)
  • Switching (make connections)
  • Call control
 
Traditional Developers and Next Generation Developers
A major factor in determining which API makes the most sense for a particular developer is whether they would be considered a traditional or a next-generation application developer.
 
Traditional developers are those who have deep technical knowledge of programming languages like C and C++, and who have experience with the intricacies of developing telecom applications, such as protocols, circuit switching, voice processing and conferencing. These developers are not afraid of the breadth of knowledge required to develop complex telephony applications from scratch.
 
Because they typically have a broad telephony knowledge base and technological expertise, these developers can make use of the flexibility associated with a low-level API since they are able to manipulate individual functions with ease.
 
Next-generation developers usually fall into two categories, those adding voice to existing applications and those working in the web environment. Developers working in the web environment are typically familiar with an entirely different set of programming languages, have alternate expertise and a unique experience base in developing applications compared to their traditional counterparts. These developers are comfortable in the 2.0 world and most likely have experience with open-source applications. Using existing platforms such as Skype and Asterisk (News - Alert), these developers can build their own applications without having to start from scratch.
 
In our experience, nine out of ten developers, whether traditional or next generation, use a high-level API because it allows them to achieve the desired outcome without requiring considerable, specific telephony expertise, enabling them to develop their applications more quickly. PIKA’s software development kit, MonteCarlo, incorporates both high-level and low-level APIs because, as you’ll see below, there is a time and a place for both and advantages and disadvantages to each.
 
Advantages and Disadvantages
At its simplest, a high-level API is less flexible in terms of functionality but it enables faster design time, resulting in reduced time to market. On the other hand, while it allows for maximum flexibility, a low-level API requires a designer to have in-depth knowledge of telephony.
 
An ideal development scenario provides the user with the ability to use either API, or both. Solutions that start out at the high level and allow those with specific requirements and technological expertise to drill down to the low level on specific functions create the best of both worlds, mitigating the time that complete development on a low-level API would take while providing the flexibility associated with the high-level API.
 
There are scenarios where one API has a clear advantage over the other when developing a specific application, which I will outline below.
 
When To Use Low-Level And High-Level APIs
A low-level API is ideal when working with existing applications that were originally designed using a low-level API, when designing an application that requires specialized features, or when designing applications that require highly optimized performance.
 
For example, test equipment manufacturers would want to develop their applications using a low-level API so that their customers could have access to each discrete function and easily make changes.
 
A high-level API is the best option when developing an application requiring complicated signaling protocols such as SIP, ISDN and CAS. Complexity is seriously diminished for the developer, without sacrificing functionality in the application. High-level APIs are optimal when creating applications with little to no specialized feature requirements, like many conferencing, call center and prison logging applications.
 
For instance, a developer creating a general purpose IVR who doesn’t have deep technical knowledge about call control and simply wants to place or receive calls, call progress might be built-in standard with the high-level API. The developer can add this functionality quickly and easily.
 
If the developer is working with a solution where he has access to both the low-level API and the high-level API through the SDK, he can rely primarily on the high-level API but has the option of using a low-level API bypass to access resources in order to develop specialized features, if required.
 
Summary
Whether the preference is more design control or a faster development cycle, it’s the role of an API to give developers the power they need to get the job done right the first time.
 
While low-level APIs remain in great demand, in recent years we have seen an increase in the number of developers requesting a high-level API to simplify the complexity of telephony and call-control signaling. The influx of new developers brings novel expertise and experience to the application-development field, with needs constantly changing. The market for voice is expanding and evolving as telephony and open source meld together to create new channels for communication and developers must keep pace.
 
There are advantages and disadvantages to both low-level and high-level APIs and developers need to evaluate their needs against the characteristics of each in order to choose the API that will best help them achieve their specific development requirements.
 
Roderic Boileau is manager of customer care at PIKA Technologies. Customer Care is a responsive team of technical experts that help customers get their applications to market quickly and cost-effectively. A graduate of the Micro Computer Engineering Technology program of Saint Lawrence College, Mr. Boileau is a veteran in the software industry as a designer, architect and a leader. Mr. Boileau has been a valuable member of the PIKA Technologies (News - Alert) management team since 2000. Before his role in customer care, Mr. Boileau was PIKA’s manager of software development. Prior to his tenure with PIKA Technologies, Mr. Boileau worked for Cadence, Nortel (News - Alert) Networks and West End Systems.
 

[ Back To Contact Center Solutions Homepage's Homepage ]



Related Contact Center Solutions Articles

Socialize with us

FREE Contact Center Solutions eNewsletter

Click here to receive your targeted Contact Center Solutions Community eNewsletter.[Subscribe Now]

Contact Center Solutions Glossary of Terms

About the Contact Center Solutions Community

    Welcome to the Contact Center Solutions Community The Contact Center Solutions Global Online Community, Sponsored by Interactive Intelligence, is designed to serve as the industry's premier resource for information and research on Contact Center Solutions technology and deployment strategies.