Low Level and Legacy Telephony Configuration

⌘K
  1. Home
  2. CTI32 Legacy Articles
  3. Low Level and Legacy Telephony Configuration

Low Level and Legacy Telephony Configuration

Author’s note:  This article supports our legacy products.  At Inventive Labs, after two decades of providing telephony tools, we never stop supporting those who rely on our products to run their businesses.  We no longer recommend Dialogic. This article is for our customers who are using legacy equipment. For more information about these legacy products and where we are today, read  Ditch Dialogic & Convert to Voice Elements.

You can configure the behavior of your Voice Elements Server’s use of several low level telephony components by editing the settings in the CTI32.ini file. This file is located in the root directory of the server installation. The default is C:\Program Files\Inventive Labs\Voice Elements Server\.

Some settings apply to DM3/HMP and some settings apply to Springware boards. Some settings are shared.

Be careful: There are some significant differences between Springware and DM3.

For example the DXCH_SPEECHPLAYTRIGG and DXCH_SPEECHPLAYWINDOW values for Springware are in 12ms units but are only in 10ms units for DM3!

Settings that apply to both Springware and DM3

DXCH_BARGEINONLY=0
Values: 0 or 1

Enables or disables generation of TDX_BARGEIN and TDX_PLAY events when a barge-in condition occurs. The value 0 enables generation of both TDX_BARGEIN and TDX_PLAY events. Note: When playing a prompt in synchronous mode, you must set DXCH_BARGEINONLY to 0. The value 1, the default, enables generation of TDX_BARGEIN event only. This parameter does not affect the setting of barge-in itself; see DXCH_BARGEIN.

DXCH_SPEECHPLAYTHRESH=-40
Range: +3 to -54

Specifies the minimum energy level of incoming speech necessary to trigger the voice activity detector. This value is used while a prompt is playing. You must supply the plus or minus sign with this value. For more information on modifying these voice activity detector parameters, see the Continuous Speech Processing API Programming Guide. On DM3 boards, specifying this parameter means that the VAD uses energy mode to determine the start of speech. For the VAD to use a combination of zero-crossing mode and energy mode, do not use this parameter; rather, set the ECCH_SVAD parameter to 0. In this case, the threshold value is set automatically by the VAD.

Note: On SpringWare boards and DM3 boards, you can modify this parameter while recording or streaming is active.

DXCH_SPEECHPLAYTRIGG=10
Springware Range: 5-10 in 12ms blocks
DM3: 5-10 in 10ms blocks

For SpringWare boards. Specifies the number of 12 ms blocks whose speech energy is greater than the speech threshold required to trigger the voice activity detector. This value is used while a prompt is playing. Note: This value must be less than or equal to the value of DXCH_SPEECHPLAYWINDOW. Note: You can modify this parameter while recording or streaming is active.

For DM3 boards. Specifies the number of 10 ms blocks whose speech energy is greater than the speech threshold required to trigger the voice activity detector. This value is used while a prompt is playing. Note: This value must be less than or equal to the value of DXCH_SPEECHPLAYWINDOW. Note: You can modify this parameter while recording or streaming is active.

DXCH_SPEECHPLAYWINDOW=10
Springware Range: 5-10 in 12ms blocks
DM3: 5-10 in 10ms blocks

For SpringWare boards. During the playing of a prompt, this parameter specifies the number of 12 ms blocks or frames which are surveyed to detect speech energy. Note: This value must be greater than or equal to the value of DXCH_SPEECHPLAYTRIGG. Note: You can modify this parameter while recording or streaming is active.

For DM3 boards. During the playing of a prompt, this parameter specifies the number of 10 ms blocks or frames which are surveyed to detect speech energy. Note: This value must be greater than or equal to the value of DXCH_SPEECHPLAYTRIGG. Note: You can modify this parameter while recording or streaming is active.

DXCH_SPEECHSNR=-12
Range: 0 to -20 dB

Specifies the reciprocal of the signal to noise ratio (SNR) between the incoming speech energy and the estimated residual noise at the output of the echo canceller circuit. SNR is the relationship of the magnitude of a transmission signal to the noise of a channel. It is a measurement of signal strength compared to error-inducing circuit noise. In environments where the incoming signal is weak or has residual noise, you may want to adjust this value higher to reduce noise in the signal. You must supply the minus sign with this value. Note: You can modify this parameter while recording or streaming is active.

ECCH_ECHOCANCELLER=1
Values: 0 or 1

