TOI Cisco Unity 8. 0(3) © 2006 Cisco Systems, Inc. All rights reserved. 1 TOI Cisco Unity 8. 0(3) © 2006 Cisco Systems, Inc. All rights reserved. 1

TOI Cisco Unity 8. 0(3) TOI for Unity Reader Erich Von Normann Cisco Unity TOI Cisco Unity 8. 0(3) TOI for Unity Reader Erich Von Normann Cisco Unity Development [email protected] com © 2006 Cisco Systems, Inc. All rights reserved.

Intro to Unity Connection Networking Cisco Unity 8. x and Cisco Unity Connection 8. Intro to Unity Connection Networking Cisco Unity 8. x and Cisco Unity Connection 8. x can be networked for exchange of directory information, voice messaging, call processing, and migration. This module will include information about the directory exchange and details on the Unity Reader component. There are many other TOIs for other parts of the feature. © 2006 Cisco Systems, Inc. All rights reserved. 3

Module Objectives After completing this module you will be able to: § Describe the Module Objectives After completing this module you will be able to: § Describe the design of the Unity Reader § Understand the diagnostic traces for the Unity Reader § Troubleshoot some problems related to the Unity Reader This TOI assumes that you already have some background information on the design of the Connection Networking Feature. Also, the material in this TOI is closely related to the material in the TOIs on the Unity Feeder, and Connection Reader and Feeder. © 2006 Cisco Systems, Inc. All rights reserved. 4

Agenda § Intro to Directory Exchange § Purpose of the Unity Reader § Details Agenda § Intro to Directory Exchange § Purpose of the Unity Reader § Details of the Reader Design § Reader Troubleshooting © 2006 Cisco Systems, Inc. All rights reserved. 5

Intro to Directory Exchange § Unity and Unity Connection use a Reader-Feeder paradigm for Intro to Directory Exchange § Unity and Unity Connection use a Reader-Feeder paradigm for directory exchange. – A Feeder is a website that presents directory information and voicename recordings taken from the local database – A Reader is an application that periodically accesses the remote Feeder to pull directory information and voicename recordings, and write them to the local database – The directory information is presented in an XML format – Authentication is required in order to access confidential directory information (though authentication can be unlocked for troubleshooting) – The Initial Synk (just after the 2 systems have been joined) can take awhile depending upon the directory size, but later updates will only synk down changes since the last cycle. © 2006 Cisco Systems, Inc. All rights reserved. 6

Overview of Feeder Architecture § Unity and Connection each implemented a Feeder § The Overview of Feeder Architecture § Unity and Connection each implemented a Feeder § The Feeder is a website that publishes several URLs: – /feeder/info • Provides the XML templates for the published objects • Lists all locations in the local digital network • Provides count of each object type • Lists the replication sets (used with backup / restore scenarios) – /feeder/objects • Provides the XML for each exported object, including Object. ID, Alias, Names, Extensions, SMTP Addresses, and others • By default, it requires authentication to view (TAC can disable authentication requirement for troubleshooting) • Can take various parameters (start/end USN, object type, rep set, etc. ) – /feeder/object//voicename • Provides the wave data for an object’s recorded name (if any) • Admin can specify the codec in which the wave data is presented © 2006 Cisco Systems, Inc. All rights reserved. 7

Overview of Reader Architecture § Unity and Connection each implemented a Reader § The Overview of Reader Architecture § Unity and Connection each implemented a Reader § The Reader is a Unity service that pulls down Connection’s feeds and writes the objects to SQL and AD – Periodically (default is every 15 minutes), it will request all new objects, meaning all objects whose USN is above the previous high-water mark. – Then, it parses the object feed, and writes each new, changed, or deleted object into its local SQL database. – Next, it writes the object to Active Directory, which will in turn replicate each object to other Unity servers in the digital network (who synk the objects into their local SQL databases). – If an object’s voicename has changed, it will request the voicename from the Cxn Feeder, and write that it to SQL and AD as well. – The Reader supports several Admin actions from the Unity SA, such as: • Resynk now (rather than waiting until the next interval) • Resynk all (starting at USN 0 rather than the high-water mark) • Unjoining (to delete all imported objects and tear down the joined network) © 2006 Cisco Systems, Inc. All rights reserved. 8

Limitations of Unity Connection Networking § Directory Exchange is only supported on the Primary Limitations of Unity Connection Networking § Directory Exchange is only supported on the Primary Unity Server in a Unity Failover Pair. – No Directory Exchange will happen when the Secondary Unity Server is active (ie, the system is “failed over”) – When the Primary Unity Server becomes active (ie, the system has “failed back”), Directory Exchange will resume. § Server Hardware in the Platform Overlay One category (ie, 7825 s running MSDE) do not scale well to large combined Unity and Unity Connection directories. § We highly recommend that larger sites use Platform Overlay Two or Three (ie, 7835 s or 7854 s running full MS SQL Server) for their Unity Site Gateway and other servers in their Unity digital network. © 2006 Cisco Systems, Inc. All rights reserved. 9

Info Feed URL requests The Info Feed does not require authentication and always take Info Feed URL requests The Info Feed does not require authentication and always take the following URL format: http[s]: ///feeder/info The Info Feed is used both during the join process from the Unity SA, and at run-time by the Reader each time it does a synk cycle. A sample Info Feed response will be shown over the next few slides. © 2006 Cisco Systems, Inc. All rights reserved. 10

Info Feed Response (part 1) Info Feed Header <info max. Objects. Per. Request= Info Feed Response (part 1) Info Feed Header Site Gateway (Bridgehead) Replication Sets (multiple if backup/restore) . . . Unity ignores Object. Counts (Cxn has DB Limits) © 2006 Cisco Systems, Inc. All rights reserved. 11

Info Feed Response (part 2) <attributes> Object Definitions Unity doesn’t use these 3 <searchspace>. Info Feed Response (part 2) Object Definitions Unity doesn’t use these 3 . . . . . . . . . Lists condensed for brevity (similar to users) . . . User Object Definition Single-value Attributes A multi-value Attribute . . . Others omitted for brevity © 2006 Cisco Systems, Inc. All rights reserved. 12

Objects Feed URL requests The object feed URL can take several optional parameters after Objects Feed URL requests The object feed URL can take several optional parameters after the ? § start= - USN at which to begin (default is 0 if not specified) § end= - USN at which to stop (default is last USN if not specified) § object. Type= - can be user or list (default is all if not specified) § rs= - Replication Set to use (default is current if not specified) For example, to ask for just users starting at USN 100, use this URL: http[s]: ///feeder/objects? start=100&object. Type=user To ask for both users and lists from USN 200 to 1000, use this URL: http[s]: ///feeder/objects? start=200&end=1000&object. Type=user&object. Type=list © 2006 Cisco Systems, Inc. All rights reserved. 13

Objects Feed Response (part 1) USN of last object The objects feed will always Objects Feed Response (part 1) USN of last object The objects feed will always have a header block like the following: Limit per request This header will be followed by a number of objects, each described in an XML format. A sample object will be shown over the next few slides. Objects in this response © 2006 Cisco Systems, Inc. All rights reserved. 14

Objects Feed Response (part 2) Here’s the beginning of an object from the objects Objects Feed Response (part 2) Here’s the beginning of an object from the objects feed: Object Header (Object. ID, Type, and USN) Location Object. ID Recorded Voice. Name © 2006 Cisco Systems, Inc. All rights reserved. Unity uses Local. Part of Gateway. Address and Site Gateway’s SMTP Domain 15

