Related specifications
None.
Implementation notes
Firewall keep alive for uplink stream is started in the MO sessions every time a provisional answer with SDP content is received and stopped when response 200, ‘OK’, is received. Keep alive is used when session is on hold also. In both situations, RTP dummy packets are sent using a payload encoded in the audio codec that matches the signalling on the RTP dummy packets.
STUN protocol is used for obtaining the corresponding public IP address and port for the private address and port.
NAT and/or firewall bindings are kept alive by refreshing them while a session is in a hold state. If the address of the phone is different from the address returned by the network’s STUN server, and the IP address and port of the outbound proxy (or registrar when there is no outbound proxy) and local STUN server address and port are not identical:
UDP packets containing CRLFCRLF are sent to the SIP proxy or registrar, when there is no outbound proxy (for keep-alive).
STUN binding request packets are sent to the network’s STUN server (for detecting flow failure due to NAT reboot).
When TCP is used, STUN is not used for public address queries. TCP keep-alive (by sending a dummy octet packet and waiting for an ACK response) is used to find out if the TCP connection has been disconnected.
To keep a media link alive in the MT call setup to account for the possible of Early Media being transmitted, RTP packets are sent with silence information in the payload until 200 packets have been sent and encoding of the uplink media has started.