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

76 HP-UX C SIP Stack Programmers Guide
Call-leg Transactions
RvSipCallLegTranscRequest()
Sends a Request message with a given method using a given transaction. You
can use this function at any call-leg state for sending requests, such as INFO.
The request will have the To header, From header and Call-ID of the call-leg,
and will be sent with a correct CSeq step. The request will be record routed if
needed.
Note Before calling this function you should create a new call-leg transaction
using the RvSipCallLegTranscCreate() function. You can then use the transaction
outbound message mechanism to add headers and a body to the outgoing request.
If you supply the function with a NULL transaction, the SIP Stack will create a
new call-leg transaction automatically. In this case you will not be able to use the
transaction outbound message or to replace handles with the transaction.
Note A transaction that was supplied by the application will not be terminated
in the case of failure. It is the responsibility of the application to terminate the
transaction using the RvSipCallLegTranscTerminated() function.
RvSipCallLegTranscResponse()
Sends a response to a call-leg related transaction. When a call-leg receives a
general request, such as INFO (but not BYE or PRACK), the call-leg first
notifies the application that a new call-leg transaction was created using the
RvSipCallLegTranscCreatedEv() callback. At this stage, the application can
specify whether or not it wishes to handle the transaction, and can also replace
handles with the Stack. The call-leg will then notify the application about the
new transaction state, General-Request-Rcvd, using
theRvSipCallLegTranscStateChangedEv() callback.
In this state, the application should use the RvSipCallLegTranscResponse()
function to send a response to the request.
RvSipCallLegTranscTerminate()
Terminates a transaction related to a specified call-leg.
CALL-LEG
T
RANSACTION EVENTS
The following events are supplied with the Call-leg API: