Gigaset deskphones include the ability to build secure VoIP-Infrastructures via the OpenVPN Technology. Gigaset decided to use OpenVPN because it is compatible with SSL/RSA Certificates and X509 PKI, NAT, DHCP, and TUN/TAP virtual devices. OpenVPN is Open Source and is licensed under the GPL.
This article explains the step-by-step implementation of OpenVPN on Gigaset desktop phones, including server installation and setup, creating the phone configuration and applying it on the phone.
The OpenVPN server is available for free and there are various guides available on installing and configuring it. This section contains one out of several methods to install and set up a minimal OpenVPN server on Linux and Windows. For more options and detailed information, see https://openvpn.net or the available documentation for your server.
The VPN feature is not shipped with the default firmware due to security considerations. Gigaset provides the VPN feature in a small firmware patch which needs to be installed. This patch contains only the VPN feature and thus is very small in size.
To install the VPN feature patch follow one of the following procedures:

The phone will reboot and install the patch. Afterwards you will be able to use the VPN feature
It is also possible to install the VPN patch automatically via GRAPE, as part of the provisioning or even prior to the settings being fetched by the phone.
If the VPN installation was successful, the VPN feature will be available. Here is now you can check that the VPN feature is available:


The content of the configuration file is usually the same on all clients/phones. To avoid having to configure both files, client and server, in one directory, create a subfolder called client-config:
|
The configuration file for the phone must be called vpn.cnf:
|
Edit this file with your favorite editor:
|
Paste the following content into the file, but remember to set the value for remote to your server's IP or FQDN by replacing <Server-IP/-name> below:
|
The phone configuration requires some naming that is mandatory and should not be changed:
For this example we are using the same MAC we used to create the client certificate.
Create a temporary directory to hold the needed files:
|
Put together the files in a tarball:
|
Now you should be able to find the tarball file vpnclient-000413A30591.tar inside the /etc/openvpn/client-config/tmp/ directory. We will use this file in the next step when providing it to the phone.
In the Command Prompt, create file vpn.cnf by running:
|
When asked if you want to create a new file, click Yes. Copy and paste the following content into the file, but remember to set the value for remote to your server's IP or FQDN by replacing <Server-IP/-name> below:
|
The phone configuration requires some naming that is mandatory and should not be changed:
In older firmware versions (8.x), the ping and ping-restart options might cause issues. If your VPN connection is failing in older versions, remove these options and try again.
Save the file vpn.cnf
C:\Program Files\OpenVPN\easy-rsa\keys\. Inside this folder, create a new folder called 000413A30591C:\Program Files\OpenVPN\easy-rsa\keys\ into the 000413A30591 folder:ca.crt 000413A30591.crt000413A30591.keyvpn.cnf
000413A30591 should look like this:000413A30591.crt to client.crt
000413A30591.key to client.key
000413A30591 should look like this:In the command prompt, navigate to the new created directory by typing:
|
Now create the tarball archive by typing:
|
You should see the following:
|
Now you should be able to find the tarball file vpnclient-000413A30591.tar under C:\ . We will use this file in the next step when providing it to the phone.
When creating the tar archive for Gigaset phones, it is very important to keep the file structure and naming as in the above examples.
Below is the content of the tar file created in this example, vpnclient-000413A30591.tar. Note that there are no subdirectories, the files must be placed in the root of the tarball:
ca.crt
client.crt
client.key
vpn.cnf
You can download this example file here: vpnclient-000413A30591.tar
This section also includes the download and set up of a minimal HTTP server using the SPLiT application. If you already have an HTTP server, you can just upload the tar file created in the previous section to your existing HTTP server and skip this section.
http inside the SPLiT directoryhttp directoryhttp valueInstall python if it is not already installed
|
Get and start SPLiT:
|
Now that the HTTP server is running, place the tar file created on previous version in the http directory inside the SPLiT directory:
|
Next, check that the link to the tarball file works correctly by opening a browser and accessing http://<Server-IP/name>/vpnclient-000413A30591.tar .
This should present you with the option to download the tarball file.
on . The Unzipped VPN config tarball parameter will become available:
Some settings are not yet stored permanently
, click Save . If this text does not appear you can ignore this step.The Unzipped VPN config tarball parameter is designed to be provisioned only once: every time this parameter is configured the phone downloads the tarball and then the setting gets emptied.
If you wish to change the phone's VPN configuration you have to configure the tarball URL again in order to make the phone download and apply the new configuration.
It is not necessary to give the tarball a new name, you can use the original name.
If you wish to set up a new phone in the VPN at a later time, you can use the following steps:
open command prompt and then run vars
on Linux by using commands:
|
on Windows by using commands:
|
vpn.cnf because this was already created and it is usually the same for all clients) repeat step Apply the VPN configuration to the Gigaset phone
In some cases the VPN server requires a username and password, in addition to the certificate. Here is how to configure up a VPN username/password for the Gigaset phone:
Add auth-user-pass to your vpn.cnf, like this (do not change the path):
|
Create file pass.txt with the following content, replacing the text username and password with your actual username and password.
|
Make sure the phone has the right date and time. Try to configure an NTP server that the phone can reach on its native network (not via VPN). If the phone has a wrong date it might assume that all certificates are not valid (yet).
You can set the phone to send all VPN logs to a "Netcat Server". To do this:
Install and run netcat on a host that is reachable to the phone:
|
Set the IP address of this host under Advanced → Qos/security → Netcat Server:
Once you apply this and reboot tht phone, you will see the phone's VPN logs on the host running netcat. If you have not added a custom verbosity level in vpn.cnf, you should see the following (for a successfull connection):
|
The phone does not show the IP address received over VPN in the web interface per default, but there are some other ways to view this:
Option 1: from the SIP logs
Set up a test identity on the phone, with Registrar set to an IP address inside the VPN network. It does not matter what IP address it is, it just needs to be routed inside the VPN network. Set only the Account and the Registrar for this identity:
Then click on SIP Trace, you will see some SIP messages. Look at the IP address from which these were sent:
Sent to Udp:10.8.0.1:5060
from Udp:10.8.0.6
:55786 at Oct 19 23:54:43.886 (717 bytes):
REGISTER sip:10.8.0.1 SIP/2.0
Via: SIP/2.0/UDP 10.8.0.6:55786;branch=z9hG4bK-2yig1rmxrpir;rport
From: <sip:100@10.8.0.1>;tag=r06il7bz6r
To: <sip:100@10.8.0.1>.....
If your VPN network is routing packets correctly, you will see here the phone's IP address (in this example it is
10.8.0.6
)
Option 2: from the netcat logs
From the netcat logs (see above " How to view the OpenVPN logs "). If you have not added a custom verbose level in vpn.cnf, at the beginning of the connection, the netcat logs will also show the IP address that the phone receives.
Here is an example:
|