BladeWare Telephony MiddlewareBladeWare, Commetrex’ HMP telephony middleware, is licensed without media-processing resources. PowerCall for MSP adds signal generation-detection capability and in-band call-progress analysis to a BladeWare system. The PowerCall for MSP SDK provides the necessary development environment; runtime licenses then add a specific number of runtime resources to a system. Although PowerCall is used on any system that requires signal generation-detection and outbound call-progress analysis, it is primarily used with the MSP analog and digital PSTN interfaces.

Telephony applications that use the public switched telephone network for outbound calling require the ability to accurately and rapidly interpret the call-progress tones, such as ringback and busy, that are delivered by the network to the calling entity. This Call Progress Analysis (CPA) is complicated by the lack of the worldwide use of standard tone frequencies and patterns. The design of PowerCall signal-processing software, therefore, must address the tradeoff between speed of analysis and generality. Commetrex’ CPA is designed to minimize support requirements by providing an analysis resource that does not require tuning for over 99% of applications, even for global deployments, while providing fast, accurate responses.

Commetrex’ Signal Generator/Detector, (SGD) furnishes all necessary functionality at the physical-layer level to support in-band telephony-signaling functions. Specifically, the SGD implements signal-processing to generate and detect DTMF and Multi-frequency (MF) (R1/R2) digits as well as any generic in-band tone comprised of up to two frequencies. The SGD is compliant with the ITU Q.24 recommendation.

Features

Benefits

Overview

BladeWare telephony middleware supports both third-party and Commetrex-provided media and switching resources. These vendor-specific resources are isolated from the BladeWare system kernel by Resource Service Managers (RSMs).

The signal generation and detection functions of PowerCall may be directly accessed by an application program using the supplied client API. The tone generation and Call Progress Analysis functions are also invoked on behalf of applications that places calls through BladeWare’s System Call Router (SCR). The SCR API presents a network-access-independent interface to the application. Should the target of an outbound call command be a network interface that requires DTMF dialing and in-band CPA, these functions will be invoked by the appropriate resource service manager on behalf of the SCR.

DTMF/MF and Precise Tone Generation

The Signal Generator is controlled by one function, CTsg_SendSignals(). The tables that follow show the user-defined parameters for DTMF, MF, and a generic tone generation.

DTMF and MF Parameters

Parm NameTypeDefaultUnitsDescription
Level 1INT-6dBmThe level of the low frequency component of the DTMF pair. Valid range – 43 to –3.
Level 2INT-4dBmThe level of the high frequency component of the DTMF pair. Valid range – 43 to –3.
LongPauseINT5000MsecThe delay associated with the ‘.’ (period) character. Valid range 0-65535.
Off TimeINT55MsecThe duration of the silence time between each DTMF digit. Valid range is 0–65535.
On TimeINT45MsecThe duration of each DTMF digit. Valid range is 0–65535.
ShortPauseINT2000MsecThe delay associated with the ‘,’ (comma) character. Valid range 0-65535.

Generic Tone Parameters

Parameter NameTypeDefaultUnitsDescription
Level 1INT-20dBmThe level of the first (or only) frequency component. Valid range – 43 to –3.
Level 2INT-4dBmThe level of the second frequency component (if any). Valid range – 43 to –3.
OffTimeINT0MsecThe duration of silence between tones on time. Specify 0 for no off-time. Valid range 0-65535.
OnTimeINT200MsecThe duration of the tone. Valid range is 1–65535.
FREQ1_Parm_1INTN/AN/AParameter 1 of the first (or only) frequency of the generated tone. Must be S.10 fixed point format. This parameter is computed from the desired frequency.
FREQ1_Parm_2INTN/AN/AParameter 2 of the first (or only) frequency of the generated tone. Must be S.10 fixed point format. This parameter is computed from the desired frequency.
FREQ2_Parm_1INTN/AN/AParameter 1 of the second frequency of the generated tone. Must be S.10 fixed point format. This parameter is computed from the desired frequency.
FREQ2_Parm_2INTN/AN/AParameter 2 of the second frequency of the generated tone. Must be S.10 fixed point format. This parameter is computed from the desired frequency.
IterationsINT1IntegerThe number of times to repeat the alternating tone and silence period. A count of –1 means repeat forever*. Otherwise the valid range is 1 to 32767.

* Therefore, if the Iterations parameter is set –1 and the Off-time parameter is set to 0, a continuous tone is produced.

DTMF and Precise Tone Detection

Tone detection is controlled by two commands: CTsd_FlushBuffer() and CTsd_RetrieveSignals().

DTMF Tone Parameters

