SRV records (Service records) are names in DNS (Domain Name System) allowing to locate servers for specific service, by providing hostname, port number, weight and priority information in response to a DNS lookup request.
DNS SRV can be used to discover the SIP server domain, in order to get registered to make and receive calls, and can be also used to identify a backup SIP server domain in the event the primary server fails, providing high availability with no service interruption.
A SIP client configured with a domain name as SIP server (example: grandstream.com), if DNS lookup is using “A Record”, the response from the DNS server will include a single IP address for this domain. While if this domain offers different servers for the same service (SIP), DNS SRV can help to provide hostnames, port number, weight and priority for each server, allowing SIP client to connect to the first available server (depending on priority and weight). In addition, Grandstream products support DNS SRV/NAPTR, NAPTR records are used in conjunction with SRV records to discover available services (SIP, email, web, FTP…) in a specific domain, and provide DNS SRV records as response to use for DNS lookup.
The following flow shows DNS interaction between Grandstream products and DNS server:

DNS-SRV
DNS-SRV Format
The format for a DNS SRV lookup is the following:
_Service._Proto.Name TTL Class SRV Priority Weight Port Target
Field | Description |
---|---|
Service | The name of the service to resolve (http, sip, ldap…). |
Proto | The protocol used by this service (udp or tcp). |
Name | The domain name of the wanted service |
TTL | The time interval that the resource record may be cached before the source of the information should again be consulted. |
Class | Specify the type of the Resource record it can be:
|
Priority | A client attempt to contact the target host with the lowest-numbered priority it can reach, target hosts with the same priority will be tried in an order defined by the weight field. The range is 0-65535 |
Weight | It specifies a relative weight for entries with the same priority. Larger weight will get high priority of being selected. The range of this number is 0-65535. |
Port | The port on this target host of this service. The range is 0-65535. |
Target | The domain name of the target host. This entry should return one or more address records for this name. |
Configuring DNS-SRV On Grandstream Devices
GXP2170 is used in this guide as example for the configuration.
- Enter account credentials under “Accounts 🡪 Account X 🡪 General Settings”.
In this example: “SIP Server” is “grandstream.com” and “Outbound proxy” is “test.grandstream.com”.

- Set “DNS Mode” to “SRV” under “Accounts 🡪 Account X 🡪 Network Settings”

The table below explains available options related to DNS configuration:
Field | Description |
---|---|
DNS Mode | This parameter controls how the search appliance looks up IP addresses for hostnames. There are four modes: A Record, SRV, NAPTR/SRV, Use Configured IP. The default setting is “A Record“. If the user wishes to locate the server by DNS SRV, the user may select “SRV” or “NAPTR/SRV“. If “Use Configured IP” is selected, please fill in the three fields below:
If SIP server is configured as domain name, phone will not send DNS query, but use “Primary IP” or “Backup IP x” to send SIP message if at least one of them are not empty. Phone will try to use “Primary IP” first. After 3 tries without any response, it will switch to “Backup IP x”, and then it will switch back to “Primary IP” after 3 re-tries. If SIP server is already an IP address, phone will use it directly even “User Configured IP” is selected. |
DNS SRV Fail-over Mode | The option will decide which IP is going to be used in sending SIP packets after IPs for SIP server host are resolved with DNS SRV. • Default If the option is set with “default”, it will again try to send register messages to one IP at a time, and the process repeats. • Saved one until DNS TTL If the option is set with “Saved one until DNS TTL”, it will send register messages to the previously registered IP first. If no response, it will try to send one at a time for each IP. This behavior lasts as long as DNS TTL (time-to-live) is up. • Saved one until no responses If the option is set with “Saved one until no responses”, it will send register messages to the previously registered IP first, but this behavior will persist until the registered server does not respond. |
DNS-SRV Lookup
In order to Register account in the above example, the phone will try to resolve the domain “test.grandstream.com”, therefore:
- The phone will send a SRV lookup for “test.grandstream.com”.
- The DNS server will reply with a list of FQDN’s with different weight and priorities.
- The phone will issue an A record query for all the FQDNs (Fully Qualified Domain Names) starting from the one with the lowest priority number.
- The DNS server will send back the IP addresses associated with those FQDNs.
- The phone will then send SIP REGISTER request to the IP address associated with the lowest priority number returned by the SRV lookup.
Registration Process
If the primary SIP server where the phone is registered (192.168.10.13) fails, the phone act as follow:
- After the register expiration, the phone will send 3 SIP REGISTER requests to the primary server, and won’t get a reply.
- The phone will consider the server not available and then send a REGISTER request to the backup server (192.168.10.12).