Enables or disables the echo canceller in the application. The value 1 turns on the echo canceller, and the value 0 turns it off. Note: Because the echo canceller is enabled by default, you do not need to use this parameter to turn on the echo canceller in your application. Only use this parameter to turn off the echo canceller. You may want to turn off the echo canceller for evaluation purposes. Note: For SpringWare boards, if you use this parameter, you must specify this parameter BEFORE any other CSP parameter. Any time you specify ECCH_ECHOCANCELLER, the tap length and other parameters are reset to their default values. Note: For SpringWare boards, do not specify ECCH_ECHOCANCELLER and DXCH_EC_TAP_LENGTH in your application for the same stream. Each parameter resets the other to its default value.

ECCH_NLP=1
Values: 0 or 1

Turns non-linear processing (NLP) on or off. The value 0 (not 1) turns on the NLP feature, and 1 (not 0) turns it off. NLP refers to comfort noise; that is, a background noise used in dictation applications to let the user know that the application is working. For ASR applications, you must turn this feature off; that is, set ECCH_NLP = 1.

ECCH_VADINITIATED=1
Values: 0 or 1

Enables or disables voice-activated record in the application. If enabled, recording or streaming of echo-cancelled data to the host application begins only after speech is detected. The value 1 turns the feature on, and 0 turns the feature off.

ECCH_XFERBUFFERSIZE=5120
Springware: 128 bytes to 16 kilobytes (in multiples of 128)
DM3: Range: 240 bytes to 16 kbytes

For SpringWare boards. The size of the driver buffers on the receive side of a CSP-capable full-duplex channel. These buffers are used to transfer data between the driver and the host application. This value is configurable per channel at run-time. For voice-mail applications, the default of 16 kbytes is sufficient. For ASR applications, you may need to set the buffer size lower to improve real-time processing and reduce latency. For more information on setting buffer sizes, see the Continuous Speech Processing API Programming Guide.

Note: The smaller the buffer size, the more interrupts are generated to handle the buffers, and consequently the greater the system load. In Linux, this parameter has limitations. The possible values are 1, 2, 4, 8 and 16 kbytes. By default, the amount of data passed to the user-defined callback function is fixed at 16 kbytes. You can only override this default per process by calling ec_setparm( ) BEFORE opening a channel: int size = 1024; /* or 2, 4, 8, 16 kbytes */…ec_setparm(SRL_DEVICE, ECCH_XFERBUFFERSIZE, &size) Note: You must use SRL_DEVICE as the device name. For more information on buffers and data flow, see the Continuous Speech Processing API Programming Guide.

For DM3 boards. The size of the host application buffers on the receive side of a CSP-capable full-duplex channel. These buffers are used to transfer data between the firmware and the host application. On DM3, the firmware buffer size is adjusted based on the value of ECCH_XFERBUFFERSIZE (the transfer buffer). If the transfer buffer is less than or equal to 2 kbytes, then the firmware buffer is set to the same size as the transfer buffer. If the transfer buffer is greater than 2 kbytes, then the firmware buffer is set to 2 kbytes. The content of multiple firmware buffers is accumulated in the transfer buffer before being written to file or provided to the application callback function. The firmware buffer size cannot be greater than 2 kbytes. This value is configurable per channel at run-time. For ASR applications, you will need to set the buffer size lower to improve real-time processing and reduce latency. Note: The smaller the buffer size, the more interrupts are generated to handle the buffers, and consequently the greater the system load.

Settings that apply to Springware Only

DXCH_EC_TAP_LENGTH=48
Values: 48 to 128

For SpringWare boards. Specifies the tap length for the echo canceller. The longer the tap length, the more echo is cancelled from the incoming signal. However, this means more processing power is required. The default value is 48 taps which corresponds to 6 ms. One tap is 125 microseconds (0.125 ms). Note: To use CSP in ASR applications, set this value to 128 taps (16 ms). Note: If you use this parameter, you must specify this parameter BEFORE any other CSP parameter. Any time you specify DXCH_EC_TAP_LENGTH, other CSP parameters are reset to their default values. Note: Do not specify ECCH_ECHOCANCELLER and DXCH_EC_TAP_LENGTH in your application for the same stream. Each parameter resets the other to its default value.

DXCH_SPEECHNONPLAYTHRESH=-40
Range: +3 to -54 dBm

Supported on SpringWare boards only. Specifies the minimum energy level of incoming speech necessary to trigger the voice activity detector. This value is used when a prompt has completed playing. You must supply the plus or minus sign with this value.

