Doorbell application

Introduction

Doorbell is a VOIP-based outdoor doorbell that can be run on SIP-based telephone systems (PBX).

The application was developed to demonstrate the potential of the Disko UI framework for the Arrow® BF527 development kit/display kit using the board support package supplied by emlix, but can also be compiled for other platforms. It is relatively easy to use the software base for developing a commercially viable product.

doorbell on epc-bf527

The doorbell is licensed under GPL and is available as a free download.

The following sections describe how to build the doorbell application from the sources as well as the requirements to do so.

Using Disko with the emlix board support package

The provided binary package must be extracted in the root directory of the booted root filesystem. It extracts the application in /opt/doorbell and overwrites the boot script at /etc/init.d/rcS to setup the gpio buttons and boot directly into the application. Any changes that have been made upfront the installation, must be reapplied afterwards.

Patching the Hardware

There are some changes to the hardware needed to get audio capture working correctly with the latest mainline Kernel release. To achieve this DAUD0-CKR and DAUD0-CKT must be bridged.

Installing Disko

Of course you need to install the disko framework. There are different ways to achieve this, all described here. You can either download a precompiled binary package or build it from the sources. The downloads are available here. If you want to use the source tarball, check the installation instructions.

Installing Minisip

Since we are using the Minisip library as the SIP stack implementation it has to be installed as well. Unfortunately there are no binary packages available, thus manual compilation is necessary. There is a comprehensive installation guide available.

Installing the doorbell

Building the doorbell is pretty easy. If you have successfully installed Disko and Minisip as described before, you can install the doorbell application by issuing the following commands:

cd <path to doorbell sources>
make
make [prefix=...] install

The parameter prefix is used to install the application in a different directory than the current one.

Configuring the doorbell

There are two places to configure the doorbell application.

Basic features can be adjusted by changing values in a small sqlite3 database located at <doorbell>/share/configdb. The table PluginProperties contains the following values:

Name Description Default value
OpenDoorCmd Specifies a command to be executed, if the door should be opened (by providing the correct PIN number, or pressing '#' on the other side). /usr/bin/opendoor.sh
LodgerList The location of the file containing the lodgers. Each entry consists of phone number, PIN number for opening the door and (optionally) an away notification message. ./etc/user.txt
Longitude The longitude of your location. This is used to calculate the times of sunrise and sunset to change between day and night theme. 13.4
Latitude The latitude of your location. This is used to calculate the times of sunrise and sunset to change between day and night theme. 52.5167

To change the settings for the SIP stack that is used by the application, edit the file <doorbell>/etc/config.xml. The parameters are documented within this file. This includes setting audio devices, account information and network connection settings.

Starting the doorbell

To execute the doorbell application, simply enter the following commands:

cd <path to doorbell installation>
./bin/doorbell

For testing purpose there are some command-line options available:

Option Description
-nosign suppresses registering at the sip server
-night use the night theme
-day use the day theme
-nointro skip the intro
-testswitch switch day/night theme every 10 seconds

Further links