Conversation States
The state of the conversation (as viewed by a particular TP) governs which CPI-C calls can be made by the TP at a particular time. For example, a TP cannot issue Send_Data if the conversation is not in SEND or SEND_PENDING state for that TP.
The state of a conversation depends on the TP from which it is viewed. A local TP can view a conversation as being in SEND state while the partner TP views the conversation as being in RECEIVE state. A particular TP can be in several conversations, each of which is in a different state.
The possible conversation states are summarized here.
-
CONFIRM
-
The TP has received a request for confirmation of receipt of data; it must respond positively or send error information to the partner TP.
-
CONFIRM_DEALLOCATE
-
The TP has received a request for confirmation and must respond positively or send error information. If the TP responds positively, the conversation is automatically deallocated.
-
CONFIRM_SEND
-
The TP has received a request for confirmation; it must respond positively or send error information. After responding, the TP can begin to send data.
-
INITIALIZE
-
The conversation has been initialized successfully.
-
RECEIVE
-
The TP can receive application data and status information from the partner TP. When the conversation is in RECEIVE state, the TP can also send error information and request permission to send data.
-
RESET
-
The conversation has not started or has been terminated.
-
SEND
-
The TP can send data to the partner TP and request confirmation. When the conversation is in SEND state, the TP can also begin to receive data, which can cause the state to change to RECEIVE.
-
SEND_PENDING
-
The TP issued a Receive call and received data as well as a send indicator (status_received = CM_SEND_RECEIVED), indicating that the TP can begin to send data. This state differs from the SEND state, which occurs when the TP receives data on one Receive call and the send indicator on a subsequent Receive call.