3.9 Extensions for Call Processing and Routing Based on Routing Script Preamble and Call Designation Parameters

This protocol specifies the Routing Script Preamble mechanism for protocol client endpoints (5) to publish rules for routing INVITEs targeted to the address-of-record of the user the user agent represents. The preamble MUST be published by the user agent into the routing category, as specified in [MS-PRES] section 2.2.2.7.7, and is used for all audio INVITEs except those that are exposed to policy restrictions on the server.

The user agent can publish preambles into multiple instances of the routing category. The different preambles MUST meet the following conditions:

  • Each preamble publication MUST be in accordance with the preamble XSD.

  • List elements with the same name can appear in multiple instances. The name attribute value of all list elements occurring in the same instance MUST be unique.

  • The name attribute values of all other elements MUST be unique within that element type. For example, the preambles cannot contain two wait elements with the same name.

If any of the preceding conditions are not met, a server that is a SIP proxy authorized for the domain of the target user’s address-of-record SHOULD use a default routing script that routes only to the registered endpoints of the target address-of-record.

If the server finds multiple instances that are valid, it MUST generate an aggregated preamble that is then used for routing. If multiple list elements with the same name are found, the aggregated preamble SHOULD contain one list with that name containing all of the target elements from different instances. If the version attribute of the instances are different, the aggregated preamble’s version MUST be the highest version attribute value among all instances.

The preamble published by the protocol client SHOULD match a corresponding script installed on the server (2). If no match is found, a server (2) that is a SIP proxy authorized for the domain of the target user's address-of-record SHOULD use a default routing script that routes only to the registered endpoints (5) of the target address-of-record.

If any element required by the script is not present in the preamble, the server (2) can reject the INVITE with a 480 response.