Parm NameTypeDefaultUnitsDescription
OffQualLevelINT-43dBmThe minimum signal level required to maintain recognition of a DTMF signal once recognition has started. The valid range is –43 to –15.
OffQualTimeINT40msThe minimum duration of absence of a recognized DTMF signal before end-of-digit event will be emitted. The valid range is 5 to 32767.
OnQualLevelINT-39dBmThe minimum signal level recognized as a DTMF signal. The valid range is –43 to –15.
OnQualTimeINT40msThe minimum duration of a recognized DTMF signal before a digit event will be emitted. The valid range is 23 to 32767.
MaxInterruptINT20msThe maximum time which a digit may be interrupted before it is deemed ended. Usually range is between 10ms to 50 ms.

General Tone Parameters

Parm NameTypeDefaultUnitsDescription
OffQualTimeINT500msThe minimum duration of absence of detected tone before a tone-end event will be emitted. The valid range is 0 to 32767.
OnQualLevelINT-28dBmThe minimum signal level that will be detected. The valid range is –40 to 0.
OnQualTimeINT500MsThe minimum duration of a detected tone before a tone event will be emitted. The valid range is 22 to 32767.
FREQ1_Parm_1INTParameter #1 of the first (or only) frequency of the generated tone. This parameter is computed from the desired frequency.
FREQ1_Parm_2INTParameter #2 of the first (or only) frequency of the generated tone. This parameter is computed from the desired frequency.
FREQ1_Parm_3INTParameter #3 of the first (or only) frequency of the generated tone. This parameter is computed from the desired frequency.
FREQ1_Parm_4INTParameter #4 of the first (or only) frequency of the generated tone. This parameter is computed from the desired frequency.
FREQ2_Parm_1INTParameter #1 of the 2nd frequency of the generated tone. This parameter is computed from the desired frequency.
FREQ2_Parm_2INTParameter #2 of the 2nd frequency of the generated tone. This parameter is computed from the desired frequency.
FREQ2_Parm_3INTParameter #3 of the 2nd frequency of the generated tone. This parameter is computed from the desired frequency.
FREQ2_Parm_4INTParameter #4 of the 2nd frequency of the generated tone. This parameter is computed from the desired frequency.
Bandwidth1INT70HzThe bandwidth of the 1st frequency.
Bandwidth2INT70HzThe bandwidth of the 2nd frequency.

Tone-generation has a wait-for-dial-tone capability and the following performance specifications:

Frequency resolution+/-1 Hz
Dynamic level-33 dBm to 0 dBm (programmable), -9 dBm nominal
DTMF digits0-9, *, #, and ABCD per ITU-T Q.23 and Q.24
DTMF Rate10 digits/sec (programmable)
MF digits0-9, KP, ST, STP, KP2/STP2, and ST3 per US(R1) and ITU-T Q.321 European MFC/R2 forward/reverse tones per ITU-T Q.441
Generic tone typeSingle or dual
Duration10 msec increments
Generic tone freq. Range200 to 4000 Hz

DTMF Detection

Dynamic Range-35 to -3 dbm
Minimum tone durationAs specified in Q.24; AT&T: 40 ms
Inter-digit timingDetects like digits with a 40 ms inter-digit delay. Detects different digits with 0 ms inter-digit delay.
Acceptable TwistAs specified in Q.24; AT&T: +4 dB to –8 dB
TalkoffNo hits on the Mitel or Bellcore test tapes
SNR10 dB (reference to lowest amplitude tone)
Frequency ToleranceAs specified in Q.24; AT&T: +/-1.5%< BW < +/-3.5%

MF Signaling Detection

Dynamic Range-35 to -3 dbm
Acceptable Twist6 dB
TalkoffTBD
Bandwidth+/2% Hz

Test Results

The Commetrex DTMF detector uses a windowing algorithm to meet all the frequency-tolerance requirements of Q.24. The following table contains the test results.

Decode Tests(All digits detected)
Frequency Tolerance TestsFrequencyPos DeviationNeg Deviation
6972.00%-2.20%
Low Band7702.00%-2.00%
8522.10%-2.00%
9412.00%-2.30%
12092.50%-2.70%
High Band13362.50%-2.70%
14772.70%-2.80%
16332.80%-2.90%
Twist TestsStandard TwistReverse Twist
Digit 13.9 dB8.0 dB
Digit 54.0 dB8.4 dB
Digit 94.0 dB8.2 dB
Digit D4.2 dB7.9 dB
Dynamic Range TestDynamic Range
Digit 129 dB
Guard Time TestMin Pause TimeMin Guard Time
Digit 1Configurable29.4 ms
Acceptable Signal to Noise Ratio Test
(-24dBV)pass
(-18dBV)pass
(-12dBV)pass
TALK-OFF Testzero hits (pass)

