Frequently Asked Questions

What is Voice Elements?

Voice Elements is a .NET API that allows you to build both Voice (telephony) and WebRTC applications. When you build a Voice Elements application, you need to connect it to a Voice Elements server. You can use our your own server.

What is HMP Elements?

HMP Elements is our SIP stack. It’s the piece that’s responsible for sending SIP / RTP traffic. HMP Elements receives commands from Voice Elements and then performs the appropriate SIP function. For example:

Your client application sends a dial command to Voice Elements. Voice Elements would receive that command and issue a command to HMP Elements to perform a dial. HMP Elements receives that command and sends a SIP invite out to perform a new call.

Why does Voice Elements Platform consist of HMP Elements and Voice Elements?

We’re committed to supporting our customers. Our first main telephony toolkit was called CTI32. Several years later, we created Voice Elements which made it much easier to program telephony applications. When we decided to create our own SIP stack, we wanted our older CTI32 customers to be able to take advantage of HMP Elements, and so it was decided to create it as a separate service so that both CTI32 and Voice Elements could use it.

How much does Voice Elements cost?

For information on cloud based pricing, use this link. For information on premise based pricing, use this link.

What is the beep detector?

The beep detector can be used to determine when a voice mail system has played a beep.

How do I build my first Voice Elements application?

The Getting Started Guide contains the information that you need to build your first basic Voice Elements application.

Our samples page contains more advanced samples that show how to perform common features. These applications are written in c# and include common features found in IVR’s, outbound dialers, and WebRTC applications.

How do I test the beep detector?

You should be able to trigger the beep detector by whistling into the microphone when the beep detector is active. As long as you use a solid tone, whistles are in the same frequency range as the beeps that Voice Elements detects.

How does the RegisterDnis() function work?

The RegisterDnis function tells Voice Elements which phone numbers you want your application to handle.

There are two overloads in the RegisterDNIS function. When you call it without parameters that tells Voice Elements that you are registering the Wildcard. Alternatively, you can pass in a specific phone number or numbers.

When you call the wildcard (RegisterDnis() without parameters) it instructs Voice Elements to send calls to all phone numbers that aren’t otherwise registered to other applications. You can only have one application use the wildcard. All others need to specify which phone numbers they would like to register. Here’s an example:

Application A: Calls RegisterDnis();

Application B Calls RegisterDnis(“1234567890″);

If a call comes in with the DNIS “1234″, Application A would receive the call. If a call came in with the DNIS “1234567890″, application B would receive the call.

Why do I need to dispose my Channel Resources?

When you get a ChannelResource by calling the GetChannel function, that resource can only be used by your application. This means that we guarantee that it’s available for dialing. Because of this, Voice Elements needs your application to notify us when it’s done using the resource. While we have built out functionality to dispose of resources for the client, it’s always best to dispose of them manually.

How do I write or structure my Voice Elements Application?

It can be helpful to look at the code for sample applications. We’ve written a variety of sample applications that show how to use the features that are available in Voice Elements.

How do I set the caller id of an outgoing call?

You just need to set the OriginatingPhoneNumber property on the ChannelResource before placing the dial.

m_ChannelResource.OriginatingPhoneNumber = "1234567890";

How do I record both sides of a call?

The RecordConversation method allows you to record both sides of a phone call. Use this link for more information.

Do you support Visual Studio 2012 / 2013?

Yes! You can always reference older versions of the .NET framework from newer versions of Visual Studio.

Our client DLL’s are built with the .NET 2.0 framework — this gives us the ability to support all of our customers using Visual Studio 2005 and newer