Can have multiple SMTP Addresses on Cxn" src="https://present5.com/presentation/bfe0f40eaf5cf9a530978557dad0a2a6/image-17.jpg" alt="Objects Feed Response (part 4) Can have multiple SMTP Addresses on Cxn" /> Objects Feed Response (part 4) Can have multiple SMTP Addresses on Cxn Unity uses Local. Part of Primary SMTPAddr for Alias Alternate names

© 2006 Cisco Systems, Inc. All rights reserved. 17

Voice. Name Feed URL requests The Info Feed does not require authentication and takes Voice. Name Feed URL requests The Info Feed does not require authentication and takes the following URL format: http[s]: ///feeder/object//voicename If the Reader notices an object’s voicename has changed (either because it’s a new object, it’s gone from NULL to non-NULL, or otherwise changed), Unity will make a request to the Voice. Name Feed. For example, if object b 9 c 007 ae-defa-4 dd 2 -9 ae 4 -4 e 23 a 8328 c 7 d now has voicename ed 943 f 03 -dc 4 e-4018 -8 ca 7 -492 ad 58 b 24 d 2. wav, Unity will use this URL to retrieve it: http[s]: ///feeder/object/b 9 c 007 ae-defa-4 dd 2 -9 ae 4 -4 e 23 a 8328 c 7 d/voicename The Voice. Name will be returned as wave data in the codec specified on the Connection server’s SA page. © 2006 Cisco Systems, Inc. All rights reserved. 18

Client of Cxn Feeder: Periodically requests Feeds, Parses XML for Objects, Hands Objects to Client of Cxn Feeder: Periodically requests Feeds, Parses XML for Objects, Hands Objects to Dir. Writer Unity Reader Architecture Libraries to support Authentication, Signing, and Verifying Feeds. Control Module: Starts/Stops Service, Responds to Config Changes, Resynk Requests, etc. Writes to SQL: Receives Objects from Client, Writes them to SQL. Success Pass to Dir. Synker Failure Re-queue at Client Writes to Active Directory: Receives Objects from Dir. Writer, Writes them to AD. Success DONE! Failure Re-queue at Client Voice. Names: If Dir. Writer finds a change, it makes a request to Client requests Voice. Name Feed, then hands to Dir. Writer/Synker. © 2006 Cisco Systems, Inc. All rights reserved. 19

Unity Reader Threading There are 5 threads active within the Unity Reader: § Reader. Unity Reader Threading There are 5 threads active within the Unity Reader: § Reader. Admin. Thread in CDir. Reader – Responds to Config Changes, Resynk Requests, & Writes Perf Counts/Times § Object. Read. Thread in CFeeder. Client – Periodically requests Info & Objects Feeds, and parses the XML – Pushes parsed Objects onto Dir. Writer queue § Dir. Writer. Thread in CDir. Writer – Pops Objects off its queue, and writes them to SQL – Pushes Objects onto either Dir. Synker queue (Success) or Client. Retry queue (Failure) § Dir. Synker. Thread in CDir. Synker – Pops Objects off its queue, and writes them to AD – Pushes Objects onto Client. Retry queue (Failure) – Also pops voicenames off a queue and writes them to AD § Wave. Read. Thread in CFeeder. Client – Pops voicename requests off a queue, and downloads the file & saves to disk. – Writes the change to SQL, then pushes the change onto Dir. Synker queue © 2006 Cisco Systems, Inc. All rights reserved. 20

Mapping Cxn Location Attributes to Unity When the Unity Reader imports a Connection Location, Mapping Cxn Location Attributes to Unity When the Unity Reader imports a Connection Location, it maps Cxn Info Feed attributes to Unity SQL data. Some are non-trivial. Unity SQL value Mapping from Cxn Info Feed attribute Location. Object. ID id Smtp. Domain Site Gateway’s Smtp. Domain (even for Member Servers) Alias, Text. Name Alias Home. Server Unity Machine Name (not the Cxn Machine Name) Dmtf. Access. Id For Site Gateway: “BH_” + 4 random hex-digits. Example: “BH_E 08 E” For Others: Site Gateway ID + 4 sequential digits. Example: “BH_E 08 E_0001”, “BH_E 08 E_0002”, etc. Destination. Type 10 (new type for Unity Connection Networking) Default. Partition. Object. ID Unity. Partition. Object. ID Remote. Server © 2006 Cisco Systems, Inc. All rights reserved. Host. Address of Cxn Server 21

Mapping Cxn User Attributes to Unity When the Unity Reader imports a Connection User, Mapping Cxn User Attributes to Unity When the Unity Reader imports a Connection User, it maps Cxn Objects Feed attributes to Unity SQL data. Some are non-trivial. Ø Note that other attributes will follow the Subscriber. Template chosen in Unity SA. Unity SQL value Mapping from Cxn Objects Feed attribute Subscriber. Object. ID id (in the object header, not an attribute) Alias “UCI_” + Local-Part-of-SMTP-Addr + “_” + Location-Dial. ID Example: “UCI_cxndude_BH-E 08 E” Remote. Address “UCI: ” + Location-Dial. ID + “_” + Local-Part-of-Gateway-Addr Example: “UCI: BH-E 08 E_b 9 c 007 ae-defa-4 dd 2 -9 ae 4 -4 e 23 a 8328 c 7 d” Display. Name + Display. Name-Suffix-From-Unity-SA Example: “Connection Dude - Voicemail” Subscriber. Type 10 (new type for Unity Connection Networking) Location. Object. ID First. Name; Last. Name List. In. Directory Hidden. In. Directory False © 2006 Cisco Systems, Inc. All rights reserved. 22

Mapping Cxn DL Attributes to Unity When the Unity Reader imports a Connection DL, Mapping Cxn DL Attributes to Unity When the Unity Reader imports a Connection DL, it maps Cxn Objects Feed attributes to Unity SQL data. Some are non-trivial. Unity SQL value Mapping from Cxn Objects Feed attribute System. DList. Object. ID id (in the object header, not an attribute) Alias, Uid “UCI_” + Local-Part-of-SMTP-Addr + “_” + Location-Dial. ID Example: “UCI_cxnlist_BH-E 08 E” Administrator. Object. ID From Unity SA: System. Configuration. Substitute. Objects. Owner Default is EAdmin. Display. Name + Display. Name-Suffix-From-Unity-SA Example: “Connection List - Voicemail” Location. Object. ID Hidden. In. Directory False Addr. Type EX © 2006 Cisco Systems, Inc. All rights reserved. 23

A Note on Imported Distribution Lists When the Unity Reader imports a Connection Distribution A Note on Imported Distribution Lists When the Unity Reader imports a Connection Distribution List, it actually creates 2 objects. § A Distribution. List object (stored in the SQL Distribution. List table) § An internal/hidden DL Contact object (stored in the SQL Subscriber table) Since we don’t import Distribution List membership from Connection, the Unity DL object representing the Cxn DL contains only this internal DL Contact object. A Unity user may address to the DL object like any other Unity DL (same scoping rules, etc. ). But messages sent to it are routed through the internal DL Contact object. The Connection SMTP network is responsible for routing the message to the recipients. A DL Contact alias is prefixed with “UCIDL_” rather than “UCI_”. © 2006 Cisco Systems, Inc. All rights reserved. 24