DXCH_SPEECHNONPLAYTRIGG=10
Range: 5-10

Supported on SpringWare boards only. Specifies the number of 12 ms blocks whose speech energy is greater than the speech threshold required to trigger the voice activity detector (VAD). This value is used when a prompt has completed playing.

Note: This value must be less than or equal to the value of DXCH_SPEECHNONPLAYWINDOW.

DXCH_SPEECHNONPLAYWINDOW=10
Range: 5-10

Supported on SpringWare boards only. Specifies the number of 12 ms blocks or frames which are surveyed to detect speech energy. This value is used when a prompt has completed playing.

Note: This value must be greater than or equal to the value of DXCH_SPEECHNONPLAYTRIGG.

ECCH_ADAPTMODE=0 
Values: 0 or 1

Supported on SpringWare boards only. Specifies the adaptation mode of operation for the echo canceller. The echo canceller uses two operating modes, fast mode and slow mode. Regardless of the parameter value, the echo canceller always starts in fast mode (higher automatic gain factor) after it is reset, then switches to a slow mode (lower automatic gain factor). When this parameter is set to 0, two factors are used in determining the switch from fast to slow mode: (1) Echo Return Loss Enhancement (ERLE) and (2) adaptation time. When this parameter is set to 1, only the adaptation time factor is used. For more information on the echo canceller and adaptation mode, see the Continuous Speech Processing API Programming Guide.

Settings that apply to DM3/HMP Only

ECCH_SVAD=1
Values: 0 or 1

Supported on DM3 boards only. Specifies how the voice activity detector (VAD) detects the start of speech. The value 0, the default, means that the VAD uses a combination of energy and zero-crossing mode (where energy level goes to zero for a time period) to determine the start of speech. The threshold is determined automatically by the VAD. The value 1 means that the VAD uses energy mode only and the threshold value is set by the DXCH_SPEECHPLAYTHRESH parameter.

HMP Related Settings

