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.
Assembly: LMEVoipManaged (in LMEVoipManaged.dll) Version: 6.0.5226.26700
Syntax
C# |
---|
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 _ ) As VoipMediaEngine..::.TELEPHONY_RETURN_VALUE |
Visual C++ |
---|
public: VoipMediaEngine..::.TELEPHONY_RETURN_VALUE OpenWaveFile( VoipMediaEngine^ MediaEngine, String^ WaveFileName, int BytesPerWaveBuffer ) |
J# |
---|
public VoipMediaEngine..::.TELEPHONY_RETURN_VALUE OpenWaveFile( VoipMediaEngine MediaEngine, String WaveFileName, int BytesPerWaveBuffer ) |
Parameters
- MediaEngine
- Type: LanScape..::.VoipMediaEngine
An instance to the media engine.
- WaveFileName
- Type: System..::.String
The wave file to open. This can be a relative or absolute file path.
- BytesPerWaveBuffer
- 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 Value | Description |
---|---|
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) |
SipBadParameter |
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) |
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) |