Importing Connection Extensions § For each User or DL that Unity imports from Cxn, Importing Connection Extensions § For each User or DL that Unity imports from Cxn, it must classify all extensions as Primary, Alternate, Duplicate, or Out-of-Partition – First, any Extension whose Unity. Partition. Object. ID does not match the one defined for the Location is marked as Out-of-Partition, and thus not imported. – Next, of the remaining Extensions, any Extension that conflicts with an existing Extension is marked as Duplicate, and thus not imported. – Finally, the remaining Extensions are sorted in order by Index. The one with the lowest Index is the Primary Extension, and all others are Alternates. § Note the following consequences of this classification algorithm: – It is quite possible that all Extensions for an imported User or DL will be either Out-of-Partition or Duplicate, and thus not addressable by DTMF. – If multiple Cxn Objects have the same Extension defined, the one at the lowest USN will get it (can appear random to the Admin). – If a Cxn Object’s Primary Extension is a Duplicate or Out-of-Partition, then his Primary Extension on Unity will be one of his Alternate Extensions from Cxn. § Reason for this complexity: Cxn has Calling Search Spaces and Partitions, but Unity does not. – Cxn Admin can define a Unity Partition and create unique Alternate Extensions © 2006 Cisco Systems, Inc. All rights reserved. 25

Authentication and Verification § The Feeders require Authentication before they will serve the Objects Authentication and Verification § The Feeders require Authentication before they will serve the Objects Feed. The Feeder returns HTTP 4 xx if Auth fails. § The Feeders Sign the Objects Feed and Voice. Names when serving them, and the Readers must Verify those Signatures. § Both Unity and Connection create Authentication Certificates, and they share their public keys during the Join process. § Authentication of the Objects Feed is to ensure that an unauthorized entity can’t access confidential directory information. § Signing the Objects Feed and Voice. Names is to ensure that an unauthorized entity can’t modify them (man-in-the-middle). § Standard RSA public-key encryption with 2048 -bit keys is used for both Authentication and Signing/Verification. § This is independent of whether HTTPS or HTTP is used between Unity and Connection, and note that HTTPS also uses different certificates than are used here. © 2006 Cisco Systems, Inc. All rights reserved. 26

SQL Changes There are several new SQL tables to support the Reader § Interop. SQL Changes There are several new SQL tables to support the Reader § Interop. Feeder: One row per Connection Feeder (limited to 1 row in Unity 8) – Triggers on SQL table notify Reader of config changes, resynk requests, etc. – Data includes: Machine Name, IP Addr, SSL Settings, Feed-Read Interval, Cxn Authentication Cert, Last. USN, Object & Change Counts, and if DLs and Voice. Names should be requested. § Interop. Certificate: Contains the Unity Authentication Cert (singleton). § Interop. Location: For Cxn Site Gateway, this links its row in the Location table to the Interop. Feeder that correponds to it. Also stores the Unity Partition Object. ID. § Interop. Subscriber: Adjunct to Subscriber table; stores the Voice. Name filename, and whether it’s a DL Contact. § Interop. Extension: Stores all extensions for Cxn users and lists; used to determine which are primary, alternate, duplicate, and out-of-partition. § Failed. USN: When the Reader is stopped or paused, this stores the USNs which should be requested when it starts back up (retry queue). § Pending. Voice. Name: When the Reader is stopped or paused, this stores the Voice. Names which should be requested when it starts back up. © 2006 Cisco Systems, Inc. All rights reserved. 27

Troubleshooting § The Unity Reader is a reasonably complicated component and can encounter problems Troubleshooting § The Unity Reader is a reasonably complicated component and can encounter problems in several areas: – Responding to Config Changes and Resynk Requests – HTTP[S] Reads of the Cxn Info and Objects Feeds – HTTP[S] Reads of Cxn Voice. Names – Authentication & Verification of Objects Feed & Voice. Names – Reading from and Writing to SQL – Writing to Active Directory © 2006 Cisco Systems, Inc. All rights reserved. 28

Troubleshooting Techniques There a number of methods that can be used and interfaces that Troubleshooting Techniques There a number of methods that can be used and interfaces that can be examined to diagnose problems: § Application Event. Log messages § Unity diagnostic traces § Using a web browser to access the feeds § Looking directly at SQL tables § Looking directly at Active Directory objects § Examining installed certificates § Tweaking throttling parameters § Doing a Resynk § Unjoining and rejoining the network § Troubleshooting the Connection Feeder (a different TOI) © 2006 Cisco Systems, Inc. All rights reserved. 29

Diagnostic Traces The Unity Reader has several micro trace levels in the Cu. Dir. Diagnostic Traces The Unity Reader has several micro trace levels in the Cu. Dir. Reader category in Unity Diagnostic Tool (UDT): § 0 = High Level Methods Entry/Exit of the major/interface functions § 1 = Mid Level Methods Entry/Exit of secondary functions § 2 = Low Level Methods Entry/Exit of low-level functions (can be spammy) § 3 = Errors All serious failures (HTTP, Auth, SQL, AD, etc. ) § 4 = Warnings Non-fatal but notable events § 5 = Information General Explanatory traces § 6 = XML Documents The entire raw Info & Objects Feeds § 7 = Dump Objects The parsed representation of the Info & Object Feeds § 8 = SQL Queries Every SQL ad-hoc query & sproc § 9 = Db. Sync to AD Every attempt to write to AD § 10 = Security and Authentication Details of Authentication & Verification These all appear in the diag_Cu. Dir. Reader_* log file. Enabling all trace levels except level 2 will provide good all-around tracing. Note that the log file might be large on the initial synk! © 2006 Cisco Systems, Inc. All rights reserved. 30

Unlocking Objects Feed § By default, the Objects Feed requires Authentication, but you can Unlocking Objects Feed § By default, the Objects Feed requires Authentication, but you can unlock it so that it can be viewed in a web browser. – Authentication of Connection’s Objects Feed is controlled by the bypass. Authentication flag in the Feeder’s web. xml. § A quick method to unlock it: login into the shell as root, and type sed -i s/false/true/ $CATALINA_HOME/webapps/feeder/WEB-INF/web. xml § Reverse the false and true in the sed command to lock it back up. – Authentication of Unity’s Objects Feed is controlled by the SQL value Interop. Feeder. Use. Auth. Via SQL Management Studio, change it to false to unlock it, and change it back to true to lock it back up. § Once the Objects Feed is unlocked, you can specify the URL command arguments previously discussed (start, end, objects. Type, etc. ) when typing the URL into the web browser. – Example: https: //sea-vm-ks-10/feeder/objects? start=100&object. Type=user § Note that normal directory synk operation will fail if Authentication is only disabled in one direction, so make sure to unlock both, and lock it back up after troubleshooting is completed. © 2006 Cisco Systems, Inc. All rights reserved. 31

Event. Log Messages The Reader has many Event. Log Messages such as: § Service Event. Log Messages The Reader has many Event. Log Messages such as: § Service starts and stops, indicating success or failure § Joins to and unjoins from a Cxn Feeder § Pausing and resuming the read from a Cxn Feeder § Failure to read from the Info or Objects Feed § Failure to write a location or object to SQL or AD § Warning about duplicate extensions § Failure to download a Voice. Name § Failure to Sign an Objects Feed Request or Verify the Feed or a Voice. Name § Warning if the previous service stop was not graceful (service crash or system failure), since the directory information might be inaccurate in that case § An error message if the Cxn Site Gateway has changed. It cannot be changed without doing a network unjoin and then a rejoin to the new Site Gateway. © 2006 Cisco Systems, Inc. All rights reserved. 32

