CUPC 8.0 LDAP pics

Unanswered Question
Jul 6th, 2010


I have CUPS 8.0.2 and users are with CUPC 8.0 and 7.1. Users on CUPC 7.1 are able to see photos from the LDAP and those on 8.0 cannot. CUPS is integrated with LDAP and is fetching the jpegPhoto attribute, integration is non-secure with TCP on port 389. CUPC 8.0 endpoints are configured in CUCM as CSF clients.

Best regards,


I have this problem too.
0 votes
  • 1
  • 2
  • 3
  • 4
  • 5
Overall Rating: 5 (1 ratings)
Stoyan Stoitsev Wed, 07/07/2010 - 01:34

Hello Jeffrey,

I am not sure what exactly are these logs that you requested. Can you give a hit

jfitterer Tue, 09/21/2010 - 14:11

Can we get any feedback on this?  I see Nathan's reply below but that does not fix PICTURES from LDAP.  That sets up an external web service to fetch from.

I am having same issue.  Pulling from Web Service works just fine, however changing to 389 and pulling from LDAP (MS AD) does not work.

It would be great to have an update to the original problem and not a work around suggested.  The work around does work but still does not address why it does not pull from AD.

Nathan Cartwright Tue, 09/21/2010 - 14:41

Pulling from a webservice works for us because we have several other applications that need a UNC path.

Do you have the thumbnailPhoto attribute index? What program are you using to put in pictures? We used dameware NT utilities - If you have an Exchange server you can also do it through powershell.

jfitterer Tue, 09/21/2010 - 14:45

Thanks for replying Nathan.......We are trying with the "thumbnailPhoto" attribute within AD.  We have pushed the schema out

to the GCs and we are using port 389 as referred to in the documentation.

I hear you on the web service.  We currently use the webservice but are moving away to use AD for all pictures for all of our products that will use it.

Aaron Harrison Tue, 09/21/2010 - 15:04


Just thought I'd throw in my two pence - I set up retrieval of photos from LDAP a while back (CUPS6, with suitably old version of CUPC) but I used the jpegPhoto attribute, not thumbnailPhoto. I couldn't tell you what the difference is between the two, but a quick google of the two attributes suggests there are some technical differences in the way they are either stored or retrieved.

Maybe try populating a couple of users' jpegPhoto attributes and see if you get any luck if you reconfigure the CUPC attribute map. Also keep the pictures small (while testing, as I imagine there's some upper limit on the size of the data you can store, and the size of the data you want to replicate round the place). What is/isn't supported may well have changed in CUPC 8.0

Final comment - if you are using port 389, you aren't using the Global Catalog service even if the DC you point at runs the GC service, so it doesn't matter if you've edited the schema to replicate the thumbnail attribute to the GC or not.

I used this script to load the jpegs (the name of each jpeg minus the .jpeg extension was the sAMAccountName or possibly the Display Name of the corresponding user if I recall correctly):

Const ForReading = 1
InDir = "c:\PICS\"
Set fso = CreateObject("Scripting.FileSystemObject")
set oIADS = GetObject("LDAP://RootDSE")
strDefaultNC = oIADS.Get("defaultnamingcontext")
Set theConn = CreateObject("ADODB.Connection")
theConn.Provider = "ADsDSOObject"
theConn.Open "ADs Provider"
Set theCmd  = CreateObject("ADODB.Command")
theCmd.ActiveConnection = theConn
Set objRecordSet = CreateObject("ADODB.Recordset")
For Each tFile In fso.GetFolder(InDir).Files
    tName = tFile.Name
    'Gets the persons Name from the file by stripping the extention.
    tName = Left(tName, InStrRev(tName,".")-1)
    'You may need to tweak this bit depending on your naming conventions.
    strQuery = ";" & _
                              "(&(objectClass=person)(name=" & tName & "));name,adspath;subtree"
    theCmd.CommandText = strQuery
    Set objRS = theCmd.Execute
    If objRS.RecordCount = 0 Then
      MsgBox "Can't find account for " & tName
      Set objUser = GetObject(objRS("adspath"))
      ObjUser.Put "jpegPhoto", ReadByteArray(tFile.Path)
    End If
'Stolen from
Function ReadByteArray(strFileName)
    Const adTypeBinary = 1
    Dim bin
    Set bin = CreateObject("ADODB.Stream")
    bin.Type = adTypeBinary
    bin.LoadFromFile strFileName
    ReadByteArray = bin.Read
End Function


Please rate if useful...

jfitterer Wed, 09/22/2010 - 06:24

Thanks for responding Aaron.

I do realize using port 389 is not GC.  We extended Schema for other services.  I poorly wrote that t osay we have tried changing to port 3268 but it doesn't work.  The documentation also states that using the 3268 GC port won't retrieve pictures from AD.

I can't try the jpegPhoto Attribute as we no longer have that available in 2008 AD.  The attribute is thumbnailPhoto.

Nathan Cartwright Mon, 08/23/2010 - 14:25

We had no luck getting them to read from Active Directory (LDAP or what ever). What we had to do instead was setup IIS with a virtual directory that points to a directory with the sAMAccountName as the pictures file name. We then went into the LDAP mapping on CUPS and entered the url.

Under Application --> Cisco Unified Personal Communicator --> Settings for photo we put in http:///pics/%%sAMAccountName%%.jpg

hinks2000 Mon, 09/13/2010 - 15:40

Thanks Nathan, that was the missing link for me to add the ldap mapping attribute to: http://mywebsvr/%%uid%%.jpg and it worked like a champ for our version 8 clients (not cupc7 but will be upgrading all to versin 8 so I don't care at this point).  I'll have to go into the deployement document for v8 and see if this info is in there.

Thanks for the post.

Stoyan Stoitsev Sun, 10/31/2010 - 14:53


The issue with the pics is solved with the new version of CUPC available for download at CCO.



jfitterer Mon, 11/01/2010 - 07:11

Funny.  Mine were working.  Installed new version of CUPC and now I get now pics.  Uninstalled new version and installed last release of 8.01 and it wokrs just fine.  Also,  Would be nice if the client actually found older versions and upgraded them instead of loading a new program.


This Discussion