Real-Time Communication Client Communications May Not Work (826283)
The information in this article applies to:
- Microsoft Windows XP Home Edition
- Microsoft Windows XP Professional
SYMPTOMSReal-Time Communication (RTC) client communications may not work correctly when two client computers try to communicate through an audiovisual call over the User Datagram Protocol (UDP) transport.CAUSEThis issue may occur if you initiate an audiovisual connection between two computers when one of the computers is behind a Network Address Translation (NAT) device or is controlled by a NAT-aware program, and the other computer is not.
For example, computer A is located behind a NAT device, but computer B is not. Computer A expects a Session Initiation Protocol (SIP) invite for an audiovisual connection from computer B. Computer A calls the StartListenAddressAndPort function and waits for the invite. But because computer B is not behind a NAT device, it may send out the SIP invite from a port that is different from the port that is contained in the contact header. Because computer A expects all SIP traffic that originates from computer B to be on the same port, it may drop the packets that are not on the same port. As a result, the audiovisual connection between computer A and computer B may not work.RESOLUTIONTo resolve this issue, both clients must act as if they are behind a NAT device. To do so, they must call StartListenAddressAndPort and send out that port in the SIP contact headers. When both clients call StartListenAddressAndPort, the port used to send out the SIP invite is the same port that is contained in the contact header. To force a client that is not NAT-aware to act as if it is behind a NAT device, all of the following conditions must be true:
- The client that is not behind the NAT must have the echo client implemented. (The echo client exposes the callback functions GetMapping(), ReleaseMapping() and UpdateRemoteAddress().)
The echo client punches mappings through the NAT for audiovisual capability.
- For outgoing calls, the SetPortManager function must be called on the session so that RTC calls the EchoClient function's callback implementations for mappings.
- For incoming calls, the client that will receive the invite must call StartListenAddressAndPort earlier on an IP:port pair, and communicate this IP:port information to the other client that it expects to receive the invite from in a SIP contact header. When the client receives an incoming session event, it must call SetPortManager on the incoming session.
Modification Type: | Major | Last Reviewed: | 8/20/2003 |
---|
Keywords: | kbprb KB826283 kbAudDeveloper |
---|
|