SQL Interop. Feeder Table View the Interop. Feeder Table with SQL Management Studio. Column SQL Interop. Feeder Table View the Interop. Feeder Table with SQL Management Studio. Column Name Source Description Object. ID Cxn Join file Unique ID for the Network Display. Name Cxn Join file Network Name, for display purposes Remote. Address Cxn Join file DNS name or IP Address, used for HTTP[S] Connect Remote. Public. Cert Cxn Join file Used for Authentication and Verification Use. Https Unity SA Whether HTTPS is used Allow. Self. Signed. Certs Unity SA If HTTPS, whether self-signed certs are OK Ignore. Cert. Errors Unity SA If HTTPS, whether some types of cert errors are ignored Synk. Enabled Unity SA Whether Reader should be paused or not Synk. Lists Unity SA Whether DLs should be requested from Cxn Synk. Voice. Names Unity SA Whether Voice. Names should be requested from Cxn Subscriber. Template. Object. ID Unity SA Subscriber Template for imported Cxn users Resynk. Type Unity SA 0 = none, 1 = now, 2 = full, 3 = clear voicenames Object. Feed. Interval Unity SA How often Reader should request feed (in milliseconds) Last. USN Reader Current High-water Mark from Cxn Objects Feed © 2006 Cisco Systems, Inc. All rights reserved. 33

Cxn Location Display. Name Finding Cxn Locations in AD Cxn Location Dial. ID Type Cxn Location Display. Name Finding Cxn Locations in AD Cxn Location Dial. ID Type 10 = Cxn Networking Unity Site Gateway is Cxn Location Home Server Cxn Server IP Address 1) Run LDP. exe 2) Do FileBind, then ViewTree. 3) Expand Root > Unity OU > Locations OU. 4) Unity & Cxn Locations should be visible. © 2006 Cisco Systems, Inc. All rights reserved. 34

Similar to prev slide, but Expand Users node Finding Cxn User in AD Cxn Similar to prev slide, but Expand Users node Finding Cxn User in AD Cxn User Display. Name Cxn User Target Address Cxn User Alias Cxn User Extensions © 2006 Cisco Systems, Inc. All rights reserved. 35

Viewing Public Keys in SQL The Public Keys for Unity and Cxn are stored Viewing Public Keys in SQL The Public Keys for Unity and Cxn are stored in SQL (base 64 encoded). The complete Unity certificate (including Private Key) are stored in the OS cert store (next slide). Local Unity Cert Remot e Cxn Cert © 2006 Cisco Systems, Inc. All rights reserved. 36

Viewing Local Cert in OS Store This is expected – we use self-signed certs. Viewing Local Cert in OS Store This is expected – we use self-signed certs. If no Private Key, you’ve probably got a permissions problem with the account. 1) Run mmc. exe 2) Do FileAdd/Remove Snap-in 3) Add Certificates for the Local Computer Account 4) Expand the Certificates node 5) Right-click Open on the cert © 2006 Cisco Systems, Inc. All rights reserved. 37

Reader Throttling Parameters The Unity Reader has several throttling parameters in SQL in the Reader Throttling Parameters The Unity Reader has several throttling parameters in SQL in the Configuration Table – 4 groups of 2 parameters. Defaults: Pause 50 ms after each operation (object parse, SQL write, AD write, or voicename synk) These parameters are not exposed via a GUI since they should rarely if ever need to be adjusted. Parameter Name Default Description Object. Parse. Limit 1 After X objects are parsed from the Objects Feed, … Object. Parse. Interval 50 … Pause Y milliseconds before parsing the next one. Object. Write. Limit 1 After X objects are written to SQL, … Object. Write. Interval 50 … Pause Y milliseconds before writing the next one. Object. Synk. Limit 1 After X objects are written to AD, … Object. Synk. Interval 50 … Pause Y milliseconds before writing the next one. Stream. Write. Limit 1 After X voicenames are read from Cxn, … Stream. Write. Interval 50 … Pause Y milliseconds before reading the next one. © 2006 Cisco Systems, Inc. All rights reserved. 38

Unity Resynks § By default, Unity will do pull directory changes every 15 minutes. Unity Resynks § By default, Unity will do pull directory changes every 15 minutes. § In Unity SA, you can request immediate resynks of several types: – “Synk Now”: Synk from high-water mark USN immediately (rather than wait til the next 15 minutes interval) – “Total Synk”: Synk starting from USN 0 immediately, which means all Connection objects will be pulled, not just the recently change ones. – “Clear Voice Names”: This will delete all imported voicenames, and clear Unity’s cache of their filenames (SQL Interop. Subscriber. Imported. Voice. Name). § A normal “Total Synk” will only pull down an object’s voicename if it has changed. The Objects Feed lists the filename, and Unity will only pull down the voicename if the filename has changed. So, if you want to also pull down all voicenames when you do a “Total Synk”, you must first do a “Clear Voice Names” before doing the “Total Synk”. © 2006 Cisco Systems, Inc. All rights reserved. 39

Unjoining & Deleting a Network § Once a Unity Connection Network has been joined, Unjoining & Deleting a Network § Once a Unity Connection Network has been joined, it can later be unjoined. This will do the following: – The Reader will begin deleting all imported users and DLs from SQL and AD. – The Reader will write informational messages to the eventlog when it starts deleting the objects and when it’s done doing so. – Once all of the objects are deleted, the un-join is complete. § Once the Network is unjoined, you can do the following: – Make configuration changes such as disabling synking of DLs – Delete the Network. – Re-join the Network. § The reason for the distinction between unjoining and deleting a network is so that cross-box settings can be retained in can you later want to re-join. Cross-box settings to the Cxn locations are deleted if you delete the network. © 2006 Cisco Systems, Inc. All rights reserved. 40

Diagnostic Log File Examples § The next few slides will show annotated diagnostics from Diagnostic Log File Examples § The next few slides will show annotated diagnostics from the Unity Reader service. § An earlier slide described what the various traces levels are for. In these examples, all trace levels except level 2 are enabled. § For brevity and readability, the trace output has been edited to remove the less pertinent information. § Recall that there are several threads involved in reading objects from Connection and writing them to SQL & AD, so following an object thru the diagnostic log file can be tricky. – Hints: Search for the USN, Object. ID, and/or Alias. – To simplify things, the examples will break up the threads rather than have them interwoven. § Excerpts from the Sql. Sync_*. txt logfiles are included as well, to show more details on the synks to AD. © 2006 Cisco Systems, Inc. All rights reserved. 41

Start of a Feed Read Log for Info Feed Read First, Info Feed is Start of a Feed Read Log for Info Feed Read First, Info Feed is Read Server Name and URL 14: 29: 296 [1112] CFeeder. Client: : Read. From. Feeder entered 14: 29: 297 [1112] CFeeder. Client: : Read. Info entered 14: 29: 297 [1112] CFeeder. Client: : Get. Xml. Doc: Attempting to read XML Document from Feeder 'sea-vm-ks-10' (sea-vm-ks-10. cisco. com: 0) at Url '/feeder/info' 14: 24: 406 [1112] CFeeder. Client: : Send. Request. And. Receive. Response: Server. Headers: 'HTTP/1. 1 200 OK. . . ‘ HTTP 200 OK = SUCCESS 14: 24: 406 [1112] From Feeder 'sea-vm-ks-10' (sea-vm-ks-10. cisco. com: 0) Retrieved XML Document (size 2736) from URL /feeder/info Dump of Raw Info Feed 14: 24: 407 [1112] 14: 24: 406 [1112] Raw Info Feed is Parsed 14: 24: 406 [1112] 14: 24: 407 [1112] CFeeder. Client: : Read. Info exited with 0 x 0000 14: 24: 406 [1112] CFeeder. Client: : Parse. Info entered Dump of Parsed Info Feed 14: 24: 422 [1112] Dumping Info Feed for '2010 -01 -22 14: 24: 44' (Max. Objs=500 Product=Unity Connection/8. 0. 0. 270 Version=1. 0) Push Location to Dir. Writer 14: 24: 422 [1112] CDir. Info: : Parse exited with 0 x 0000 14: 24: 421 [1112] CDir. Writer: : Push. Location entered Done Reading Info Feed 14: 24: 422 [1112] CDir. Writer: : Push. Location exited with 0 x 0000 14: 24: 438 [1112] CFeeder. Client: : Parse. Info exited with 0 x 0000 © 2006 Cisco Systems, Inc. All rights reserved. 42

