LDAP (Lightweight Directory Access Protocol) is a client/server protocol used to access and manage directory information over Internet Protocol, the core LDAP specifications are defined in RFC4511.
Just as a Database Management System is used to process queries and updates to a database, an LDAP server behave the same way. In other words, an LDAP information directory is a type of database, unlike databases that are designed for processing hundreds or thousands of changes per minute, LDAP directories are heavily optimized for read performance.
The LDAP information model is based on entries. An entry is a collection of attributes that has a globally-unique Distinguished Name (DN). The DN is used to refer to the entry. Each of the entry’s attributes has a type and one or more values. The types are typically mnemonic strings, like “cn” for Common Name, or “mail” for Email Address. The syntax of values depends on the attribute type.
In LDAP directory, entries are arranged in a hierarchical tree-like structure. Traditionally, this structure reflects geographic and/or organizational boundaries. Entries representing countries appear at the top of the tree, followed by entries representing states and national organizations, then entries representing organizational units, people, printers, documents…
Figure below shows an example of LDAP directory tree.

INSTALLING AND CONFIGURING LDAP SERVER
In this tutorial, we will use “ApacheDirectoryStudio” which is a free LDAP server.
Installing ApacheDS LDAP Server
Prerequisites
JDK needs to be installed on PC to run ApacheDS, it can be downloaded from the link: Download JDK
Download and Install ApacheDS
The ApacheDS server software can be downloaded for free from below link:
http://directory.apache.org/studio/download/download-windows.html
- Download the Software from above link.
- Follow the default steps for installation.
- Launch the application.
Following first start page will be visible when launching the application.

Configuring ApacheDS
Create New LDAP Connection
- In Workbench, go to the LDAP Servers tab and click on New Server (If no server is created) then select a Server from the list and click Finish.


- Once the Server is created, click on Start Button to launch it.

- In Workbench, go to Connections tab and press create new connection button as shown below:

- Once you click on the LDAP new connection button the “Network Parameter” window pops up.

- Enter Hostname value with IP address or FQDN of the machine where ApacheDS is installed.
- The default connection port for LDAP on ApacheDS is 10389.
- Set Encryption method to “No encryption”.
- Keep Provider field with default value “Apache Directory LDAP Client API”.
- After filling the fields, click Next, the following window will be shown.

- Choose the Authentication Method desired. In this example, “Simple Authentication”.
- Enter the Bind DN or user. By default, “uid=admin, ou=system”.
- Set Bind password. Default password is “secret”
- Click Finish after completing connection information page.
Add New Entry
At this level our connection with the LDAP server is created successfully, we can add now users to “dc=example,dc=com” which by default has no entries. Administrator can create another domain instead of using dc=example,dc=com.
- Under dc=example,dc=com, right click and select New 🡪 New Entry

- Select Create entry from scratch and click Next.
- Select inetOrgPerson from available object classes, then press Add followed by Next button.

- In the Distinguished Name window, enter a name for UserID. In this example, Grandstream2 is used. Keep Parent and RDN (Relative DN) with default values; in this example, dc=example,dc=com and uid respectively, then click Next button. (Refer to next figure).

- In Attributes window, create contacts and enter their details: First Name (cn) and Last Name (sn).

The table below shows common attributes:
Attribute | Description |
---|---|
cn | Full name of the entry |
sn | First Name |
gn | Last Name or family name |
telephoneNumber | Office phone number |
homePhone | Home phone number |
mobile | Mobile phone number |
Company | Company name |
o | Organization name |
ou | Organization Unit. Usual department or any sub entity of larger entity |
- To add new fields for contacts such as Mobile, Email… Press Add New Field button as shown in previous figure and specify the new Attribute type. Press Next to add another attribute or Finish if no more attribute will be added.

A summary of contact details will be displayed showing all contact details as illustrated in below figure.

