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

Working with Transactions 109
Transaction State Machine
CLIENT INVITE
T
RANSACTION STATE
MACHINE
Figure 7-3 Client INVITE Transaction State Machine
SERVER INVITE
T
RANSACTION
A transaction may assume any of the following states in the Server INVITE
State machine:
INVITE
CALLING
Request( )/
Request Sent
(user command)
IDLE
TERMINATED
2xx-6xx Recv
INVITE
PROCEEDING
Terminate(),
Transaction Timeout
(provisional timer)
1xx Recv
(provisional response)
1xx Rcvd *
Transaction Timeout
(T1, T1*2,T1*4...) -
Request Sent
(retransmission) *
2xx-6xx Recv
INVITE
CANCELLING
Cancel()/
Cancel Sent
(user command)
2xx-6xx Recv
FINAL
RESPONSE
RCVD
ACK SENT
Ack()/
Ack Sent
(user command)
Terminate(),
Transaction Timeout
(inviteLingerTimer - for UDP,
0 - for TCP)
Terminate(),
Transaction Timeout
(cancelInviteNoResponse
Timeout)
PROXY 2xx
RESPONSE
RCVD
2xx Recv
(for proxy only)
2xx Recv
(for proxy only)
Terminate(),
Transaction Timeout
(proxy 2xx rcvd timer)
(for proxy only)
INVITE
PROCEEDING
TIMEOUT
Transaction Timeout
(provisional timer)
Terminate()
(user command)
Cancel()/
Cancel Sent
(user command)
*
No state change
* For UDP only
Terminate(),
Transaction Timeout
(64*T1)
terminate
after 2xx