Start of Object Feed Read Log for Objects Feed Read 14: 24: 437 [1112] Start of Object Feed Read Log for Objects Feed Read 14: 24: 437 [1112] CFeeder. Client: : Read. Objects entered Server Name and URL Sign Request with Unity Cert & Hash of URL 14: 24: 437 [1112] CFeeder. Client: : Get. Xml. Doc: Attempting to read XML Document from Feeder 'sea-vm-ks-10' (sea-vm-ks-10. cisco. com: 0) at Url '/feeder/objects? object. Type=user&rs=e 82 c 3 c 01 -cbec-4 c 98 -87 c 9 -0 c 25521 a 0 b 30' Signature is Generated 14: 24: 438 [1112] CRead. Authenticator: : Sign entered 14: 24: 437 [1112] CRead. Authenticator: : Sign: calling IAuth: : Sign(Local. Cert 'MIICuj. . . ' Hash '23 -EF. . . ') 14: 24: 438 [1112] CRead. Authenticator: : Signature from IAuth: : Sign is 'ak 7 v. . . ' Add Auth Headers to Request 14: 24: 437 [1112] CRead. Authenticator: : Sign exited with 0 x 0000 14: 24: 437 [1112] CFeeder. Client: : Set. Request. Options: Assigning Auth Headers 'XCisco-Authenticator-Identity: EKV-W 2 K 3 -1 X-Cisco-Authenticator: ak 7 v. . . XHTTP 200 OK = SUCCESS Cisco-Authenticator-Salt: Oa 9 a. . . ' 14: 24: 44: 593 [1112] CFeeder. Client: : Send. Request. And. Receive. Response: Server. Headers: 'HTTP/1. 1 200 OK. . . ' Extract Signature & Salt 14: 24: 44: 594 [1112] CFeeder. Client: : Send. Request. And. Receive. Response: Signature='r. Vo. X. . . ' Salt='Snk. D. . . ' Verify Response with Cxn 14: 24: 44: 593 [1112] CRead. Authenticator: : Verify entered Cert, Hash of Data, & Sig 14: 24: 44: 594 [1112] CRead. Authenticator: : Verify. Internal: calling IAuth: : Verify(Public. Cert 'MIIC 3 z. . . ' Hash 'F 1 -40. . . ' Signature 'r. Vo. X. . . ') 14: 24: 44: 734 [1112] CRead. Authenticator: : Verify. Internal: IAuth: : Verify(2528 bytes) returned a signature match Signature is Verified 14: 24: 44: 735 [1112] CRead. Authenticator: : Verify exited with 0 x 0000 14: 24: 44: 734 [1112] CFeeder. Client: : Download. And. Verify. Response: Authentication succeeded Authentication Succeeded! © 2006 Cisco Systems, Inc. All rights reserved. 43

Dumping Raw Objects Feed Log for Objects Feed Read (part 2) 14: 24: 44: Dumping Raw Objects Feed Log for Objects Feed Read (part 2) 14: 24: 44: 734 [1112] From Feeder 'sea-vm-ks-10' (sea-vm-ks-10. cisco. com: 0) Retrieved XML Document (size 2528) from URL /feeder/objects? object. Type=user&rs=e 82 c 3 c 01 -cbec-4 c 98 -87 c 9 -0 c 25521 a 0 b 30 14: 24: 44: 735 [1112] 14: 24: 44: 734 [1112] 14: 24: 44: 735 [1112] 14: 24: 44: 734 [1112] 14: 24: 44: 735 [1112] Begin Parsing Objects Feed 14: 24: 44: 734 [1112] CFeeder. Client: : Read. Objects exited with 0 x 0000 14: 24: 44: 735 [1112] CFeeder. Client: : Parse. Objects entered 14: 24: 44: 796 [1112] CDir. Writer: : Push. Dir. Object entered Push Object to Dir. Writer 14: 24: 44: 797 [1112] CDir. Writer: : Push. Dir. Object exited with 0 x 0000 14: 24: 44: 796 [1112] CFeeder. Client: : Throttle: Pausing 50 milliseconds every 1 objects Throttling – 50 ms after each 14: 24: 44: 843 [1112] CFeeder. Client: : Parse. Objects exited with 0 x 0000 14: 24: 44: 875 [1112] CFeeder. Client: : Read. From. Feeder: sea-vm-ks-10 (sea-vm-ks 10. cisco. com: 0) - Objects. Parsed=2 Total. Parsed=2 14: 24: 44: 876 [1112] CFeeder. Client: : Read. From. Feeder exited with 0 x 0000 Feed Read Complete © 2006 Cisco Systems, Inc. All rights reserved. 44

Dir. Writer Thread wakes up Log for Writing Location to SQL Pops an Object Dir. Writer Thread wakes up Log for Writing Location to SQL Pops an Object off its Queue 14: 24: 438 [7952] CDir. Writer: : Write. Data entered Dumps Parsed Location 14: 24: 437 [7952] CDir. Writer: : Pop. Synk. Object entered 14: 24: 438 [7952] CDir. Writer: : Pop. Synk. Object exited with TRUE Checks if it’s an Add or Modify 14: 24: 437 [7952] Dumping Location: Name=sea-vm-ks-10 Id=86 e 3 d 148 -551 a-4 f 8 c-bd 33 d 5 d 3275 fd 05 b Host. Addr=10. 93. 236. 29 Smtp. Domain=sea-vm-ks-10. cisco. com Bridgehead=TRUE Version=1. 0 Dial. ID=BH-E 08 E Check if Partition Changed 14: 24: 437 [7952] CObj. Writer: : Write. Location entered 14: 24: 453 [7952] CObj. Writer: : Object. Exists: Calling SProc Call csp_Location. Modify sp_Find. Location. By. Guid. String(@str. Guid=86 e 3 d 148 -551 a-4 f 8 c-bd 33 -d 5 d 3275 fd 05 b) 14: 24: 454 [7952] CObj. Writer: : Modify. Location: Executing Ad-hoc Query 'SELECT Default. Partition. Object. Id FROM Interop. Location WHERE Location. Object. Id=? ' (Params '86 e 3 d 148 -551 a-4 f 8 c-bd 33 -d 5 d 3275 fd 05 b') Push Location to Dir. Synker 14: 24: 453 [7952] CObj. Writer: : Modify. Location: Calling SProc csp_Location. Modify(@Location. Object. Id='86 e 3 d 148 -551 a-4 f 8 c-bd 33 -d 5 d 3275 fd 05 b' @Smtp. Domain='sea-vm-ks-10. cisco. com' @Alias='sea-vm-ks-10' @Text. Name='sea-vm-ks 10' @Home. Server='EKV-W 2 K 3 -1' @Default. Partition. Object. Id='251 e 317 e-5 d 7 d-468 c-b 0 b 45 d 8060 a 96 cd 4' @Remote. Server='10. 93. 236. 29' ) 14: 24: 468 [7952] CObj. Writer: : Write. Location exited with 0 x 0000 No more Objects in Queue 14: 24: 468 [7952] CDir. Synker: : Push. Location entered 14: 24: 469 [7952] CDir. Synker: : Push. Location exited with 0 x 0000 14: 24: 468 [7952] CDir. Writer: : Pop. Synk. Object entered 14: 24: 469 [7952] CDir. Writer: : Pop. Synk. Object exited with FALSE 14: 24: 468 [7952] CDir. Writer: : Write. Data exited with 0 x 0000 Dir. Writer is done for now © 2006 Cisco Systems, Inc. All rights reserved. 45

