3.2.4 Message Processing Events and Sequencing Rules

Three client protocol interaction sequences, which use context handles and a specific order of operations, are required for the stateful parts of this protocol to operate. Although the client does not maintain state, requests that are sent by the client are used by the server to initiate state that is maintained on the server, as specified in section 3.1.1.1. Actions by the clients can also affect and get server state.

The PlayOnPhone operation, as specified in section 3.1.4.8, initiates the playing of an item or voice mail on a phone by providing the item identifier contained in the entryId element, as specified in section 3.1.4.8.2.1, and target phone number contained in the DialString element, as specified in section 3.1.4.8.2.1, arguments in the request. The PlayOnPhone operation response contains a phone call context handle that MUST be used by subsequent requests made by the GetCallInfo operation, as specified in section 3.1.4.3, and the Disconnect operation, as specified in section 3.1.4.1. The phone call context handle that is returned by the PlayOnPhone operation is specified by the text value of the PlayOnPhoneResponse child element of the PlayOnPhoneResponse element, as specified in section 3.1.4.8.2.2.

The GetCallInfo operation MUST use the phone call context handle provided by the PlayOnPhoneResponse element of the PlayOnPhone operation. The GetCallInfo operation can then be used to create a request to get the target phone call's status.

The Disconnect operation MUST use the phone call context handle provided by PlayOnPhoneResponse element of the PlayOnPhone operation. The Disconnect operation can then be used to create a request to disconnect the target phone call.

The PlayOnPhone2 operation, as specified in section 3.1.4.7, initiates playing an item or voice mail on a phone by providing the item identifier contained in the ItemId element, as specified in section 3.1.4.7.2.1, and target phone number contained in the DialString element, as specified in section 3.1.4.7.2.1. The PlayOnPhone2 operation response contains a phone call context handle that MUST be used by subsequent requests made by the GetPhoneCallInformation operation, as specified in section 3.1.4.4, and the DisconnectPhoneCall operation, as specified in section 3.1.4.2. The phone call context handle that is returned by the PlayOnPhone2 operation is specified by the Id attribute value of the PhoneCallId element, as specified in section 3.1.4.7.2.4.

The GetPhoneCallInformation operation MUST use the phone call context handle provided by the Id attribute value of the PhoneCallId element of the PlayOnPhone2 operation. The GetPhoneCallInformation operation can then be used to create a request to get the target phone call's status.

The DisconnectPhoneCall operation MUST use the phone call context handle provided by the Id attribute value of the PhoneCallId element of the PlayOnPhone2 operation. The DisconnectPhoneCall operation can then be used to create a request to disconnect the target phone call.

The PlayOnPhoneGreeting operation, as specified in section 3.1.4.9, initiates the playing of a greeting on a phone by providing the greeting type contained in the GreetingType element, as specified by section 3.1.4.9.2.1, and the target phone number contained in the DialString element, as specified by section 3.1.4.9.2.1. The PlayOnPhoneGreeting operation response contains a phone call context handle that MUST be used by subsequent requests made by the GetCallInfo operation and the Disconnect operation. The phone call context handle returned by the PlayOnPhoneGreeting operation is specified by the text value of the PlayOnPhoneGreetingResponse child element of the PlayOnPhoneGreetingResponse element, as specified in section 3.1.4.9.2.2.

The GetCallInfo operation MUST use the phone call context handle provided by PlayOnPhoneGreetingResponse element of the PlayOnPhoneGreetingResponse operation. The GetCallInfo operation can then be used to create a request to get the target phone call's status.

The Disconnect operation MUST use the phone call context handle provided by PlayOnPhoneGreetingResponse element of the PlayOnPhoneGreetingResponse operation. The Disconnect operation can then be used to create a request to disconnect the target phone call.