Once the primary server returns to normal, after the register expiration the phone will send again REGISTER request to the primary server.

DNS NAPTR/SRV
DNS NAPTR/SRV Format
NAPTR resource records are used to replace compact, regular expressions with a replacement field that may well be a pointer to another rule, its DNS-type code is 35.
The format of an NAPTR record is as follows:
Domain TTL Class Type Order Preference Flags Service Regexp Replacement
Field | Description |
---|---|
Domain | The domain name to which this resource record refers |
TTL | Specify the time interval that the resource record may be cached before the source of the information should again be consulted. |
Class | Specify the type of the Resource record it can be:
|
Type | DNS type code for NAPTR is 35 |
Order | Specify the order in which the NAPTR records need to be processed, low numbers are processed before high numbers. |
Preference | Specifies the order in which NAPTR records with the same “Order” values need to be processed. records are processed from lower preference numbers to higher preference numbers. |
Flags | Indicate what happens next after this lookup, at this time 4 flags are defined.
|
Service | Specifies the services available in this domain. The replacement field is used to get to this service. It can also specify the protocol used to communicate with the server that offers this service. In SIP, three services are defined along with their resolution services (resolution services are defined after the “+” sign):
|
Regexp | Carries a substitution expression that is applied to the original domain name in order to construct a new domain name for the next lookup. |
Replacement | The next name used to query a DNS. This could be another NAPTR, SRV or A record. In SIP the replacement fields are SRV RRs and hence the flag field is set to “S”. |
DNS NAPTR/SRV Lookup
Using the GXP2170 example the DNS settings can be found under “Accounts 🡪 Account X 🡪 Network Settings”.

Using the example in Figure 1, in order to register the account, the phone will make the following lookup:
- The phone will send a NAPTR lookup for the domain “test.grandstream.com”.
- The server will return back a NAPTR record reply that contain the next step for the lookup.
- The phone will send an SRV lookup for using parameters returned on the NAPTR record.
- The DNS server will reply with a list of FQDN’s with different weight and priorities.
- The phone will issue an A record query for all the FQDNs starting from the one with the lowest priority number.
- The DNS server will send back the IP addresses associated with those FQDNs.
- The phone will then send SIP REGISTER request to the IP address associated with the lowest priority number returned by the SRV lookup.

DNS SERVER CONFIGURATION
A trial Version of Simple DNS Plus is used as DNS server in this example.
In order to configure Simple DNS with SRV and NAPTR records please follow those steps:
- Download and install Simple DNS plus from this link: SimpleDNSPlus.
- Open Simple DNS Plus and Click on Records to start configuration.

- Create a new Primary Zone.

- The following window will be prompt, select Forward Zone and Click “Next”.

- Enter the name of your zone which is “grandstream.com” in this example, then click on “Finish”.

Once the zone is created successfully, start creating the records as shown in the following figure:
- Right Click on the zone created which is “grandstream.com” then select “Other New Records” and click on “NAPTR-record”, this will create our NAPTR record.

- Fill the information related to the NAPTR record and click “OK” as shown below.

- Create SRV records by clicking on “grandstream.com” zone, then select “Other New Records” and click on “SRV-record”, this will create our NAPTR record.

- Fill the information related to the SRV record and click “OK” as shown below.

- Click on “grandstream.com” zone to Create SRV records, then select “Other New Records” and select “SRV-record”, this will create our NAPTR record.

- Fill the information related to the A record and click “OK” as shown below.

Once all the Records are created, click on Save Zone as shown below to save the zone and finish the Server configuration.

SUPPORTED DEVICES
Following table shows Grandstream products supporting DNS-SRV protocol.
Model | Supported | Firmware |
---|---|---|
GXP21xx series | Yes | 1.0.7.25+ |
GXP17xx series | Yes | 1.0.0.37+ |
GXP16xx series | Yes | 1.0.4.6+ |
GVC3200/GVC3202 | Yes | 1.0.1.74+ |
GVC3210 | Yes | 1.0.1.69+ |
GVC3220 | Yes | 1.0.1.24+ |
GAC2500 | Yes | 1.0.1.44+ |
GXW42xx series | Yes | 1.0.5.16+ |
HT8xx series | Yes | 1.0.2.5+ |
DP75x series | Yes | 1.0.1.20+ |