2.2.1 SIP-Based Active Directory Search

This section describes behaviors supported in versions described by endnote <1>.

A user uses a SERVICE request to perform a directory service (DS) user search. This protocol uses SIP requests and responses, as specified in [RFC3261] section 7.1 and section 7.2, as the carrier protocol. Specifically, the SIP SERVICE request and its corresponding SIP response as defined in [IETFDRAFT-SIPSOAP-00] are used for transmitting SIP messages.

All requests MUST be specified as the body of a SIP SERVICE request. All responses MUST be specified as the body of a SIP SERVICE response. The body MUST be well-formed XML and MUST be encoded using UTF-8. The XML MUST conform to the XML schemas in section 8.

In the following example, the user bob@contoso.com issues a DS user search against the SIP domain contoso.com and searches for all users whose name begins with "Alice".

SERVICE sip:contoso.com SIP/2.0
Via: SIP/2.0/TLS 192.168.66.91:49541
Max-Forwards: 70
From: <sip:bob@contoso.com>;tag=0d18c6dde0;epid=0199305c6d
To: <sip:contoso.com>
Call-ID: 717ff9c645de415688683fb482527aa0
CSeq: 1 SERVICE
Contact: <sip:bob@contoso.com;opaque=user:epid:E4abE0hR5VCdvhGcA7shLQAA;gruu>
User-Agent: UCCP/2.0.6362.0 OC/2.0.6362.0 (Microsoft Office Communicator)
Proxy-Authorization: NTLM qop="auth", realm="SIP Communications Service", opaque="B1E794AB", crand="a9c657de", cnum="354", targetname="server.contoso.com", response="01000000690070003bf4c8c33d9c49c2"
Content-Type: application/SOAP+xml
Content-Length: …
 
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
  <SOAP-ENV:Body>
    <m:directorySearch xmlns:m="http://schemas.microsoft.com/winrtc/2002/11/sip">
      <m:filter m:href="#searchArray"/>
      <m:maxResults>100</m:maxResults>
    </m:directorySearch>
    <m:Array xmlns:m="http://schemas.microsoft.com/winrtc/2002/11/sip" m:id="searchArray">
      <m:row m:attrib="givenName" m:value="Alice"/>
    </m:Array>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Elements and attributes available for a DS user search are defined as follows.

filter:href This attribute points to the element that contains the array of attributes to use for filtering search results returned from the DS. The element that contains the results will contain an id attribute that has a value equal to the value of the href.

maxResults: The maximum number of search results requested by the SIP protocol client.

Array: The filters for a search operation. Filters can be any DS attribute on a user object and can appear in any order in the array.