HP-UX C SIP Stack Programmer's Guide (Novembery 2007)

Working with Transactions 127
Using Transactions
According to RFC 3261, in the case of several incoming transactions all caused
by a single request message, the UAS should handle only one request, and reject
all others with the 482 (Loop Detected) response. This procedure is called
“Merging”.
Figure 7-8 illustrates the message flow of a merging scenario.
Figure 7-8 Merging Message Flow
The following is a description of the message flow of a merging scenario:
1. Proxy1 forked the INVITE request to Proxy2 and Proxy3. Both
Proxy2 and Proxy3 forward the request to UA2. Therefore,
UA 1
Proxy1
Proxy2 UA 2
INVITE
call-Id=111
from-tag=222
INVITE
call-Id=111
from-tag=222y
INVITE
call-Id=111
from-tag=222
INVITE
call-Id=111
from-tag=222
via-branch=aaa
Proxy3
INVITE
call-Id=111
from-tag=222
via-branch=bbb
Creates a call-leg
in the OFFERING
state
482 Loop Detected
call-Id=111
from-tag=222
via-branch=bbb
482 Loop Detected
call-Id=111
from-tag=222
Accepts the call-leg
200 Accepted
call-Id=111
from-tag=222
via-branch=aaa
200 Accepted
call-Id=111
from-tag=222
200 Accepted
call-Id=111
from-tag=222