Dir. Synker Thread wakes up Log for Writing Location to AD 14: 24: 469 Dir. Synker Thread wakes up Log for Writing Location to AD 14: 24: 469 [6988] CDir. Synker: : Synk. Data entered Pops an Object off its Queue Synks the Location to AD 14: 24: 468 [6988] CDir. Synker: : Pop. Synk. Object entered 14: 24: 469 [6988] CDir. Synker: : Pop. Synk. Object exited with TRUE 14: 24: 469 [6988] CDir. Synker: : Synk. One. Location: Synking Location. ID=86 e 3 d 148 -551 a 4 f 8 c-bd 33 -d 5 d 3275 fd 05 b (Name=sea-vm-ks-10 Host. Addr=10. 93. 236. 29) to AD 14: 24: 44: 797 [6988] CDir. Synker: : Synk. One. Location exited with 0 x 0000 14: 24: 44: 796 [6988] CDir. Synker: : Pop. Synk. Object entered No more Objects in Queue 14: 24: 44: 797 [6988] CDir. Synker: : Pop. Synk. Object exited with FALSE 14: 24: 44: 796 [6988] CDir. Synker: : Synk. Data exited with 0 x 0000 Dir. Synker is done for now © 2006 Cisco Systems, Inc. All rights reserved. 46

