Guest

Cisco Unified Communications Manager IM & Presence Service

Cisco Unified Presence Interoperability Guide Release 6.0(1)

  • Viewing Options

  • PDF (913.4 KB)
  • Feedback
Cisco Unified Presence Interoperability Guide Release 6.0(1)

Table Of Contents

Cisco Unified Presence Interoperability Guide Release 6.0(1)

Contents

Overall Architecture

Address of Record Definition

Composition and Filtering

SIMPLE Interface

Introduction

Industry Standards Requirements

Other pidf Extensions

Call Flows

Subscription Description

Subscription Response

Notification Description

Event List Notification

Publication Description

Publication Response

Back-End Subscription Description

Notification From Foreign Server Description

Instant Messaging Applications

Subscription Description

Notification Description

Publication Description

Register Description

Message Description

CTI Gateway

Events

Services

System Services

Connection States

Error Conditions

Network Management Interface

AXL Versioning Support

AXL Schema Documentation

AXL Configuration APIs

AXL Serviceability APIs

Downloading Serviceability SOAP WSDL Files

Unified Communicator Change Notifier (UCCN)

UCCN XML Schema

Example Notify Payloads

UcSystemCfg

EPASContacts

EPASContactGroup

ApplicationDialRule

UcAttributeMap

UcCtiGatewayProfile

UcCtiGatewayHost

EndUser

EpasDevice

UcLdapProfile

UcLdapHost

UcMeetingPlaceHost

UcMeetingPlaceProfile

ProcessConfig

UcProxyProfile

UcUnityHost

UcUnityProfile

VoiceMessagingPilot

EpasPrivacyPolicy

PeUriAcl

CUPSystemCfg

UCEnduserCfg

PEBackendGateway

Cisco Unified Presence SOAP Interface

Overview

SOAP Header

SOAP Fault

Login

Logout

Configuration

System Configuration

User Configuration

Contact List

Retrieving a Contact List

Adding Contact Groups

Modifying Contact Groups

Deleting Contact Groups

Adding Contacts

Modifying Contacts

Deleting Contacts

Presence Rules

Getting Presence Rules

Setting Presence Rules

Deleting Presence Rules

Dialing Rules

Recent Communication History

Adding Recent Communication History

Retrieving Recent Communication History

Licensing Features

Long-Term Presence Status

Publishing Long-Term Presence Status

Unpublishing Long-Term Presence Status

ACL and Watchers

Getting ACL

Adding ACL

Deleting ACL

Calendaring

Getting Calendaring

Setting Calendaring

Related Documentation

Obtaining Documentation, Obtaining Support, and Security Guidelines

Cisco Product Security Overview


Cisco Unified Presence Interoperability Guide Release 6.0(1)


Revised: October 13, 2008

This document describes the overall architecture of the Cisco Unified Presence system and provides a detailed description of the messages and interfaces that are related to Cisco Unified Presence and the CTI gateway.

Contents

This document covers the following topics:

Overall Architecture

Address of Record Definition

SIMPLE Interface

Instant Messaging Applications

CTI Gateway

Network Management Interface

Unified Communicator Change Notifier (UCCN)

Cisco Unified Presence SOAP Interface

Related Documentation

Obtaining Documentation, Obtaining Support, and Security Guidelines

Overall Architecture

Cisco Unified Presence contains the following main pieces: IP Phone Messenger (IPPM), proxy, and Cisco Unified Presence. It also works with third-party SIMPLE-based instant messaging clients. An entity can send the Cisco Unified Presence Engine a SUBSCRIBE message through the proxy. After policy is applied, the Cisco Unified Presence Engine sends the appropriate presence status in NOTIFY messages. Also, a SIMPLE interface exists that is available external to the Enterprise. Figure 1 shows the overall Cisco Unified Presence system architecture.

Figure 1 Cisco Unified Presence System Architecture

Address of Record Definition

In this architecture, a single Address of Record (AOR) represents or addresses a user. This AOR typically takes the form username@domain.com. The user who is represented by this AOR may have multiple devices and/or components of state. The AOR itself gets provisioned as a distinct resource on the Cisco Unified Presence Engine, whereas the individual does not.

Some components of state get received through a PUBLISH from the client (through the proxy). The Cisco Unified Presence Engine retrieves other components of state through a series of back-end subscriptions. The back-end sources of state must get provisioned at the Cisco Unified Presence Engine. Each component of state gets assigned a provisioned priority.

Composition and Filtering

Figure 2 shows generically how composition and filtering are applied after the components of state are collected.

Figure 2 Presence Data Model Processing

Persona composition policy governs the combination of all components of state. After the state is composed, privacy (presentity asserted) and watcher (subscriber asserted) filtering rules get applied to modify the composed state prior to sending to the watcher. The privacy filters remain outside the scope of this interface document because they involve a non-SIMPLE means for a presentity to define filtering rules concerning who can watch what subset of persona state. The subscriber determines watcher filtering rules.

SIMPLE Interface

This section describes the SIP (Session Initiation Protocol) for Instant Messaging and Presence Leveraging Extensions (SIMPLE) interface for Cisco Unified Presence.

Introduction

The SUBSCRIBE, NOTIFY, and PUBLISH interfaces for the presence event package that Cisco Unified Presence provides comply to the SIMPLE specifications that are provided in the "Industry Standards Requirements" section. This section provides the expected contents of each field in the messages, specifically for the Enterprise Presence application, and describes how those contents correlate to the provisioned information on Cisco Unified Presence.

Industry Standards Requirements

The following list shows the applicable industry standards that describe the SIMPLE interface that is supported for the presence package by the Cisco Unified Presence Engine:

RFC3261—SIP: Session Initiation Protocol

RFC3265—Session Initiation Protocol (SIP)-Specific Event Notification

RFC3856—A Presence Event Package for the Session Initiation Protocol (SIP)

RFC 3863—Presence Information Data Format (PIDF)

RFC3903—Session Initiation Protocol (SIP) Extension for Event State Publication

RFC4480—RPID: Rich Presence: Extensions to the Presence Information Data Format (PIDF)

RFC4480—A Data Model for Presence

draft-ietf-simple-prescaps-ext-03—User Agent Capability Extension to Presence Information Data Format (PIDF)

draft-ietf-simple-event-list-07—A Session Initiation Protocol (SIP) Event Notification Extension for Resource Lists

Other pidf Extensions

Because the Cisco Unified Presence Engine is agnostic to pidf extensions, any Presence User Agent Client or Presence User Agent Server that interfaces with the Cisco Unified Presence Engine must be prepared to handle these extensions.

Call Flows

This section provides examples of call flows to show the interfaces into and out of Cisco Unified Presence.

Figure 3 shows the messaging exchange for a client to log in to the Cisco Unified Presence.

Figure 3 Call Flow for a Client Log In to the Cisco Unified Presence

Figure 4 shows the messaging exchange for Client 2 to PUBLISH its own state to the Cisco Unified Presence, as well as the messaging exchange for a separate Client 1 to subscribe to that presence state.

Figure 4 Call flow for PUBLISH and Subscribe to Local Resource

Figure 5 shows the messaging exchange for the case when a client subscribes to the presence state of a resource that is not stored locally on the Cisco Unified Presence Engine. In this scenario, the Cisco Unified Presence Engine will create a back-end subscription to the Cisco Unified Presence that has the presence state stored locally to retrieve the state and send it on in a NOTIFY to the watcher/subscriber.

Figure 5 Call Flow for SUBSCRIBE to Foreign Resource

Figure 6 shows the call flow into and out of the instant messaging clients. Each client registers with the Cisco Unified Presence registrar and publishes its own status. Each client then subscribes to the status of its buddy and receives notifications. At this point, either client can send an instant message to the other.

Figure 6 Call Flow for Instance Messenges

Subscription Description

Example 1 shows the SUBSCRIBE message that gets sent from the watcher device to Cisco Unified Presence. Table 1 describes the Headers that need mapping to the provisioned information for Cisco Unified Presence. For the other headers, refer to the appropriate SIMPLE/SIP specification.

On a refresh SUBSCRIBE, only the expiration time gets extended. The characteristics that define the subscription, that is, the other bold fields, should not change in a refresh SUBSCRIBE. If the client wants to change the characteristics of the subscription, terminate the existing subscription and create a new subscription.

Example 1 Subscribe message

SUBSCRIBE sip:xten3@compB.cisco.com:5060;transport=tcp SIP/2.0
Via: SIP/2.0/TCP 57.1.1.15:5060;branch=7d37939e-f68c2040-34226455-fb8872e6-1
Via: SIP/2.0/UDP 57.1.1.15:5051;received=57.1.1.15
From: <sip:ippm4@compB.cisco.com>;tag=82c1000
To: <sip:xten3@compB.cisco.com:5060;transport=TCP>
Call-ID: 4207647f-178-2f538b99-8c4@57.1.1.15
Csque: 166 SUBSCRIBE
Contact: <sip:ippm4@57.1.1.15:5060>
Content-Length: 0
Event: presence
Accept: application/pidf+xml
Expires: 300
User-Agent: MeetingPlace/5.1
P-Asserted-Identity: <sip:ippm4@compB.cisco.com>

Table 1 Subscription Header Descriptions 

Header Name
Description
Mapping to Provisioning

RequestURI

This field contains the URI of the presentity to be watched.

Ensure that the value in this field corresponds to a provisioned alias for a user/persona.

P-Asserted-Identity

This field provides the preferred method for passing the identity of the watcher to Cisco Unified Presence. It either gets inserted by the proxy, or if included by the end-user client, it gets validated by the proxy.

If the presentity has a URIACL list that is defined for authorization, the value in this field gets matched with the provisioned URI in that list.

In addition, if a domain-based watcher filter is provisioned, the domain portion of this URI gets used to match with the provisioned domain filter.

Remote-Party-ID

If P-Asserted-Identity is not supported by the sender, the identity of the watcher gets sent in this field. Cisco Unified Presencedoes not use this field if P-Asserted-Identity is present.

Example

Remote-Party-iD: 
<sip:ippm4@compB.cisco.com>

Same as P-Asserted-Identity

From

If the sender supports neither P-Asserted-Identity nor Remote-Party-ID, the identity of the watcher should get sent in this field. This field will get used only if neither a P-Asserted-Identity nor a Remote-Party-ID header is present.

Same as P-Asserted-Identity

User-Agent

This field contains the client type and version information for the sender of the request.

The client type and version information in this field gets matched to provisioned filter information for the specified client type and version.

For example, if all Cisco Unified MeetingPlace clients should have a phone only state filter applied, this filter gets provisioned for a client type of Cisco Unified MeetingPlace. Any SUBSCRIBE request with a User-Agent header of MeetingPlace results in the phone-only filter being applied.

Expires

This field contains the relative expiration time of the subscription. The value must fall between the configured minimum and maximum expiration times that are configured on Cisco Unified Presence. If it is too small, Cisco Unified Presence rejects the subscription. If it is too large, the subscription gets accepted, but the expiration of the subscription gets set to the configured default expiration time on Cisco Unified Presence.

If the Expires header is not present, the expiration of the subscription gets set to the configured default expiration time on Cisco Unified Presence.

Not applicable

Event

For Enterprise Presence, the value of this field specifies "presence." This specification does not cover other Event packages.

Not applicable

Accept

Set this field to the list of accepted mime types for the subscription. Mime types other than those supported by Cisco Unified Presence exist in the header as long as one or more of the mime types matches those that Cisco Unified Presence supports.

The following mime types get used for Cisco Unified Presence for an Event type of 'presence':

application/pidf+xml

multipart/related (used for list subscriptions)

application/rlmi+xml (used for list subscriptions)

application/cpim-pidf+xml (support of legacy Sametime, will eventually be deprecated)

Cisco Unified Presence may receive or ignore other mime types.

Supported

Set the header to the extensions that are supported.

For list subscriptions, specify the value of "eventlist."


Subscription Response

No message body/payload exists in the response to the subscription. It comes in the Notify, per RFC3903.

Notification Description

Example 2 shows a Notify request that is sent by Cisco Unified Presence to a watcher for an authorized subscription. Table 2 provides a description of the usage portions of the message that are in bold.

Example 2 Notification Description

NOTIFY sip:ippm4@compB.cisco.com:5060 SIP/2.0
Call-ID: 42078b79-e0-30e78af6-8c4@57.1.1.15
From: <sip:xten3@compB.cisco.com:5060;transport=TCP>;tag=52fc53ae
To: <sip:ippm4@compB.cisco.com>;tag=82d1158
Event: presence
CSeq: 1073741825 NOTIFY
Contact: <sip:57.1.1.14:5060>
Content-Length: 599
Content-Type: application/pidf+xml
Subscription-State: active;expires=300
Via: SIP/2.0/UDP 57.1.1.14:5060;branch=z9hG4bK76d2e702-1dd2-11b2-8fe0-b1c8ef4f8c83
Max-Forwards: 69

<?xml version="1.0" encoding="UTF-8"?>
<presence entity="sip:xten3@compB.cisco.com" xmlns="urn:ietf:params:xml:ns:pidf"  
>
    <dm:person xmlns:dm=" urn:ietf:params:xml:ns:pidf:data-model" id="p1" >
      <r:activities xmlns:r="urn:ietf:params:xml:pidf:rpid">
          <ce:available xmlns:ce=" urn:cisco:params:xml:ns:pidf:rpid"/>
       </r:activities>
  </dm:person>
    <tuple xmlns="urn:ietf:params:xml:ns:pidf" id="t31">
      <contact priority="1">sip:xten3@57.1.1.15</contact>
   <sc:sercvaps xmlns:sc="urn:ietf:params:xml:ns:pidf:servcaps">
     <sc:audio>true</sc:audio>
     <sc:video>false</sc:video>
     <sc:text>true</sc:text>
   </sc:servcaps>
   <r:user-input 
xmlns:r="urn:ietf:params:xml:ns:pidf:rpid:status:rpid">active</r:user-input>
      <status>
        <basic>open</basic>
    </status>
</tuple>
    <tuple xmlns="urn:ietf:params:xml:ns:pidf" id="t32">
      <contact priority="1">sip:xten4@57.1.1.16</contact>
   <sc:sercvaps xmlns:sc="urn:ietf:params:xml:ns:pidf:servcaps >
     <sc:audio>true</sc:audio>
     <sc:video>false</sc:video>
     <sc:text>true</sc:text>
   </sc:servcaps>
   <ce:model xmlns:ce=urn:cisco:params:xml:pidf:rpid>Cisco 7960</ce:model>
   <r:user-input xmlns:es="urn:ietf:params:xml:ns:pidf:rpid:status:rpid"
>active</r:user-input>
      <status>
        <basic>open</basic>
    </status>
  </tuple>
</presence> 

Table 2 Notify Message Description 

Field Name
Description

Subscription-State

This field contains the state of the subscription. If the subscription is active, the field includes expiration time of the subscription. Otherwise, the field includes the reason for the termination of the subscription.

Content-Type

This field contains the mime type of the message body. It will correlate to one of the mime types that were sent in the Accept header of the initial SUBSCRIBE request.

Message body

This XML document describes the state of the presentity. It represents the resulting document after any composition, privacy filtering, or watcher filtering has been applied. Because this may contain composed state, ensure that the client can accept multiple tuples that correspond to the multiple device states for the presentity.

Extensions to base pidf get sent from Cisco Unified Presence, and the client must handle them appropriately; for example, the client ignores extensions that it does not use.

Typically, one tuple exists per device.

<audio>

This element in the published document indicates whether the class of service of audio (for example, phone) is available.

Note Multiple classes of services can get published from the same device.

<text>

This element in the published document indicates whether the class of service of text (for example, IM) is available.

Note Multiple classes of services can get published from the same device.

<user-input>

This element in the published document indicates activity on the device (for example, keyboard, pointing device, or voice).

<model>

This proprietary element provides a way for the model information for a device to be passed in a presence document. It serves the same purpose as a User-Agent header but can be used with the PUBLISH or NOTIFY request that comes from an aggregation server in which the User-Agent header would identify the server and the <model> will identify the device information applicable for the tuple of which it is a child.

Namespace used: urn:cisco:params:xml:ns:pidf:rpid

<video>

This element in the published document indicates whether the class of service of video is available.

Note Multiple classes of services can get published from the same device.

<person>

This element provides information about the "reachability" status of the persona. It also includes elements that indicate certain activities that are reported from the user devices, such as "meeting," and so on, as defined in the rpid draft. The following mapping shows the Cisco Unified Presence defined reachability status values in the way that they get reported by Cisco Unified Presence in the <person> element, where id represents a mandatory parameter for the person element that was introduced in RFC4479.

Available
 <dm:person id ="p1"  >
   <r:activities>
       <ce:available/>
     </r:activities> 
</dm:person>

Busy
 <dm:person id="p2" >
   <r:activities>
    <r:busy/>
   </r:activities>
</dm:person>

Do Not Disturb
 <dm:person id="p3" >
   <:activities>
    <ce:dnd/>
   </r:activities>
</dm:person>

Away
 <dm:person id="p4" >
   <r:activities>
    <r:away/>
   </r:activities>
</dm:person>

<person>
(continued)

On Vacation
 <dm:person id="p5" >
   <r:activities>
    <r:vacation/>
   </r:activities>
</dm:person>

Unavailable
 <dm:person id="p6" >
     <r:activities>
       <ce:unavailable/>
     </r:activities>
 </dm:person>

Unknown
 <dm:person id="p7" >
  <r:activities>
   <r:unknown/>
  </r:activities>
 </dm:person>

Event List Notification

Example 3 shows a NOTIFY request for the state of a list subscription. The Require header gets included with a value of eventlist for a Notification that is due to a list subscription.

Example 3 Notify Request of the State of a List Subscription

