Share via


IRTCPortManager3::GetMappingEx (Windows Embedded CE 6.0)

1/6/2010

This method retrieves internal and external (on the NAT) IP addresses and port mappings when given a remote address, port and port type for the port. If a mapping is not available, the application should return a failure code. The operation requiring the mapping will fail.

The method specifies the transport protocol for Port Manager to use and the remote port in addition to the parameters specified by IRTCPortManager::GetMapping.

Syntax

HRESULT GetMappingEx(
  BSTR bstrRemoteAddress,
  long lRemotePort,
  long lTransport,
  RTC_PORT_TYPE enPortType,
  BSTR* pbstrInternalLocalAddress,
  long* plInternalLocalPort,
  BSTR* pbstrExternalLocalAddress,
  long* plExternalLocalPort
);

Parameters

  • bstrRemoteAddress
    [in] The IP address of the remote endpoint for which the NAT mapping is required. Currently, this parameter will contain an IPv4 dotted address. However, in the future an IPv6 address may also be entered in this parameter. The application must not assume this will be an IPv4 address.
  • lRemotePort
    [in] The port of the remote endpoint for which the NAT mapping is required.
  • lTransport
    [in] TCP or UDP. The transport protocol that Port Manager is to use.
  • enPortType
    [in] An RTC_PORT_TYPE enumeration value used to inform the application of which type of UDP port is required. Initially this will only be audio RTP and RTCP. When PC-to-PC calls are allowed, this will also include video RTP and RTCP.
  • pbstrInternalLocalAddress
    [in, out] Pointer to the client's internal IP address. On output, this parameter is a BSTR that will be filled with the client's internal IP address, or an empty string if there is no entry. The application is responsible for allocating the buffer. The RTC Client API is responsible for releasing this memory with SysFreeString.
  • plInternalLocalPort
    [in, out] Pointer to the client's internal port.
  • pbstrExternalLocalAddress
    [in, out] Pointer to the external IP address of the NAT. On output, this parameter is a BSTR that will be filled with the external IP address of the NAT, or an empty string if there is no entry. The application is responsible for allocating the buffer. The RTC Client API is responsible for releasing this memory with SysFreeString.
  • plExternalLocalPort
    [in, out] Pointer to the external port of the NAT.

Return Value

This method can return an RTC_E_ constant, as well as any of the standard COM and ADSI return values. The following table shows additional possible return values.

Value Description

S_OK

NAT mapping was retrieved.

E_FAIL

NAT mapping was not retrieved.

Remarks

Security Note   This method can send data over the network in unencrypted form. Therefore, someone eavesdropping on the network might be able to read the data. Before using this method in an unencrypted session, consider the security risk of sending the data in clear text. The application can encrypt an RTC session by specifying TLS in the profile used for the session.

Requirements

Header rtccore.h, rtccore.idl
Library uuid.lib
Windows Embedded CE Windows Embedded CE 6.0 and later

See Also

Reference

IRTCPortManager3
IRTCPortManager3::ReleaseMappingEx
IRTCPortManager3::UpdateRemoteAddressEx2
RTC_PORT_TYPE

Other Resources

SysFreeString