Cisco Unity

Cisco Unity 8.x: Public Distribution List Members Import Issue


Public distribution lists (PDLs) are used to send voice messages to multiple subscribers. The subscribers assigned to a PDL are typically subscribers who need the same information on a regular basis, such as employees in a department or members of a team. This document provides information about resolving the issue when subscribers are not imported in the PDL.



There are no specific requirements for this document.

Components Used

The information in this document is based on these software and hardware versions:

  • Cisco Unity 8.x

  • Microsoft Exchange 2010

The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.


Refer to Cisco Technical Tips Conventions for more information on document conventions.

Background Information

There are two different locations where the PDL can be stored:

  • Search Scope PDL—This type of PDL is when a Directory Handler is configured with a limited SearchScope set to a PDL. When you do this, the Directory Handler entry in the vw_NamedLookupHandler view is updated to point the SearchScopeObjectId column to map to the ScopeDlistObjectId column in the vw_ScopeDlist view. This same entry in vw_ScopeDlist also has a DirectoryId column which maps to the objectGUID of the PDL in Active Directory (AD).

  • System PDL in Unity—Unity also has the functionality to send voicemails to a group of individuals through private and public PDLs. These are slightly different from the SearchScope PDL, but the core concepts are similar.

Search Scope PDL

When you configure a Directory Handler to search a PDL, it first updates the vw_ADMonitorScopeDistributionList table with the appropriate values. Once inserted, the vw_ADMonitorScopeDistributionListMember table populates with all the objectGUID of the objects listed in the member attribute on the PDL. Then, those members are basically copied over to the vw_ScopeDlistMember view, and vw_ScopeDlist is updated with the objectGUID of the PDL. Finally, the vw_NamedLookupHandler is updated to point to the entry in vw_ScopeDlist.

When a modification occurs to the PDL, Active Directory should increment that object's uSNChanged attribute. If there is an entry in the vw_ADMonitorScopeDistributionList view for the PDL that was modified, when Unity performs the next sync under AvDSAD, it detects the change and pulls down any changes. If there is no entry in the view for the objectGUID that was modified, then Unity does not pick up or replicate any changes to the PDL. This can result in missing users when searching the given Directory Handler. Provided there is an entry in this view, then the vw_ADMonitorScopeDistributionListMember and vw_ScopeDlistMember tables are also updated. These two views must always contain the exact same count of members for a given PDL.


No members are imported in the PDL. You would like to use a PDL as owner for a mailbox. When the distribution list is imported from the Exchange server, you cannot see any members of this PDL in the Unity administration.


In some cases this issue occurs because the original Global Catalog (GC) Server cannot synchronize correctly with Cisco Unity. Perform these steps in order to resolve the issue:

  1. Check that the vw_ADMonitorScopeDistributionList view has a RootDistListGuid entry for the given PDL.

    You can use \CommServer\TechTools\..ldp.exe* or *adsiedit.msc to view the objectGUID of the PDL.

  2. Follow the Active Directory monitor to convert it to what you will see in SQL. If there is no entry in this table, then it points to a database corruption or AD sync problem. The easiest solution in this case is to configure the Directory Handler to use the Local Unity Server as its SearchScope, then click save. Then, select the original PDL again and save. This triggers the database to update its entries again.

  3. If there is an entry in the above view, the next thing to check is the vw_ADMonitorScopeDistributionListMember view. From the first step, you have the objectGUID of the PDL. Run an SQL query on this view to get a list of all the members. Unity was able to extract from the configured Global Catalog server:

    SELECT Count(*) AS Count FROM vw_ADMonitorScopeDistributionList 
    WHERE RootDistListGuid = 'value_from_step_one'  
    SELECT * FROM vw_ADMonitorScopeDistributionList 
    WHERE RootDistListGuid = 'value_from_step_one'
  4. This returns the number of members as well as every member assigned to that PDL. If you notice zero or missing members in this view, then you need to double check the objectGUID. If that is correct, then you need to review the Global Catalog Server that Unity is configured to replicate with through the DC/GC Reconnect Settings utility.

    Note: In the DC/GC Reconnect Settings utility if you tried a "force reconnect" for the GC, the event logs can report that you were unable to connect to that server. In this case, try connecting to a different Global Catalog Server.

  5. When ldp.exe or adsiedit.msc is used, you can connect to that GC and open the properties of the PDL. You should verify that the UnityDirSvc account has the appropriate permissions to replicate with this PDL. If the permissions are correct, the next step is to enable and review the AvDSAD and AvDSGlobalCatalog diagnostics.

  6. Provided all of the members show up in the above view, the next step is to run a similar SQL query on the vw_ScopeDlistMember view. This view must always be identical to the above result:

    SELECT Count(*) AS Count FROM vw_ScopeDlistMember 
    WHERE ScopeDlistDirectoryId = 'value_from_step_one'  
    SELECT * FROM vw_ScopeDlistMember 
    WHERE ScopeDlistDirectoryId = 'value_from_step_one'

    If the count is different between the above two views, then this is a sign of a database problem.

  7. The last step is to verify the PDL exists in the vw_ScopeDlist view and that entry points to the correct Directory Handler in the vw_NamedLookupHandler view. In order to perform this, you can run an SQL query:

    SELECT * FROM vw_NamedLookupHandler 
    WHERE SearchScopeObjectId = (SELECT ScopeDlistObjectId FROM vw_ScopeDlist 
    WHERE DirectoryId = 'value_from_step_one')

    This should return the entire entry for the Directory Handler. If it does not, then there is a problem with the relational link between the two views. A simple solution is to re-assign the PDL as the SearchScope for the Directory Handler.

Related Information