NOTIFY sip:handset0@10.21.91.156:5060 SIP/2.0
Call-ID: 2085017328@10.21.91.156
From: <sip:publisher@cisco.com>;tag=970c4542
To: <sip:publisher@cisco.com>
Event: presence
CSeq: 2045 NOTIFY
Contact: <sip:10.89.51.203:5060>
Content-Length: 1344
Content-Type: 
multipart/related;type="application/rlmi+xml";start="<972014@10.89.51.203>";boundary="9720
1414-1dd1-11b2-b"
Require: eventlist
Subscription-State: terminated;reason=timeout
Via: SIP/2.0/UDP 10.89.51.203:5060;branch=z9hG4bK9721baee-1dd1-11b2-b7c3-f9efc6ad7818
Max-Forwards: 69

--97201414-1dd1-11b2-b
Content-Transfer-Encoding: binary
Content-ID: <972014@10.89.51.203>
Content-Type: application/rlmi+xml;charset="UTF-8"

<?xml version="1.0" encoding="UTF-8"?>
<list xmlns="urn:ietf:params:xml:ns:rlmi" uri="sip:publisher@cisco.com" version="0" 
fullState="true"><resource uri="sip:scalar1@cisco.com">

  <instance cid="971a00@10.89.51.203" id="1" state="active"/>

</resource>
<resource uri="sip:scalar2@cisco.com">

  <instance cid="971a28@10.89.51.203" id="1" state="active"/>

</resource>
</list>

--97201414-1dd1-11b2-b
Content-Transfer-Encoding: binary
Content-ID: <971a00@10.89.51.203>
Content-Type: application/pidf+xml

<?xml version="1.0" encoding="UTF-8"?>

<presence entity="sip:scalar1@cisco.com" >
        <dm:person xmlns:dm="urn:ietf:params:xml:ns:pidf:data-model" id="p1" >
      
      <r:activities xmlns:r="urn:ietf:params:xml:ns:pidf:rpid"  > 
        <ce:available xmlns:ce="urn:cisco:params:xml:ns:pidf:rpid "/>
      </r:activities>
 
  </dm:person>
    <tuple  xmlns="urn:ietf:params:xml:ns:pidf"   id="t31">
      <contact priority="1">sip:scalar1@57.1.1.15</contact>
   <sc:sercvaps xmlns:sc="urn:ietf:params:xml:ns:pidf:servcaps">
     <sc:audio>true</sc:audio>
     <sc:video>false</sc:video>
     <sc:text>true</sc:text>
   </sc:servcaps>
   <r:user-input 
xmlns:r="urn:ietf:params:xml:ns:pidf:rpid:status:rpid">active</r:user-input>
      <status>
        <basic>open</basic>
    </status>
</tuple>
    <tuple xmlns="urn:ietf:params:xml:ns:pidf"   id="t32">
      <contact priority="1">sip:xten4@57.1.1.16</contact>
   <sc:sercvaps xmlns:sc="urn:ietf:params:xml:ns:pidf:servcaps">>
     <sc:audio>true</sc:audio>
     <sc:video>false</sc:video>
     <sc:text>true</sc:text>
   </sc:servcaps>
   <r:user-input 
xmlns:r="urn:ietf:params:xml:ns:pidf:rpid:status:rpid">active</r:user-input>
      <status>
        <basic>open</basic>
    </status>
  </tuple>
 
</presence>
--97201414-1dd1-11b2-b
Content-Transfer-Encoding: binary
Content-ID: <971a28@10.89.51.203>
Content-Type: application/pidf+xml

<?xml version="1.0" encoding="UTF-8"?>
<presence entity="sip:scalar2@cisco.com" 
>
        <dm:person xmlns:dm="urn:ietf:params:xml:ns:pidf:data-model" id= "p2">
      
      <r:activities xmlns:r="urn:ietf:params:xml:ns:pidf:rpid"  > 
         <ce:available xmlns:ce="urn:cisco:params:xml:ns:pidf:rpid "/>
       </r:activities>
      </dm:person>
 
    <tuple xmlns="urn:ietf:params:xml:ns:pidf"  id="t31">
      <contact priority="1">sip:scalar2@57.1.1.15</contact>
   <sc:sercvaps xmlns:sc="urn:ietf:params:xml:ns:pidf:servcaps">
     <sc:audio>true</sc:audio>
     <sc:video>false</sc:video>
     <sc:text>true</sc:text>
   </sc:servcaps>
   <r:user-input xmlns:es="urn:ietf:params:xml:ns:pidf:rpid:status:rpid" 
>active</r:user-input>
      <status>
        <basic>open</basic>
    </status>
</tuple>
    <tuple xmlns="urn:ietf:params:xml:ns:pidf"  id="t32">
      <contact priority="1">sip:xten4@57.1.1.16</contact>
   <sc:sercvaps xmlns:sc="urn:ietf:params:xml:ns:pidf:servcaps">
     <sc:audio>true</sc:audio>
     <sc:video>false</sc:video>
     <sc:text>true</sc:text>
   </sc:servcaps>
   <ce:model xmlns:ce=urn:cisco:params:xml:pidf:rpid>Cisco 7960</ce:model>
>active</r:user-input>
      <status>
        <basic>open</basic>
    </status>
  </tuple>
</presence>
--97201414-1dd1-11b2-b--

Publication Description

Example 4 shows a Publish request that is sent to Cisco Unified Presence from a Presence UAC. Table 3 describes the usage portions of the message that are in bold.

Example 4 Publish Request

PUBLISH sip:xten3@compB.cisco.com:5060;transport=tcp SIP/2.0
Via: SIP/2.0/TCP 57.1.1.15:5060;branch=42fe6223-25e92eae-dd09f88a-7fcf9be6-1
To: <sip:xten3@57.1.1.15>
From: xten3<sip:xten3@compB.cisco.com>;tag=5577e92b
Via: SIP/2.0/UDP 
57.1.1.83:6756;received=57.1.1.83;rport=6756;branch=z9hG4bK-d87543-1071201803-1--d87543-
Call-ID: 3178d777074bee32
CSeq: 1 PUBLISH
Contact: <sip:xten3@57.1.1.83:6756>
Expires: 3600
Max-Forwards: 69
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE
Content-Type: application/pidf+xml
User-Agent: eyeBeam release 8888a stamp 16336 (sn:a0d46d0c5ff5ecfbb8d8)
P-Asserted-Identity: < sip:xten3@compB.cisco.com >

Event: presence
Content-Length: 591

<?xml version="1.0" encoding="UTF-8"?>
<presence xmlns="urn:ietf:params:xml:ns:pidf"
 
 xmlns:r="urn:ietf:params:xml:ns:pidf:rpid"
 xmlns:dm="urn:ietf:params:xml:ns:pidf:data-model"
xmlns:ce="urn:cisco:params:xml:ns:pidf:rpid"
 xmlns:ci="urn:ietf:params:xml:ns:pidf:cipid"
xmlns:sc="urn:ietf:params:xml:ns:pidf:servcaps"
 xmlns:so="urn:cisco:params:xml:ns:pidf:source"
 entity="sip:xten3@57.1.1.15">
        <dm:person id="p3">
      
      <r:activities > 
        <ce:available />
      </r :activities >
      </dm:person>
  <tuple id="t0">
    <contact priority="1">sip:xten3@57.1.1.15</contact>
  <so:source> Manually set by persona </so:source>
    <sc:servcaps>
     <sc:audio>true</sc:audio>
     <sc:video>false</sc:video>
     <sc:text>true</sc:text>
   </sc:servcaps>
   <ce:model xmlns:ce=urn:cisco:params:xml:pidf:rpid>Cisco 7960</ce:model>

   <r:user-input>active</r:user-input>
    <status>
      <basic>open</basic>
    </status>
  </tuple>
</presence>

Table 3 Publish Message Description 

Header/Field Name
Description
Mapping to Provisioning

RequestURI

This field contains the URI of the presentity for which the state belongs.

Ensure that the value in this field corresponds to a provisioned alias for a user/persona.

P-Asserted-Identity

This field provides the preferred method to pass the identity of the presentity to Cisco Unified Presence. It either gets inserted by the proxy, or, if included by the end-user client, the proxy validates it.

This field authorizes the Publish request according to the authorization policy. For Publish authorization, you typically set to "self," which means that the URI in the P-asserted-Identity needs to map to the same user that corresponds to the RequestURI.

Remote-Party-ID

If the sender does not support P-Asserted-Identity, the identity of the presentity gets sent in this field. Cisco Unified Presence does not use this field if P-Asserted-Identity is present.

Example:

Remote-Party-ID: 
<sip:xten3@compB.cisco.com>

Same as P-Asserted-Identity

From

If the sender does not support either P-Asserted-Identity or Remote-Party-ID, the identity of the presentity gets sent in this field. This field only gets used if neither a P-Asserted-Identity nor a Remote-Party-ID header is present.

Same as P-Asserted-Identity

Content-Type

This header contains the mime type of the document that the message body contains.

For the presence package, the appropriate mime type specifies application/pidf+xml.

<source>

This element in the Published document indicates the source of the publish request to determine whether this source has a specific priority associated with it. This proprietary element resides within the following namespace: "urn:cisco: params:xml:ns:pidf:source"

For example, the instant messaging client or Cisco Unified Personal Communicator applications send a specific value in source when they want to invoke the manual override of state functionality.

The value in this field must match the provisioned value in the Source Priority provisioning. Any value that is received that does not match a provisioned value gets ignored.

This element gets compared against the reachability rules definition.

<model>

This proprietary element provides a way for the model information for a device to be passed in a presence document. It serves the same purpose as a User-Agent header but can be used with the PUBLISH or NOTIFY request that comes from an aggregation serve, in which the User-Agent header would identify the server and the <model> will identify the device information that is applicable for the tuple of which it is a child.

Namespace used: urn:cisco:params:xml:ns:pidf:rpid

The system matches the value in this field against any provisioned device type information in order to access reachability or filtering rules for a user.

<audio>

This element in the published document indicates whether the class of service of audio (for example, phone) is available.

Note Multiple classes of services can get published from the same device.

The value of "true" in this field indicates that the state that is being published is that of a phone device.

Phone only watcher or privacy filters get compared against this field to distinguish which pieces of state are associated with phone devices.

<text>

This element in the published document indicates whether the class of service of text (for example, IM) is available.

Note Multiple classes of services can be published from the same device.

Use the value of "true" to indicate that the state that is being published is that of an IM device.

IM only type filters get compared against this field to distinguish which pieces of state are associated with IM devices.

<video>

This element in the published document indicates whether the class of service of video is available.

Note Multiple classes of services can get published from the same device.

Use the value of "true" in this field to indicate that the state that is being published is that of a video-capable device.

<user-input>

This element in the published document indicates activity on the device (for example, keyboard, pointing device, or voice).

This value gets transmitted to a watcher without a filter in this release.

<activities>

This element in the published document indicates whether the device is on the phone, busy, and so on.

Values of on the phone or busy identify reachability states of Busy or Interruptible But Busy when the reachability rules algorithm is applied. Other activities do not affect the reachability algorithm but get included in the composed document that is sent to the watchers in the NOTIFY request.

Expires

This field contains the relative expiration time of the PUBLISH request. The value must fall between the configured minimum and maximum expiration times that are configured on Cisco Unified Presence. If it is too small, Cisco Unified Presence rejects the publication. If it is too large, the publication gets accepted, but the expiration of the publication gets set to the configured default expiration time on Cisco Unified Presence.

If the Expires header is not present, the expiration of the publication gets set to the configured default expiration time on Cisco Unified Presence.

On a periodic basis, the expired published state gets removed from Cisco Unified Presence soft-state information.

User-Agent

This field contains the client type and version information for the sender of the request.

The client type and version information in this field get compared to a preconfigured table that identifies the class of service that is available from that client type. Use this configuration to determine class of service if the information is not provided in the pidf body of the message.

If the class of service information is not provided in the message body and no configuration for the type of User-Agent exists (or the User-Agent header is missing), the default set of capabilities for the device specifies IM/text.


Publication Response

No message body/payload occurs in the response to the publication. All presence status gets retrieved from Cisco Unified Presence via SUBSCRIBE/NOTIFY requests as per RFC3903.

Back-End Subscription Description

When some or all the state for a user is not stored locally at Cisco Unified Presence, it may create a back-end subscription to the element that is responsible for storing that state. Refer to the "Subscription Description" section for an example of a SUBSCRIBE message.

Table 4 Back-end Subscription Header Descriptions 

Header Name
Description
Mapping to Provisioning

RequestURI

This field contains the URI of the presentity to be watched. This may differ from the URI of the presentity that was received.

Cisco Unified Presence provides a provisioned mapping of local presentity URIs to foreign back-end presentity URIs when applicable.

An example would include a subscription that is received by Cisco Unified Presence for a whole persona, 'sip:joe@cisco.com', that may result in a back-end subscription to obtain phone state for the phone that is owned by Joe, 'sip:5555@cm.cisco.com'.

P-Asserted-Identity

This header gets set to the original watcher identity that Cisco Unified Presence receives. That identity comes from the P-Asserted-Identity, Remote-Party-ID, or from headers as described in Table 3.

Not applicable

From

This header gets set to the original watcher identity that Cisco Unified Presence receives. That identity comes from the P-Asserted-Identity, Remote-Party-ID, or from headers as described in Table 3.

Not applicable

Expires

This field contains the relative expiration time of the back-end subscription.

This value comes from either a foreign, server-specific, provisioned value, or a global default value for all back-end subscriptions.

Event

For Enterprise Presence, ensure that the value of this field specifies "presence." This specification does not cover other Event packages.

Not applicable

Accept

This field gets sent the list of accepted mime types for the subscription that Cisco Unified Presence received from the original watcher.

The following mime types get used for Cisco Unified Presence for an Event type of "presence":

application/pidf+xml

application/cpim-pidf+xml

Note If Cisco Unified Presence received additional mime types, they get transmitted to the foreign server.


Notification From Foreign Server Description

The foreign server that receives a back-end subscription request from Cisco Unified Presence sends the state of the requested resource back to Cisco Unified Presence in a NOTIFY request. Example 3 shows a NOTIFY request in the "Notification Description" section.

The main difference occurs because NOTIFY requests from foreign servers need to also contain a User-Agent header as described in Table 5.

Table 5 NOTIFY Message Description 

Field Name
Description

Subscription-State

This field contains the state and expiration time of the subscription that is currently at the foreign server.

Content-Type

This field contains the mime type of the message body. It correlates to one of the mime types that was sent in the Accept header of the back-end SUBSCRIBE request.

Message body

This XML document describes the state of the foreign presentity. It gets fed into the appropriate composition and filtering algorithms before being sent to the original watcher. Also, the foreign presentity gets translated to the local presentity prior to sending in a NOTIFY message to the original watcher.

See description of specific elements in the following message body.

<source>

Use this element in the message body document to indicate the source of the state to determine whether this source has a specific priority that is associated with it. This proprietary element occurs within the following namespace: "urn:cisco: params:xml:ns:pidf:source"

Ensure that the value in this field matches the provisioned value in the Source Priority provisioning. Any value that is received that does not match a provisioned value gets ignored.

<audio>

This element in the published document indicates whether the class of service of audio (for example, phone) is available.

Note Multiple classes of services may get published from the same device.

The value of "true" in this field indicates that the state that is being published is a phone device.

Phone only watcher or privacy filters get compared against this field to distinguish which pieces of state are associated with phone devices.

<text>

This element in the published document indicates whether the class of service of text (for example, IM) is available.

Note Multiple classes of services may get published from the same device.

The value of "true" in this field indicates that the state that is being published is an IM device.

The IM-only type of filters gets compared against this field to distinguish which pieces of state are associated with IM devices.

<video>

This element in the published document indicates whether the class of service of video is available.

Note Multiple classes of service may get published from the same device.

The value of "true" in this field indicates that the state that is being published is that of a video-capable device.

<user-input>

This element in the published document indicates activity on the device (for example, keyboard, pointing device, or voice)

This value gets transmitted to a watcher without a filter.

<activities>

This element in the published document indicates whether the device is on-the-phone, busy, and so on.

User-Agent

This field contains the client type and version information for the sender of the request.

The client type and version information in this field gets matched to a preconfigured table that identifies the class of service that is available from that client type. Use this configuration to determine the class of service when the information is not provided in the pidf body of the message.

If the class of service information is not provided in the message body and no configuration for the type of User-Agent exists (or the User-Agent header is missing), the default set of capabilities for the device specifies IM/text.


Instant Messaging Applications

This section provides information that is related to instant messaging applications. The following standard provides the basis for the Cisco Unified Presence instant messaging interface:

RFC3428—Session Initiation Protocol (SIP) Extension for Instant Messaging

Subscription Description

Instant messaging applications subscribe to the presence status of each buddy that you have provisioned. You can configure the duration of the subscription, and it gets refreshed as long as the user is logged in to the instant messaging application. All subscriptions get terminated when the user logs out.

Notification Description

The instant messaging application receives presence event notifications from Cisco Unified Presence while the subscription remains active. See "Notification Description" section for more information.

Publication Description

The instant messaging application publishes status changes to Cisco Unified Presence whenever the user logs in, logs out, or manually overrides his status. See the "Publication Description" section for more information.

Register Description

Example 5 shows an example Register request by which clients receive instant messages. Table 6 provides a description of the Register Description fields.

Example 5 Register Request

REGISTER sip:cisco.com:5060;transport=tcp SIP/2.0
Via: SIP/2.0/TDP 172.18.201.90:5060;branch=z9hG4bK-8337e00
To: xten4<sip:xten4@comB.cisco.com>
From: xten4<sip:xten4@compB.cisco.com>;tag=5577e92b
Call-ID: 5543173d19-c8-6825acfd-767b@comB.cisco.com
CSeq: 101 REGISTER
Contact: <sip:xten4@172.18.201.90:5060>;q=0.5
Max-Forwards: 69
P-Asserted-Identity: <sip:xten3@cisco.com>
Expires: 3600
Content-Type: text/plain; charset=UTF-8
User-Agent: CSCO/IPPM-1.0
Content-Length: 0

Table 6 Register Description Field Descriptions 

Field Name
Description

RequestURI

This field specifies the recipient and has the following format:

recipient@domain

q-value