Synk Starts (0 x 8 = Location) Sql. Sync Log for Writing Location Synk Synk Starts (0 x 8 = Location) Sql. Sync Log for Writing Location Synk Starts Fri Jan 22 14: 24: 44. 468 CDb. Sync: : Sync. Commit Called. ul. Sync. Items: 0 x 8 Db. Sync. cpp (line 279) Fri Jan 22 14: 24: 44. 468 Entering Sync. Locations Db. Sync. cpp (line 396) Fri Jan 22 14: 24: 44. 484 Synking Location sea-vm-ks-10 Db. Sync. cpp (line 461) Fri Jan 22 14: 24: 44. 640 Found object in GC by Directory. Id. Connector. Client. Base. cpp (line 342) Location Exists – Modify it Fri Jan 22 14: 24: 44. 640 Found Object in Domain DOM-EKV-W 2 K 3 -1. sea-alphaucbu. cisco. com Connector. Client. Base. cpp (line 248) Fri Jan 22 14: 24: 44. 656 1912) No voice name data for object. Db. Sync. cpp (line Fri Jan 22 14: 24: 44. 671 (line 512) Entering Modify. Dir. Object Fri Jan 22 14: 24: 44. 765 (line 529) Exiting Modify. Dir. Object Fri Jan 22 14: 24: 44. 796 (line 628) Exiting Sync. Locations, returning 0 x 0 Connector. Client. Base. cpp Done Location Modify Connector. Client. Base. cpp Db. Sync. cpp Location Synk Succeeds © 2006 Cisco Systems, Inc. All rights reserved. 47

Dir. Writer Thread wakes up Log for Writing User to SQL 14: 24: 44: Dir. Writer Thread wakes up Log for Writing User to SQL 14: 24: 44: 797 [7952] CDir. Writer: : Write. Data entered Pops an Object off its Queue Throttling between SQL Writes 14: 24: 44: 796 [7952] CDir. Writer: : Pop. Synk. Object entered 14: 24: 44: 797 [7952] CDir. Writer: : Pop. Synk. Object exited with TRUE Dumps Parsed User 14: 24: 44: 796 [7952] CDir. Writer: : Throttle: Pausing 50 milliseconds every 1 objects 14: 24: 44: 843 [7952] Dumping Object (Type=0=User Action=0=Add ID=710 cfdf 0 -62 a 0 -415 fba 8 f-40 b 7 ef 39 bd 19 USN=25 Version=1. 0 Feeder=sea-vm-ks-10. cisco. com: 0) 14: 24: 44: 843 [7952] Attr alias=undeliverablemessagesmailbox Several SQL Queries to check if Add, Delete, Modify, Migrate 14: 24: 44: 844 [7952] CObj. Writer: : Write. Object entered 14: 24: 44: 875 [7952] CObj. Writer: : Is. User. From. Unity: Executing Ad-hoc Query 'SELECT Subscriber. Type FROM Object. Change WHERE Object. Id=? ' (Params '710 cfdf 0 -62 a 0 -415 fba 8 f-40 b 7 ef 39 bd 19') 14: 24: 44: 876 [7952] CObj. Writer: : Object. Id. Matches. Mapping: Executing Ad-hoc Query 'SELECT Feed. Object. Id FROM Interop. Mapping WHERE Feed. Object. Id=? ' (Params '710 cfdf 0 -62 a 0 -415 f-ba 8 f-40 b 7 ef 39 bd 19') 14: 24: 44: 875 [7952] CObj. Writer: : Diginet. Oid. Matches. Mapping: Executing Ad-hoc Query 'SELECT Timestamp FROM Interop. Mapping WHERE Diginet. Object. Id=? ' (Params '710 cfdf 0 -62 a 0 -415 f-ba 8 f-40 b 7 ef 39 bd 19') 14: 24: 44: 876 [7952] CObj. Writer: : Diginet. Oid. Matches. Object. Change: Executing Ad-hoc Query 'SELECT Is. Deleted Is. Moved FROM Object. Change WHERE Object. Id=? ' (Params '710 cfdf 0 -62 a 0 -415 f-ba 8 f-40 b 7 ef 39 bd 19') 14: 24: 44: 875 [7952] CObj. Writer: : Write. Object: USN=25 (Display. Name=Undeliverable Messages Object. ID=710 cfdf 0 -62 a 0 -415 f-ba 8 f-40 b 7 ef 39 bd 19 Diginet. Oid=710 cfdf 0 -62 a 0415 f-ba 8 f-40 b 7 ef 39 bd 19) was not found in the Interop. Mapping or Object. Change Tables - performing create. Object not found – Create it © 2006 Cisco Systems, Inc. All rights reserved. 48

Duplicate Extension found Log for Writing User to SQL (part 2) Extension added to Duplicate Extension found Log for Writing User to SQL (part 2) Extension added to SQL Interop. Extension table 14: 24: 44: 937 [7952] CObj. Writer: : Preprocess. Extensions: Object. ID=710 cfdf 0 -62 a 0 -415 fba 8 f-40 b 7 ef 39 bd 19 (Display. Name 'Undeliverable Messages') - Extension 99999 is already used by another object (Name='Example Administrator - EKV-W 2 K 3 -1' Obj. Id='3 D 8 D 9467 -F 8 D 7 -4 E 9 F-A 01 E-1 FB 274 AC 04 D 9') 14: 24: 44: 938 [7952] The Cisco Unity service that synchronizes directory information with a Cisco Unity Connection Network (Cu. Dir. Reader) encountered a duplicate extension for an imported object from the Feeder 'sea-vm-ks-10 (sea-vm-ks 10. cisco. com: 0)'. . . Ensure Location Exists 14: 24: 44: 937 [7952] CObj. Writer: : Preprocess. Extensions: Executing Ad-hoc Query 'INSERT INTO Interop. Extension (Interop. Extension. Object. Id Location. Object. ID Parent. Object. ID Extension Partition. Object. ID Extension. Index Parent. Object. Id. Type) VALUES (? ? ? 0 1)' (Params 'a 81 e 18 ad-1 e 76 -4 a 78 af 0 a-e 244 cbf 32 f 42' '86 e 3 d 148 -551 a-4 f 8 c-bd 33 -d 5 d 3275 fd 05 b' '710 cfdf 0 -62 a 0 -415 fba 8 f-40 b 7 ef 39 bd 19' '99999' '251 e 317 e-5 d 7 d-468 c-b 0 b 4 -5 d 8060 a 96 cd 4') 14: 24: 44: 953 [7952] CObj. Writer: : Object. Exists: Calling SProc sp_Find. Location. By. Guid. String(@str. Guid=86 e 3 d 148 -551 a-4 f 8 c-bd 33 -d 5 d 3275 fd 05 b) 14: 24: 44: 954 [7952] CObj. Writer: : Create. User entered 14: 24: 44: 969 [7952] CObj. Writer: : Construct. Remote. Address: Remote. Address='UCI: BHE 08 E_710 cfdf 0 -62 a 0 -415 f-ba 8 f-40 b 7 ef 39 bd 19' for Gateway. Address='710 cfdf 0 -62 a 0415 f-ba 8 f-40 b 7 ef 39 bd [email protected] cisco. com' at Location='86 e 3 d 148 -551 a-4 f 8 cbd 33 -d 5 d 3275 fd 05 b' (Dial. ID='BH-E 08 E') Construct the Remote. Address Based on Feed Data © 2006 Cisco Systems, Inc. All rights reserved. 49

sp_Create. Interop. Subscriber Log for Writing User to SQL (part 3) Check if Voice. sp_Create. Interop. Subscriber Log for Writing User to SQL (part 3) Check if Voice. Name changed 14: 24: 44: 968 [7952] CObj. Writer: : Create. Subscriber: Calling SProc sp_Create. Interop. Subscriber(@Subscriber. Object. Id='710 cfdf 0 -62 a 0 -415 f-ba 8 f 40 b 7 ef 39 bd 19' @Subscriber. Temp. Id='60 A 04 B 26 -8 DEC-4249 -9 B 8 A-9 CEC 3 FB 1133 E' @Xfer. String=NULL @Location. Object. Id='86 e 3 d 148 -551 a-4 f 8 c-bd 33 -d 5 d 3275 fd 05 b' @List. In. Directory='0' @Hidden. In. Directory='0' @Alias='UCI_undeliverablemessagesmailbox_BH-E 08 E' @Remote. Address='UCI: BHE 08 E_710 cfdf 0 -62 a 0 -415 f-ba 8 f-40 b 7 ef 39 bd 19' @Last. Name=NULL @First. Name=NULL @Display. Name='Un deliverable Messages - Voicemail' ) 14: 24: 47: 937 [7952] CObj. Writer: : Check. Voice. Name: Executing Ad-hoc Query 'SELECT Imported. Voice. Name FROM Interop. Subscriber WHERE Subscriber. Object. Id=? ' (Params '710 cfdf 0 -62 a 0 -415 f-ba 8 f-40 b 7 ef 39 bd 19') 14: 24: 47: 938 [7952] CObj. Writer: : Check. Voice. Name: User 'Undeliverable Messages' Done has not (Object. ID=710 cfdf 0 -62 a 0 -415 f-ba 8 f-40 b 7 ef 39 bd 19 USN=25) - Voice. Name=''Writing User to SQL changed 14: 24: 47: 937 [7952] CObj. Writer: : Create. User exited with 0 x 0000 14: 24: 47: 937 [7952] CObj. Writer: : Write. Object exited with 0 x 0000 14: 24: 47: 937 [7952] CDir. Synker: : Push. Dir. Object entered Push Object to Dir. Synker 14: 24: 47: 938 [7952] CDir. Synker: : Push. Dir. Object exited with 0 x 0000 14: 24: 47: 937 [7952] CDir. Writer: : Pop. Synk. Object entered 14: 24: 47: 938 [7952] CDir. Writer: : Pop. Synk. Object exited with TRUE © 2006 Cisco Systems, Inc. All rights reserved. Pop next Object off Queue 50

Dir. Synker Thread wakes up Log for Writing User to AD 14: 24: 47: Dir. Synker Thread wakes up Log for Writing User to AD 14: 24: 47: 938 [6988] CDir. Synker: : Synk. Data entered Pops an Object off its Queue Throttling between AD Synks 14: 24: 47: 937 [6988] CDir. Synker: : Pop. Synk. Object entered Synks the User to AD 14: 24: 47: 938 [6988] CDir. Synker: : Pop. Synk. Object exited with TRUE 14: 24: 47: 937 [6988] CDir. Synker: : Throttle: Pausing 50 milliseconds every 1 objects 14: 24: 48: 001 [6988] CDir. Synker: : Synk. One. Object: Synking Object. ID=710 cfdf 0 -62 a 0 -415 fba 8 f-40 b 7 ef 39 bd 19 (USN=25 - Contact='Undeliverable Messages') to AD 14: 24: 52: 406 [6988] CDir. Synker: : Synk. One. Object exited with 0 x 0000 14: 24: 52: 407 [6988] CDir. Synker: : Pop. Synk. Object entered 14: 24: 52: 406 [6988] CDir. Synker: : Pop. Synk. Object exited with TRUE © 2006 Cisco Systems, Inc. All rights reserved. Pop next Object off Queue 51

Synk Starts (0 x 1 = Subscriber) Sql. Sync Log for Writing User Subscriber Synk Starts (0 x 1 = Subscriber) Sql. Sync Log for Writing User Subscriber Synk Starts Fri Jan 22 14: 24: 48. 0 CDb. Sync: : Sync. Commit Called. ul. Sync. Items: 0 x 1 Db. Sync. cpp (line 279) Fri Jan 22 14: 24: 48. 0 Entering Sync. Subscribers Db. Sync. cpp (line 634) Fri Jan 22 14: 24: 48. 109 Synking Mailuser UCI_undeliverablemessagesmailbox_BH-E 08 E Db. Sync. cpp (line 721) 80044803 = doesn’t exist, Fri Jan 22 14: 24: 49. 281 Find User returned Hr = 0 X 80044803 So need to Create it Connector. Client. Base. cpp (line 456) Fri Jan 22 14: 24: 49. 281 GCFind. Dir. Object() returned 0 X 80044803 Connector. Client. Base. cpp (line 220) Object Create Done Db. Sync. cpp (line Fri Jan 22 14: 24: 49. 281 1912) No voice name data for object. Fri Jan 22 14: 24: 49. 281 (line 480) Entering Create. Dir. Object Fri Jan 22 14: 24: 52. 171 (line 499) Exiting Create. Dir. Object Fri Jan 22 14: 24: 52. 406 (line 977) Exiting Sync. Subscribers, returning 0 x 0 Connector. Client. Base. cpp Db. Sync. cpp Subscriber Synk Succeeds © 2006 Cisco Systems, Inc. All rights reserved. 52

Voice. Name Thread wakes up Log for Voice. Name Download 09: 52: 56: 843 Voice. Name Thread wakes up Log for Voice. Name Download 09: 52: 56: 843 [8092] CFeeder. Client: : Read. Wave. Files entered Pops a Voice. Name off Queue Ensures File. Name is Current 09: 52: 56: 844 [8092] CFeeder. Client: : Pop. Voice. Name. Request: Obj. Id='a 15 b 86 ae-04 a 1 -4 d 4 c 9 ca 4 -a 87 e 783364 fd' (USN=31) - Requested Voice. Name='a 9 e 45 a 2 c-feb 5 -45 c 1 -b 0 a 097 bc 207796 fb. wav' 09: 52: 56: 843 [8092] CObj. Writer: : Is. Voice. Name. Current: Executing Ad-hoc Query 'SELECT Imported. Voice. Name FROM Interop. Subscriber WHERE Subscriber. Object. Id=? ' (Params 'a 15 b 86 ae-04 a 1 -4 d 4 c-9 ca 4 -a 87 e 783364 fd') HTTP 200 OK = SUCCESS 09: 52: 56: 844 [8092] CFeeder. Client: : Download. Wave. File entered 09: 52: 56: 968 [8092] CFeeder. Client: : Get. Voice. Name. Auth. Headers: Server. Headers: Extract Signature & Salt 'HTTP/1. 1 200 OK. . . ' 09: 52: 56: 969 [8092] CFeeder. Client: : Get. Voice. Name. Auth. Headers: Signature='JMAs. . . ' Verify Response with Cxn Salt='gpuu. . . ' Cert, Hash of Data, & Sig 09: 52: 56: 969 [8092] CRead. Authenticator: : Verify. Internal: calling IAuth: : Verify(Public. Cert 'MIIC 3 z. . . ' Hash 'E 1 -F 7. . . ' Signature 'JMAs. . . ') 09: 52: 56: 968 [8092] CRead. Authenticator: : Verify. Internal: IAuth: : Verify(15008 bytes) returned a signature match Signature is Verified 09: 52: 56: 968 [8092] CFeeder. Client: : Authenticate. Voice. Name: Authentication(/feeder/object/a 15 b 86 ae-04 a 1 -4 d 4 c-9 ca 4 -a 87 e 783364 fd/voicename) Verify Wave Header/Format succeeded 09: 52: 56: 969 [8092] CFeeder. Client: : Download. Wave. File: Wave. Format is 1 (PCM) 09: 52: 56: 968 [8092] CFeeder. Client: : Download. Wave. File: Attempting to write Voice. Name 'C: Comm. ServerStream Filesa 9 e 45 a 2 c-feb 5 -45 c 1 -b 0 a 0 -97 bc 207796 fb. wav' for Object. ID 'a 15 b 86 ae-04 a 1 -4 d 4 c-9 ca 4 -a 87 e 783364 fd' 09: 52: 56: 984 [8092] CFeeder. Client: : Download. Wave. File exited with 0 x 0000 File is written to Disk © 2006 Cisco Systems, Inc. All rights reserved. 53

Begin SQL Write (same thread) Log for Voice. Name Write to SQL & AD Begin SQL Write (same thread) Log for Voice. Name Write to SQL & AD Update Subscriber in SQL 09: 52: 56: 985 [8092] CDir. Writer: : Write. Voice. Name entered Push Voice. Name to Dir. Synker 09: 52: 56: 984 [8092] CObj. Writer: : Write. Voice. Name entered 09: 52: 56: 985 [8092] CObj. Writer: : Write. Voice. Name: Executing Ad-hoc Query 'UPDATE Subscriber SET Stream. Path=? WHERE Subscriber. Object. Id=? ' (Params 'a 9 e 45 a 2 c-feb 545 c 1 -b 0 a 0 -97 bc 207796 fb. wav' 'a 15 b 86 ae-04 a 1 -4 d 4 c-9 ca 4 -a 87 e 783364 fd') 09: 52: 57: 422 [8092] CObj. Writer: : Write. Voice. Name exited with 0 x 0000 is already queued for Object Dir. Synk, so we’re done 09: 52: 57: 421 [8092] CDir. Synker: : Push. Stream. File entered 09: 52: 57: 422 [8092] CDir. Synker: : Push. Stream. File: Object. ID 'a 15 b 86 ae-04 a 1 -4 d 4 c-9 ca 4 a 87 e 783364 fd' (USN 31) is already queued for Dir. Synk 09: 52: 57: 421 [8092] CDir. Synker: : Push. Stream. File exited with 0 x 0000 09: 52: 57: 422 [8092] CDir. Writer: : Write. Voice. Name exited with 0 x 0000 09: 52: 57: 422 [8092] CFeeder. Client: : Read. Wave. Files exited with 0 x 0000 Voice. Name Thread is done © 2006 Cisco Systems, Inc. All rights reserved. 54

Same as Success Case Log for Failed Objects Feed Read HTTP 500 = Server Same as Success Case Log for Failed Objects Feed Read HTTP 500 = Server Error Connection Feeder logs would help diagnose problem. 14: 01: 10: 047 [6156] CFeeder. Client: : Get. Xml. Doc: Attempting to read XML Document from Feeder 'sea-vm-ks-10' (sea-vm-ks-10. cisco. com: 0) at Url '/feeder/objects? object. Type=user&rs=e 82 c 3 c 01 -cbec-4 c 98 -87 c 9 -0 c 25521 a 0 b 30' 14: 01: 10: 047 [6156] CFeeder. Client: : Read. Objects entered 14: 01: 10: 047 [6156] CRead. Authenticator: : Sign: calling IAuth: : Sign(Local. Cert 'MIICuj. . . ' Hash 'D 6 -8 E. . . ') Eventlog Error Message 14: 01: 12: 343 [6156] CRead. Authenticator: : Signature from IAuth: : Sign is 'l. QUd. . ' 14: 01: 12: 360 [6156] CFeeder. Client: : Set. Request. Options: Assigning Auth Headers 'XCisco-Authenticator-Identity: EKV-W 2 K 3 -1 X-Cisco-Authenticator: l. QUd. . . XCisco-Authenticator-Salt: g+h. J. . . ' 14: 01: 12: 359 [6156] CFeeder. Client: : Send. Request. And. Receive. Response: Request Status. Code: 500 14: 01: 12: 359 [6156] CFeeder. Client: : Read. Objects exited with 0 x 80004005 14: 01: 12: 360 [6156] CFeeder. Client: : Read. From. Feeder: sea-vm-ks-10 (sea-vm-ks 10. cisco. com: 0) - Read. Objects() failed with 0 x 80004005 (Win. Http. Query. Headers(Status. Code) - 'HTTP 500 - server error') 14: 01: 12: 359 [6156] The Cisco Unity service that synchronizes directory information with a Cisco Unity Connection Network (Cu. Dir. Reader) experienced a failure to read data from the Feeder 'sea-vm-ks-10 (sea-vm-ks-10. cisco. com: 0)' at URL /feeder/objects? object. Type=user&rs=e 82 c 3 c 01 -cbec-4 c 98 -87 c 9 -0 c 25521 a 0 b 30. Technical Details: Win. Http. Query. Headers(Status. Code) -- 'HTTP 500 - server error'. 14: 01: 12: 406 [6156] CFeeder. Client: : Read. From. Feeder: sea-vm-ks-10 (sea-vm-ks 10. cisco. com: 0) - Objects. Parsed=0 Total. Parsed=0 14: 01: 12: 407 [6156] CFeeder. Client: : Read. From. Feeder exited with 0 x 80004005 Objects Feed Read Failed © 2006 Cisco Systems, Inc. All rights reserved. 55

Reference Documents Cisco Unity documentation: http: //www. cisco. com/en/US/products/sw/voicesw/ps 2237/tsd_products_support_seri es_home. html Cisco Unity Reference Documents Cisco Unity documentation: http: //www. cisco. com/en/US/products/sw/voicesw/ps 2237/tsd_products_support_seri es_home. html Cisco Unity Connection documentation: http: //www. cisco. com/en/US/products/ps 6509/tsd_products_support_series_home. ht ml And lots of other TOIs related to Unity Connection Networking. © 2006 Cisco Systems, Inc. All rights reserved. 56

© 2006 Cisco Systems, Inc. All rights reserved. 57 © 2006 Cisco Systems, Inc. All rights reserved. 57