The SendUdpDatagramUsingSipPort API procedure can be called by application software to send a user defined UDP datagram via the media engine's assigned SIP UDP port to any remote destination host:port address.

This capability is useful if applications want to create and transmit their own formatted SIP messages for transmission. Calling this API procedure when your application wants to transmit a custom SIP message will ensure symmetrical SIP session signaling between your VOIP application and the far end SIP server or device. Symmetrical SIP signaling is important in order to overcome issues associated with most NAT and firewall network elements.

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

Syntax

C#
public VoipMediaEngine..::.TELEPHONY_RETURN_VALUE SendUdpDatagramUsingSipPort(
	Object DataToTransmit,
	string DestHost,
	int DestPort
)
Visual Basic (Declaration)
Public Function SendUdpDatagramUsingSipPort ( _
	DataToTransmit As Object, _
	DestHost As String, _
	DestPort As Integer _
) As VoipMediaEngine..::.TELEPHONY_RETURN_VALUE
Visual C++
public:
VoipMediaEngine..::.TELEPHONY_RETURN_VALUE SendUdpDatagramUsingSipPort(
	Object^ DataToTransmit, 
	String^ DestHost, 
	int DestPort
)
J#
public VoipMediaEngine..::.TELEPHONY_RETURN_VALUE SendUdpDatagramUsingSipPort(
	Object DataToTransmit,
	String DestHost,
	int DestPort
)

Parameters

DataToTransmit
Type: System..::.Object
The pointer to the application specific data to transmit. This could be ASCII string data or binary data.
DestHost
Type: System..::.String
The host name or dotted decimal IP address of the destination host machine that the UDP packet will be sent to.
DestPort
Type: System..::.Int32
The destination UDP port the UDP packet will be sent to.

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)

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)

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)

SipNetworkTransmitNotAllBytesSent
The media engine attempted to transmit network data but not all data bytes could be sent. This may indicate a serious network error condition on the host machine. Normally you should not see this error.
Note:
If SIP logging to a log file is enabled, the SIP log file will contain a special log message that indicates this error condition. For example, the SIP log error text will be something similar to the following:

WARNING:
Not all bytes of the previous UDP packet were transmitted.
UDP datagram size in bytes: 462
Number of bytes actually transmitted: 226

(API return value)

SipNetworkTransmitWouldBlock
The media engine attempted to transmit network data but the transmit operation could not be completed at this time. Normally you should not see this error - even on heavily loaded systems.

(API return value)

SipNetworkTransmitFatalError
The media engine attempted to transmit network data and experienced a fatal transmission error. This may indicate a serious network error condition on the host machine. Normally you should not see this error.
Note:
If SIP logging to a log file is enabled, the SIP log file will contain a special log message that indicates this error condition. For example, the SIP log error text will be something similar to the following:

ERROR:
A fatal socket error occurred while sending the previous SIP message.
Windows socket error code: nnnnnnnn

(API return value)

Remarks

None.

See Also