Programmable Voice

  1. Home
  2. Docs
  3. Programmable Voice
  4. HMP Elements
  5. Configuration Settings – HMP Elements

Configuration Settings – HMP Elements

The HMPElements.exe.config file allows you to customize the way that the HMP Elements server runs in your specific environment.

Unless otherwise specified the default value is shown for all settings.



Controlling the number of log files that are stored

The HMP Elements server creates a log file for diagnostic purposes. Ordinarily this file is 10 MB in size and the system maintains the current file and a single backup file. This setting allows you to keep additional backup files.

<setting name="LoggingFileHistoryCount" serializeAs="String">


Controlling the size of the log files

This setting controls the size of the logs before they are rolled over to another file.

<setting name="LoggingFileSizeMB" serializeAs="String">


Configure mapped drives for the HMP Elements Server

For the HMP Elements Service to use mapped drives, they must be configured by the service process at startup. This setting allows you to do just that. The value is a ~ (tilde) separated set of strings that are further separated by the | (vertical bar).

This is the default:

<setting name="MappedDrives" serializeAs="String">
  <value />


The following example sets two mapped drives, F: and G:

<setting name="MappedDrives" serializeAs="String">


The HMPServer.Log will show a successful mapping in the log as follows:

MapNetWorkDrive::MapConfiguredDrives - Drive F: Mapped to \\MyServer\Share1 


Configure Url (IP/Port) that the HMPElements Server uses on the local machine.

This is a required setting for HMP Elements to function properly. The value must be preceeded with ‘gtcp://’ followed by the IP of the host machine followed by the port number you wish to have HMP Elements use. This is typically: 55245

<setting name="HmpElementsUrl" serializeAs="String">


Configure HMP Elements to work with the InventiveLabs Robodog Component

Robodog monitors various system services and provides email alerts when there are system problems. To configure HMP Elements to work with Robodog, set this value to ‘true’.

<setting name="Robodog" serializeAs="String">


Configure HMP Elements to bind to a specific ip address for the RTP traffic.

This is the IP address you wish all of the RTP traffic to originate from. It must be set to the IP of an adapter on the machine running HMP Elements.

<setting name="RtpMediaIp" serializeAs="String">


Configure HMP Elements to begin its RTP port numbers at the specified value.

RTP traffic takes 2 IP ports per ‘voice port’. One port is for the G.711 or G.729 traffic, and the other is for RTPC feedback. If you have a 10 channel system then 20 IP ports will need to be set aside for use by HMP Elements. This value tells HMP Elements where to start numbering IP ports. The default is 49152.

If HMP Elements finds that a port is in use, it will skip that port to find another. It will skip a maximum number of 250 ports before throwing and error. Keep this in mind when opening up your firewall. If you start at 49152 and you have 500 ports you will need to open up ports 49152 through 50151. If 10 of the ports are already in use within that range, then HMP Elements will use 49152 – 50161 and you will need to adjust your firewall accordingly.

<setting name="RtpMediaPortBase" serializeAs="String">


Configure HMP Elements to traverse a NAT.

Often you will want your HMP Elements server to sit behind a NAT. Use this setting to tell HMP Elements the external IP of your firewall/router/DSL. If you are not behind a NAT, simply set this value to your servers IP address.

<setting name="ExternalIp" serializeAs="String">


Configure HMP Elements to manipulate SDP for NAT Traversal.

Use this setting to tell HMP Elements of any additional translations that must be performed to the SDP before transmitting the SIP packet. Typically this value is not set.

<setting name="AdditionalTranslations" serializeAs="String">
  <value />


Configure HMP Elements to accept traffic from local subnets.

<setting name="AdditionalLocalTraffic" serializeAs="String">


Configure HMP Elements SIP Signalling IP.

Use this setting to set the IP address used for SIP signalling.

<setting name="HmpIp" serializeAs="String">


Configure HMP Elements SIP Signalling Port

This set the default SIP port for SIP signalling. This is almost always port 5060.

<setting name="HmpPort" serializeAs="String">


Configure The Port ‘Channel’ Count.

This setting configures the number of RTP channels that are created at startup. This should be set to the number of licenses you have, or the maximum you will use for this installation.

<setting name="RtpMediaPortCount" serializeAs="String">


Configure HMP Elements to respond to authentication requests (Username).

If a SIP 407 Proxy-Authentication Required message is received this value provides the username to use in the response.

<setting name="AuthUsername" serializeAs="String">


Configure HMP Elements to respond to authentication requests (Password).

Provides the password for authorization requests.

<setting name="AuthPassword" serializeAs="String">


Configure HMP Elements to respond to authentication requests (Uri).

Provides the Uri for authorization requests

<setting name="AuthUri" serializeAs="String">


Configure HMP Elements to accept traffic from local subnets.

Sets the system to use Inband DTMF (True) in lieu of RFC2833 (False)

<setting name="InbandDtmf" serializeAs="String">


Configure HMP Elements to increase logging for call progress analysis.

Set this value to 0 unless otherwise requested for diagnostic needs.

<setting name="AnalyzeCallLogLevel" serializeAs="String">


Configure HMP Elements to record all calls using Call Progress.

When this value is set, all calls that are placed using call progress will be recorded. This value specifies the path to the folder you wish for these recording to go.

<setting name="AnalyzeCallRecordingPath" serializeAs="String">
  <value />

Accept Refer

Configure HMP Elements to allow SIP Refer

By default, this setting is set to true. This means that HMP Elements will allow SIP Refers. When set to false, HMP Elements will send back a 406 Not Acceptable Here.

<setting name="AcceptRefer" serializeAs="String">


Configure HMP Elements to set a value for the differentiated services packet