LDAP CLIENT CONFIGURATION
This section shows client configuration associated with previously configured LDAP server.
GXP21xx/17xx/16xx Series
LDAP client configuration can be found on the web GUI under Phonebook 🡪 LDAP. Configure LDAP client settings as show in below figure:

DP75x Series
LDAP client configuration can be found on the web GUI under Phonebook > Global Phonebook LDAP Settings.
Configure LDAP client settings as show in below figure:

GVC32xx/GAC2500 Series
LDAP client configuration can be found on the web GUI under Contacts > LDAP.
Configure LDAP client settings as show in below figure:


GXV3350/GXV3370/GXV3380 Series
LDAP client configuration can be found on the web GUI under Applications 🡪 LDAP Phonebook. Configure LDAP client settings as show in below figure:

GRP261x Series
LDAP client configuration can be found on the web GUI under Directory 🡪 LDAP. Configure LDAP client settings as show in below figure:

GRP260x Series
LDAP client configuration can be found on the web GUI under Application 🡪 LDAP. Configure LDAP client settings as show in below figure:

LDAP Client Parameters
Following table shows LDAP Client parameters on Grandstream products:
Fields | Description |
---|---|
Connection Mode (GXV33xx/GXV32xx/GVC32xx/GAC2500) LDAP Protocol (GXP21xx/DP75x/GRP26xx/GRP26xx) | Option to choose secured or non-secured LDAP connection. LDAPS (LDAP Secured) uses SSL/TLS to encrypt LDAP traffic. In this guide:
|
Server Address | IP address or FQDN of the LDAP server. In this guide:
|
Port | Listening port for LDAP connections on the server side. Default is 389. In this guide:
|
Base DN | Location in the directory where the search is requested to begin. It narrows the search scope and decreases directory lookup time. In this guide:
|
User Name | “Username” to bind for querying LDAP servers. Most LDAP servers allow anonymous binds, in this case, this field can be left blank. In this guide:
|
Password | “Password” to bind for querying LDAP servers. Most LDAP servers allow anonymous binds, in this case, this field can be left blank. In this guide:
|
First Name Attribute (DP750/DP52 only) | Defines first name attributes of each record to be returned in the LDAP search result. This field allows users to configure multiple space separated name attributes. In this guide
|
Last Name Attribute (DP750/DP752 only) | Defines first name attributes of each record to be returned in the LDAP search result. This field allows users to configure multiple space separated name attributes. In this guide
|
LDAP Name Attributes | Name attributes of each record to be returned in the LDAP search result. This field allows users to configure multiple space separated name attributes. In this guide:
|
LDAP Name Attributes | Specifies the “number” attributes of each record which are returned in the LDAP search result. In this guide:
|
Work Number Attribute (DP750/DP752 only) | Specifies which LDAP attribute represent the contact’s work number. Must be in number attributes on LDAP server. |
Home Number Attribute (DP750/DP752 only) | Specifies which LDAP attribute represent the contact’s home number. Must be in number attributes on LDAP server. |
Mobile Number Attribute (DP750/DP752 only) | Specifies which LDAP attribute represent the contact’s mobile number. Must be in number attributes on LDAP server. |
LDAP Mail Attributes (GXV33xx/GXV32xx/GVC32xx/GAC2500 only) | Mail attributes of each record to be returned in the LDAP search result. In this guide: |
LDAP Filter (DP750/DP752 only) | Specifies the LDAP filter to limit which contacts are fetched from the server. LDAP statement to limit which contacts are fetched from the server. Statement must be in parenthesis. |
LDAP Version | Selects LDAP protocol version to send bind requests. Default is Version 3. |
LDAP Name Filter | Search filter for name lookup. Its format is compliant with RFC4514. In this guide:
|
LDAP Number Filter | Search filter for number lookup. Its format is compliant with RFC4514. In this guide:
|
LDAP Mail Filter (GXV33xx/GXV32xx/GVC32xx/GAC2500 only) | Search filter for mail lookup. Its format is compliant with RFC4514. In this guide:
|
LDAP Display Name | Entry information to be shown on phone’s LCD. Up to 3 fields can be displayed. In this guide:
|
Max. Hits | Maximum number of results to be returned by the LDAP server. If set to 0, server will return all search results. The default setting is 50. |
Search Timeout | Interval (in seconds) for the server to process the request and return search results to the client. The default setting is 30 seconds. |
Sort Results (GXP21xx/17xx/16xx/GRP26xx only) | Sort returned results. The default setting is No. |
LDAP Lookup | Configures to enable LDAP number search when making and receiving calls. |
Lookup Display Name (GXP21xx/17xx/16xx/GRP26xx only) | Entry information when LDAP looks up the name for incoming call or outgoing call. This field must be a subset of the LDAP Name Attributes. In this guide:
|
LDAP Dialing Default Account (GXV33xx/GXV32xx/GAC2500/GRP26xx only) | Default account to use when dialing contact from LDAP directory. Users may choose from Account 1 to 6. The default setting is Auto. |
Exact Match Search (GRP26xx only) | With LDAP Lookup Incoming call, Outgoing call selected, DUT will performs LDAP search during incoming and outgoing call. If exact match search enabled, during the LDAP search, DUT will only get the result that matches the search input exactly. i.e., if 100 is the incoming/outgoing number only 100 will get searched, *100* will not. Default is “disabled” |
LDAP OPERATIONS
After configuring the LDAP server and the device(s), users can search LDAP contacts, dial using LDAP contacts and display matching name of caller/callee while receiving/making calls.
Following LDAP operations screenshots are using GXV33xx series, same operations are available in all models.
LDAP Search
Access LDAP contacts from Phone LCD Menu 🡪 Contacts 🡪 LDAP Contacts, and type the name or number you want to search. The result will be as follow:

