2.2.2.10.4 Version Conflict Response

If the setDelegate request fails because the version number specified on the delegates instance in the setDelegate request is not equal to the current version number at the server, the server sends back a 409 Conflict response. The body of this message contains information about the version number specified in the request and the current version number at the server. The following example illustrates the format of such a message.

SIP/2.0 409 Conflict
Authentication-Info: …
Content-Length: …
From: "Bob"<sip:bob@contoso.com>;tag=97c16ecf07;epid=0b196426d9
To: <sip:bob@contoso.com>;tag=69DECB7060C5CD2546F1004F96625037
Call-ID: d4a50beb5058445cb0377a6c3692c42c
CSeq: 1 SERVICE
Via: SIP/2.0/TCP 172.24.32.124:53925;ms-received-port=53925;ms
received-cid=B00
ms-diagnostics: 2141;reason="Delegate version is out of date";source="..."
Content-Type: application/msrtc-fault+xml
 
<Fault>
  <Faultcode>Client.BadCall.WrongDelta</Faultcode>
  <details>
    <operation index="1" version="1" curVersion="2" >
    </operation>
  </details>
</Fault>

The ms-diagnostics header field is documented in [MS-OCER] section 2.2.1.1 and provides information that can be useful in further diagnostics. The Content-Type header field MUST have a value of "application/msrtc-fault+xml", which means that this 409 Conflict carries an XML body that contains an msrtc-fault response.

Elements and attributes of a 409 Conflict response are defined in this section.

Fault: Wraps the fault information.

Faultcode: The reason for the fault. A value of Client.BadCall.WrongDelta is used to indicate the version number in the publish request is not equal to the current version number at the server.

details: A wrapper for a list of faulting operations.

operation: Each operation element describes an operation that resulted in the fault. It has the following attributes:

index (required): This unsigned integer identifies the delegate instance in the triggering setDelegate request.

version (required): This unsigned integer returns the version number specified on the delegates instance in the setDelegate request.

curVersion (required): This unsigned integer specifies the current version number of the delegates list instance maintained at the server. For a setDelegate request to be successful, it SHOULD be retried with this value.