The TOSBit controls which value will be set for the Differentiated Services field in a standard SIP packet. This setting allows you to expedite packets over your network. Ask your SIP carrier and/or network administrator what this setting should be set to to achieve better Quality of Service. Here are a couple of links that explain this concept:

By default the TOSBit is set to:

<setting name="TOSBit" serializeAs="String">

SIP Registration

Configure HMP Elements to use SIP Registration

When you use this setting, HMP Elements will Register with the server specified in this configuration setting.

<setting name="Registrations" serializeAs="Xml">
     <ArrayOfRegistration xmlns:xsi="" xmlns:xsd="">


Modify how HMP Elements detects RFC 2833 digits

By default RFC2833StartBitRequired is set to true. When carriers send RFC 2833 packets, they send a start or “marker” packet as the first packet in a DTMF sequence (multiple packets are sent per digit for reliability reasons). HMP Elements by default uses these marker packets to determine if there is a new digit, if these marker packets get lost by jitter, it can cause you to “lose” digits.

By Setting this field to false, it will use the end bits on the DTMF packets to determine when the digit is entered. In systems that often lose packets, this can prove to be more robust, as there are multiple packets with end bits that are sent — so if 1 packet is lost, HMP Elements should still recognize the digit correctly.

<setting name="RFC2833StartBitRequired" serializeAs="String">


Modify the preferred order of codecs

0 is G711 Ulaw, 8 is G711 Alaw and 18 is G729a. The order used in CodecOrder is the order that will appear in the media section of the SIP packet. For example, a setting of “18 0 8” would mean that you prefer G729, G711 Ulaw, and G711 Alaw (in that order). You must be licensed for the codecs that you would like to use. Additional fees apply for using G729.

<setting name="CodecOrder" serializeAs="String">


Determines how much time in ms to remove from the beginning of a recording.

When HmpElements performs recordings there is a beep that is played. Depending on different circumstances, that beep may get included in the recording. This setting controls the number of milliseconds that are removed from the beginning of a recording. Setting this too low will cause beeps to be heard in the recording, while setting this too high will unnecessarily trim the recording.

<setting name="RecordingDigitCompensatorMilliseconds" serializeAs="String">


Determines whether or not calls are rejected.

This setting can be used to prevent inbound calls from being answered. It can be useful to set this setting to true if you need to prevent new calls from coming in to deploy code changes. This setting is refreshed regularly — meaning you can modify it, and it will take effect within a few seconds.

<setting name="RejectInbound" serializeAs="String">


Often carriers will play a tri-tone along with an OK when a call should really be interpreted as an operator intercept. In cases where you are using a callprogress mode of analyze call it should correctly detect the operator intercept. However, in cases where you are using a call progress mode of waitforconnect, HMP Elements isn’t listening for the audio so it isn’t able to determine if the call was an operator intercept. WaitForConnectEnhancedMode allows HMP Elements to listen to the audio on a call that is using connectedmode to determine if the call was an operator intercept.

<setting name="WaitForConnectEnhancedMode" serializeAs="String"> 


This setting can be used to force the registration packet to send an expired timeout in the registration packet sent by HmpElements to the registration server. The value specified is the timeout that will be sent to the registration server.

<setting name="RegistrationExpiresRequest" serializeAs="String">


Configure HMP Elements to record all instances of the Beep Detector

When this value is set it will record all instances of the beep detector for the entire duration that the beep detector is active.

<setting name="BeepDetectorRecordingPath" serializeAs="String">
    <value />

Speech Recognition Settings


Controls which Speech Recognition Engine to use. For Lumenvox, this setting should be HmpElementsLumenvox.dll. For Microsoft Speech Platform it should be HmpElementsMicrosoftSpeech.dll:

<setting name="SpeechRecognitionDll" serializeAs="String">


This setting is also used to determine which Speech Recognition Engine to use. For Lumenvox, this setting should be HmpElemetns.Server.Lumenvox. For Microsoft Speech Platform it should be HmpElements.Server.MicrosoftSpeech:

<setting name="SpeechRecognitionType" serializeAs="String">


Controls the number of Speech Recognition ports that will be used by the Speech Engine. Setting this number higher than what you are licensed for by Lumenvox, or in Hmp Elements will result in Hmp Elements being unable to start.

<setting name="SpeechRecognitionNumberOfPorts" serializeAs="String">


Controls what type of license will be used for the Speech Engine. For Lumenvox, This setting should be either “Vox” or “VoxLite” depending on your license. For Microsoft Speech Platform, it should be the language that you will be recognizing, like “en-US”.

<setting name="SpeechRecognitionLicenseType" serializeAs="String">


Controls what IP Address the machine is located on. For Lumenvox, this should be set to the IP Address that is running the Speech Engine. For Microsoft Speech Platform, it should be set to (because it can only be used on the same machine).

<setting name="SpeechEngineIpAddress" serializeAs="String">

Call Progress Settings


The maximum amount of time to perform CPA analysis on a single call:

<setting name="AnalyzeCallMaxSeconds" serializeAs="String">


The maximum amount of time to perform CPA analysis after receiving a connect message from the carrier:

<setting name="AnalyzeCallFailAfterConnectSeconds" serializeAs="String">


The amount of time to wait before stopping CPA when NoRingback is detected (in milliseconds):

<setting name="AnalyzeCallNoRingbackTimeout" serializeAs="String">


The minimum decibel level to use for detecting VoiceActivity:

<setting name="AnalyzeCallVoiceActivityThreshold" serializeAs="String">


This settings is used for detecting the various dial tones that different countries may use. For more information on which Template you should use, please see this article International Dial Tones.

Was this article helpful to you? Yes 13 No