sure that it matches its own address. If it does not, the response has been misrouted and should be discarded. The top Via header field is then removed, and the response forwarded to the address specified in the next Via header field. A sim- plified Via decision tree is shown in Figure 6.1. Via header fields contain protocol name and version number and trans- port (SIP/2.0/UDP, SIP/2.0/TCP, etc.) and may contain port num- bers and parameters such as received, branch, maddr, and ttl. A received tag is added to a Via header field if a user agent or proxy receives the request from a different address than that specified in the top Via header field. This indicates that a NAT or firewall proxy is in the message path. If SIP Header Fields Response received by server Does the first Discard Via header match Message server address Remove first Via header Second Via Response is for this server header process. maddr parameter Forward response to multicast present address in maddr. received Forward response parameter to address present in received. Forward response to address in Via header. Figure 6.1 Via forwarding decision tree. present, the received tag is used in response routing. (The hidden parameter, deprecated in RFC 3261, was used to indicate the Via header field has been encrypted.) A branch parameter is added to Via header fields by UAs and proxies, which is computed as a hash function of the Request-URI, and the To, From, Call - ID and CSeq number. A second part is added to the branch parameter if the request is being forked as shown in Figure 3.4. The maddr and ttl parameters are used for multicast transport and have a similar meaning as the equivalent SIP URI parameters. The compact form of the header field is V. Examples are given in Table 6.11. SIP: Understanding the Session Initiation Protocol Table 6.11 Examples of Via Header Field Header Field Meaning Via: SIP/2.0/UDP 100.101.102.103 IPv4 address using unicast UDP ; branch=z9hG4bK776a transport and assumed port of 5060 Via: SIP/2.0/TCP cube451.office.com: 