When running CTI32 in HMP mode, these settings are required.

    • InitializeForSip
 0 = Off (Non-HMP Mode)
 1 = On (HMP Mode)
 . 
 Example: InitializeForSip=1
  • Realm
 Specify the Realm used in MD5 Authentication for external SIP providers
 .
 Example: Realm=jnctn.net
  • Identity
 Specify the Identity used in MD5 Authentication for external SIP providers
 .
 Example: Identity=sip:johnsmith@myipaddress
  • Username
 Specify the Username used in MD5 Authentication for external SIP providers
 .
 Example: Username=johnsmith
  • Password
 Specify the Password used in MD5 Authentication for external SIP providers
 .
 Example: Password=myPassword
  • PasswordEncrypted
 0 = No, password is in plain text
 1 = Yes, password is in encrypted form
 . 
 Example: PasswordEncrypted=1
 
  • RegisterLocalAlias
 Typically should have your local ip address and port (normally 5060)
 .
 Example: RegisterLocalAlias=sip:ronjtanner@myipaddress:5060
  • RegisterServer
 If using Registration, The IP of the server you are registering with
 .
 Example: RegisterServer=sip:sip.jnctn.net
  • RegisterClient
 If using Registration, The Client Credentials at the Registered Server
 .
 Example: RegisterClient=sip:ronjtanner@sip.jnctn.net
  • RegisterMaxHops
 Specifies the maximum hops allowable.
 .
 Example: RegisterMaxHops=70
  • RegisterUserAgent
 Specifies a User-Agent header to insert into the REGISTER request for systems that require it.
 Generally you can leave this blank.
 .
 Example: RegisterUserAgent=User-Agent: InventiveLabs CTI32
  • RegisterTimeToLive
 Specifies the maximum registration time to live.
 .
 Example: RegisterTimeToLive=1800
  • RegisterDialRealm
 Specifies an alternate dialing realm in conjunction with the Realm tag.
 Generally you can leave this blank.
 .
 Example: RegisterDialRealm=jnctn2.net
  • RegisterMaxRetries
 Specifies the number of times the system will retry registration if it fails.
 .
 Example: RegisterMaxRetries=10
  • RegisterOutboundProxyHost
 Typically Blank, unless you want to use a proxy
 .
 Example: RegisterOutboundProxyHost=192.168.1.1
  • RegisterOutboundProxyPort
 The port the Proxy Host is listening on
 .
 Example: RegisterOutboundProxyPort=5060
  • InviteFromHeader
 The default SIP From header to use if not overridden in code.
 .
 Example: InviteFromHeader=From: Ron Tanner <sip:ronjtanner@myipaddress>
  • InviteToSuffix
 This is, by default, automatically appended to the dialed number and should be: @xxx.xxx.xxx.xxx where xxx.xxx.xxx.xxx is the IP of the gateway/proxy otherwise leave this blank.
 .
 Example: InviteToSuffix=@123.123.123.123
  • SipRegister
 0 = Disabled
 1 = Enable Registration With a SIP Provider
 . 
 Example: SipRegister=1
  • SpoofName
 This setting will provide the Name for the "From Display" in the SIP From Header when the From header is to be overridden in code.
 In this example, the "From Display" portion is in bold:  From: Ron Tanner <sip:ronjtanner@myipaddress>
 .
 Example: SpoofName=Ron Tanner
  • CodecOrder
 This specifies the allowable codecs for SIP and the order of their preference (separated by spaces).  Allowable codecs are: g711Ulaw64k, g711Alaw64k, g7231_5_3k, g7231_6_3k, g729AnnexA, g729AnnexAwAnnexB and t38UDPFax.
 .
 Example: CodecOrder=g711Ulaw64k g729AnnexA
  • DTMF_Type
 This specifies the DTMF mode.  Inband, out of band or no preference.
 .
 0 = No Preference
 1 = Inband Only
 2 = Out of Band Only (RFC2833)
 .
 Example: DTMF_Type=2
  • 3PCC
 0 = Not using 3rd Party Call Control
 1 = Using 3rd Part Call Control
 .
 Example: 3PCC=0
  • SipMaxCalls
 This setting tells the underlying SIP engine how many ports you have licensed.  Set to 0 to autodetect up to 120 ports.  Or specify the exact number of license you know you have.  This is a required field if you have more then 120 ports.
 .
 Example: SipMaxCalls=0
  • Contact
 This allow you to hard code a Contact Header for the outgoing SIP request.  Normally leave this blank.
 .
 Example: Contact=Contact: <sip:myipaddress>
  • SipSignalingIp
 When you have multiple NIC cards, this setting allows you to specify the IP address you wish to have the SIP traffic originate from.
 .
 Example: SipSignalingIp=myipaddress
  • SipSignaligPort
 This allows you to specify the port to use for outgoing Sip messages
 .
 Example: SipSignalingPort = 5060
  • HandleReqModifyCall
 This allows a connected party to issue Re-Invite to the HMP system.
 0 = Do Not Allow Re-Invites
 1 = Allow Re-Invites
 .
 Example: HandleReqModifyCall=0
  • UseMakeCallBlock
 In certain 3PCC applications, the make call block must be used when calls are originated.
 0 = Do not Use the Make Call Block
 1 = Use the Make Call Block
 .
 Example: UseMakeCallBlock=0
  • InviteFromSuffix
 This setting will provide the "suffix" in the SIP From Header when the From header is to be overridden in code.
 In this example, the "suffix" portion is in bold:  From: John Smith <sip:johnsmith@myipaddress>
 .
 Example: InviteFromSuffix=@myipaddress
  • RetrieveSipHeaders
 This setting allows you to return the sip headers that are associated with a SIP call.
 .
 Typical Sip Headers Are:
 .
 Accept, Accept-Encoding, Accept-Language, Allow, Allow-Events, Authentication, Authentication-Info, Authorization, Call-ID, Contact,
 Content-Disposition, Content-Encoding, Content-Language, Content-Length, CSeq, Date, Diversion, Event, Expires, From, Max-Forwards,
 Min-Expires, Min-SE, Proxy-Authenticate, Proxy-Authorization, RAck, Referred-By, Refer-To, Replaces, Request-URI, Require, Retry-After,
 Route, RSeq, Session-Expires, Subscription-State, Supported, To, Unsupported, Via, Warning, and WWW-Authenticate
 .
 To retrieve all of these headers, just specify alldefault
 .
 You may also specify any other header that is not listed above, if you know that the header exists in 

RetrieveSipHeaders=From To Contact

Text To Speech Related Settings

