The OpenWaveFile API procedure is used to open an audio file using the wave format. Once a wave file is opened, applications can read sample data blocks of a specified size from the file without having to know anything about wave file formats.

By using the Media Engine's wave file functions, you will be able to greatly reduce the complexity of your applications. The wave file API procedures can be used by any application however they are extremely useful to IRV, auto attendant or answering machine based applications where streaming audio prompt data from wave files to phone lines is required.

The OpenWaveFile API procedure can open any Windows supported wave file regardless of its rate and format. However, its usefulness is geared towards an application's ability to stream wave file sample data to Tx IVR phone line outputs or to the media engine local audio outputs. Normally source wave file data that is opened and read by the media engine using the OpenWaveFile and GetWaveBuffer(array<Object>[]()[]) procedures should generally be in aLaw, uLaw or in a PCM format that is supported by the media engine's Tx IVR phone line outputs or the media engine local audio outputs.

Before your application terminates, you must call the CloseWaveFile()()() API procedure to regain wave file resources.

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


public VoipMediaEngine..::.TELEPHONY_RETURN_VALUE OpenWaveFile(
	VoipMediaEngine MediaEngine,
	string WaveFileName,
	int BytesPerWaveBuffer
Visual Basic (Declaration)
Public Function OpenWaveFile ( _
	MediaEngine As VoipMediaEngine, _
	WaveFileName As String, _
	BytesPerWaveBuffer As Integer _
Visual C++
VoipMediaEngine..::.TELEPHONY_RETURN_VALUE OpenWaveFile(
	VoipMediaEngine^ MediaEngine, 
	String^ WaveFileName, 
	int BytesPerWaveBuffer
public VoipMediaEngine..::.TELEPHONY_RETURN_VALUE OpenWaveFile(
	VoipMediaEngine MediaEngine,
	String WaveFileName,
	int BytesPerWaveBuffer


Type: LanScape..::.VoipMediaEngine
An instance to the media engine.
Type: System..::.String
The wave file to open. This can be a relative or absolute file path.
Type: System..::.Int32
The number of sample bytes your application would like to read from the wave file for each call to the GetWaveBuffer(array<Object>[]()[]) API procedure.

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
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)

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)

One of the telephony API procedures was called by application software and was passed a pointer to an invalid memory address. Normally this error will occur when application software passes NULL pointer values to the telephony API. For managed code applications, you should never see this error unless your process space has exhausted memory.

(API return value)

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.




See Also