Corporate Addressbook

I took it upon myself to fix what I felt was an issue with the vanilla Froyo (2.2). I wrote and released an app called Corporate Addressbook to the Android Market.

I wrote this app since my Nexus One lacks a feature that I really needed – a true GAL lookup. The Global Address List (GAL) lookup currently available in vanilla Android (Froyo running on my Nexus One) is quite limited in functionality. It only looks up email addresses and does not return anything more. This is quite frustrating when you are trying to look up the address book for the contact information (including office number) of a colleague. The only other option was to buy Touchdown. Touchdown is a great app, however it does much more than GAL lookups. It also fetches email and does a bunch of other things that are now included in Froyo. Hence I thought it was better to write this application to meet my requirement. This application looks up the GAL and returns ALL data that is available on the Exchange server for the query.

The app uses the ActiveSync protocol to communicate with the Exchange server, and supports both Exchange 2003, 2007 and 2010. The app is free and has no ads. Download it while it is hot  (look for Corporate Addressbook in the Android market)

Related links

32 thoughts on “Corporate Addressbook”

  1. Love the app. Works great. Any way I can configure for 2 Exchange servers? One for corporate and one for the customer’s Exchange server

  2. Hi Vivek,

    I’d like to make a change to the app to perform a search of a mailbox instead of the GAL. In particular I would like to perform a search with an Outlook public folder structure. I had the following quick questions:

    1) within outlook, specifying a mailbox will allow me to perform a search in an outlook public folder structure?
    2) I have modified the search xml name tag to specify “Maibox” instead on “GAL”, but I am not quiet sure how to specify the folder name or path for the search. Can you tell me what tags need to be used and how they need to get populated?
    3) I have tried modifying the xml to include: , , , (how can I figure out what the id number of the outlook folder is?) with no success.

    Any information you can provide will be greatly appreciated.

    Mirko

  3. Hi Mirko

    Thank you for your message. In order to search within a folder in Outlook, this is what you will need to do

    1. Get a list of folders via the foldersync command
    Request
    [code lang=”xml”]
    <?xml version="1.0" encoding="utf-8"?>
    <FolderSync xmlns="FolderHierarchy:">
    <SyncKey>0</SyncKey>
    </FolderSync>
    [/code]

    You should see a response that looks like this

    [code lang=”xml”]
    <FolderSync xmlns="FolderHierarchy">
    <Status>1</Status>
    <SyncKey>1</SyncKey>
    <Changes>
    <Count>34</Count>
    <Add>
    <ServerId>2</ServerId>
    <ParentId>0</ParentId>
    <DisplayName>Calendar</DisplayName>
    <Type>8</Type>
    </Add>
    <Add>
    <ServerId>3</ServerId>
    <ParentId>0</ParentId>
    <DisplayName>Contacts</DisplayName>
    <Type>9</Type>
    </Add>
    <Add>
    <ServerId>10</ServerId>
    <ParentId>0</ParentId>
    <DisplayName>Inbox</DisplayName>
    <Type>2</Type>
    </Add>

    [/code]

    2. Note the ServerId for the mailbox you want to search. Lets say you want to search the Inbox. In this case the serverId is 10 .

    3. Using this information, send the search command in the following format

    [code lang=”xml”]
    <?xml version="1.0" encoding="utf-8"?>
    <Search xmlns="Search:" xmlns:airsync="AirSync:" xmlns:email="Email:" xmlns:contacts="Contacts:" >
    <Store>
    <Name>Mailbox</Name>
    <Query>
    <And>
    <airsync:CollectionId>10</airsync:CollectionId>
    <FreeText>queryString</FreeText>
    </And>
    </Query>
    </Store>
    </Search>
    [/code]

    This should give you the response you need.

    Looks here for more examples
    http://msdn.microsoft.com/en-us/library/ee159095(v=EXCHG.80).aspx

  4. Hi Vivek,

    Thanks for the response. After doing the folderSync I only received a listing of my inbox folders. How can I get the list of folders under “Public folders”? This this supported by active sync?

    thanks,

    Mirko

  5. eally nice app, good work!

    I´ve checked out the code and I wonder if there is any easy way to make it support reverse lookup queries i.e. return a contact (or a list of contacts) when you search for a number?

    Thanks again for a great app!

  6. Thanks for your comment, Gustav, I am glad you like the app. I will have to look into adding support for reverse lookups. I do know that Exchange GAL supports some sort of a search based on phone numbers, but I am not sure how well it works.

  7. Hi,

    I’ve been using your application on my Nexus One ahd it just works like a charm with my office exchange server. Great work !

    Also, as honeycomb has no full GAL lookup, can you add support for HoneyComb in your application ? Application is yet not available for my A500.

    Thanks !

  8. Hi,

    I tried this app and it keeps on telling me that validation has failed, despite me confirming time and again that the login settings are totally correct. I have configured the same settings to the Android Mail app and there the sync is working. Any ideas?

    Thanks!

  9. Hi,

    Iam trying to search exchange server mailbox by the following command from a mobile client.

    Mailbox

    Email
    5
    a

    0-4

    But the response is a status error…

    1

    2
    ………….

    Any pointers?

    Thank you

  10. Hi Vivek,

    I am trying to search exchange server mailbox by the following command from a mobile client.

    Mailbox

    Email
    5
    a

    0-4

    But the response is a status error…

    1

    2
    ………….

    Any pointers?

    Thank you

  11. Hi

    The app works great, but…
    When there is multiple persons with the same name it seams to return just one of them.

    Anders

  12. Hi Anders

    Thank you for your message. I am aware of this issue, and a fix is on the way. Hopefully should be able to push out something soon 🙂

    Thanks
    Vivek

  13. Hi Vivek, the app is yery good,
    but i look for the secend office phone number.
    Is that possible ?

    Thans Ralf

  14. Hi Ralf

    Thanks for your message and sorry about the late response. The app does return everything that is stored in the Exchange GAL (including all phone numbers). Are you looking to search by phone numbers? That unfortunately is not supported yet.

    Thanks
    Vivek

  15. Hi,

    If you want to download the whole GAL and store in i a local database, how do you do that? One way to do it would be to search for a common entity that is shared by every contact in the GAL but the search command can only receive 100 hits, (default range value).
    Any suggestion in how to do this?

    Thanks for a great app!

  16. Hi,

    Thanks for a great app. We only miss one GAL-field, Department. Is there any plans for including that field in the result?

  17. Hi,

    Any chance this nice app will one day support .p12 certificates? ICS does natively, but the Gingerbread people have to rely on “Secure EAS”. Maybe your app could connect to “Secure EAS” for authentication? Just a thought.

  18. Greetings Vivek,
    Thank you for writing this app and making it available for free. I found it useful.
    Regards,

  19. have you tried cmd = ItemOperation?

    I got server id from FolderSync, However , when i use it to get all the emails,

    the server returns statusCode = 400

    here is the xml

    Mailbox
    5
    5:1

    1
    5120
    0

  20. Hey, thanks so much for your app. I tried the one from the market, but my phone got blocked due to security policies. The problem was that it generated a brand new androidID.

    Thanks SOOOO much for making this open source. I just svn pulled a copy into eclipse, hardcoded an AndroidID from my mail app (that is authorized in exchange), picked myself up from the floor when it compiled and ran in the emulator, exported and signed a copy and sent to my phone. Worked first time!

    Maybe an option for a future enhancement for a user programable androidID? I know I can do this myself and help you out 🙂 I might do that when I get some time on my hands. My initial problem with that was you have implemented it as an int, when lots of other apps use a string.

    Thanks again!

  21. Hi Vivek, ever since i found it on the market, I’ve been encouraging all my colleagues to have it always on their android devices. Just Love it for all the functionality and amazing simplicity.

    Here’s my humble request. Could you PLEASE port it to platforms like J2ME (being an Indian you see the potential, with ASHA, REX and so many other Java compatible handsets), blackberry (shouldn’t be much of a sweat if you pull J2ME) and windows phone? In BB app eco system, it could be what LogicMail is for emails (get email sans the expensive BB plan)

  22. Dear Vivek,
    Thanks for putting all your effort on this app as open source.. its a great help..
    I was playing around with the code for GAL.. I was able to do the provisioning. But when I tried GAL search in my code, It returns empty results always while the response code for GAL is 200.. Could you please give an idea on what might be wrong or missing..

    Regards

  23. Hi Vivek,

    Thank you very much for your useful app!
    I would appreciate the following feature:
    Interface to the phone app so that the contact name is looked up based on the phone number (incl. reverse lookup).

    The app local.ch does that however the directory is public not corporate.

    Thanks

  24. Hi Guy .. first think ..compliments for your android app Corporate addres book ….Emoji
    second … why not for Iphone ? EmojiEmoji

    I had a android phone until few days ago and now hi have an iphone … and your application i perfect for my GAL ..
    thanks in advance

  25. I’m wondering if this app can perform lookups for incoming calls? My GAL / LDAP is 20,000 users, so I can’t sync it with contacts, but I would like incoming callers to be looked up in the GAL or LDAP. Is this possible?

  26. Dear Vivek,
    i want to learn Global Address List. while searching about GAL i got your CorporateAddressBook application(Source code)
    from github then deployed your project into my eclipse environment without error. then i have installed Microsoft exchange serer
    2013.
    i am really new for both corporate Address book and Microsoft exchange server. after installed exchange server i have logged in successfully using your project. In exchange server i have created lot of users using Exchange Admin-center. when i click default global address list , all the users are displayed in Exchange Admin-center .
    After login Page, In home page of your application, i try to search a user but i got zero result .
    1.can you pls tell me step by step process to access exchange server using your project
    i kindly request you to guide me in that CorporateAddressbook its very help full for me.

  27. Currently using Corporate Addressbook on Samsung S5. (Android version 5.0)
    I would like to search GAL (Microsoft Exchange) and view Pager details.
    When I search using Corporate Addressbook app I get.
    -Office phone
    -Mobile
    -Location
    -email
    -Title
    -Company
    -Alias
    -First name
    -Last name

    Is there any way the “Pager” field be made available?

    BR Glenn

  28. Hello,

    I was using your very good application, very useful, but now it fails on my Xiaomi max , Android 7.1.1.

    Search is ok, but display (After selection) exit and application stps.

    Any upgrades to fix that on the way?

    Thanks,
    Alain.

Leave a Reply

Your email address will not be published. Required fields are marked *