HP-UX C SIP Stack Programmer's Guide (Novembery 2007)
Working with Call-legs (Dialogs) 85
Call-leg Forking Support
The application can supply the Forked-1xx-Timer timeout value in the SIP Stack
configuration. This value will apply to all forked call-legs. The application can
also change the timer value for each call-leg using the call-leg API. The
application may also disable this timer by setting its value to 0.
A non-2xx final response should also terminate all call-legs created by the same
initial request. Again, it is recommended that application will terminate all these
call-legs when the non-2xx response is received. However, here again the
application can relay on the forked-1xx-timer that will terminate all call-legs on
its expiration.
SENDING CANCEL
Only the original call-leg may cancel the initial request, since the original call-
leg holds the initial invite transaction. Calling the Cancel() function on a forked
call-leg returns an illegal-action error.
CALL-LEG FORKING
SUPPORT EVENTS
The Call-leg API includes the following event for forking-support
implementation.
RvSipCallLegCreatedDueToForkingEv()
A provisional or final response that is received for an initial INVITE may create
a forked call-leg. This event informs the application of the creation of a new
forked call-leg, and exchanges handle with the application.
If the application does not wish to handle this forked call-leg, it can indicate that
the SIP Stack should terminate the new forked call-leg. In this case, the new
call-leg will be destructed immediately. Otherwise the new forked call-leg will
handle the new response message, update its state machine, send the ACK
response if needed, and call to all the regular call-leg callback functions.
CALL-LEG FORKING
S
UPPORT API
The Call-leg API includes a set of functions dedicated to forking-support
implementation.
RvSipCallLegGetOriginalCallLeg()
Returns the handle to the original call-leg related to a given forked call-leg. If
the given call-leg is an original call-leg, the call-leg will return its own handle.