The InitializeInBandDtmfDecoder API procedure can be called to initialize in-band DTMF detection for a phone line. Once in-band DTMF detection is initialized and enabled, the media engine will send the SipDtmfDigitEvent events to the application whenever ON or OFF DTMF digit transitions are detected. See the SetInBandDtmfDecoderEnableState(Int32, Boolean) API procedure for information regarding enabling in-band DTMF detection for the phone line.
Note:
You should not use this form of this API porocedure unless your application requires custom DTMF decoder tuning. Please see the InitializeInBandDtmfDecoder(Int32) API procedure for initializing an in-band DTMF decoder with default behavior.

If your application requires specific DTMF decoder tuning, please contact LanScape support for further details and pricing information.

Namespace:  LanScape
Assembly:  LMEVoipManaged (in LMEVoipManaged.dll) Version: 6.0.5226.26700

Syntax

C#
public VoipMediaEngine..::.TELEPHONY_RETURN_VALUE InitializeInBandDtmfDecoder(
	int PhoneLine,
	VoipMediaEngine..::.FREQUENCY_RATIO_TABLE_ELEMENT[] DtmfDecoderRatioTuningTable,
	VoipMediaEngine..::.FREQUENCY_MAGNITUDE_TABLE_ELEMENT[] DtmfDecoderMagnitudeTuningTable
)
Visual Basic (Declaration)
Public Function InitializeInBandDtmfDecoder ( _
	PhoneLine As Integer, _
	DtmfDecoderRatioTuningTable As VoipMediaEngine..::.FREQUENCY_RATIO_TABLE_ELEMENT(), _
	DtmfDecoderMagnitudeTuningTable As VoipMediaEngine..::.FREQUENCY_MAGNITUDE_TABLE_ELEMENT() _
) As VoipMediaEngine..::.TELEPHONY_RETURN_VALUE
Visual C++
public:
VoipMediaEngine..::.TELEPHONY_RETURN_VALUE InitializeInBandDtmfDecoder(
	int PhoneLine, 
	array<VoipMediaEngine..::.FREQUENCY_RATIO_TABLE_ELEMENT^>^ DtmfDecoderRatioTuningTable, 
	array<VoipMediaEngine..::.FREQUENCY_MAGNITUDE_TABLE_ELEMENT^>^ DtmfDecoderMagnitudeTuningTable
)
J#
public VoipMediaEngine..::.TELEPHONY_RETURN_VALUE InitializeInBandDtmfDecoder(
	int PhoneLine,
	VoipMediaEngine..::.FREQUENCY_RATIO_TABLE_ELEMENT[] DtmfDecoderRatioTuningTable,
	VoipMediaEngine..::.FREQUENCY_MAGNITUDE_TABLE_ELEMENT[] DtmfDecoderMagnitudeTuningTable
)

Parameters

PhoneLine
Type: System..::.Int32
The zero based phone line to access.
DtmfDecoderRatioTuningTable
Type: array< LanScape..::.VoipMediaEngine..::.FREQUENCY_RATIO_TABLE_ELEMENT >[]()[]
A reference to a LanScape supplied DTMF ratio tuning table.
DtmfDecoderMagnitudeTuningTable
Type: array< LanScape..::.VoipMediaEngine..::.FREQUENCY_MAGNITUDE_TABLE_ELEMENT >[]()[]
A reference to a LanScape supplied DTMF magnitude tuning table.

Return Value

If the function succeeds, the return value will be SipSuccess.

If the function fails, the return value will be one of the following values as specified by the VoipMediaEngine..::.TELEPHONY_RETURN_VALUE data type.

Return ValueDescription
SipCallFailure
This value is returned by telephony API procedures to indicate general API failure. This error value is used as a "catch all error". If you receive this error, check to make sure that all parameters specified in the API procedure call are correct. Particularly, verify that pointers to memory regions are valid. This error return value is only used if a mapping to another specific error value does not exist.

(API return value)

SipInvalidHandle
Application software specified an invalid telephony handle in one of the API procedures. This usually indicates memory corruption on the part of application software.

(API return value)

SipBadPhoneLine
Application software called a telephony API procedure and specified an invalid phone line. Phone lines are numbered starting from zero. This error is most commonly returned when attempting to access phone lines in excess of the max number of lines supported by the telephony engine.

(API return value)

SipInternalDtmfSupportNotEnabled
Internal media engine in-band and RFC2833 DTMF support has not been enabled. See the DtmfEnabled startup parameter in the VoipMediaEngine..::.START_SIP_TELEPHONY_PARAMS structure for additional information.

(API return value)

SipInBandDtmfDecoderAlreadyExists
The application tried to create an in-band DTMF decoder for a phone line using the InitializeInBandDtmfDecoder(Int32) API procedure and the DTMF decoder already exists.

(API return value)

SipMemoryError
The telephony engine attempted to allocate system memory but the allocation failed. Make sure the host system has enough virtual memory. Increasing the amount of virtual memory can remove these errors, however if critical telephony engine code has been swapped out to disk and is not resident in physical memory, you may experience degraded audio/video performance. If you want to remove this error and obtain the best possible audio/video performance, make sure the host system has enough physical memory. To resolve this error, you may also want to consider disabling certain features of the media engine such as conference calling. You can also reduce memory requirements if you reduce the maximum signal length of internal media engine signal paths by specifying a smaller number for the MaxMixerLinebuffers member of the VoipMediaEngine..::.START_SIP_TELEPHONY_PARAMS class that is passed to the StartSipTelephony(VoipMediaEngine..::.START_SIP_TELEPHONY_PARAMS) and ReStartSipTelephony(VoipMediaEngine..::.START_SIP_TELEPHONY_PARAMS) API procedures.

(API return value, PHONE_LINE_NOTIFICATION)

Remarks

None.

See Also