Call-Progress Analysis (CPA) Voice Detection

The voice-begin event is the first voice event generated when the answering party begins speaking. Note that the signal must be above the SilenceLevel for VoiceOnTime milliseconds. The voice-end event is reported after an absence of voice for SilenceLong milliseconds. If voice is detected again after an absence of voice for SilenceShort milliseconds, the voice-end-short event is reported. The voice-end-short event is not generated if voice restarted after a silence less than SilenceShort milliseconds.

This capability allows the application to infer whether the called party answered with a “Hello”, which is 0.4 seconds, or “Hello, thank you for calling Commetrex”, or “Hi, this is Pete and Alice. We’re not here right now…”

CPA Events

Event Name(ID)Description
CP_BEGCPA Started
CP_BUSYBusy tone detected
CP_CEDModem tone detected
CP_DIALTONEDial tone detected
CP_ENDCall progress has completed
CP_NOANSWERNo answer (after ringing) detected
CP_RBTONERing back tone detected
CP_ROTONEReorder (fast busy) tone detected
CP_SITSIT detected
CP_VOICEVoice detected
CP_VOICE_END_SHORTSilence longer than SilenceShort has been detected after detection of voice
CP_VOICE_ENDSilence longer than SilenceLong has been detected after detection of voice
CP_RBQUITRing back quit

Configuration Information

PowerCall adds signal generation-detection and in-band call-progress analysis to a BladeWare system, giving it the capability of placing outbound calls over the PSTN and generating and detecting network and general tones. PowerVox adds terminating voice to a BladeWare system, and PowerFax adds terminating fax. All members of the MSP line of interface boards are supported, as is the all-IP BladeWare IP media server.

MSP Resource Service Manager SDK, PN 20550
PowerVox SDK, PN 20060
PowerFax for BladeWare SDK, PN 20030
PowerCall for MSP Runtime License, PN 50005

CPA Parameters

Parameter
Name
DefaultUnitsDescription
SilenceLevel-40DBmThe average value of the input stream below which the signal is considered to be silence (noise). Valid range is –46 to –34.
SilenceTime500MsecThe minimum length if a silence period after voice is detected to qualify VOICE_OFF. Signal Detection circuit responds to loss of carrier within 4 –5 ms, so minimum value for parameter is 5 ms.
SilenceShort1000MsecThe time voice must be OFF before sending VOICE_END_SHORT event. This parameter must be greater than SilenceTime. Note that the MSP App must take into account that voice had been off for a duration SilenceTime.
SilenceLong1500MsecThe time voice must be OFF before sending VOICE_END event. This parameter must be greater than SilenceShort. Note that the MSP App. must take into account that voice had been off for a duration SilenceTime.
VoiceOnTime50MsecThe minimum length of time voice must be detected before call progress reports a voice begin event.
RB_Max3000MsecThe maximum duration of a Ring-Back (RB) tone to distinguish it from dial tone. Most RB tones are between 1-2 seconds in duration. The default should be at least 2.5 Sec. The longer it is the longer it takes to qualify dial tone. The shorter it is the more likely it will have to be tuned in the field.
RB_Count5CountThe number of RB tones to report “No Answer”
RB_StopPeriod5000MsecThe time from the end of the last RB tone before declaring RB stopped, meaning the called terminal is off-hook without voice, CED or SIT. Few RB tone-off times are greater than 4 seconds; CED period is 3.5 sec
BZ_Max1500MsecThe maximum period (on time plus off time) to differentiate between slow busy and RB. Busy typically has a period of one second and a 50% duty cycle. A value of 1.5 seconds for this parameter will yield excellent worldwide results
RO_Max700MsecThe maximum period (on time plus off time) to differentiate between Slow Busy and Fast Busy (reorder). A default value of 700 – 750 msec. will yield acceptable results.
BZ_Count4CountThe number of Busy tones to qualify “Busy” or “Fast Busy”.
TimeOut10000MsecThe maximum time that can elapse with no response from the network before call progress stops with a reason of timeout.
StopMask0×21MaskMask to control which events cause call progress to stop. A value may be formed by Oring any of the following:
0×0001 voice begin
0×0002 voice end short
0×0004 voice end
0×0008 modem tone (CED)
0×0010 SIT tone
CPA always terminates if the following are detected: dial tone, busy, and no answer.
PrecMask3MaskMask to control which precise detector to run. A value may be formed by ORing any of the following:
0×0001 CED tone (modem)
0×0002 SIT