HP-UX C SIP Stack Programmer's Guide (Novembery 2007)
Working with Call-legs (Dialogs) 87
Call-leg Forking Support
CALL-LEG FORKING
S
UPPORT PROCESS
F
LOW
Figure 6-9 illustrates a typical forking scenario:
Figure 6-9 Forking Process Call Flow
The following is a description of the process of handling responses:
1. User Agent A creates a call-leg x, and uses it to send an initial
INVITE request via proxy.
2. The proxy forks the INVITE request to two UASs, B and C.
3. UA B sends a 180 response, with the To tag value, 111. The
proxy forwards this provisional response to the UAC A.
4. UA A updates call-leg x with the To tag, 111.
5. UA C sends a 180 response, with a To tag value of 222. The
proxy forwards this provisional response to UA A.
6. UA A searches for a matching call-leg for the 180-response
message. Such a call-leg does not exist, so UA A creates a new
UA A Proxy UA B UA C
INVITE
INVITE
INVITE
180
to-tag=111
180
to-tag=111
180
to-tag=222
180
to-tag=222
call-leg x'
(forked)
200
to-tag=222
200
to-tag=222
200
to-tag=111
200
to-tag=111
1
2
3
4
5
6
7
8
9
10
call-leg x
(original)
ACK
to-tag=222
ACK
to-tag=222
ACK
to-tag=111
ACK
to-tag=111