This section controls the default behavior of the Text-to-Speech engine on the system.

  • Name
 A string value specifying the voice.  To find the names of available voices, you may look in Windows Control Panel>Speech
 . 
 Example: Name=Microsoft Sam
  • InitializeOnStart
 Start the TTS engine up when VE Server starts?
 
 0 - Off
 1 - On
 . 
 Example: InitailizeOnStart=1
  • VoiceFormat
 An integer specifying the sound format / codec to use for output.
 . 
 Example: VoiceFormat=14
 Valid VoiceFormats: (Defaults to 6)
 1 - Kbps32 - ADCPM 8Khz
 2 - Kbps64 - PCM 8Khz 8-bit mono
 5 - Wave8 - PCM 8Khz 8-bit Mono
 6 - Wave11 - PCM 11Khz 8-bit Mono
 8 - GSM610
 10 - Wave8Mulaw - Mulaw 8Khz 8bit Mono
 11 - Wave11Mulaw - Mulaw 11Khz 8bit Mono
 12 - Wave8Alaw - Alaw 8Khz 8bit Mono
 13 - Wave11Alaw - Alaw 11Khz 8bit Mono
 14 - Vox8Mulaw - Mulaw 8Khz 8bit Mono
 Note: use Vox8Mulaw (14) if you are going to use the PlayTTSAndRecognizeWord function

Settings that affect Call Progress on Springware Boards

This section controls various undocumented portion of the call progress templates.

    • Enable
 0 = Off 
 1 = On 
 . 
 Example: Enable=1
  • SilenceEvents
 0 = Off (Default)
 1 = On (For use with MonitorSilence command)
 . 
 Example: SilenceEvents=1

Note: These values are totally different for HMP and DMV boards. Don’t try to match the two or make inferences between the DMV/HMP settings and the Springware settings.

Since these are undocumented, the best information we have is as follows:

  • pvd_qual_qminsnr – For positive voice detect, the minimum allowable SNR for voice.
  • pvd_qual_qmaxsnr – For positive voice detect, the maximum allowable SNR for voice.
  • pvd_qual_maxpk – For positive voice detect, the maximum number of peaks for voice.
  • pvd_qual_maxring – For positive voice detect, the maximum number of frames for ringback not voice.
  • pvd_qual_ringthres – For positive voice detect, the signal to noise ratio for ringback.
  • pvd_qual_pvdwin – For positive voice detect, the number of frames in a window sample.
  • pvd_qual_pvdthresh – For positive voice detect, the minimum energy for voice.
  • pvd_qual_pvdrblow – For positive voice detect, the lower frequency of ringback.
  • pvd_qual_pvdrbhig – For positive voice detect, the upper frequency of ringback.
  • amd_qual_maxansiz – For answering machine detect, the size of answer #1.
  • amd_qual_maxans2 – For answering machine detect, the size of answer #2.
  • amd_qual_maxans3 – For answering machine detect, the size of answer #3.
  • amd_qual_lohiss – For answering machine detect, the low hiss (noise) range.
  • amd_qual_hihiss – For answering machine detect, the high hiss (noise).
  • amd_qual_bhparm – For answering machine detect, the noise below hiss ratio.
  • amd_qual_cvthr1 – For answering machine detect, the cv threshold #1.
  • amd_qual_cvthr2 – For answering machine detect, the cv threshold #2.
  • amd_qual_maxcvth – For answering machine detect, the maximum cv threshold.
  • amd_qual_nmaxbrod – For answering machine detect, the maximum broad band energy – noise.
  • amd_qual_nmaxerg – For answering machine detect, the size maximum total energy – noise.
  • amd_qual_maxsil – For answering machine detect, the maximum silence.
  • amd_qual_voice_thres – For answering machine detect, the voice threshold.
  • amd_qual_sil_thres For answering machine detect, the silence threshold.
  • amd_qual_bandf_low For answering machine detect, the frequency band filter, lower limit in hz.
  • amd_qual_bandf_high For answering machine detect, the upper limit in hz.

Recommended Settings:

pvd_qual_qminsnr=50 pvd_qual_qmaxsnr=600 pvd_qual_maxpk=2 pvd_qual_maxring=5 pvd_qual_ringthres=10000 pvd_qual_pvdwin=8 pvd_qual_pvdthresh=30 pvd_qual_pvdrblow=380 pvd_qual_pvdrbhig=510

amd_qual_maxansiz=125 amd_qual_maxans2=50 amd_qual_maxans3=220 amd_qual_lohiss=22 amd_qual_hihiss=16 amd_qual_bhparm=5 amd_qual_cvthr1=80 amd_qual_cvthr2=165 amd_qual_maxcvth=390 amd_qual_nmaxbrod=2 amd_qual_nmaxerg=65 amd_qual_maxsil=30 amd_qual_voice_thres=25 amd_qual_sil_thres=30 amd_qual_bandf_low=0 amd_qual_bandf_high=0

Was this article helpful to you? No Yes 13

How can we help?