3.4.2.5 Message Processing Events and Sequencing Rules

The server can provide a way for the administrator to configure versions of the UAC that it supports and the actions that could be taken based on the version of the UAC. The server can also provide a way to configure the location to download a newer client that implements a compatible version of a UAC.

A client is a desktop application that acts on behalf of a user as a UAC. For the purposes of this discussion, a client is a UAC. A client is identified by the UAC version specified in the SIP request generated by the client, as specified in section 3.4.1.5.1.

Based on the version of the UAC, it is possible for the administrator to configure the following:

  • Allow client: In the case of a compatible UAC version, the server SHOULD allow the client to register with the server.

  • Allow clients with static URL: In the case of a deprecated compatible UAC version, the server SHOULD allow the client to register with the server and provide static information to the client and network location where another version of the client can be downloaded.

  • Block client with a prompt: In the case of an incompatible UAC version, the server SHOULD reject the client with an error and include a prompt that can be displayed on the client indicating that its UAC version is incompatible with the server.

  • Block client with static URL: In the case of an incompatible UAC version, the server SHOULD reject the client with an error and provide static information to the client pertaining to the location from which a compatible version of the client can be downloaded.

  • Block client with dynamic URL: In the case of an incompatible UAC version, the server SHOULD<169> reject the client with an error and provide location information to the client indicating where to download a newer client. In this case, the client SHOULD also be able to specify which version of the UAC needs to be downloaded. For example, a language-specific version of a UAC can be automatically downloaded as a newer version of the client.

  • Block clients with upgrade: In the case of an incompatible UAC version, the server SHOULD reject the client with an error and include a non-localized, non-displayable message in a warning header indicating that an upgrade tool needs to be used to upgrade.

  • Allow client and provide a dynamic URL to download a newer version of client: In the case where the server supports a UAC version, but needs to recommend that the client upgrade to a client that implements a newer version of the UAC, the server SHOULD allow the UAC to register with the server and provide location information to the client where to download a newer client. In this case, the UAC SHOULD<170> also be able to specify which version of the client needs to be downloaded, for example by language, and automatically download a newer version of the client.

This is discussed in more detail in the following sections.