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

Working with Call-legs (Dialogs) 89
Additional Functionality Of Call-leg Layer
forked1xxTimerTimeout
Defines the timeout value for the forked-1xx-timer. The forked-1xx-timer is set
by a forked call-leg that received the first 1xx response. If a 2xx response is
received on this call-leg, the timer is released. However, if 2xx is not received,
the call-leg will be terminated on timer expiration. This timeout value defines
how long the call-leg will wait for a 2xx response before termination.
ADDITIONAL
F
UNCTIONALITY OF
C
ALL-LEG LAYER
The following section describes the advanced functionality that the Call-leg API
supplies.
CALL-LEG MERGING
F
UNCTIONALITY
A proxy may fork an initial INVITE request to several different proxies. As a
result, the UAS may receive several request messages, with the same request
identifier (Call-ID, From tag, To tag and Cseq), but with a different via-branch.
Since the branch parameter in the Via header is different, a new transaction will
be created for each request. These server transactions, except the first one, are
called “nested transaction”.
Figure 6-10 illustrates the message flow that causes nested transactions to be
created by a single request message of the client.
Figure 6-10 Message Flow of Nested Transactions
UA 1
INVITE
call-Id=111
from-tag=222
INVITE
call-Id=111
from-tag=222
INVITE
call-Id=111
from-tag=222
via-branch=aaa
INVITE
call-Id=111
from-tag=222
via-branch=bbb
Creates transaction A
Creates transaction B
(nested transaction)
Proxy1
Proxy2
Proxy3
INVITE
call-Id=111
from-tag=222
UA 2