This parameter specifies the relative preference of this client to receive IMs addressed to this user.

P-Asserted-Identity

This field gets added by the proxy after it authenticates the client.

Expires

This field specifies the duration that this client will accept incoming message requests and gets set to 0 when the client unregisters.


Message Description

Example 6 shows an example Message request that gets sent between clients. Table 7 provides a description of the Message Description fields.

Example 6 Message Description

MESSAGE sip:xten4@esp.compB.cisco.com:5060;transport=tcp SIP/2.0
Via: SIP/2.0/TDP 172.18.201.90:5060;received=172.18.201.90;branch=z9hG4bK-8337e00
To: xten4<sip:xten4@cisco.com>
From: xten3<sip:xten3@compB.cisco.com>;tag=5577e92b
Call-ID: 43173d19-c8-6825abfd-767b@comB.cisco.com
CSeq: 101 MESSAGE
Contact: <sip:xten3@57.1.1.2:5060>
Max-Forwards: 69
P-Asserted-Identity: <sip:xten3@cisco.com>
Content-Type: text/plain; charset=UTF-8
User-Agent: CSCO/IPPM-1.0
Content-Length: 12

Hello xten4!

Table 7 Message Description Field Descriptions

Field Name
Description

RequestURI

This field specifies the recipient and has the following format:

recipient@domain

P-Asserted-Identity

This field gets added by the proxy after it authenticates the client.

Content-Type

This field always remains set to text/plain.


CTI Gateway

The Computer Telephony Integration (CTI) gateway supports receiving and sending messages, as defined in ECMA 323, third edition, between a client and a CTI gateway.

Events

CTI Gateway supports the following events:

Connection cleared

Delivered

Established

Diverted

Failed

Held

Retrieved

Transferred

Originated

Conferenced

Do not disturb

Forwarding

Service completion failure

Services

CTI gateway supports the following services:

Make call

Answer call

Clear connection

Deflect

Hold

Retrieve

Consultation

Single step transfer

Transfer

Conference call

Alternate

Reconnect

Generate digits

Set forwarding

Set DND

Get forwarding

Get DND

System Services

CTI gateway supports the following system services:

Start Monitor

Stop Monitor

Request System Status

Get CSTA Features

Connection States

CTI gateway supports the following connection states:

Alerting

Connected

Failed

Held

Initiated

Null

Error Conditions

CTI gateway supports the following error conditions:

serviceNotSupported

invalidMonitorObjectType

invalidCrossReferenceIdentifier

invalidCallingDeviceIdentifier

invalidCalledDeviceIdentifier

noCallToAnswer

invalidConnectionIdentifier

invalidConnectionState

noConnectionToClear

invalidDestination

invalidDestinationDeviceObject

invalidDivertingDeviceIdentifier

invalidHeldDeviceIdentifier

invalidHeldDeviceState

NoHeldCall

invalidParameterValue

invalidForwardingDestination.

Network Management Interface

For Release 6.0(1), be aware that Cisco Unified Presence adds Administrative XML Layer (AXL) commands for the following functions:

Cisco Unified Personal Communicator user configuration

Cisco Unified Communications Manager name

Troubleshooter

For more information on working with the AXL APIs, refer to the Cisco Unified Communications Manager Developers Guide for Release 6.0(1).


Note For Cisco Unified Presence, commands that are specific to Cisco Unified Communications Manager are disabled.


AXL Versioning Support

To improve backward compatibility, Cisco Unified Presence Release 6.0(1) introduces AXL schema versioning. In upcoming releases, the AXL schema will be numbered the same as the corresponding Cisco Unified Presence release. This approach maintains AXL backward compatibility for one full release cycle.

Developers have the option in Cisco Unified Presence Release 6.0(1) to request a specific AXL schema version (either 1.0 or 6.0(1)); however, both these schema versions are identical. If a specific schema version is not requested, the AXL 1.0/6.0(1) schema automatically gets used and an appropriate response gets returned, which will have no backward compatibility issues for several releases.

Cisco highly recommends that developers include the version of AXL schema on which an AXL request is based because support for unversioned requests might be removed in future releases of Cisco Unified Presence.

For those developers who are using the AXL APIs executeSQLQuery and updateSQLquery, changes have occurred to the Cisco Unified Presence 6.0(1) database schema that affect the direct SQL query approach.

To help developers plan for AXL versioning, Table 8 provides the approach that Cisco will follow in supporting upcoming releases.

Cisco will support AXL requests without version information for only three releases following the 6.0(1) release; after that, requests without version information might be rejected.

AXL requests with version information will have the corresponding schema applied for up to three subsequent releases; after that, the specified version might not be available.

Table 8 AXL Versioning and Schema Plan for Future Releases

   
AXL Request no version specified
AXL Request with Version Specified
   
Release 6.0
Plus 1 release
Plus 2 releases
Plus 3 releases
Plus 4 releases
Cisco Unified Presence Release
Release 6.0

6.0 schema applied

6.0 schema applied

 
Plus 1 release

6.0 schema applied

6.0 schema applied

Plus 1 schema applied

Not Applicable
Plus 2 releases

6.0 schema applied

6.0 schema applied

Plus 1 schema applied

Plus 2 schema applied

 
Plus 3 releases

6.0 schema applied

6.0 schema applied

Plus 1 schema applied

Plus 2 schema applied

Plus 3 schema applied

 
Plus 4 releases
Request rejected
 

Plus 1 schema applied

Plus 2 schema applied

Plus 3 schema applied

Plus 4 schema applied

Plus 5 releases
Request rejected

Schema no longer available

Plus 2 schema applied

Plus 3 schema applied

Plus 4 schema applied


The following a sample AXL request carries version information:

