The TransmitOnHoldIvrData API procedure should be called by application software to transmit data out the phone line when the call has been placed on hold (i.e. your software put the call on hold).

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


public VoipMediaEngine..::.TELEPHONY_RETURN_VALUE TransmitOnHoldIvrData(
	Object[] SampleBuffer
Visual Basic (Declaration)
Public Function TransmitOnHoldIvrData ( _
	SampleBuffer As Object() _
Visual C++
VoipMediaEngine..::.TELEPHONY_RETURN_VALUE TransmitOnHoldIvrData(
	array<Object^>^ SampleBuffer
public VoipMediaEngine..::.TELEPHONY_RETURN_VALUE TransmitOnHoldIvrData(
	Object[] SampleBuffer


Type: array< System..::.Object >[]()[]
A reference to the user's sample buffer.

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)

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)

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)

Indicates that application software attempted to stream audio data to a phone line using the TransmitOnHoldIvrData(array<Object>[]()[]) API procedure. However, the phone line was not in the SipCallHold state and the audio media streaming failed.

(API return value)

This event informs the application software that a phone line has been placed on hold by the far end participant of the phone call. This event is generally used by application software to update the user interface so as to give end users a visual indication that they have been placed on hold.


Application software attempted to stream audio data to the phone line using the TransmitInCallIvrData(array<Object>[]()[]) or TransmitOnHoldIvrData(array<Object>[]()[]) API procedures and there were no more transmit buffers available. Application software should call the GetNumIvrTxBuffers(Int32%) to see how many transmitter stream buffers are available before attempting to transmit audio data out the phone line.

(API return value)


When the call is on local hold, you can stream any audio data to the far end that you desire. This capability of the IVR interface allows your application to support "music on hold" or "musac" capabilities.
This API procedure can only be used to stream audio data to the phone line if we place the call on hold at the local end (this end). If you call this procedure without first placing the call on hold, this procedure will return an error. If you want to stream data to the phone line when the call is not locally on hold, use the TransmitInCallIvrData(array<Object>[]()[]) API procedure.

See Also