Match Incoming Call
When receiving a call from a number that exist on our LDAP server the phone will automatically display the number and name of the callee on the LCD screen like bellow.
Note: The option “LDAP Lookup For Incoming Call” needs to be enabled from the webGUI under “Maintenance 🡪 LDAP Phonebook” so that the phone can match the incoming calls.

Making Calls using LDAP Contacts
Users can make search on the LDAP contacts and then dial the desired number by clicking on the Dial button next to the contact name.

SUPPORTED DEVICES
Following table shows Grandstream IP-Phones supporting LDAP/LDAPS client feature:
Model | LDAP Supported | LDAPS Supported | Firmware |
---|---|---|---|
GXP16xx Series | |||
GXP16xx | Yes | No | 1.0.4.6 or higher |
GXP17XX Series | |||
GXP17xx | Yes | No | 1.0.0.37 or higher |
GXP21xx Series | |||
GXP21xx | Yes | Yes | 1.0.7.25 or higher |
GXV33xx Series | |||
GXV3350 | Yes | Yes | 1.0.1.8 or higher |
GXV3370 | 1.0.1.28 or higher | ||
GXV3380 | 1.0.1.14 or higher | ||
DP75x Series | |||
DP750/DP752 | Yes | Yes | 1.0.2.16 or higher |
WP820 | |||
WP820 | Yes | Yes | 1.0.7.7 or higher |
GVC32xx Series | |||
GVC3200/GVC3202 | Yes | Yes | 1.0.1.74 or higher |
GVC3210 | Yes | Yes | 1.0.1.20 or higher |
GVC3220 | Yes | Yes | 1.0.1.24 or higher |
GAC2500 | Yes | Yes | 1.0.1.44 or higher |
GRP261x Series | |||
GRP261x | Yes | Yes | 1.0.0.16 or higher |
GRP2634 | Yes | Yes | 1.0.5.48 or higher |
GRP2624 | Yes | Yes | 1.0.5.48 or higher |
GRP260x Series | |||
GRP260x | Yes | Yes | 1.0.1.18 or higher |