POST /axl/ HTTP/1.0
Host:10.77.31.194:8443
Authorization: Basic Q0NNQWRtaW5pc3RyYXRvcjpjaXNjb19jaXNjbw==
Accept: text/*
Content-type: text/xml
SOAPAction: "CUCM:DB ver=6.0"
Content-length: 427

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
					xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
					xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
   <SOAP-ENV:Body> 
<axl:getUser xmlns:axl="http://www.cisco.com/AXL/1.0"         
xsi:schemaLocation="http://www.cisco.com/AXL/1.0 http://ccmserver/schema/axlsoap.xsd" 
sequence="1234"> <userid>tttt</userid> </axl:getUser> 
   </SOAP-ENV:Body> 
</SOAP-ENV:Envelope>

Sample AXL Response:

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Set-Cookie: JSESSIONIDSSO=950805DE5E10F32C5788AE164EEC4955; Path=/
Set-Cookie: JSESSIONID=151CF94ACF20728B1D47CC5C3BECC401; Path=/axl; Secure
SOAPAction: "CUCM:DB ver=6.0"
Content-Type: text/xml;charset=utf-8
Content-Length: 728
Date: Mon, 22 Jan 2007 06:51:42 GMT
Connection: close

AXL Schema Documentation

The axlsqltoolkit.zip plug-in contains the following five AXL schema files:

cups_axlapi.wsdl

cups_axlsoap.xsd

cups_axl.xsd

axl.xsd

AXLEnums.xsd

axlmessage.xsd

and SoapEnvelope.xsd

These files encapsulate the complete AXL schema, including details of all requests, responses, XML objects, and data types.

You can obtain complete documentation of all available AXL messages from the Cisco Developer Services web site: http://www.cisco.com/pcgi-bin/dev_support/access_level/product_support. This website requires a Cisco.com login.

AXL Configuration APIs

Table 9 describes the Cisco Unified Presence AXL configuration APIs.

Table 9 AXL Configuration APIs 

API Call
Definition

executeSQLQuery

This API call is used to execute a Structured Query Language query against the database.

executeSQLUpdate

This API call is used to execute a Structured Query Language Update against the database.

getUnityConnectionProfile

This API call is used to get a list of configured Cisco Unity Connection Profiles.

getMeetingPlaceExpressProfile

This API call is used to get a list of configured Cisco MeetingPlace Express Profiles.

getCTIGatewayProfile

This API call is used to get a list of configured CTI Gateway Profiles.

getLDAPProfile

This API call is used to get a list of configured LDAP Profiles.

getSIPProxyProfile

This API call is used to get a list of configured SIP Proxy Profiles.

getPreferredDevice

This API call is used to get a list of Preferred Devices by userid.

getCallManagerNode

This API call is used to get the Cisco Unified Communications Manager (Call Manager) Node with which Cisco Unified Presence is synching data.

getUpcUserSettings

This API call is used to get the UPC User Settings for a userid.

updateUpcUserSettings

This API call is used to update the UPC User Settings for a userid.


AXL Serviceability APIs

The Cisco Unified Communications Manager AXL SOAP Serviceability interface provides APIs for the following types of informaiton:

Real-time information

Performance information

Service control

Log collection

For Release 6.0(1), Cisco Unified Presence includes the troubleshooter API, which returns the following categories of test results:

AXL

Presence

Proxy server

IPPM

CTI gateway


Note The troubleshooter API mimics the actions of the Troubleshooter window in Cisco Unified Presence Administration.


Downloading Serviceability SOAP WSDL Files

Cisco Unified Presence serviceability SOAP WSDL files can be downloaded from the Cisco Unified Presence server directly by entering a URL on the web browser. In each of the following examples, you must replace servername with the appropriate server IP address or domain name.

Troubleshooter SOAP requests are located at

https://servername:8443/TroubleshooterService/services/TroubleshooterPort?wsdl

PerfmonPort SOAP requests service definitions are located at

https://servername:8443/perfmonservice/services/PerfmonPort?wsdl

RisPort SOAP requests service definitions are located at

https://servername:8443/realtimeservice/services/RisPort?wsdl

LogCollectionService SOAP requests service definitions are located at

https://servername:8443/logcollectionservice/services/LogCollectionPort?wsdl

DimeGetFile SOAP requests service definitions are located at

https://servername:8443/logcollectionservice/services/DimeGetFileService?wsdl

ControlCenterServices SOAP requests service definitions are located at

https://servername:8443/controlcenterservice/services/ControlCenterServicesPort?wsdl

SOAPMonitorService SOAP requests service definitions are located at

https://servername:8443/realtimeservice/services/SOAPMonitorService?wsdl

Clients of AXL-Serviceability APIs must download these files to know what services are available, how to form the request message, and how to interpret the response message properly. Basically, the WSDL file has what you need to know about AXL-Serviceability APIs.

Unified Communicator Change Notifier (UCCN)

Cisco Unified Presence UCCN notifies a client of changes to the provisioning data that is stored in the Cisco Unified Presence database.

The UCCN detects changes within the Cisco Unified Presence database and communicates those changes to the client by using a SIP Subscribe/Notify exchange.

This section provides details about the UCCN external interface through an XML schema and examples.

UCCN XML Schema

Example 7 shows the UCCN XML schema.

Example 7 Cisco Unified Presence UCCN Schema

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="urn:cisco:CUPS:UCCN" xmlns="urn:cisco:CUPS:UCCN" 
xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
	<xs:element name="UPCConfigChange">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="action" type="xs:string"/>
				<xs:choice>
					<xs:sequence>
						<xs:annotation>
							<xs:documentation>systemcfg, attrmap, ctigw, epasdevice, ldap, 
meetingplace, vmpilot, unity, processconfig, proxyprofile, cupssystemcfg, ucendusercfg, 
pebackendgateway</xs:documentation>
						</xs:annotation>
						<xs:element ref="property" maxOccurs="unbounded"/>
					</xs:sequence>
					<xs:sequence>
						<xs:annotation>
							<xs:documentation>Contacts</xs:documentation>
						</xs:annotation>
						<xs:element name="old" type="ContactsElementType" minOccurs="0"/>
						<xs:element name="new" type="ContactsElementType" minOccurs="0"/>
					</xs:sequence>
					<xs:sequence>
						<xs:annotation>
							<xs:documentation>ContactGroups</xs:documentation>
						</xs:annotation>
						<xs:element name="old" type="ContactGroupsBlock" minOccurs="0"/>
						<xs:element name="new" type="ContactGroupsBlock" minOccurs="0"/>
					</xs:sequence>
					<xs:sequence>
						<xs:annotation>
							<xs:documentation>DialRules</xs:documentation>
						</xs:annotation>
						<xs:element name="old" type="DialingRulesBlock" minOccurs="0"/>
						<xs:element name="new" type="DialingRulesBlock" minOccurs="0"/>
					</xs:sequence>
					<xs:sequence>
						<xs:annotation>
							<xs:documentation>EndUser</xs:documentation>
						</xs:annotation>
						<xs:element ref="property" minOccurs="0" maxOccurs="unbounded"/>
						<xs:element name="cti-device" type="xs:string" minOccurs="0"/>
					</xs:sequence>
					<xs:sequence>
						<xs:annotation>
							<xs:documentation>PrivacyPolicy</xs:documentation>
						</xs:annotation>
						<xs:element name="old" type="PrivacyRulesType" minOccurs="0"/>
						<xs:element name="new" type="PrivacyRulesType" minOccurs="0"/>
					</xs:sequence>
				</xs:choice>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="ContactGroupsBlock">
		<xs:sequence>
			<xs:element name="group" type="xs:string"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="DialingRulesBlock">
		<xs:sequence>
			<xs:element name="rule" type="DialingRulesElementType"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ContactsElementType">
		<xs:sequence>
			<xs:element ref="group"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="DialingRulesElementType">
		<xs:sequence>
			<xs:element name="type" type="xs:string"/>
			<xs:element name="name" type="xs:string"/>
			<xs:element name="description" type="xs:string"/>
			<xs:element name="priority" type="xs:string"/>
			<xs:element name="number-begins-with" type="xs:string"/>
			<xs:element name="number-of-digits" type="xs:string"/>
			<xs:element name="digits-to-be-removed" type="xs:string"/>
			<xs:element name="prefix" type="xs:string"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="group">
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ContactGroupType">
					<xs:attribute name="name" type="xs:string" use="required"/>
					<xs:attribute name="index" type="xs:string" use="required"/>
				</xs:extension>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="ContactGroupType">
		<xs:sequence>
			<xs:element name="persona-id" type="xs:string"/>
			<xs:element name="is-cups"/>
			<xs:element name="is-external"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="property">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="xs:string">
					<xs:attribute name="is-public" type="xs:boolean" use="optional"/>
					<xs:attribute name="name" type="xs:string" use="required"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="PrivacyRulesType">
		<xs:sequence>
			<xs:element name="rule">
				<xs:complexType>
					<xs:choice>
						<xs:element name="watcher" type="xs:string"/>
						<xs:element name="data" type="xs:string"/>
					</xs:choice>
					<xs:attribute name="name" type="xs:string" use="required"/>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
</xs:schema>

Example Notify Payloads

UcSystemCfg

UcSystemCfg

Action: Update

Payload:

<?xml version="1.0" encoding="UTF-8"?>
<UPCConfigChange xmlns='urn:cisco:epas:uccn' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
xsi:schemaLocation='urn:cisco:epas:uccn file:UCCNSchema.xsd'>
  <epas:action>update-systemcfg</epas:action>
  <epas:property name="Security">1</epas:property>
  <epas:property name="TFTP.Primary">hosta</epas:property>
  <epas:property name="TFTP.Backup1">hostb</epas:property>
  <epas:property name="TFTP.Backup2">hostc</epas:property>
</UPCConfigChange>

EPASContacts

EPASContacts

Action: Insert

Payload:

<?xml version="1.0" encoding="UTF-8"?>
<UPCConfigChange xmlns='urn:cisco:epas:uccn' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
xsi:schemaLocation='urn:cisco:epas:uccn file:UCCNSchema.xsd'>
  <epas:action>insert-contact</epas:action>
  <new>
    <epas:group name="General" index="1.0">
      <epas:persona-id index="1.0000000000" nickname="Curly">Jack</epas:persona-id>
      <epas:is-cups>TRUE</epas:is-cups>
      <epas:is-external>FALSE</epas:is-external>
    </epas:group>
  </new>
</UPCConfigChange>

EPASContacts

Action: Update

Payload:

<?xml version="1.0" encoding="UTF-8"?>
<UPCConfigChange xmlns='urn:cisco:epas:uccn' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
xsi:schemaLocation='urn:cisco:epas:uccn file:UCCNSchema.xsd'>
  <epas:action>update-contact</epas:action>
  <old>	
    <epas:group name="General" index="1.0">
      <epas:persona-id index="1.0000000000" nickname="Curly">Jack</epas:persona-id>
      <epas:is-cups>TRUE</epas:is-cups>
      <epas:is-external>FALSE</epas:is-external>
    </epas:group>
  </old>
  <new>
    <epas:group name="General" index="1.0">
      <epas:persona-id index="1.0000000000" nickname="Baldy">Jack</epas:persona-id>
      <epas:is-cups>TRUE</epas:is-cups>
      <epas:is-external>FALSE</epas:is-external>
    </epas:group>
  </new>
</UPCConfigChange>

EPASContacts

Action: Delete

Payload:

<?xml version="1.0" encoding="UTF-8"?>
<UPCConfigChange xmlns='urn:cisco:epas:uccn' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
xsi:schemaLocation='urn:cisco:epas:uccn file:UCCNSchema.xsd'>
  <epas:action>delete-contact</epas:action>
  <old>	
    <epas:group name="General" index="1.0">
      <epas:persona-id index="1.0000000000" nickname="Curly">Jack</epas:persona-id>
      <epas:is-cups>TRUE</epas:is-cups>
      <epas:is-external>FALSE</epas:is-external>
    </epas:group>
  </old>
</UPCConfigChange>

EPASContactGroup

EPASContactGroup

Action: Insert

Payload:

<?xml version="1.0" encoding="UTF-8"?>
<UPCConfigChange xmlns='urn:cisco:epas:uccn' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
xsi:schemaLocation='urn:cisco:epas:uccn file:UCCNSchema.xsd'>
  <epas:action>insert-group</epas:action>
  <new>
    <epas:group name="General" index="1.0000000000"></epas:group>
  </new>	
</UPCConfigChange>

EPASContactGroup

Action: Update

Payload:

<?xml version="1.0" encoding="UTF-8"?>
<UPCConfigChange xmlns='urn:cisco:epas:uccn' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
xsi:schemaLocation='urn:cisco:epas:uccn file:UCCNSchema.xsd'>
  <epas:action>update-group</epas:action>
  <old>
    <epas:group name="General" index="1.0000000000"></epas:group>
  </old>
  <new>
    <epas:group name="Work" index="1.0000000000"></epas:group>
  </new>
</UPCConfigChange>

EPASContactGroup

Action: Delete

Payload:

<?xml version="1.0" encoding="UTF-8"?>
<UPCConfigChange xmlns='urn:cisco:epas:uccn' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
xsi:schemaLocation='urn:cisco:epas:uccn file:UCCNSchema.xsd'>
  <epas:action>delete-group</epas:action>
  <old>
    <epas:group name="General" index="1.0000000000"></epas:group>
  </old>
</UPCConfigChange>

ApplicationDialRule

ApplicationDialRule

Action: Insert

Payload:

<?xml version="1.0" encoding="UTF-8"?>
<UPCConfigChange xmlns='urn:cisco:epas:uccn' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
xsi:schemaLocation='urn:cisco:epas:uccn file:UCCNSchema.xsd'>
  <epas:action>insert-rule</epas:action>
  <new>
    <epas:rule>
      <epas:type>1</epas:type>
      <epas:name>9</epas:name>
      <epas:description>9 to 1</epas:description>
      <epas:priority>1</epas:priority>
      <epas:number-begins-with>9</epas:number-begins-with>
      <epas:number-of-digits>4</epas:number-of-digits>
      <epas:digits-to-be-removed>1</epas:digits-to-be-removed>
      <epas:prefix>1</epas:prefix>
    </epas:rule>
  </new>
</UPCConfigChange>

ApplicationDialRule

Action: Update

Payload:

<?xml version="1.0" encoding="UTF-8"?>
<UPCConfigChange xmlns='urn:cisco:epas:uccn' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
xsi:schemaLocation='urn:cisco:epas:uccn file:UCCNSchema.xsd'>
  <epas:action>update-rule</epas:action>
  <old>
    <epas:rule>
      <epas:type>1</epas:type>
      <epas:name>9</epas:name>
      <epas:description>9 changed to 1</epas:description>
      <epas:priority>1</epas:priority>
      <epas:number-begins-with>9</epas:number-begins-with>
      <epas:number-of-digits>4</epas:number-of-digits>
      <epas:digits-to-be-removed>1</epas:digits-to-be-removed>
      <epas:prefix>1</epas:prefix>
    </epas:rule>
  </old>
  <new>
    <epas:rule>
      <epas:type>1</epas:type>
      <epas:name>9</epas:name>
      <epas:description>9 to 1</epas:description>
      <epas:priority>1</epas:priority>
      <epas:number-begins-with>9</epas:number-begins-with>
      <epas:number-of-digits>4</epas:number-of-digits>
      <epas:digits-to-be-removed>1</epas:digits-to-be-removed>
      <epas:prefix>1</epas:prefix>
    </epas:rule>
  </new>
</UPCConfigChange>

ApplicationDialRule

Action: Delete

Payload:

<?xml version="1.0" encoding="UTF-8"?>
<UPCConfigChange xmlns='urn:cisco:epas:uccn' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
xsi:schemaLocation='urn:cisco:epas:uccn file:UCCNSchema.xsd'>
  <epas:action>delete-rule</epas:action>
  <old>
    <epas:rule>
      <epas:type>1</epas:type>
      <epas:name>9</epas:name>
      <epas:description>9 changed to 1</epas:description>
      <epas:priority>1</epas:priority>
      <epas:number-begins-with>9</epas:number-begins-with>
      <epas:number-of-digits>4</epas:number-of-digits>
      <epas:digits-to-be-removed>1</epas:digits-to-be-removed>
      <epas:prefix>1</epas:prefix>
    </epas:rule>
  </old>
</UPCConfigChange>

UcAttributeMap

UcAttributeMap

Action: Update

Payload:

<?xml version="1.0" encoding="UTF-8"?>
<UPCConfigChange xmlns='urn:cisco:epas:uccn' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
xsi:schemaLocation='urn:cisco:epas:uccn file:UCCNSchema.xsd'>
  <epas:action>update-ldapmapping</epas:action>
  <epas:property name="Directory.Map.UID">employeenumber</epas:property>
  <epas:property name="Directory.Map.FirstName">givenName</epas:property>
  <epas:property name="Directory.Map.LastName">sn</epas:property>
  <epas:property name="Directory.Map.MiddleName">initials</epas:property>
  <epas:property name="Directory.Map.nickname">nickname</epas:property>
  <epas:property name="Directory.Map.UserID">uid</epas:property>
  <epas:property name="Directory.Map.Photo">jpegPhoto</epas:property>
  <epas:property name="Directory.Map.Title">title</epas:property>
  <epas:property name="Directory.Map.DisplayName">displayName</epas:property>
  <epas:property name="Directory.Map.NamePrefix"></epas:property>
  <epas:property name="Directory.Map.NameSuffix"></epas:property>
  <epas:property name="Directory.Map.Gender"></epas:property>
  <epas:property name="Directory.Map.BusinessEMail">mail</epas:property>
  <epas:property name="Directory.Map.IM">uid</epas:property>
  <epas:property name="Directory.Map.BusinessPhoneNumber">telephoneNumber</epas:property>
  <epas:property name="Directory.Map.BusinessVoiceMail">voicemail</epas:property>
  <epas:property name="Directory.Map.BusinessMobilePhone">mobile</epas:property>
  <epas:property name="Directory.Map.BusinessPager">pager</epas:property>
  <epas:property name="Directory.Map.BusinessFax">facsimileTelephoneNumber</epas:property>
  <epas:property name="Directory.Map.BusinessOtherPhone"></epas:property>
  <epas:property name="Directory.Map.HomeEMail"></epas:property>
  <epas:property name="Directory.Map.HomeMobilePhone"></epas:property>
  <epas:property name="Directory.Map.HomeFax"></epas:property>
  <epas:property name="Directory.Map.URL">labeledURI</epas:property>
</UPCConfigChange>

UcCtiGatewayProfile

UcCtiGatewayProfile

Action: Update

Payload:

<?xml version="1.0" encoding="UTF-8"?>
<UPCConfigChange xmlns='urn:cisco:epas:uccn' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
xsi:schemaLocation='urn:cisco:epas:uccn file:UCCNSchema.xsd'>
<epas:property name="CallControl.Primary.Address">rtp-epasccm2</epas:property>
  <epas:property name="CallControl.Primary.Port">2748</epas:property>
  <epas:property name="CallControl.Primary.Protocol">TCP</epas:property>
  <epas:property name="CallControl.Backup1.Address"></epas:property>
  <epas:property name="CallControl.Backup1.Port"></epas:property>
  <epas:property name="CallControl.Backup1.Protocol"></epas:property>
  <epas:property name="CallControl.Backup2.Address"></epas:property>
  <epas:property name="CallControl.Backup2.Port"></epas:property>
  <epas:property name="CallControl.Backup2.Protocol"></epas:property>
</UPCConfigChange>

UcCtiGatewayHost

UcCtiGatewayHost

Action: Update

Payload:

<?xml version="1.0" encoding="UTF-8"?>
<UPCConfigChange xmlns='urn:cisco:epas:uccn' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
xsi:schemaLocation='urn:cisco:epas:uccn file:UCCNSchema.xsd'>
  <epas:action>update-host</epas:action>
  <epas:property name="CallControl.Primary.Address">rtp-epasccm2</epas:property>
  <epas:property name="CallControl.Primary.Port">2748</epas:property>
  <epas:property name="CallControl.Primary.Protocol">TCP</epas:property>
  <epas:property name="CallControl.Backup1.Address"></epas:property>
  <epas:property name="CallControl.Backup1.Port"></epas:property>
  <epas:property name="CallControl.Backup1.Protocol"></epas:property>
  <epas:property name="CallControl.Backup2.Address"></epas:property>
  <epas:property name="CallControl.Backup2.Port"></epas:property>
  <epas:property name="CallControl.Backup2.Protocol"></epas:property>
</UPCConfigChange>

EndUser

EndUser

Action: Update fkucunityprofile

Payload:

<?xml version="1.0" encoding="UTF-8"?>
<UPCConfigChange xmlns='urn:cisco:epas:uccn' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
xsi:schemaLocation='urn:cisco:epas:uccn file:UCCNSchema.xsd'>
  <epas:action>update-host</epas:action>
  <epas:property name="VoiceMail.Primary.Address">hostname</epas:property>
  <epas:property name="VoiceMail.Primary.Port">1234</epas:property>
  <epas:property name="VoiceMail.Primary.Protocol">TCP</epas:property>
  <epas:property name="VoiceMail.Backup1.Address">hostname</epas:property>
  <epas:property name="VoiceMail.Backup1.Port">1234</epas:property>
  <epas:property name="VoiceMail.Backup1.Protocol">TCP</epas:property>
  <epas:property name="VoiceMail.Backup2.Address">hostname</epas:property>
  <epas:property name="VoiceMail.Backup2.Port">1234</epas:property>
  <epas:property name="VoiceMail.Backup2.Protocol">TCP</epas:property>
  <epas:property name="VoiceMail.PilotNumber"></epas:property>
  <epas:cti-device>SEP000E836F0164</epas:cti-device>
</UPCConfigChange>

EndUser

Action: Update fkucmeetingplaceprofile

Payload:

<?xml version="1.0" encoding="UTF-8"?>
<UPCConfigChange xmlns='urn:cisco:epas:uccn' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
xsi:schemaLocation='urn:cisco:epas:uccn file:UCCNSchema.xsd'>
  <epas:action>update-host</epas:action>
  <epas:property name="MeetingPlace.Primary.Address">hostname</epas:property>
  <epas:property name="MeetingPlace.Primary.Port">1234</epas:property>
  <epas:property name="MeetingPlace.Primary.Protocol">HTTPS</epas:property>
  <epas:property name="MeetingPlace.Backup1.Address">hostname</epas:property>
  <epas:property name="MeetingPlace.Backup1.Port">1234</epas:property>
  <epas:property name="MeetingPlace.Backup1.Protocol">HTTPS</epas:property>
  <epas:property name="MeetingPlace.Backup2.Address">hostname</epas:property>
  <epas:property name="MeetingPlace.Backup2.Port">1234</epas:property>
  <epas:property name="MeetingPlace.Backup2.Protocol">HTTPS</epas:property>
  <epas:cti-device>SEP000E836F0164</epas:cti-device>
</UPCConfigChange>

EndUser

Action: Update fkucctigatewayprofile

Payload:

<?xml version="1.0" encoding="UTF-8"?>
<UPCConfigChange xmlns='urn:cisco:epas:uccn' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
xsi:schemaLocation='urn:cisco:epas:uccn file:UCCNSchema.xsd'>
  <epas:action>update-host</epas:action>
  <epas:property name="CallControl.Primary.Address">rtp-epasccm2</epas:property>
  <epas:property name="CallControl.Primary.Port">2748</epas:property>
  <epas:property name="CallControl.Primary.Protocol">TCP</epas:property>
  <epas:property name="CallControl.Backup1.Address"></epas:property>
  <epas:property name="CallControl.Backup1.Port"></epas:property>
  <epas:property name="CallControl.Backup1.Protocol"></epas:property>
  <epas:property name="CallControl.Backup2.Address"></epas:property>
  <epas:property name="CallControl.Backup2.Port"></epas:property>
  <epas:property name="CallControl.Backup2.Protocol"></epas:property>
<epas:cti-device>SEP000E836F0164</epas:cti-device></UPCConfigChange>

EndUser

Action: Update fkucldapprofile

Payload:

<?xml version="1.0" encoding="UTF-8"?>
<UPCConfigChange xmlns='urn:cisco:epas:uccn' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
xsi:schemaLocation='urn:cisco:epas:uccn file:UCCNSchema.xsd'>
  <epas:action>update-host</epas:action>
  <epas:property name="Directory.Primary.Address">hostname</epas:property>
  <epas:property name="Directory.Primary.Port">1234</epas:property>
  <epas:property name="Directory.Primary.Protocol">TCP</epas:property>
  <epas:property name="Directory.Backup1.Address">hostname</epas:property>
  <epas:property name="Directory.Backup1.Port">1234</epas:property>
  <epas:property name="Directory.Backup1.Protocol">TCP</epas:property>
  <epas:property name="Directory.Backup2.Address">hostname</epas:property>
  <epas:property name="Directory.Backup2.Port">1234</epas:property>
  <epas:property name="Directory.Backup2.Protocol">TCP</epas:property>
  <epas:cti-device>SEP000E836F0164</epas:cti-device>
</UPCConfigChange>

EndUser

Action: Update fkucproxyprofile

Payload:

<?xml version="1.0" encoding="UTF-8"?>
<UPCConfigChange xmlns='urn:cisco:epas:uccn' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
xsi:schemaLocation='urn:cisco:epas:uccn file:UCCNSchema.xsd'>
  <epas:action>update-host</epas:action>
  <epas:property name="Presence.Primary.Address">dsulzen-cup</epas:property>
  <epas:property name="Presence.Primary.Port">5060</epas:property>
  <epas:property name="Presence.Primary.Protocol">TCP</epas:property>
  <epas:property name="Presence.Backup.Address">dsulzen-cup</epas:property>
  <epas:property name="Presence.Backup.Port">5060</epas:property>
  <epas:property name="Presence.Backup.Protocol">TCP</epas:property>
  <epas:property name="Presence.Domain">cisco.com</epas:property>
  <epas:cti-device>SEP000E836F0164</epas:cti-device>
</UPCConfigChange>

EndUser

Action: Update enablecalendarpresence

Payload:

<?xml version="1.0" encoding="UTF-8"?>
<UPCConfigChange xmlns='urn:cisco:epas:uccn' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
xsi:schemaLocation='urn:cisco:epas:uccn file:UCCNSchema.xsd'>
  <epas:action>update-host</epas:action>
  <epas:property name="Presence.calendar">disabled</epas:property>
</UPCConfigChange>

EpasDevice

EpasDevice

Action: Update

Payload:

<?xml version="1.0" encoding="UTF-8"?>
<UPCConfigChange xmlns='urn:cisco:epas:uccn' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
xsi:schemaLocation='urn:cisco:epas:uccn file:UCCNSchema.xsd'>
  <epas:action>update-systemcfg</epas:action>
  <epas:property name="Security">1</epas:property>
  <epas:property name="TFTP.Primary">PrimaryTftpHost</epas:property>
  <epas:property name="TFTP.Backup1">hostb</epas:property>
  <epas:property name="TFTP.Backup2">hostc</epas:property>
</UPCConfigChange>

UcLdapProfile

UcLdapProfile

Action: Update

Payload:

<?xml version="1.0" encoding="UTF-8"?>
<UPCConfigChange xmlns='urn:cisco:epas:uccn' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
xsi:schemaLocation='urn:cisco:epas:uccn file:UCCNSchema.xsd'>
  <epas:action>update-ldap</epas:action>
  <epas:property name="Directory.DN">ldapdn</epas:property>
  <epas:property name="Directory.Password">12345</epas:property>
  <epas:property name="Directory.AnonymousBind">FALSE</epas:property>
  <epas:property name="Directory.ConfigurationName">confname</epas:property>
  <epas:property name="Directory.SearchContext1">cont1</epas:property>
  <epas:property name="Directory.SearchRecursive1">FALSE</epas:property>
  <epas:property name="Directory.SearchContext2">cont1</epas:property>
  <epas:property name="Directory.SearchRecursive2">FALSE</epas:property>
  <epas:property name="Directory.SearchContext3">cont1</epas:property>
  <epas:property name="Directory.SearchRecursive3">FALSE</epas:property>
  <epas:property name="Directory.Primary.Address">hostname</epas:property>
  <epas:property name="Directory.Primary.Port">1234</epas:property>
  <epas:property name="Directory.Primary.Protocol">TCP</epas:property>
  <epas:property name="Directory.Backup1.Address">hostname</epas:property>
  <epas:property name="Directory.Backup1.Port">1234</epas:property>
  <epas:property name="Directory.Backup1.Protocol">TCP</epas:property>
  <epas:property name="Directory.Backup2.Address">hostname</epas:property>
  <epas:property name="Directory.Backup2.Port">1234</epas:property>
  <epas:property name="Directory.Backup2.Protocol">TCP</epas:property>
</UPCConfigChange>

UcLdapHost

UcLdapHost

Action: Update

Payload:

<?xml version="1.0" encoding="UTF-8"?>
<UPCConfigChange xmlns='urn:cisco:epas:uccn' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
xsi:schemaLocation='urn:cisco:epas:uccn file:UCCNSchema.xsd'>
  <epas:action>update-ldap</epas:action>
  <epas:property name="Directory.DN">ldapdn</epas:property>
  <epas:property name="Directory.Password">12345</epas:property>
  <epas:property name="Directory.AnonymousBind">FALSE</epas:property>
  <epas:property name="Directory.ConfigurationName">confname</epas:property>
  <epas:property name="Directory.SearchContext1">cont1</epas:property>
  <epas:property name="Directory.SearchRecursive1">FALSE</epas:property>
  <epas:property name="Directory.SearchContext2">cont1</epas:property>
  <epas:property name="Directory.SearchRecursive2">FALSE</epas:property>
  <epas:property name="Directory.SearchContext3">cont1</epas:property>
  <epas:property name="Directory.SearchRecursive3">FALSE</epas:property>
  <epas:property name="Directory.Primary.Address">hostname</epas:property>
  <epas:property name="Directory.Primary.Port">1234</epas:property>
  <epas:property name="Directory.Primary.Protocol">TCP</epas:property>
  <epas:property name="Directory.Backup1.Address">hostname</epas:property>
  <epas:property name="Directory.Backup1.Port">1234</epas:property>
  <epas:property name="Directory.Backup1.Protocol">TCP</epas:property>
  <epas:property name="Directory.Backup2.Address">hostname</epas:property>
  <epas:property name="Directory.Backup2.Port">1234</epas:property>
  <epas:property name="Directory.Backup2.Protocol">TCP</epas:property>
</UPCConfigChange>

UcMeetingPlaceHost

UcMeetingPlaceHost

Action: Update

Payload:

<?xml version="1.0" encoding="UTF-8"?>
<UPCConfigChange xmlns='urn:cisco:epas:uccn' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
xsi:schemaLocation='urn:cisco:epas:uccn file:UCCNSchema.xsd'>
  <epas:action>update-host</epas:action>
  <epas:property name="MeetingPlace.Primary.Address">hostname</epas:property>
  <epas:property name="MeetingPlace.Primary.Port">1234</epas:property>
  <epas:property name="MeetingPlace.Primary.Protocol">HTTPS</epas:property>
  <epas:property name="MeetingPlace.Backup1.Address">hostname</epas:property>
  <epas:property name="MeetingPlace.Backup1.Port">1234</epas:property>
  <epas:property name="MeetingPlace.Backup1.Protocol">HTTPS</epas:property>
  <epas:property name="MeetingPlace.Backup2.Address">hostname</epas:property>
  <epas:property name="MeetingPlace.Backup2.Port">1234</epas:property>
  <epas:property name="MeetingPlace.Backup2.Protocol">HTTPS</epas:property>
</UPCConfigChange>

UcMeetingPlaceProfile

UcMeetingPlaceProfile

Action: Update

Payload:

<?xml version="1.0" encoding="UTF-8"?>
<UPCConfigChange xmlns='urn:cisco:epas:uccn' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
xsi:schemaLocation='urn:cisco:epas:uccn file:UCCNSchema.xsd'>
  <epas:action>update-host</epas:action>
  <epas:property name="MeetingPlace.Primary.Address">hostname</epas:property>
  <epas:property name="MeetingPlace.Primary.Port">1234</epas:property>
  <epas:property name="MeetingPlace.Primary.Protocol">HTTPS</epas:property>
  <epas:property name="MeetingPlace.Backup1.Address">hostname</epas:property>
  <epas:property name="MeetingPlace.Backup1.Port">1234</epas:property>
  <epas:property name="MeetingPlace.Backup1.Protocol">HTTPS</epas:property>
  <epas:property name="MeetingPlace.Backup2.Address">hostname</epas:property>
  <epas:property name="MeetingPlace.Backup2.Port">1234</epas:property>
  <epas:property name="MeetingPlace.Backup2.Protocol">HTTPS</epas:property>
</UPCConfigChange>

ProcessConfig

ProcessConfig

Action: Update

Payload:

<?xml version="1.0" encoding="UTF-8"?>
<UPCConfigChange xmlns='urn:cisco:epas:uccn' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
xsi:schemaLocation='urn:cisco:epas:uccn file:UCCNSchema.xsd'>
  <epas:action>update-host</epas:action>
  <epas:property name="Presence.Primary.Address"></epas:property>
  <epas:property name="Presence.Primary.Port"></epas:property>
  <epas:property name="Presence.Primary.Protocol"></epas:property>
  <epas:property name="Presence.Backup.Address"></epas:property>
  <epas:property name="Presence.Backup.Port"></epas:property>
  <epas:property name="Presence.Backup.Protocol"></epas:property>
  <epas:property name="Presence.Domain">cisco.com</epas:property>
</UPCConfigChange>

UcProxyProfile

UcProxyProfile

Action: Update

Payload:

<?xml version="1.0" encoding="UTF-8"?>
<UPCConfigChange xmlns='urn:cisco:epas:uccn' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
xsi:schemaLocation='urn:cisco:epas:uccn file:UCCNSchema.xsd'>
  <epas:action>update-host</epas:action>
  <epas:property name="Presence.Primary.Address">example-cup</epas:property>
  <epas:property name="Presence.Primary.Port">5060</epas:property>
  <epas:property name="Presence.Primary.Protocol">TCP</epas:property>
  <epas:property name="Presence.Backup.Address">example-cup</epas:property>
  <epas:property name="Presence.Backup.Port">5060</epas:property>
  <epas:property name="Presence.Backup.Protocol">TCP</epas:property>
  <epas:property name="Presence.Domain">cisco.com</epas:property>
</UPCConfigChange>

UcUnityHost

UnUnityHost

Action: Update

Payload:

<?xml version="1.0" encoding="UTF-8"?>
<UPCConfigChange xmlns='urn:cisco:epas:uccn' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
xsi:schemaLocation='urn:cisco:epas:uccn file:UCCNSchema.xsd'>
  <epas:action>update-host</epas:action>
  <epas:property name="VoiceMail.Primary.Address">hostname</epas:property>
  <epas:property name="VoiceMail.Primary.Port">1234</epas:property>
  <epas:property name="VoiceMail.Primary.Protocol">TCP</epas:property>
  <epas:property name="VoiceMail.Backup1.Address">hostname</epas:property>
  <epas:property name="VoiceMail.Backup1.Port">1234</epas:property>
  <epas:property name="VoiceMail.Backup1.Protocol">TCP</epas:property>
  <epas:property name="VoiceMail.Backup2.Address">hostname</epas:property>
  <epas:property name="VoiceMail.Backup2.Port">1234</epas:property>
  <epas:property name="VoiceMail.Backup2.Protocol">TCP</epas:property>
  <epas:property name="VoiceMail.PilotNumber"></epas:property>
</UPCConfigChange>

UcUnityProfile

UcUnityProfile

Action: Update

Payload:

<?xml version="1.0" encoding="UTF-8"?>
<UPCConfigChange xmlns='urn:cisco:epas:uccn' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
xsi:schemaLocation='urn:cisco:epas:uccn file:UCCNSchema.xsd'>
  <epas:action>update-host</epas:action>
  <epas:property name="VoiceMail.Primary.Address">hostname</epas:property>
  <epas:property name="VoiceMail.Primary.Port">1234</epas:property>
  <epas:property name="VoiceMail.Primary.Protocol">TCP</epas:property>
  <epas:property name="VoiceMail.Backup1.Address">hostname</epas:property>
  <epas:property name="VoiceMail.Backup1.Port">1234</epas:property>
  <epas:property name="VoiceMail.Backup1.Protocol">TCP</epas:property>
  <epas:property name="VoiceMail.Backup2.Address">hostname</epas:property>
  <epas:property name="VoiceMail.Backup2.Port">1234</epas:property>
  <epas:property name="VoiceMail.Backup2.Protocol">TCP</epas:property>
  <epas:property name="VoiceMail.PilotNumber"></epas:property>
</UPCConfigChange>

VoiceMessagingPilot

VoiceMessagingPilot

Action: Update

Payload:

<?xml version="1.0" encoding="UTF-8"?>
<UPCConfigChange xmlns='urn:cisco:epas:uccn' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
xsi:schemaLocation='urn:cisco:epas:uccn file:UCCNSchema.xsd'>
  <epas:action>update-host</epas:action>
  <epas:property name="VoiceMail.Primary.Address">hostname</epas:property>
  <epas:property name="VoiceMail.Primary.Port">1234</epas:property>
  <epas:property name="VoiceMail.Primary.Protocol">TCP</epas:property>
  <epas:property name="VoiceMail.Backup1.Address">hostname</epas:property>
  <epas:property name="VoiceMail.Backup1.Port">1234</epas:property>
  <epas:property name="VoiceMail.Backup1.Protocol">TCP</epas:property>
  <epas:property name="VoiceMail.Backup2.Address">hostname</epas:property>
  <epas:property name="VoiceMail.Backup2.Port">1234</epas:property>
  <epas:property name="VoiceMail.Backup2.Protocol">TCP</epas:property>
  <epas:property name="VoiceMail.PilotNumber">9999</epas:property>
</UPCConfigChange>

EpasPrivacyPolicy

EpasPrivacyPolicy

Action: Insert

Payload:

<?xml version="1.0" encoding="UTF-8"?>
<UPCConfigChange xmlns='urn:cisco:epas:uccn' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
xsi:schemaLocation='urn:cisco:epas:uccn file:UCCNSchema.xsd'>
<?xml version="1.0" encoding="UTF-8"?>
<UPCConfigChange xmlns='urn:cisco:epas:upc...'>
  <epas:action>add-presence-rules</epas:action>
  <new>
    <epas:rule name="String">
        <epas:data>filterdata pointed to by fkpefilterinfo</epas:data>
    </epas:rule>
  </new>
<UPCConfigChange>

EpasPrivacyPolicy

Action: Update

Payload:

<?xml version="1.0" encoding="UTF-8"?>
<UPCConfigChange xmlns='urn:cisco:epas:uccn' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
xsi:schemaLocation='urn:cisco:epas:uccn file:UCCNSchema.xsd'>
<?xml version="1.0" encoding="UTF-8"?>
<UPCConfigChange xmlns='urn:cisco:epas:upc...'>
  <epas:action>update-presence-rules</epas:action>
  <old>
    <epas:rule name="String">
        <epas:data>filterdata pointed to by fkpefilterinfo</epas:data>
    </epas:rule>
  </old>
  <new>
    <epas:rule name="String">
        <epas:data>filterdata pointed to by fkpefilterinfo</epas:data>
    </epas:rule>
  </new>
<UPCConfigChange>

EpasPrivacyPolicy

Action: Delete

Payload:

<?xml version="1.0" encoding="UTF-8"?>
<UPCConfigChange xmlns='urn:cisco:epas:uccn' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
xsi:schemaLocation='urn:cisco:epas:uccn file:UCCNSchema.xsd'>
<?xml version="1.0" encoding="UTF-8"?>
<UPCConfigChange xmlns='urn:cisco:epas:upc...'>
  <epas:action>delete-presence-rules</epas:action>
  <old>
    <epas:rule name="String">
        <epas:data>filterdata pointed to by fkpefilterinfo</epas:data>
    </epas:rule>
  </old>
<UPCConfigChange>

PeUriAcl

PeUriAcl

Action: Insert

Payload:

<?xml version="1.0" encoding="UTF-8"?>
<UPCConfigChange xmlns='urn:cisco:epas:uccn' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
xsi:schemaLocation='urn:cisco:epas:uccn file:UCCNSchema.xsd'>
  <epas:action>add-acl</epas:action>
  <new>
    <epas:rule name="String obtained from fkepasprivacypolicy name">
      <epas:watcher>watcherx@ex.com</epas:watcher>
    </epas:rule>
  </new>
<UPCConfigChange>

PeUriAcl

Action: Update

Payload:

<?xml version="1.0" encoding="UTF-8"?>
<UPCConfigChange xmlns='urn:cisco:epas:uccn' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
xsi:schemaLocation='urn:cisco:epas:uccn file:UCCNSchema.xsd'>
  <epas:action>update-acl</epas:action>
  <old>
    <epas:rule name="String obtained from fkepasprivacypolicy name">
      <epas:watcher>watcherx@ex.com</epas:watcher>
    </epas:rule>
  </old>
  <new>
    <epas:rule name="String obtained from fkepasprivacypolicy name">
      <epas:watcher>watcherx@ab.com</epas:watcher>
    </epas:rule>
  </new>
<UPCConfigChange>

PeUriAcl

Action: Delete

Payload:

<?xml version="1.0" encoding="UTF-8"?>
<UPCConfigChange xmlns='urn:cisco:epas:uccn' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
xsi:schemaLocation='urn:cisco:epas:uccn file:UCCNSchema.xsd'>
  <epas:action>delete-acl</epas:action>
  <old>
    <epas:rule name="String obtained from fkepasprivacypolicy name">
      <epas:watcher>watcherx@ex.com</epas:watcher>
    </epas:rule>
  </old>
<UPCConfigChange>

CUPSystemCfg

CUPSystemCfg

Action: Update

Payload:

<?xml version="1.0" encoding="UTF-8"?>
<UPCConfigChange xmlns='urn:cisco:epas:uccn' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
xsi:schemaLocation='urn:cisco:epas:uccn file:UCCNSchema.xsd'>
  <epas:action>update-cupssystemcfg</epas:action>
  <epas:property name="IM.enable">TRUE</epas:property>
</UPCConfigChange>

UCEnduserCfg

UCEnduserCfg

Action: Insert

Payload:

<?xml version="1.0" encoding="UTF-8"?>
<UPCConfigChange xmlns='urn:cisco:epas:uccn' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
xsi:schemaLocation='urn:cisco:epas:uccn file:UCCNSchema.xsd'>
  <epas:action>insert-endusercfg</epas:action>
    <epas:property name="attrname" is-public="TRUE">attrvalue</epas:property>
</UPCConfigChange>

UCEnduserCfg

Action: Update

Payload:

<?xml version="1.0" encoding="UTF-8"?>
<UPCConfigChange xmlns='urn:cisco:epas:uccn' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
xsi:schemaLocation='urn:cisco:epas:uccn file:UCCNSchema.xsd'>
  <epas:action>delete-endusercfg</epas:action>
    <epas:property name="attrname" is-public="FALSE">attrvalue</epas:property>
</UPCConfigChange>

UCEnduserCfg

Action: Delete

Payload:

<?xml version="1.0" encoding="UTF-8"?>
<UPCConfigChange xmlns='urn:cisco:epas:uccn' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
xsi:schemaLocation='urn:cisco:epas:uccn file:UCCNSchema.xsd'>
  <epas:action>update-endusercfg</epas:action>
    <epas:property name="attrname" is-public="TRUE">attrvalue</epas:property>
</UPCConfigChange>

PEBackendGateway

PEBackendGateway

Action: Update

Payload:

<?xml version="1.0" encoding="UTF-8"?>
<UPCConfigChange xmlns='urn:cisco:epas:uccn' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
xsi:schemaLocation='urn:cisco:epas:uccn file:UCCNSchema.xsd'>
  <epas:action>update-pebackendgateway</epas:action>
  <epas:property name="Presence.ExchangeEnabled">FALSE</epas:property>
</UPCConfigChange>

Cisco Unified Presence SOAP Interface

This section contains the following topics:

Overview

SOAP Header

SOAP Fault

Login

Logout

Configuration

Contact List

Presence Rules

Dialing Rules

Recent Communication History

Licensing Features

Long-Term Presence Status

ACL and Watchers

Calendaring

Overview

Among the functions of the Cisco Unified Presence Simple Object Access Protocol (SOAP) interface, a client application can use SOAP to perform the following tasks:

Log in and out of Cisco Unified Presence

Get system configuration information

Get and set user configurations

Publish and unpublish long-term presence status

Download dialing rules and recent communication history


Note To access the complete Cisco Unified Presence SOAP schema, enter the following URL at a computer that has access to your Cisco Unified Presence server:

http://server_name/EPASSoap/service?wsdl=wsdl
where
server_name is the domain name or IP address of your Cisco Unified Presence server.


SOAP Header

All SOAP requests, except login requests, must insert a session-key element into the SOAP header portion shown in Example 8.

Example 8 SOAP Header

<?xml version="1.0" encoding="UTF-8"?>
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/"
               xmlns:xsd="http://www.w3.org/2001/XMLSchema"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xmlns:epas="urn:cisco:epas:soap"
               xmlns="urn:cisco:epas:soap">
<SOAP:Header> 
  <epas:session-key>session key</epas:session-key>
</SOAP:Header> 

<SOAP:Body> 
  <!-- a non login request body here -->
</SOAP:Body> 
</SOAP:Envelope>

SOAP Fault

A SOAP fault can be returned in the response body due to either a non-conformant SOAP request or an internal server error, for example, failure to connect to database.

Example 9 indicates the client is sending an invalid request.

Example 9 SOAP Fault Caused by an Invalid Request

<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:xml="http://www.w3.org/XML/1998/namespace"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
   <env:Fault>
     <env:Code><env:Value>env:Sender</env:Value></env:Code>
     <env:Reason><env:Text xml:lang="en">Invalid request.</env:Text></env:Reason>
   </env:Fault>
</env:Body>
</env:Envelope>

Example 10 indicates the Cisco Unified Presence server is having difficulty processing requests because of database failure.

Example 10 SOAP Fault Caused by a Database Failure

<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:xml="http://www.w3.org/XML/1998/namespace"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
   <env:Fault>
     <env:Code><env:Value>env:Receiver</env:Value></env:Code>
     <env:Reason><env:Text xml:lang="en">Could not connect to 
database.</env:Text></env:Reason>
   </env:Fault>
</env:Body>
</env:Envelope>

Login

To log in, a client sends the username and password in the login request for authentication, and Cisco Unified Presence creates a session key, an opaque string, if the user credentials are verified. The client includes the session key in the SOAP header portion of subsequent SOAP requests, including logout requests.

Example 11 shows a sample login request.

Example 11 Login Request

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xmlns:epas="urn:cisco:epas:soap"
                  xmlns="urn:cisco:epas:soap">
   <soapenv:Body>
      <login>
         <username>xmzhou</username>
         <password>12345</password>
      </login>
   </soapenv:Body>
</soapenv:Envelope>

If login is successful, the client receives a response that contains a session key, shown in Example 12.

Example 12 Successful Login Response

<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:xml="http://www.w3.org/XML/1998/namespace"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
  <epas:login-resp  xmlns:epas="urn:cisco:epas:soap" >
   <epas:success>
    <epas:session-key>b189aa60-24e3-4e66-a3b6-d8488235ba47</epas:session-key>
   </epas:success>
  </epas:login-resp>
</env:Body>
</env:Envelope>

If the authentication is unsuccessful, the client receives a response similar to Example 13.

Example 13 Unseccessful Login Response

<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:xml="http://www.w3.org/XML/1998/namespace"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
   <epas:login-resp  xmlns:epas="urn:cisco:epas:soap" >
   <epas:failure>
    <epas:reason>Wrong username/password</epas:reason>
   </epas:failure>
  </epas:login-resp>
</env:Envelope>

If the user is already logged in, the client receives a response similar to Example 14

Example 14 Login Response for a Client that is already Logged In

<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:xml="http://www.w3.org/XML/1998/namespace"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
  <epas:login-resp  xmlns:epas="urn:cisco:epas:soap" >
   <epas:failure>
    <epas:reason>A SOAP session has already been established.</epas:reason>
   </epas:failure>
  </epas:login-resp>
</env:Envelope>

To force a login by clearing a previous session, the client can specify the force attribute in the login request. The forced login will always return a session key if the user credentials are correct, regardless of whether the user is already logged in. shows a login request with the force attribute.

Example 15 Login Request with the Force Attrubute

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xmlns:epas="urn:cisco:epas:soap"
                  xmlns="urn:cisco:epas:soap">
   <soapenv:Body>
      <login force="true">
         <username>xmzhou</username>
         <password>12345</password>
      </login>
   </soapenv:Body>
</soapenv:Envelope>

Logout

To log out, the client sends a session key in the header portion of the SOAP request along with the logout element in the body portion. Example 16shows a sample logout request.

Example 16 Logout Request

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xmlns:epas="urn:cisco:epas:soap"
                  xmlns="urn:cisco:epas:soap">
   <soapenv:Header>
      <session-key> b189aa60-24e3-4e66-a3b6-d8488235ba47</session-key>
   </soapenv:Header>
   <soapenv:Body>
      <logout tuple-id="cupc-override"/>
   </soapenv:Body>
</soapenv:Envelope>

If logout is successful, the client receives a response similar to Example 17

Example 17 Successful Logout Response

<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:xml="http://www.w3.org/XML/1998/namespace"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
  <epas:logout-resp  xmlns:epas="urn:cisco:epas:soap" >
     <epas:success/>
  </epas:logout-resp>
</env:Body>
</env:Envelope>

Configuration

After successfully logging in, the client sends the get-all-config request to retrieve configuration information. See Example 18.

Example 18 Get-All-Config

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xmlns:epas="urn:cisco:epas:soap"
                  xmlns="urn:cisco:epas:soap">
   <soapenv:Header>
      <session-key> b189aa60-24e3-4e66-a3b6-d8488235ba47</session-key>
   </soapenv:Header>
   <soapenv:Body>
      <get-all-config>
	      <system-config/>
	      <user-config/>
	      <licensing-features/>
	      <contact-list/>
	      <presence-rules/>
	      <dialing-rules/>
      </get-all-config>
   </soapenv:Body>
</soapenv:Envelope>

Example 19 shows a sample response to the get-all-config request.

Example 19 Get-All-Config Response

<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:xml="http://www.w3.org/XML/1998/namespace"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
  <epas:get-all-config-resp  xmlns:epas="urn:cisco:epas:soap" > 
  <epas:get-system-config-resp  xmlns:epas="urn:cisco:epas:soap" >
   <epas:property name="Directory.Map.userid">uid</epas:property>
   <epas:property name="Directory.Map.givenName">givenname</epas:property>
   <epas:property name="Directory.Map.surName">sn</epas:property>
   <epas:property name="Directory.Map.middleName">middleinitial</epas:property>
   <epas:property name="Directory.Map.displayName">cn</epas:property>
   <epas:property name="Directory.Map.nickName"></epas:property>
   <epas:property name="Directory.Map.jpegPhoto"></epas:property>
   <epas:property 
name="Directory.Map.internalSnailMailAddress">postofficebox</epas:property>
   <epas:property name="Directory.Map.site">site</epas:property>
   <epas:property name="Directory.Map.building">building</epas:property>
   <epas:property name="Directory.Map.floor">floor</epas:property>
   <epas:property name="Directory.Map.physicalLocation"></epas:property>
   <epas:property name="Directory.Map.orgPersonNumber">employeenumber</epas:property>
   <epas:property name="Directory.Map.orgPersonType">employeetype</epas:property>
   <epas:property name="Directory.Map.title">title</epas:property>
   <epas:property name="Directory.Map.orgainzationName"></epas:property>
   <epas:property name="Directory.Map.organizationUnitName"></epas:property>
   <epas:property name="Directory.Map.departmentNumber">departmentnumber</epas:property>
   <epas:property name="Directory.Map.managerID">manageruid</epas:property>
   <epas:property name="Directory.Map.preferredLanguage"></epas:property>
   <epas:property name="Directory.Map.status">status</epas:property>
   <epas:property name="Security"></epas:property>
   <epas:property name="VoiceMail.Primary.Address"></epas:property>
   <epas:property name="VoiceMail.Primary.Port"></epas:property>
   <epas:property name="VoiceMail.Primary.Protocol"></epas:property>
   <epas:property name="VoiceMail.Backup1.Address"></epas:property>
   <epas:property name="VoiceMail.Backup1.Port"></epas:property>
   <epas:property name="VoiceMail.Backup1.Protocol"></epas:property>
   <epas:property name="VoiceMail.Backup2.Address"></epas:property>
   <epas:property name="VoiceMail.Backup2.Port"></epas:property>
   <epas:property name="VoiceMail.Backup2.Protocol"></epas:property>
   <epas:property name="VoiceMail.PilotNumber"></epas:property>
   <epas:property name="MeetingPlace.Primary.Address"></epas:property>
   <epas:property name="MeetingPlace.Primary.Port"></epas:property>
   <epas:property name="MeetingPlace.Primary.Protocol"></epas:property>
   <epas:property name="MeetingPlace.Backup1.Address"></epas:property>
   <epas:property name="MeetingPlace.Backup1.Port"></epas:property>
   <epas:property name="MeetingPlace.Backup1.Protocol"></epas:property>
   <epas:property name="MeetingPlace.Backup2.Address"></epas:property>
   <epas:property name="MeetingPlace.Backup2.Port"></epas:property>
   <epas:property name="MeetingPlace.Backup2.Protocol"></epas:property>
   <epas:property name="CallControl.Primary.Address"></epas:property>
   <epas:property name="CallControl.Primary.Port"></epas:property>
   <epas:property name="CallControl.Primary.Protocol"></epas:property>
   <epas:property name="CallControl.Backup1.Address"></epas:property>
   <epas:property name="CallControl.Backup1.Port"></epas:property>
   <epas:property name="CallControl.Backup1.Protocol"></epas:property>
   <epas:property name="CallControl.Backup2.Address"></epas:property>
   <epas:property name="CallControl.Backup2.Port"></epas:property>
   <epas:property name="CallControl.Backup2.Protocol"></epas:property>
   <epas:property name="Directory.DN"></epas:property>
   <epas:property name="Directory.Password"></epas:property>
   <epas:property name="Directory.AnonymousBind">FALSE</epas:property>
   <epas:property name="Directory.ConfigurationName"></epas:property>
   <epas:property name="Directory.SearchContext1"></epas:property>
   <epas:property name="Directory.SearchRecursive1">FALSE</epas:property>
   <epas:property name="Directory.SearchContext2"></epas:property>
   <epas:property name="Directory.SearchRecursive2">FALSE</epas:property>
   <epas:property name="Directory.SearchContext3"></epas:property>
   <epas:property name="Directory.SearchRecursive3">FALSE</epas:property>
   <epas:property name="Directory.Primary.Address"></epas:property>
   <epas:property name="Directory.Primary.Port"></epas:property>
   <epas:property name="Directory.Primary.Protocol"></epas:property>
   <epas:property name="Directory.Backup1.Address"></epas:property>
   <epas:property name="Directory.Backup1.Port"></epas:property>
   <epas:property name="Directory.Backup1.Protocol"></epas:property>
   <epas:property name="Directory.Backup2.Address"></epas:property>
   <epas:property name="Directory.Backup2.Port"></epas:property>
   <epas:property name="Directory.Backup2.Protocol"></epas:property>
   <epas:property name="Presence.Primary.Address"></epas:property>
   <epas:property name="Presence.Primary.Port"></epas:property>
   <epas:property name="Presence.Primary.Protocol"></epas:property>
   <epas:property name="Presence.Backup.Address"></epas:property>
   <epas:property name="Presence.Backup.Port"></epas:property>
   <epas:property name="Presence.Backup.Protocol"></epas:property>
   <epas:property name="Presence.Domain">cisco.com</epas:property>
   <epas:property name="TFTP.Primary"></epas:property>
   <epas:property name="TFTP.Backup1"></epas:property>
   <epas:property name="TFTP.Backup2"></epas:property>
  </epas:get-system-config-resp>
  <epas:get-user-config-resp  xmlns:epas="urn:cisco:epas:soap" >
   <epas:property name="CallControl.Lineid" is-public="false"></epas:property>
  </epas:get-user-config-resp>
  <epas:get-licensing-features-resp  xmlns:epas="urn:cisco:epas:soap" >
      <epas:base>false</epas:base>
      <epas:im>false</epas:im>
      <epas:audio>false</epas:audio>
      <epas:video>false</epas:video>
  </epas:get-licensing-features-resp>
  <epas:get-contact-list-resp  xmlns:epas="urn:cisco:epas:soap" >
  </epas:get-contact-list-resp>
  <epas:get-presence-rules-resp  xmlns:epas="urn:cisco:epas:soap"  
xmlns:pr="urn:cisco:epas:presence:rules" >
   <epas:visibility>all</epas:visibility>
   <pr:reachability></pr:reachability>
   <epas:privacy-policy>Allow All</epas:privacy-policy>
   <epas:acl>
   </epas:acl>
  </epas:get-presence-rules-resp>
  <epas:get-dialing-rules-resp  xmlns:epas="urn:cisco:epas:soap" >
  </epas:get-dialing-rules-resp>
  </epas:get-all-config-resp>

</env:Body>
</env:Envelope>

System Configuration

The client sends the get-system-config request to retrieve system-level configurations. See Example 20.

Example 20 Get-System-Config

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xmlns:epas="urn:cisco:epas:soap"
                  xmlns="urn:cisco:epas:soap">
   <soapenv:Header>
      <session-key> b189aa60-24e3-4e66-a3b6-d8488235ba47</session-key>
   </soapenv:Header>
   <soapenv:Body>
      <get-system-config/>
   </soapenv:Body>
</soapenv:Envelope>

Example 21 shows the response.

Example 21 Get-System-Config Response

<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:xml="http://www.w3.org/XML/1998/namespace"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
  <epas:get-system-config-resp  xmlns:epas="urn:cisco:epas:soap" >
   <epas:property name="Directory.Map.userid">uid</epas:property>
   <epas:property name="Directory.Map.givenName">givenname</epas:property>
   <epas:property name="Directory.Map.surName">sn</epas:property>
   <epas:property name="Directory.Map.middleName">middleinitial</epas:property>
   <epas:property name="Directory.Map.displayName">cn</epas:property>
   <epas:property name="Directory.Map.nickName"></epas:property>
   <epas:property name="Directory.Map.jpegPhoto"></epas:property>
   <epas:property 
name="Directory.Map.internalSnailMailAddress">postofficebox</epas:property>
   <epas:property name="Directory.Map.site">site</epas:property>
   <epas:property name="Directory.Map.building">building</epas:property>
   <epas:property name="Directory.Map.floor">floor</epas:property>
   <epas:property name="Directory.Map.physicalLocation"></epas:property>
   <epas:property name="Directory.Map.orgPersonNumber">employeenumber</epas:property>
   <epas:property name="Directory.Map.orgPersonType">employeetype</epas:property>
   <epas:property name="Directory.Map.title">title</epas:property>
   <epas:property name="Directory.Map.orgainzationName"></epas:property>
   <epas:property name="Directory.Map.organizationUnitName"></epas:property>
   <epas:property name="Directory.Map.departmentNumber">departmentnumber</epas:property>
   <epas:property name="Directory.Map.managerID">manageruid</epas:property>
   <epas:property name="Directory.Map.preferredLanguage"></epas:property>
   <epas:property name="Directory.Map.status">status</epas:property>
   <epas:property name="Security"></epas:property>
   <epas:property name="VoiceMail.Primary.Address"></epas:property>
   <epas:property name="VoiceMail.Primary.Port"></epas:property>
   <epas:property name="VoiceMail.Primary.Protocol"></epas:property>
   <epas:property name="VoiceMail.Backup1.Address"></epas:property>
   <epas:property name="VoiceMail.Backup1.Port"></epas:property>
   <epas:property name="VoiceMail.Backup1.Protocol"></epas:property>
   <epas:property name="VoiceMail.Backup2.Address"></epas:property>
   <epas:property name="VoiceMail.Backup2.Port"></epas:property>
   <epas:property name="VoiceMail.Backup2.Protocol"></epas:property>
   <epas:property name="VoiceMail.PilotNumber"></epas:property>
   <epas:property name="MeetingPlace.Primary.Address"></epas:property>
   <epas:property name="MeetingPlace.Primary.Port"></epas:property>
   <epas:property name="MeetingPlace.Primary.Protocol"></epas:property>
   <epas:property name="MeetingPlace.Backup1.Address"></epas:property>
   <epas:property name="MeetingPlace.Backup1.Port"></epas:property>
   <epas:property name="MeetingPlace.Backup1.Protocol"></epas:property>
   <epas:property name="MeetingPlace.Backup2.Address"></epas:property>
   <epas:property name="MeetingPlace.Backup2.Port"></epas:property>
   <epas:property name="MeetingPlace.Backup2.Protocol"></epas:property>
   <epas:property name="CallControl.Primary.Address"></epas:property>
   <epas:property name="CallControl.Primary.Port"></epas:property>
   <epas:property name="CallControl.Primary.Protocol"></epas:property>
   <epas:property name="CallControl.Backup1.Address"></epas:property>
   <epas:property name="CallControl.Backup1.Port"></epas:property>
   <epas:property name="CallControl.Backup1.Protocol"></epas:property>
   <epas:property name="CallControl.Backup2.Address"></epas:property>
   <epas:property name="CallControl.Backup2.Port"></epas:property>
   <epas:property name="CallControl.Backup2.Protocol"></epas:property>
   <epas:property name="Directory.DN"></epas:property>
   <epas:property name="Directory.Password"></epas:property>
   <epas:property name="Directory.AnonymousBind">FALSE</epas:property>
   <epas:property name="Directory.ConfigurationName"></epas:property>
   <epas:property name="Directory.SearchContext1"></epas:property>
   <epas:property name="Directory.SearchRecursive1">FALSE</epas:property>
   <epas:property name="Directory.SearchContext2"></epas:property>
   <epas:property name="Directory.SearchRecursive2">FALSE</epas:property>
   <epas:property name="Directory.SearchContext3"></epas:property>
   <epas:property name="Directory.SearchRecursive3">FALSE</epas:property>
   <epas:property name="Directory.Primary.Address"></epas:property>
   <epas:property name="Directory.Primary.Port"></epas:property>
   <epas:property name="Directory.Primary.Protocol"></epas:property>
   <epas:property name="Directory.Backup1.Address"></epas:property>
   <epas:property name="Directory.Backup1.Port"></epas:property>
   <epas:property name="Directory.Backup1.Protocol"></epas:property>
   <epas:property name="Directory.Backup2.Address"></epas:property>
   <epas:property name="Directory.Backup2.Port"></epas:property>
   <epas:property name="Directory.Backup2.Protocol"></epas:property>
   <epas:property name="Presence.Primary.Address"></epas:property>
   <epas:property name="Presence.Primary.Port"></epas:property>
   <epas:property name="Presence.Primary.Protocol"></epas:property>
   <epas:property name="Presence.Backup.Address"></epas:property>
   <epas:property name="Presence.Backup.Port"></epas:property>
   <epas:property name="Presence.Backup.Protocol"></epas:property>
   <epas:property name="Presence.Domain">cisco.com</epas:property>
   <epas:property name="TFTP.Primary"></epas:property>
   <epas:property name="TFTP.Backup1"></epas:property>
   <epas:property name="TFTP.Backup2"></epas:property>
  </epas:get-system-config-resp>
</env:Body>
</env:Envelope> 

User Configuration

The get-user-config request retrieves per-user configuration information. See Example 22.

Example 22 Get-User-Config

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xmlns:epas="urn:cisco:epas:soap"
                  xmlns="urn:cisco:epas:soap">
   <soapenv:Header>
      <session-key> b189aa60-24e3-4e66-a3b6-d8488235ba47</session-key>
   </soapenv:Header>
   <soapenv:Body>
      <get-user-config/>
   </soapenv:Body>
</soapenv:Envelope> 

Example 23 shows the response.

Example 23 Get-User-Config Response

<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:xml="http://www.w3.org/XML/1998/namespace"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
  <epas:get-user-config-resp  xmlns:epas="urn:cisco:epas:soap" >
   <epas:property name="CallControl.Lineid" is-public="false"></epas:property>
  </epas:get-user-config-resp>
</env:Body>
</env:Envelope>

The set-user-config request sets per-user configuration information. See Example 24.

Example 24 Set-User-Config

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xmlns:epas="urn:cisco:epas:soap"
                  xmlns="urn:cisco:epas:soap">
   <soapenv:Header>
      <session-key> b189aa60-24e3-4e66-a3b6-d8488235ba47</session-key>
   </soapenv:Header>
   <soapenv:Body>
      <set-user-config>
         <property name="Preferred.Contact" is-public="true">email</property>
         <property name="UI.Color.Background" is-public="false">white</property>
         <property name="UI.Color.Foreground" is-public="false">black</property>
         <property name="PhoneNumber.Primary" is-public="true">200</property>
      </set-user-config>
   </soapenv:Body>
</soapenv:Envelope> 

See Example 25 for the set-user-config response.

Example 25 Set-User-Config Response

<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:xml="http://www.w3.org/XML/1998/namespace"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
  <epas:set-user-config-resp  xmlns:epas="urn:cisco:epas:soap" >
    <epas:property name="Preferred.Contact" status-code="0"/>
    <epas:property name="UI.Color.Background" status-code="0"/>
    <epas:property name="UI.Color.Foreground" status-code="0"/>
    <epas:property name="PhoneNumber.Primary" status-code="0"/>
  </epas:set-user-config-resp>
</env:Body>
</env:Envelope>

Contact List

This section provides examples for working with the user contact lists.

Retrieving a Contact List

The get-contact-list request retrieves a user contact list. See Example 26.

Example 26 Get-Contact-List

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xmlns:epas="urn:cisco:epas:soap"
                  xmlns="urn:cisco:epas:soap">
   <soapenv:Header>
      <session-key> b189aa60-24e3-4e66-a3b6-d8488235ba47</session-key>
   </soapenv:Header>
   <soapenv:Body>
      <get-contact-list/>
   </soapenv:Body>
</soapenv:Envelope> 

For the response, see Example 27.

Example 27 Get-Contact-List Response

<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:xml="http://www.w3.org/XML/1998/namespace"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
  <epas:get-contact-list-resp  xmlns:epas="urn:cisco:epas:soap" >
   <epas:group name="" index="-200">
      <epas:persona-id index="-33.3" nickname="" 
display-on-phone="true">soapuser1</epas:persona-id>
      <epas:persona-id index="1" nickname="what" 
display-on-phone="false">soapuser4</epas:persona-id>
      <epas:persona-id index="32" nickname="dave" 
display-on-phone="false">soapuser5</epas:persona-id>
      <epas:persona-id index="33" nickname="" 
display-on-phone="false">soapuser3</epas:persona-id>
   </epas:group>
   <epas:group name="work" index="1000.9">
      <epas:persona-id index="-1" nickname="" 
display-on-phone="false">soapuser5</epas:persona-id>
      <epas:persona-id index="200" nickname="user2 nickname" 
display-on-phone="false">soapuser2</epas:persona-id>
      <epas:persona-id index="201" nickname="user3&apos;s nickname" 
display-on-phone="false">soapuser3</epas:persona-id>
      <epas:persona-id index="202" nickname="" 
display-on-phone="true">soapuser4</epas:persona-id>
   </epas:group>
   <epas:group name="new customers" index="2000.9">
      <epas:persona-id index="202" nickname="another user2&apos;s nickname" 
display-on-phone="true">soapuser2</epas:persona-id>
      <epas:persona-id index="203" nickname="" 
display-on-phone="false">soapuser3</epas:persona-id>
   </epas:group>
  </epas:get-contact-list-resp>
</env:Body>
</env:Envelope>

Adding Contact Groups

The add-group request adds contact groups. See Example 28.

Example 28 Add-Group

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xmlns:epas="urn:cisco:epas:soap"
                  xmlns="urn:cisco:epas:soap">
   <soapenv:Header>
      <session-key> b189aa60-24e3-4e66-a3b6-d8488235ba47</session-key>
   </soapenv:Header>
   <soapenv:Body>
      <add-group>
         <group name="work"></group>
         <group name="friends" index="2"/>
         <group name="customers" index="540"/>
         <group name="work" index="-1"></group>
      </add-group>
   </soapenv:Body>
</soapenv:Envelope> 

For the add-group response, see Example 29.

Example 29 Add-Group Response

<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:xml="http://www.w3.org/XML/1998/namespace"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
  <epas:add-group-resp  xmlns:epas="urn:cisco:epas:soap" >
    <epas:status name="work" >succeeded</epas:status>
    <epas:status name="friends" index="2">succeeded</epas:status>
    <epas:status name="customers" index="540">succeeded</epas:status>
    <epas:status name="work" index="-1">failed</epas:status>
  </epas:add-group-resp>
</env:Body>
</env:Envelope>

Modifying Contact Groups

The modify-group request modifies contact groups. See Example 30.

Example 30 Modify-Group

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xmlns:epas="urn:cisco:epas:soap"
                  xmlns="urn:cisco:epas:soap">
   <soapenv:Header>
      <session-key> b189aa60-24e3-4e66-a3b6-d8488235ba47</session-key>
   </soapenv:Header>
   <soapenv:Body>
      <modify-group>
         <group old-name="non existing" new-name="still non existing"/>
         <group old-name="" index="-200" new-name="can i change this?"/>
         <group old-name="friends" new-name="new friends"/>
         <group old-name="work" index="1000.9"/>
         <group old-name="customers" new-name="new customers" index="2000.9"/>
       </modify-group>
   </soapenv:Body>
</soapenv:Envelope> 

For the modify-group response, see Example 31.

Example 31 Modify-Group Response

<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:xml="http://www.w3.org/XML/1998/namespace"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
  <epas:modify-group-resp  xmlns:epas="urn:cisco:epas:soap" >
    <epas:status old-name="non existing" new-name="still non existing" 
>failed</epas:status>
    <epas:status old-name="" new-name="can i change this?" 
index="-200">succeeded</epas:status>
    <epas:status old-name="friends" new-name="new friends" >succeeded</epas:status>
    <epas:status old-name="work" index="1000.9">succeeded</epas:status>
    <epas:status old-name="customers" new-name="new customers" 
index="2000.9">succeeded</epas:status>
  </epas:modify-group-resp>
</env:Body>
</env:Envelope>

Deleting Contact Groups

You can use the delete-group request to to delete contact groups. See Example 32.

Example 32 Delete-Group

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xmlns:epas="urn:cisco:epas:soap"
                  xmlns="urn:cisco:epas:soap">
   <soapenv:Header>
      <session-key> b189aa60-24e3-4e66-a3b6-d8488235ba47</session-key>
   </soapenv:Header>
   <soapenv:Body>
      <delete-group>
         <group name="work"></group>
         <group name="friends" index="2"/>
         <group name="customers" index="540"/>
         <group name="work" index="-1"></group>
      </add-group>
   </soapenv:Body>
</soapenv:Envelope> 

For the delete-group response, see Example 33.

Example 33 Delete-Group Response

<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:xml="http://www.w3.org/XML/1998/namespace"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
  <epas:delete-group-resp  xmlns:epas="urn:cisco:epas:soap" >
    <epas:status name="non existing">succeeded</epas:status>
    <epas:status name="new friends">succeeded</epas:status>
    <epas:status name="non existing too">succeeded</epas:status>
    <epas:status name="still non existing too">succeeded</epas:status>
    <epas:status name="new work">succeeded</epas:status>
  </epas:delete-group-resp>
</env:Body>
</env:Envelope>

Adding Contacts

To add contacts, use the add-contact request. See Example 34.

Example 34 Add-Contact

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xmlns:epas="urn:cisco:epas:soap"
                  xmlns="urn:cisco:epas:soap">
   <soapenv:Header>
      <session-key> b189aa60-24e3-4e66-a3b6-d8488235ba47</session-key>
   </soapenv:Header>
   <soapenv:Body>
      <add-contact>
         <group name="work">
            <persona-id index="200" display-on-phone="false" nickname="user2 
nickname">soapuser2</persona-id>
            <persona-id nickname="user3's nickname">soapuser3</persona-id>
            <persona-id display-on-phone="true">soapuser4</persona-id>
            <persona-id index="-1">soapuser5</persona-id>
            <persona-id>nonexisting</persona-id>
         </group>         
         <group name="new customers">
            <persona-id index="202" display-on-phone="true" nickname="another user2's 
nickname">soapuser2</persona-id>
            <persona-id display-on-phone="false">soapuser3</persona-id>
            <persona-id index="200" display-on-phone="false" nickname="non 
existing">nonexisting</persona-id>
         </group>         
         <group name="friends">
            <persona-id nickname="what">soapuser2</persona-id>
            <persona-id>whatever</persona-id>
         </group>         
         <group name="">
            <persona-id display-on-phone="false" nickname="what">soapuser4</persona-id>
            <persona-id nickname="dave" index="32">soapuser5</persona-id>
            <persona-id>soapuser3</persona-id>
            <persona-id display-on-phone="true" index="-33.3">soapuser1</persona-id>
         </group>         
      </add-contact>
   </soapenv:Body>
</soapenv:Envelope> 

For the add-contact response, see Example 35.

Example 35 Add-Contact Response

<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:xml="http://www.w3.org/XML/1998/namespace"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
  <epas:add-contact-resp  xmlns:epas="urn:cisco:epas:soap" >
    <epas:status persona-id="soapuser2" group="work" index="200" nickname="user2 nickname" 
display-on-phone="false">succeeded</epas:status>
    <epas:status persona-id="soapuser3" group="work" nickname="user3&apos;s 
nickname">succeeded</epas:status>
    <epas:status persona-id="soapuser4" group="work" 
display-on-phone="true">succeeded</epas:status>
    <epas:status persona-id="soapuser5" group="work" index="-1">succeeded</epas:status>
    <epas:status persona-id="nonexisting" group="work">Contact does not exist 
in.</epas:status>
    <epas:status persona-id="soapuser2" group="new customers" index="202" 
nickname="another user2&apos;s nickname" display-on-phone="true">succeeded</epas:status>
    <epas:status persona-id="soapuser3" group="new customers" 
display-on-phone="false">succeeded</epas:status>
    <epas:status persona-id="nonexisting" group="new customers" index="200" nickname="non 
existing" display-on-phone="false">Contact does not exist in.</epas:status>
    <epas:status persona-id="soapuser2" group="friends" nickname="what">The Contact Group 
does not exist.</epas:status>
    <epas:status persona-id="whatever" group="friends">Contact does not exist 
in.</epas:status>
    <epas:status persona-id="soapuser4" group="" nickname="what" 
display-on-phone="false">succeeded</epas:status>
    <epas:status persona-id="soapuser5" group="" index="32" 
nickname="dave">succeeded</epas:status>
    <epas:status persona-id="soapuser3" group="">succeeded</epas:status>
    <epas:status persona-id="soapuser1" group="" index="-33.3" 
display-on-phone="true">succeeded</epas:status>
  </epas:add-contact-resp>
</env:Body>
</env:Envelope>

Modifying Contacts

To modify contacts, you can use the modify-contact request. See Example 36.

Example 36 Modify-Contact

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xmlns:epas="urn:cisco:epas:soap"
                  xmlns="urn:cisco:epas:soap">
   <soapenv:Header>
      <session-key> b189aa60-24e3-4e66-a3b6-d8488235ba47</session-key>
   </soapenv:Header>
   <soapenv:Body>
      <modify-contact>
         <group name="">
            <persona-id index="200" display-on-phone="false" nickname="user5 
nick">soapuser5</persona-id>
            <persona-id nickname="default 'one'" 
display-on-phone="false">soapuser1</persona-id>
            <persona-id>soapuser4</persona-id>
            <persona-id nickname="1">soapuser3</persona-id>
         </group>         
         <group name="new customers">
            <persona-id nickname="who is soap user 3?">soapuser3</persona-id>
            <persona-id>soapuser2</persona-id>
         </group>         
         <group name="work">
            <persona-id display-on-phone="false">soapuser3</persona-id>
            <persona-id nickname="soap user's nickname">soapuser4</persona-id>
            <persona-id index="-3000">soapuser5</persona-id>
            <persona-id nickname="" index="-3000.5" 
display-on-phone="true">soapuser2</persona-id>
         </group>         
         <group name="new work">
            <persona-id nickname="doesn't work!!!">soapuser2</persona-id>
         </group>         
      </modify-contact>
   </soapenv:Body>
</soapenv:Envelope> 

For the modify-contact response, see Example 37.

Example 37 Modify-Contact Response

<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:xml="http://www.w3.org/XML/1998/namespace"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
  <epas:modify-contact-resp  xmlns:epas="urn:cisco:epas:soap" >
    <epas:status persona-id="soapuser5" group="" index="200" nickname="user5 nick" 
display-on-phone="false">succeeded</epas:status>
    <epas:status persona-id="soapuser1" group="" nickname="default &apos;one&apos;" 
display-on-phone="false">succeeded</epas:status>
    <epas:status persona-id="soapuser4" group="">succeeded</epas:status>
    <epas:status persona-id="soapuser3" group="" nickname="1">succeeded</epas:status>
    <epas:status persona-id="soapuser3" group="new customers" nickname="who is soap user 
3?">succeeded</epas:status>
    <epas:status persona-id="soapuser2" group="new customers">succeeded</epas:status>
    <epas:status persona-id="soapuser3" group="work" 
display-on-phone="false">succeeded</epas:status>
    <epas:status persona-id="soapuser4" group="work" nickname="soap user&apos;s 
nickname">succeeded</epas:status>
    <epas:status persona-id="soapuser5" group="work" index="-3000">succeeded</epas:status>
    <epas:status persona-id="soapuser2" group="work" index="-3000.5" nickname="" 
display-on-phone="true">succeeded</epas:status>
    <epas:status persona-id="soapuser2" group="new work" nickname="doesn&apos;t 
work!!!">The Contact Group does not exist.</epas:status>
  </epas:modify-contact-resp>
</env:Body>
</env:Envelope>

Deleting Contacts

You can use delete-contact for deleting contacts. See Example 38.

Example 38 Delete-Contact

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xmlns:epas="urn:cisco:epas:soap"
                  xmlns="urn:cisco:epas:soap">
   <soapenv:Header>
      <session-key> b189aa60-24e3-4e66-a3b6-d8488235ba47</session-key>
   </soapenv:Header>
   <soapenv:Body>
      <delete-contact>
         <group name="work">
            <persona-id>soapuser2</persona-id>
         </group>         
         <group name="non-existing">
            <persona-id>one</persona-id>
         </group>         
         <group name="">
            <persona-id>soapuser5</persona-id>
            <persona-id>soapuser1</persona-id>
            <persona-id>nonexisting</persona-id>
         </group>         
      </delete-contact>
   </soapenv:Body>
</soapenv:Envelope> 

For the delete-contact response, see Example 39.

Example 39 Delete-Contact Response

<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:xml="http://www.w3.org/XML/1998/namespace"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
  <epas:delete-contact-resp  xmlns:epas="urn:cisco:epas:soap" >
    <epas:status persona-id="soapuser2" group="work">succeeded</epas:status>
    <epas:status persona-id="one" group="non-existing">The Contact Group does not 
exist.</epas:status>
    <epas:status persona-id="soapuser5" group="">succeeded</epas:status>
    <epas:status persona-id="soapuser1" group="">succeeded</epas:status>
    <epas:status persona-id="nonexisting" group="">Contact does not exist 
in.</epas:status>
  </epas:delete-contact-resp>
</env:Body>
</env:Envelope>

Presence Rules

The presence rules allow you to set visibility rules, reachability rules, and filter rules. Example 40 shows the schema for presence rules.


Note To access the complete Cisco Unified Presence SOAP schema, enter the following URL at a computer that has access to your Cisco Unified Presence server:

http://server_name/EPASSoap/service?wsdl=wsdl

where

server_name is the domain name or IP address of your Cisco Unified Presence server.


Example 40 Presence Rules Schema

<xsd:element name="get-presence-rules">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="visibility" minOccurs="0"/>
        <xsd:element name="reachability" minOccurs="0"/>
        <xsd:element name="filter" minOccurs="0"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>

Getting Presence Rules

To get all presence rules, use the get-presence-rules request. See Example 41.

Example 41 Get-Presence-Rules

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xmlns:epas="urn:cisco:epas:soap"
                  xmlns="urn:cisco:epas:soap">
   <soapenv:Header>
      <session-key> b189aa60-24e3-4e66-a3b6-d8488235ba47</session-key>
   </soapenv:Header>
   <soapenv:Body>
      <get-presence-rules/>
   </soapenv:Body>
</soapenv:Envelope> 

For the response, see Example 42.

Example 42 Get-Presence-Rules Response

<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:xml="http://www.w3.org/XML/1998/namespace"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
  <epas:get-presence-rules-resp  xmlns:epas="urn:cisco:epas:soap"  
xmlns:pr="urn:cisco:epas:presence:rules" >
   <presence-rule name=noACL_rule">
     <rule>
        <epas:visibility>all</epas:visibility>
        <pr:reachability></pr:reachability>
        <pr:filter></pr:filter>
     </rule>
   </presence-rule>
  </epas:get-presence-rules-resp>
</env:Body>
</env:Envelope>

Setting Presence Rules

To set presence rules, including visibility, reachability, and filtering rules, use the set-presence-rules request. See Example 43.

Example 43 Set-Presence-Rules

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xmlns:epas="urn:cisco:epas:soap"
                  xmlns="urn:cisco:epas:soap">
   <soapenv:Header>
      <session-key> b189aa60-24e3-4e66-a3b6-d8488235ba47</session-key>
   </soapenv:Header>
   <soapenv:Body>
      <set-presence-rules>
        <presence-rule name="test rule">
          <rule>
        <visibility>reachability-only</visibility>
        <pr:filter>
           <pr:excludedsource>Cell Phone</pr:excludedsource>
           <pr:excludedsource>cupc</pr:excludedsource>
        <pr:filter>
        <pr:reachability>
		<pr:cond>
			<pr:epas-reachability source="String"/>
			<pr:when reachability-status="away">
				<pr:epas-status source="String" status="away"/>
				<pr:or>
					<pr:epas-status source="String"  status="away"/>
					<pr:and>
						<pr:epas-status source="String" status="away"/>
						<pr:not>
							<pr:epas-status source="String" status="away"/>
						</pr:not>
					</pr:and>
					<pr:not>
						<pr:epas-status source="String" status="away"/>
					</pr:not>
				</pr:or>
				<pr:and>
					<pr:epas-status source="String" status="away"/>
					<pr:or>
						<pr:epas-status source="String" status="away"/>
						<pr:not>
							<pr:epas-status source="String" status="away"/>
						</pr:not>
					</pr:or>
					<pr:not>
						<pr:epas-status source="String" status="away"/>
					</pr:not>
				</pr:and>
			</pr:when>
			<pr:when reachability-status="away">
				<pr:epas-status source="String" status="away"/>
				<pr:or>
					<pr:epas-status source="String" status="away"/>
					<pr:and>
						<pr:epas-status source="String" status="away"/>
						<pr:not>
							<pr:epas-status source="String" status="away"/>
						</pr:not>
					</pr:and>
					<pr:not>
						<pr:epas-status source="String" status="away"/>
					</pr:not>
				</pr:or>
				<pr:and>
					<pr:epas-status source="String" status="away"/>
					<pr:or>
						<pr:epas-status source="String" status="away"/>
						<pr:not>
							<pr:epas-status source="String" status="away"/>
						</pr:not>
					</pr:or>
					<pr:not>
						<pr:epas-status source="String" status="away"/>
					</pr:not>
				</pr:and>
			</pr:when>
			<pr:when reachability-status="away">
				<pr:epas-status source="String" status="away"/>
				<pr:or>
					<pr:epas-status source="String" status="away"/>
					<pr:and>
						<pr:epas-status source="String" status="away"/>
						<pr:not>
							<pr:epas-status source="String" status="away"/>
						</pr:not>
					</pr:and>
					<pr:not>
						<pr:epas-status source="String" status="away"/>
					</pr:not>
				</pr:or>
				<pr:and>
					<pr:epas-status source="String" status="away"/>
					<pr:or>
						<pr:epas-status source="String" status="away"/>
						<pr:not>
							<pr:epas-status source="String" status="away"/>
						</pr:not>
					</pr:or>
					<pr:not>
						<pr:epas-status source="String" status="away"/>
					</pr:not>
				</pr:and>
			</pr:when>
			<pr:when reachability-status="away">
				<pr:epas-status source="String" status="away"/>
				<pr:or>
					<pr:epas-status source="String" status="away"/>
					<pr:and>
						<pr:epas-status source="String" status="away"/>
						<pr:not>
							<pr:epas-status source="String" status="away"/>
						</pr:not>
					</pr:and>
					<pr:not>
						<pr:epas-status source="String" status="away"/>
					</pr:not>
				</pr:or>
				<pr:and>
					<pr:epas-status source="String" status="away"/>
					<pr:or>
						<pr:epas-status source="String" status="away"/>
						<pr:not>
							<pr:epas-status source="String" status="away"/>
						</pr:not>
					</pr:or>
					<pr:not>
						<pr:epas-status source="String" status="away"/>
					</pr:not>
				</pr:and>
			</pr:when>
		</pr:cond>
       </pr:reachability>
    </rule>
  </presence-rules>
      </set-presence-rules>
   </soapenv:Body>
</soapenv:Envelope> 

For the response, see Example 44.

Example 44 Set-Presence-Rules Response

<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:xml="http://www.w3.org/XML/1998/namespace"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
  <epas:set-presence-rules-resp  xmlns:epas="urn:cisco:epas:soap" >
    <epas:status name=="noACL_rule">succeeded</epas:status>
    <epas:status name=="test rule">succeeded</epas:status>
  </epas:set-presence-rules-resp>
</env:Body>
</env:Envelope>

Deleting Presence Rules

To delete presence rules, use the delete-presence-rules request. See Example 45.

Example 45 Delete-Presence-Rules

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xmlns:epas="urn:cisco:epas:soap"
                  xmlns="urn:cisco:epas:soap">
   <soapenv:Header>
      <session-key> b189aa60-24e3-4e66-a3b6-d8488235ba47</session-key>
   </soapenv:Header>
   <soapenv:Body>
      <delete-presence-rules>
           <rule name="noACL_rule"/>
           <rule name="noexistentRule"/>
      </delete-presence-rules>
   </soapenv:Body>
</soapenv:Envelope> 

For the response, see Example 46.

Example 46 Delete-Presence-Rules Response

<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:xml="http://www.w3.org/XML/1998/namespace"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
  <epas:delete-presence-rules-resp  xmlns:epas="urn:cisco:epas:soap" >
    <epas:status name=="noACL_rule">succeeded</epas:status>
    <epas:status name=="noexistentRule">Invalid Policy name</epas:status>
  </epas:delete-presence-rules-resp>
</env:Body>
</env:Envelope>

Dialing Rules

To download application dialing rules from the associated Cisco Unified Communications Manager, use the get-dialing-rules request. See Example 47.

Example 47 Get-Dialing-Rules

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xmlns:epas="urn:cisco:epas:soap"
                  xmlns="urn:cisco:epas:soap">
   <soapenv:Header>
      <session-key> b189aa60-24e3-4e66-a3b6-d8488235ba47</session-key>
   </soapenv:Header>
   <soapenv:Body>
      <get-dialing-rules/>
   </soapenv:Body>
</soapenv:Envelope> 

For the response, see Example 48.

Example 48 Get-Dialing-Rules Response

<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:xml="http://www.w3.org/XML/1998/namespace"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
  <epas:get-dialing-rules-resp xmlns:epas="urn:cisco:epas:soap">
   <epas:rule>
     <epas:type>1</epas:type>
     <epas:name>App dialing rule</epas:name>
     <epas:description>App dialing rule</epas:description>
     <epas:priority>1</epas:priority>
     <epas:number-begins-with>89</epas:number-begins-with>
     <epas:number-of-digits>1</epas:number-of-digits>
     <epas:digits-to-be-removed>0</epas:digits-to-be-removed>
     <epas:prefix>7</epas:prefix>
   </epas:rule>
   <epas:rule>
     <epas:type>2</epas:type>
     <epas:name>Directory dialing rule</epas:name>
     <epas:description>Directory dialing rule</epas:description>
     <epas:priority>1</epas:priority>
     <epas:number-begins-with>97876</epas:number-begins-with>
     <epas:number-of-digits>2</epas:number-of-digits>
     <epas:digits-to-be-removed>2</epas:digits-to-be-removed>
     <epas:prefix>98</epas:prefix>
   </epas:rule>
  </epas:get-dialing-rules-resp> 
</env:Body>
</env:Envelope>

Recent Communication History

You can use the SOAP interface to download IM history.

Adding Recent Communication History

To add a record to the recent communication history, use the add-recent-comm request. See Example 49.

Example 49 Add-Recent-Comm

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xmlns:epas="urn:cisco:epas:soap"
                  xmlns="urn:cisco:epas:soap">
   <soapenv:Header>
      <session-key>b189aa60-24e3-4e66-a3b6-d8488235ba47</session-key>
   </soapenv:Header>
   <soapenv:Body>
      <add-recent-comm>
         <timestamp>2006-03-24</timestamp>
         <type>2</type>
         <data>&lt;what&gt;xmltag-other&lt;/what&gt;</data>
      </add-recent-comm>
   </soapenv:Body>
</soapenv:Envelope> 

For the response, seeExample 50.

Example 50 Add-Recent-Comm Response

<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:xml="http://www.w3.org/XML/1998/namespace"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
  <epas:add-recent-comm-resp  xmlns:epas="urn:cisco:epas:soap" >
    <epas:record timestamp="2006-03-24" status-code="0" />
  </epas:add-recent-comm-resp>
</env:Body>
</env:Envelope>

Retrieving Recent Communication History

To retrieve recent communication history, use the get-recent-comm request. See Example 51.

Example 51 Get-Recent-Comm

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xmlns:epas="urn:cisco:epas:soap"
                  xmlns="urn:cisco:epas:soap">
   <soapenv:Header>
      <session-key> b189aa60-24e3-4e66-a3b6-d8488235ba47</session-key>
   </soapenv:Header>
   <soapenv:Body>
      <get-recent-comm/>
   </soapenv:Body>
</soapenv:Envelope> 

For the response, see Example 52.

Example 52 Get-Recent-Comm Response

<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:xml="http://www.w3.org/XML/1998/namespace"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
  <epas:get-recent-comm-resp  xmlns:epas="urn:cisco:epas:soap" >
   <epas:record>
     <epas:timestamp>2007-03-24</epas:timestamp>
     <epas:type>3</epas:type>
     <epas:data>&lt;what&gt;this is another record&lt;/what&gt;</epas:data>
   </epas:record>
   <epas:record>
     <epas:timestamp>2006-03-24</epas:timestamp>
     <epas:type>2</epas:type>
     <epas:data>&lt;what&gt;xmltag-other&lt;/what&gt;</epas:data>
   </epas:record>
   <epas:record>
     <epas:timestamp>2005-03-22</epas:timestamp>
     <epas:type>1</epas:type>
     <epas:data>&lt;what&gt;this is a record&lt;/what&gt;</epas:data>
   </epas:record>
  </epas:get-recent-comm-resp>
</env:Body>
</env:Envelope>

Licensing Features

To retrieve licensing features assigned to a user, use the get-licensing-features request. See Example 53.

Example 53 Get-Licensing-Features

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xmlns:epas="urn:cisco:epas:soap"
                  xmlns="urn:cisco:epas:soap">
   <soapenv:Header>
      <session-key> b189aa60-24e3-4e66-a3b6-d8488235ba47</session-key>
   </soapenv:Header>
   <soapenv:Body>
      <get-licensing-features/>
   </soapenv:Body>
</soapenv:Envelope> 

For the response, see Example 54.

Example 54 Get-Licensing-Features Response

<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:xml="http://www.w3.org/XML/1998/namespace"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
  <epas:get-licensing-features-resp  xmlns:epas="urn:cisco:epas:soap" >
      <epas:base>true</epas:base>
      <epas:im>true</epas:im>
      <epas:audio>false</epas:audio>
      <epas:video>false</epas:video>
  </epas:get-licensing-features-resp>
</env:Body>
</env:Envelope>

Long-Term Presence Status

Cisco Unified Presence provides a non-SIP means of publishing long-term presence status, such as out of office and on vacation. For short-term presence status, the client should still use the SIP PUBLISH method.

Publishing Long-Term Presence Status

To publish long-term-presence status, use the publish-pres-status request. See Example 55.

Example 55 Publish-Pres-Status

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xmlns:epas="urn:cisco:epas:soap"
                  xmlns="urn:cisco:epas:soap">
   <soapenv:Header>
      <session-key> b189aa60-24e3-4e66-a3b6-d8488235ba47</session-key>
   </soapenv:Header>
   <soapenv:Body>
      <publish-pres-status>
         [XML presence doc]
      </publish-pres-status>
   </soapenv:Body>
</soapenv:Envelope> 

For the response, see Example 56.

Example 56 Publish-Pres-Status Response

<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:xml="http://www.w3.org/XML/1998/namespace"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
  <epas:publish-pres-status-resp  xmlns:epas="urn:cisco:epas:soap" >
   <epas:status-code>0</epas:status-code>
  </epas:publish-pres-status-resp>
</env:Body>
</env:Envelope>

Unpublishing Long-Term Presence Status

To unpublish long-term presence status, use the unpublish-pres-status request. See Example 57.

Example 57 Unpublish-Pres-Status

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xmlns:epas="urn:cisco:epas:soap"
                  xmlns="urn:cisco:epas:soap">
   <soapenv:Header>
      <session-key> b189aa60-24e3-4e66-a3b6-d8488235ba47</session-key>
   </soapenv:Header>
   <soapenv:Body>
      <unpublish-pres-status/>
   </soapenv:Body>
</soapenv:Envelope> 

For the response, see Example 58.

Example 58 Unpublish-Pres-Status Response

<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:xml="http://www.w3.org/XML/1998/namespace"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
  <epas:unpublish-pres-status-resp  xmlns:epas="urn:cisco:epas:soap" >
   <epas:status-code>0</epas:status-code>
  </epas:unpublish-pres-status-resp>
</env:Body>
</env:Envelope>

ACL and Watchers

Cisco Unified Presence associates an Access Control List (ACL) with each presence rule. The list contains a group of watchers who are granted the privilege of watching the user (the owner of the presence rule).

Getting ACL

To get all watchers of a presence rule, use the get-acl request. See Example 59.

Example 59 Get-ACL

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xmlns:epas="urn:cisco:epas:soap"
                  xmlns="urn:cisco:epas:soap">
   <soapenv:Header>
      <session-key>396fa7d8-56eb-46ed-ad8d-39df966c85d2</session-key>
   </soapenv:Header>
   <soapenv:Body>
      <get-acl>
        <rule name="test rules"/>
        <rule name="non-existing acl343258"/>
      </get-acl>
   </soapenv:Body>
</soapenv:Envelope>

For the response, see Example 60.

Example 60 Get-ACL Response

<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:xml="http://www.w3.org/XML/1998/namespace"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
  <epas:get-acl-resp  xmlns:epas="urn:cisco:epas:soap" >
    <rule name="test rules!">
           <acl>sip:soapuser2@cisco.com</acl>
           <acl>sip:soapuser3@cisco.com</acl>
           <acl>sip:soapuser4@cisco.com</acl>
           <acl>sip:soapuser5@cisco.com</acl>
    </rule>
    <rule name="non-existing acl343258">
           Invalid Policy name
    </rule>
  </epas:get-acl-resp>
</env:Body>
</env:Envelope>

Adding ACL

To add ACL, use the add-acl request. See Example 61.

Example 61 Add-ACL

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xmlns:epas="urn:cisco:epas:soap"
                  xmlns="urn:cisco:epas:soap">
   <soapenv:Header>
      <session-key>396fa7d8-56eb-46ed-ad8d-39df966c85d2</session-key>
   </soapenv:Header>
   <soapenv:Body>
      <add-acl>
         <rule name="Kai rules!">
            <watcher>soapuser2</watcher>
            <watcher>soapuser3</watcher>
            <watcher>soapuser4</watcher>
            <watcher>soapuser5</watcher>
            <watcher>g</watcher>
            <watcher>j</watcher>
         </rule>
      </add-acl>
   </soapenv:Body>
</soapenv:Envelope>

For the response, see Example 62.

Example 62 Add-ACL Response

<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:xml="http://www.w3.org/XML/1998/namespace"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
  <epas:add-acl-resp  xmlns:epas="urn:cisco:epas:soap" >
    <epas:rule name="test rules!">
        <epas:status watcher="soapuser2">succeeded</epas:status>
        <epas:status watcher="soapuser3">succeeded</epas:status>
        <epas:status watcher="soapuser4">succeeded</epas:status>
        <epas:status watcher="soapuser5">succeeded</epas:status>
        <epas:status watcher="g">failed</epas:status>
        <epas:status watcher="j">failed</epas:status>
    </epas:rule>
  </epas:add-acl-resp>
</env:Body>
</env:Envelope>

Deleting ACL

To delete ACL, use the delete-acl request. See Example 63.

Example 63 Delete-ACL

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xmlns:epas="urn:cisco:epas:soap"
                  xmlns="urn:cisco:epas:soap">
   <soapenv:Header>
      <session-key>396fa7d8-56eb-46ed-ad8d-39df966c85d2</session-key>
   </soapenv:Header>
   <soapenv:Body>
      <delete-acl>
         <rule name="test rules!">
            <watcher>soapuser2</watcher>
            <watcher>soapuser5</watcher>
         </rule>         
      </delete-acl>
   </soapenv:Body>
</soapenv:Envelope>

For the response, see Example 64.

Example 64 Delete-ACL Response

<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:xml="http://www.w3.org/XML/1998/namespace"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
  <epas:delete-acl-resp  xmlns:epas="urn:cisco:epas:soap" >
     <rule name="test rules!">
        <epas:status watcher="soapuser2">succeeded</epas:status>
        <epas:status watcher="soapuser5">failed</epas:status>
     </rule>
  </epas:delete-acl-resp>
</env:Body>
</env:Envelope>

Calendaring

A user can set calendaring options through the Cisco Unified Presence SOAP interface.

Getting Calendaring

To get calendaring settings, use the get-calendaring request. See Example 65.

Example 65 Get-Calendaring

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xmlns:epas="urn:cisco:epas:soap"
                  xmlns="urn:cisco:epas:soap">
   <soapenv:Header>
      <session-key>2a08cef6-0f85-4ab3-871c-663269f1d49d</session-key>
   </soapenv:Header>
   <soapenv:Body>
      <get-calendaring/>
   </soapenv:Body>
</soapenv:Envelope>

For the response, see Example 66.

Example 66 Get-Calendaring Response

<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:xml="http://www.w3.org/XML/1998/namespace"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
  <epas:get-calendaring-resp  xmlns:epas="urn:cisco:epas:soap" >
     true  
 </epas:get-calendaring-resp>
</env:Body>
</env:Envelope>

Setting Calendaring

To set calendaring options, use the set-calendaring request. See Example 67.

Example 67 Set-Calendaring

<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xmlns:epas="urn:cisco:epas:soap"
                  xmlns="urn:cisco:epas:soap">
   <soapenv:Header>
      <session-key>2a08cef6-0f85-4ab3-871c-663269f1d49d</session-key>
   </soapenv:Header>
   <soapenv:Body>
      <set-calendaring>true</set-calendaring>
   </soapenv:Body>
</soapenv:Envelope>

For the response, see Example 68.

Example 68 Set-Calendaring Response

<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:xml="http://www.w3.org/XML/1998/namespace"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
  <epas:set-calendaring-resp  xmlns:epas="urn:cisco:epas:soap" >
       succeeded  
  </epas:set-calendaring-resp>
</env:Body>
</env:Envelope>

Related Documentation

The followings documents contain additional information that is related to Cisco Unified Presence:

Cisco Unified Presence Administration Guide

Cisco Unified Serviceability Administration Guide for Cisco Unified Presence

Cisco Unified Communications Operating System Administration Guide

Cisco IP Phone Messenger User Guide for Cisco Unified Presence

Obtaining Documentation, Obtaining Support, and Security Guidelines

For information on obtaining documentation, obtaining support, providing documentation feedback, security guidelines, and also recommended aliases and general Cisco documents, see the monthly What's New in Cisco Product Documentation, which also lists all new and revised Cisco technical documentation, at:

http://www.cisco.com/en/US/docs/general/whatsnew/whatsnew.html

Cisco Product Security Overview

This product contains cryptographic features and is subject to United States and local country laws governing import, export, transfer and use. Delivery of Cisco cryptographic products does not imply third-party authority to import, export, distribute or use encryption. Importers, exporters, distributors and users are responsible for compliance with U.S. and local country laws. By using this product you agree to comply with applicable laws and regulations. If you are unable to comply with U.S. and local laws, return this product immediately.

A summary of U.S. laws governing Cisco cryptographic products may be found at: http://www.cisco.com/wwl/export/crypto/tool/stqrg.html. If you require further assistance please contact us by sending email to export@cisco.com.