HP-UX C SIP Stack Programmer's Guide (Novembery 2007)
102 HP-UX C SIP Stack Programmer’s Guide
Transaction State Machine
RVSIP_TRANSC_STATE_IDLE
The IDLE state is the initial state of the Transaction state machine. Upon
transaction creation, the transaction assumes the IDLE state. It remains in this
state until RvSipTransactionRequest() is called. If the request method is
INVITE, the transaction will assume the CLIENT_INVITE_CALLING state. if
the request is a general request, the transaction will assume the
CLIENT_GENERAL_REQUEST_SENT state. A CANCEL transaction will
assume the CLIENT_CANCEL_REQUEST_SENT state after the CANCEL
request is sent.
RVSIP_TRANSC_STATE_TERMINATED
This is the final state of the transaction. When a transaction is terminated, the
transaction assumes the TERMINATED state. Upon reaching the
TERMINATED state, you can no longer reference the transaction.
CLIENT GENERAL
TRANSACTION
A transaction may assume any of the following states in the Client General
State machine:
RVSIP_TRANSC_STATE_CLIENT_GEN_REQUEST_SENT
After calling RvSipTransactionRequest() with a method other than INVITE,
which generates and sends a Request message, the transaction enters the
CLIENT_GENERAL_ REQUEST_SENT state. The client transaction remains
in this state until it receives a provisional or final response from the server.
Receipt of a provisional response will cause the transaction to assume the
CLIENT_GENERAL_PROCEEDING state. Receipt of a final response will
cause the transaction to assume the
CLIENT_GENERAL_RESPONSE_RECEIVED state. While in the
REQUEST_ SENT state, the transaction retransmits the request message
according to the rules defined in RFC 3261, and the values configured for T1,
T2 and generalRequestTimeoutTimer (timer F). The retransmissions take place
only if the transport is an unreliable transport. If no response is received when
generalRequestTimeoutTimer is expired, the transaction is terminated
automatically and assumes the TERMINATED state (in any transport).
RVSIP_TRANSC_STATE_CLIENT_GEN_PROCEEDING
Upon receipt of the first provisional response by a client transaction (not a
retransmission), the transaction assumes the
CLIENT_GENERAL_PROCEEDING state. The transaction will continue to
retransmit the request message until the generalRequestTimeoutTimer is expired