DialApplet is an application that integrates into an Asterisk PBX and offers different services easing the integration of voice and data.
DialApplet informs you of the state of your extension. When you receive an incoming call, a popup window appears showing you the caller's phone number as well as his name, picture and remarks. When you answer that call, several actions can be performed, so it's possible to interact with any other systems the client has. Not only is the state of a user's extension displayed but also the state of the rest of extensions in his group in a box specially crafted for that purpose.
Thanks to a centralized contact list, you can call your contacts from anywhere in your office and you don't need to manually dial the number or note it. When someone calls you, you can add the phone number directly to the contact list without needing to write it somewhere.
DialApplet logins as well as breaks are registered in a database, so DialApplet also serves as a sign up system.
The Call Center edition allows you to call the active calls by clicking a button that appears when a conversation is stablished.
DialApplet has been developed using the Qt toolkit by Trolltech. Because of that, it's multiplatform: it works under Windows 2000, XP and Vista, several Linux distributions and Mac OS X.
DialApplet works under Microsoft Windows 2000/XP/Vista, Linux 2.6 and Mac OS X. Officially, the openSUSE Linux distribution is supported although it should also work with other recent Linux distributions. Otherwise, the users don't need any special requirement; the main requirements lay on the server side.
DialApplet requires an Asterisk 1.2 or 1.4 server. To be able to interact with Asterisk, DialApplet works as an Asterisk Manager client, so this service must be enabled. The section 2.2.1 explains how to enable it.
DialApplet users are in fact Asterisk agents, so in order for them to appear at the login window you need to create them as Asterisk agents first. The section 2.2.2 explains how to create them.
For DialApplet to be able to know which extension has a SIP or IAX peer, its caller id must be defined. In the section 2.2.3 we will see how to make sure it is defined.
Besides from these requirements you also need PostgreSQL 8.0 or higher. The chapter 3.1 is about its installation and configuration.
This step is optional, since the DialApplet installation script used in the section 3.1.1 does it automatically. If you do the manual installation you need to carry it out.
To enable the Asterisk Manager Interface you need to edit the /etc/asterisk/manager.conf configuration file in the Asterisk server. In the [general] group, look for the "enabled" variable and change it to "yes".
You also need to create an Asterisk Manager user so that DialApplet can connect using it. To do that, you need to define a section whose name is the user name and specify the password in a variable called "secret". This user must have read and write permissions.
The file can stay, for example, like this:
[general] enabled = yes [admin] secret = 123456 read = system,call,log,verbose,command,agent,user,config write = system,call,log,verbose,command,agent,user,config
Once the file has been modified, you need to restart Asterisk. Unfortunately, it's not enough to connect to the command line interface and type "reload"; you need to restart Asterisk completely so that the changes are applied.
More information about the manager.conf file can be found at: http://www.voip-info.org/tiki-index.php?page=Asterisk%20config%20manager.conf
DialApplet users are in fact Asterisk agents. They can be created in the /etc/asterisk/agents.conf configuration file in the Asterisk server. At the end of this file, in the [agents] section, you need to create one line for each agent this way:
agent => Agent's identification number,User name,Password
The agent's identification number may be any number (usually 4 digits length) but it has to be unique. This means there can be no other agent with the same number. This way, for example, an agent called John Doe whose identification number is 1034 and password 632794 would have a line like this in the configuration file:
agent => 1034,John Doe,632794
After finishing creating the agents you need to force Asterisk to read the agents.conf configuration file again so that it sees the new changes. For that, you need to enter the Asterisk command-line interface using "asterisk -r" and type:
reload chan_agent.so
DialApplet can't be configured to attend a SIP or IAX peer that doesn't have a callerid defined, since it will complain with an error saying the peer doesn't exist. You need to make sure the SIP/IAX peers have a valid associated extension. This means the SIP/IAX peers corresponding to the users need to have the callerid defined with their corresponding extension number, as well as the qualify parameter to yes. For the SIP and IAX peers corresponding to VoIP providers or other peers Asterisk connects to you don't need (and we don't recommend) to define the callerid.
If the SIP/IAX peers are created from entries defined in the users.conf file, you only need to include the cid_number variable. For instance, the entry of a user called "Bastian Parker" would look like this:
[bparker] secret=******** fullname=Bastian Parker email=bastian.parker@myenterprise.com cid_number=100 qualify=yes ...
The callerid both for the SIP peers defined in sip.conf and the IAX peers defined in iax.conf is specified in the callerid variable, where optionally you can also specify a string as well as the extension number. For example:
[bparker] type=friend secret=******** context=default callerid="Bastian Parker" <100> qualify=yes ...
Before installing DialApplet you also need to install and configure PostgreSQL in the server, then create a database for DialApplet. The installation in the server side is explained in the chapter 3.1.
Once the server is ready, you need to install DialApplet in the clients. Since DialApplet is multiplatform, we provide Windows installers, RPM packages for openSUSE and .tar.bz2 files containing the Linux binaries. The chapter 3.2 explains how to carry out the installation under Windows, the chapter 3.3 the installation under openSUSE and the chapter 3.4 under other Linux distributions.
There is a shell-script for Debian and openSUSE that automatically installs and configures PostgreSQL and also creates the database. The installation using this script is explained in the section 3.1.1. It's also possible to install manually the way the section 3.1.2 explains.
The automatic installation script can be downloaded here:
http://www.dialapplet.com/downloads/server/install-dialapplet-server.sh
IMPORTANT NOTICE: This script is provided "as-is", just to ease the installation. Although we constantly work to improve and assure the script works correctly, we don't offer any kind of warranty relative to it and we are not held responsible for any damage it could cause.
It can just be downloaded from the server but you shouldn't leave it in /root or another directory that can not be accessed by other system users since the script runs some commands as the postgres user and an error would occur. So just open a root console and run the following commands:
cd /tmp wget http://www.dialapplet.com/downloads/server/install-dialapplet-server.sh
Next you need to add execution permissions:
chmod +x install-dialapplet-server.sh
Last, just run it:
./install-dialapplet-server.sh
During the execution, the script downloads PostgreSQL and creates a user. It will also ask for a password, which is the password corresponding to the dialapplet user in the database. You will use this password in DialApplet, so it's very important not to forget it.
PostgreSQL is usually included in many Linux distributions so the installation is just a matter of opening your favorite package manager and search for the packages. We will see how to install it in different distributions:
Now you need to configure PostgreSQL so that the users can connect from other computers, since usually the default configuration only allows connections from the local server, which is enough for PHP scripts but not for DialApplet or other applications that need to connect remotely. For that purpose, you must edit the postgresql.conf file which is in the PostgreSQL configuration directory. In Debian, this directory is located at /etc/postgresql/8.1/main and in openSUSE it's at /var/lib/pgsql/data.
You need to look for the listen_addresses variable. Uncomment it and change its value to * so that PostgreSQL accepts incoming connections in any of the IPs the server has:
# - Connection Settings - listen_addresses = '*'
Now you need to edit the pg_hba.conf file and add a line like the following so that PostgreSQL accepts connections from the LAN:
host all all 192.168.0.0/24 md5
You should change the IP address to the one of your network, as well as the number of bits in the mask. In case of doubt you may allow the access to everyone using "0.0.0.0/0", although that's unsafe.
In openSUSE you also need to edit the /etc/sysconfig/postgresql file and search for the "POSTGRES_OPTIONS" variable. Add "-i" like this:
POSTGRES_OPTIONS="-i"
Now restart the PostgreSQL:
# /etc/init.d/postgresql restart
If you are using a firewall, don't forget to open the port 5432.
The next step is to create a database user for DialApplet. The name of it may be "dialapplet" for instance, although it can be any other name. You may create it with the createuser command:
# su postgres $ createuser -P -S -D -R dialapplet
Now you have to create a database for DialApplet. You may do it using createdb. You also have to give permissions to the user you have created so that he can use the database. For that you may use the parameter -O.
$ createdb -E UNICODE -O dialapplet dialapplet CREATE DATABASE $
Last, you need to install the "plpgsql" language in the database so that DialApplet can use it. You may do it using the createlang command:
$ createlang plpgsql dialapplet
To make sure it has been installed correctly you may use the -l option:
$ createlang -l dialapplet Procedural Languages Name | Trusted? ---------+---------- plpgsql | yes
The database is now ready to be used by DialApplet.
Depending on the version of DialApplet you want, you have to download the corresponding file:
To be able to install DialApplet on your system, you must either do it as the Administrator user or install it in a directory where you have permissions to. When running it, you will see the DialApplet installer:

Click Next, then Install. After some seconds the installation will conclude and you just need to click Finish.
There is a repository with RPM packages for openSUSE 10.3, 11.0, 11.1 and 11.2. To install DialApplet you just need to click the button corresponding to the DialApplet edition you want to install:
Once installed, the program is accessible from the KDE menu under Applications -> System -> Desktop applet -> DialApplet. In the Applications menu a new menu called "New applications" will also appear. You will find DialApplet there. You may right-click the icon and choose "Add to favorites" to have it in the favorites tab.
There is also a tarball for Linux containing DialApplet and the libraries it needs. This file can be downloaded from here:
The file is compressed in .tar.bz2 format. You may uncompress it with Konqueror, right-clicking it and then choosing Extract - Extract here. It's also possible to uncompress it opening a console and typing the following command:
$ tar xjvf dialapplet-edition-version.tar.bz2
Changing "edition" and "version" to the corresponding values.
While uncompressing it a directory is created. The DialApplet binary is in it, as well as the libraries it needs. To run DialApplet, you can click dialapplet.sh. You shouldn't use the "dialapplet" binary directly.
You can create a link to the application on the desktop or in any other directory by right-clicking it and choosing Create new - Link to an application. In the "Application" tab you have to click Browse and select dialapplet.sh.
DialApplet features an automatic update system. If it's enabled, each time DialApplet starts, it connects to the Tecsible servers to check if there is a more recent version of DialApplet available and in that case a popup window appears in the lower right corner of the screen reporting it. This popup window has an "Install" button that allows us to install the latest available version.

When clicking it, DialApplet Updater will be started. It downloads the update and installs it. Under Windows, the installer of the new version is downloaded and started. Under openSUSE, DialApplet Updater uses zypper to download and install the new packages of DialApplet. In this case, for the update to be successful there can be no other application (such as YaST or openSUSE Updater, among others) using the package manager at the same time. Under other distributions of Linux, DialApplet update downloads the .tar.bz2 file it and uncompresses it in the same directory where DialApplet was already installed, overwriting the files with the new version.

DialApplet can be configured by clicking the Options menu - Configure. This window is also opened the first time DialApplet is run and is divided in five tabs: General, My extension, Tools, Servers and Actions. Only the first three are accessible at the beggining. To access the other two tabs you need to change to the administrator mode by clicking the "Administrator mode" button. The default administrator password is "admin".
The chapter 5.1 explains how to set up the minimum configuration DialApplet requires to work properly. The following chapters explain in more detail the options of each tab.
The first time we start the application, the configuration window will appear. It is mandatory in it to enter the name of the SIP or IAX peer corresponding to the phone we are working with. It's usually the same as the extension number but it depends on the configuration of the switchboard. In case of doubt you need to ask the administrator of the switchboard:
Now you have to click the "Administrator mode" and enter the administrator password. The default is "admin". Then click the Servers tab.
1. Select "Use the Asterisk Manager Interface".
If you are using the centralized configuration
2. Turn on the "Download settings from" checkbox and on the right side enter the URL DialApplet Web shows you (see chapter 8.5). After that, click OK and that's all.
If you want to enter the connection details manually
2. Enter the IP address of the Asterisk server in the "Server" field. You shouldn't change the port number unless the switchboard administrator told you so. Enter the user name and password of the Asterisk Manager that was created in the section 2.2.1.
3. In "PostgreSQL server" you also need to enter the IP address of the PostgreSQL server (which is usually installed in the same server where Asterisk is), as well as the DialApplet database name, the user name and password that were created in the chapter 3.1.
After clicking OK the application is configured and after a few seconds it will connect to the servers, so the login dialog will appear. There are more options you basically don't need to tweak. However, let's see them in the following sections.
At the top, in the box called "SIP/IAX peer name" you can enter the name of the SIP or IAX peer of the phone you have in your work place, i.e.: the user name your phone uses to authenticate to Asterisk. It is defined in the users.conf, sip.conf or iax.conf files in /etc/asterisk. Many Asterisk switchboards use the extension number as the user name. In this case, you may just type the extension number as it's the same.
There is also an option under it: "Get the peer name from the IP address automatically". This option may be useful when the last digit of the IP address of the computer is the same as the extension number of its associated phone and is also the same as the peer name. For instance, if the IP of a workstation is 192.168.1.104 and the extension of the phone in that place is 104 you may turn on this option and DialApplet will use the extension number 104. In case there are several network devices switched on (for instance a network card and a wireless card), the IP of the device used to stablish the connection to Asterisk will be the one used to get the extension number.
The "Check for updates" checkbox turns on or off the automatic check for updates (see chapter 4). When the checkbox is enabled, DialApplet will connect to our servers to check if there are updates on start and every 3 hours. Nevertheless, you may do a forced check no matter whether the option is set or not. To do it, click the Help menu - Check for updates.
In the "Various" group there are three unrelated options. By checking the "Launch on system startup", DialApplet will start automatically whenever you start the computer or log in it both under Windows or Linux. Under Linux and due to the way it works, you can get the same result no matter whether this checkbox is set or not by just not closing DialApplet when turning off the computer or closing the session on it.
When starting DialApplet, normally the login window appears. If "Minimize to system tray after start" is checked, after typing the user name and password in it, the main window of DialApplet is automatically hidden in the system tray to let us work. If you combine this feature with the "Automatically log in on startup" checkbox in the login window, the DialApplet main window won't appear at any moment when starting it until you open it manually by clicking in the system tray icon.
If you want DialApplet to save a log file with details about everything that happens in the application you may check the "Save a log file" checkbox. You usually don't need and are not adviced to have this option turned on during normal behaviour of the application since the log files eat space on your hard disk. However, it may be useful to know what happened at a certain moment and in case a bug is discovered in the application.
If the "Show a popup when I receive or answer an incoming call" checkbox is set, DialApplet informs you when an incoming call is received and your phone starts ringing by a popup window that appears in the lower right corner of the screen. This window includes the caller's phone number. If he is in the contact list more details will appear, such as the name, company and picture of this contact. The popup window also appears when you answer a call; e.g.: when picking up a call that was ringing in another phone.
As well as informing you of the calls you receive in your phone, DialApplet can also inform you of calls received by any other phone in your group (Asterisk context). This may be useful when a phone rings in a workplace where there's nobody. This way you can know who is calling without needing to stand up and get closer to the phone. For DialApplet to inform you of calls received by other phones in your group, you may check "Show a popup when someone from my group receives or answers an incoming call".
The next three options let you choose when will the actions specified in the "Actions" tab be carried out. If "Carry out the actions when I answer an incoming call" is checked, the actions will be carried out whenever you answer an incoming call if it doesn't come from an internal extension. By checking the "Carry out the actions when I get answered" checkbox, the actions will be carried out when you call someone and he picks up the phone.
When the caller's phone number is hidden or is unknown (i.e. when the caller id is hidden), no actions will be carried out even if the corresponding checkbox is checked. If you want the actions to be carried out in those cases you may check "Carry out the actions even if the caller identification is hidden or unknown".
The Auditor and Call Center editions of DialApplet allow you to record calls using two buttons in the "My extension" panel. The recording can be started and stopped by clicking those buttons and they are enough if you just want to record calls from time to time. Nevertheless, some call centers want to record the calls always. Clicking the record button everytime an agent answers a call is tedious and it's possible the user forgets to click it. To avoid this, the "Automatically record the calls I answer" checkbox may be checked. When it's checked, the recording is automatically started on answering a call. The user still has control at any moment, so he can stop and start recording it again whenever he wants by using the same buttons as usual.
If you check "Show the number of seconds the phone is ringing", when the phone rings DialApplet shows the number of seconds the phone is ringing without having been answered. This indication appears in the upper side of the popup window and in the "My extension" panel and it disappears when the call is answered.
DialApplet is capable of watching out the clipboard to sight the changes that happen on it and detect if a phone number has been copied. This feature is called "Copy To Call" and can be enabled or disabled with the "Monitor the clipboard in search of phone numbers" checkbox.
When a phone number is copied into the clipboard DialApplet may open a popup window in the lower right corner of the screen with the phone number and either some details if they are available or just a button to add it to the contact list if not, as well as a button to call this number. There also exists the possibility to automatically call the phone number that has been copied without asking. This may be useful, for example, to call in a row a list of phones which is stored in a spreadsheet. You may choose between those two possibilities by selecting "Show a popup window asking what to do" or "Call the phone numbers without asking" respectively.
If "Call the number contained in the clipboard when I press the following keys" is set, it's possible to call the last phone number that was copied into the clipboard by clicking a key combination. The default key combination is Ctrl+Alt+V, although it can be changed. To change it, click "Customize...". A dialog will appear asking you to click the key combination you want. You can then press a key combination or click Cancel, in which case the operation is aborted and the key combination will remain as it was before the dialog opened. Once pressed, you can see the new key combination in the configuration dialog but the change won't be applied until you click OK. No matter which key combination you chose, you can always revert to the default key combination of DialApplet by clicking "Reset to default".
The Quick Call feature can be also enabled or disabled using the "Open a window allowing me to call quickly when I press the following keys" checkbox. To open the quick call window you may use a key combination. The default key is F11 but it can be changed in the same way as with the previous option.
DialApplet needs to connect to the Asterisk switchboard as well as to a PostgreSQL database. The connection details are specified in this tab.
The most common is to use the Asterisk Manager Interface. For that you have to select "Use the Asterisk Manager Interface". In the "Server" text box, enter the IP address or domain name of the switchboard. Usually you don't need to change the port number unless the administrator of your switchboard tells you so. In "User name" and "Password" you have to enter the user name and password DialApplet will use to authenticate to the Asterisk Manager. This is the user that was created in the section 2.2.1.
If "Download settings from" is checked, DialApplet downloads when started the centralized configuration that was set up by the administrator in DialApplet Web. In the text box to the right you have to enter the URL of the XML file containing the configuration settings, as it is indicated in DialApplet Web. To learn more about the centralized configuration, see the chapter 8.5.
In case the switchboard uses the Tecsible proxy, you have to select "Use the Tecsible proxy". Under it, in "Server" you have to enter the IP address or the domain name of the Tecsible server. This server can also provide a centralized configuration to DialApplet. If you want DialApplet to use the configuration the server provides check "Use the settings provided by the server".
When the centralized configuration is used, you don't need to enter the details of the PostgreSQL connection, since DialApplet automatically downloads them. Otherwise, if the centralized configuration is not used, you need to enter those details. Thus, on the bottom side, right under "PostgreSQL server" where it says "Server", you can enter the IP address or domain name of the PostgreSQL server. It's usually the same as the switchboard but doesn't need to. You don't need to change the port but you must specify the database name, the user name and the password, as they were configured in the chapter 3.1. The database name is usually "dialapplet" and the user name too.
When you receive an incoming call or call someone, DialApplet may carry out 3 kinds of actions: open a web browser, run an external application or connect to a server by TCP and send him a message. In this tab it's possible to configure the actions that will be carried out depending on the Asterisk context the call comes from.
On the left hand there's the context list. In the beggining it has only one context called "Default". The actions to carry out when the call comes from a context not included in the list may be specified here. Of course, you may add as many contexts as you wish. To add a context, click "Add context". A dialog will appear where you can type the name of the context. Then click OK and the context will appear in the list.
It's also possible to rename a context by clicking "Rename context". A dialog will appear where you can type the new name. In the same way, a context can be removed from the list by selecting it and clicking "Remove context". When doing so, for the calls coming from that context the default actions will be carried out, since the context won't be defined anymore. If you don't want to carry out any actions for the calls from that context, disable all its actions instead of removing it.
On the right hand you can define which actions should be carried out when a call coming from the selected context on the left side is answered.
If you want a web browser to be opened you may check the "Open an URL" box. DialApplet uses the default system browser. In the box to the right you have to specify the URL you want DialApplet to open. There are 4 special values you may include in the URL. As stated below, you may use %1 in any part of the URL and it will be replaced with the caller's phone number before the browser is launched. In the same way, %2 will be replaced with the caller identifier (Asterisk's Unique ID), %3 with the session identifier and %4 with your extension number.
Another possible action is to run an external program. To do so, check "Execute a program" and type the command line to the right. As with the URL, you may include %1, %2, %3 and/or %4 and they will be replaced with their corresponding values.
To make DialApplet establish a TCP connection to a server and send a message to it you may check the "Connect to a host and send a message" checkbox. You have to specify the IP address or the domain name, as well as the port number of the server. In the contents of the message you may also use the previous variables. When you receive an incoming call or you call someone (depending on what is configured in the "My extension" tab), DialApplet connects to the port of the specified server, sends a message and disconnects. It doesn't wait for any kind of reply.
Once the configuration is finished click OK. The program disconnects from the servers and connects again with the new details you entered.
DialApplet is, as his own name suggests, an applet that integrates in the system tray, so when you start it an icon will appear in the system tray. If you click it, the main window will be opened. You can click the close button in the window decoration and it will hide back to the system tray. To close the program you can right-click the system tray icon and choose "Exit".
The first thing that appears after starting the application is the login window. In this window the user has either to choose his user name from the list on the left side or to type it in the corresponding text box. Then he has to type his password and click "Log in". If the password is wrong a message will appear warning him and he can try again. After entering the right password, DialApplet changes to the main window.
To make DialApplet remember the user name and password that was entered you can check the "Automatically log in on startup" checkbox. This way the next time DialApplet is started it will just switch directly to the main window using the user name that was entered the last time. If you log out from DialApplet, it will "forget" who was the last user name that was used, so the next time you start it, you will need to type the login data again to be able to log in.
The main window is split in three panels. On the left side you can see the status of your extension. In the upper right part you can see the extensions that belong to the same group you are in and to whom are they talking. Finally, in the lower right part is the contact list. These three panels can be made bigger or smaller using the handle that splits them. To resize them, just drag the handle. If you drag the handle to one side, the panel disappears but it can be made visible again by dragging the handle back to the middle. Let's see what is each panel used for and how.
In this part you can see the status of the user's extension, i.e. whether it's idle, dialing, ringing or talking. When someone calls you or you call someone you can see the phone number. If this number is in the contact list you can also see all the information related to that person, including his name, company, picture and remarks. Otherwise, a button appears on the right side letting you save that phone number into the contact list.
If there are new messages in your voicemail a letter icon appears to let you know. You can click this icon and the phone will ring. When you pick it up you will be able to access your voice mail and listen to the new messages. When you finish hearing them and you hang up, the icon will disappear.
When you answer a call or you call someone and he answers you, the actions specified in the "Actions" tab of the configuration (e.g.: open a web browser, run a program or send a message to a remote server) will be carried out, depending on which options are checked and whether the call comes from an internal extension or not. These actions can also be carried out during the conversation by clicking the "Carry out the actions" button.
DialApplet Call Center allows you to record calls. While in a conversation, two buttons appear on the right side: the first one allows you to record the active call and the second one to stop recording it. You just have to click the record button for the conversation to start being recorded. The recording will stop when you click the corresponding button or when one of the speakers hangs up. The recordings are stored in the Asterisk server, normally in the /var/spool/asterisk/monitor directory, in a file that has a name in the following way: "dialapplet-uniqueid-sequence.wav", where uniqueid is the unique identifier of the incoming call channel and sequence is a number that starts counting from 0 and is incremented each time the recording is stopped and restarted in the same call. You should keep in mind that recording calls is ilegal in many countries unless all of the call parties agree to allow it.
In the bottom part of this panel there's also a text box that allows you to call the number you want without having to dial it manually in the phone. This is specially useful when you want to call a phone number you have from some website or e-mail, for example. You may copy and paste it in this text box, then clicking the Call button or just pressing Enter. Your phone will then ring and when you pick it up it will start calling the number you entered.
This panel allows you to see which extensions are there in your Asterisk context and their status. Additionally, with DialApplet Auditor you can see all the extensions in the switchboard, including the extensions in other contexts you don't belong to. It's also possible to see to whom are they talking to in a tree structure and if the caller's phone number is in the contact list, his name, company and remarks.
The information in this list can be sorted by clicking in the column header. You can also show or hide fields by right-clicking the column header and checking/unchecking the column name you want.
By default, only the extensions where a phone is registered are shown in the list. If you also want to see the extensions where no phone has registered, right-click the list and check "Show unregistered extensions". In the same way, it's also possible to hide the extensions that are not talking. To do that, right-click the list and uncheck "Show idle extensions".
You can call an extension by double-clicking it or right-clicking it and choosing "Call".
The "Name" column of this panel also displays which user is logged in each extension. If a user has logged in to some extension it's possible to start chatting with him. Right-click the extension and choose "Chat" to do it.
DialApplet Auditor also allows you to record the conversations in other extensions and spy them. Keep in mind recording or spying calls may be illegal if the speakers didn't give their consent. It's your responsibility to make sure you are obeying the law. To record a call, right-click it, then click "Record". The call will start being recorded until one of the speakers hang up. If you want to manually stop recording it, you may right-click it and choose "Stop recording". To spy a call, right-click it and choose "Spy". Your phone will ring and as soon as you pick it up you will start hearing the conversation. However, none of the speakers will be able to hear you.
This panel offers a telephone directory in which it's possible to see the phone numbers as well as the person the phone belongs to, his company, e-mail address, remarks and his picture. The entries, which we call "contacts", can be classified in 3 types: global contacts, group contacts and personal contacts. Everyone who has access to the system can see and modify the global contacts. The group contacts are only visible to any member of the group the contact belongs to. Finally, the personal contacts are those who can only be seen by the person who added him to the contact list.
In the same way as in the extension list, it's possible to sort the contact list by any of its fields by clicking on the corresponding column header. Only the name, the company and the phone number are displayed by default but the rest can be made visible by right-clicking the column header and checking the proper column name.
It's also possible to filter contacts in the list. You just have to type a few letters of the contact(s) you want to search for in the "Search:" field. As you type, the contacts who don't contain those letters in any of their fields will disappear. This way, you can quickly find some contact searching by all of his fields and you just need to type two or three letters of his name, company, e-mail, remark or digits from any of his phone numbers. Later on, to show back all the contacts, you may remove the text you typed either with the keyboard or by clicking the small X icon on the left side.
To call a contact you only need to double-click it. You can also right-click it and select "Call this contact's main phone". If the contact has several phone numbers, you may leave the mouse pointer over "Call this contact on" and the contact's phones will appear. After that, click any of them to call it.
It's possible to add, edit or remove contacts from the contact list either clicking the Add, Edit and Remove buttons respectively, right-clicking a contact or selecting a contact and using the Contact list menu.
When you click the Add or the Edit buttons a dialog appears allowing you to enter the information of a contact:
You can also add a picture of the contact in .png or .jpg format. To add it, click "Set picture" and a file dialog will appear. Choose the picture you want and click OK. The thumbnail of the picture will appear in the upper left corner of the dialog. Nevertheless, the picture won't be really added until you click Add.
Once you finish entering the contact details, click Add and the contact will appear in the list. The contacts are stored in a PostgreSQL database, so the changes you make to a contact will be seen by the rest of the users instantly.
When editing a contact, if it already had a picture it's possible to change it clicking the Change button, so the file dialog will appear allowing you to choose a new picture. You can also remove the picture and leave the contact without any picture by clicking Remove.
If you would like to have a break you should click the "Break" button. The program will then stop showing call popup windows as well as carrying out the actions and the break mode window will be displayed. In the switchboard, your agent will log out so you won't receive calls from any queue with agents anymore.
When you finish the break and you want to resume your work you can click Resume and you will get back to the main window. DialApplet will log the agent in to the switchboard automatically so you will receive again calls from the queues you agent belongs to.
Finally, when you finish your worktime you can log out clicking the "Log out" button. If you quit using the Session menu - Exit, DialApplet will log out before exiting.
When some error happens, usually a problem with the connection to the server, you will see this window, where you can get more information about the kind of error that happened. You can also click "Configure..." to check the configuration settings and check if there is something wrong.
Calls can be transferred from the "My extension" panel or from the "Extensions in my group" panel. In any of these cases, to start with the transfer of a call you have to click onto the same call and drag it onto the addressee of the call in the "Extensions in my group" panel.
There are two modes of transferring calls: blind transfer and attended transfer. You can decide which mode you want to use pushing the menu Options - Configure and clicking on the option you want in the square "Transfers".
When you use the blind transfer (preset mode), your phone hangs up and it starts to ring the phone of the addressee, who sees the transfer like a new call for him. The call also disappears from the "My extension" panel and appears in the DialApplet of the addressee.
When you use the attended transfer, first you can speak with the addressee and give him more details about the person you will transfer during that one is listening music in the wait loop. In this mode by dragging and dropping the call, a new call to the addressee is realized. Your phone begins to ring and when you answer it, it begins to ring the phone of the addressee. You can give him the information you want and when you are ready to realize the transfer, push again onto the person, who has phoned in the panel of My extension and dragit onto the corresponding square on the addressee, which normally is just below. If you want to cancel the transfer you only have to hang up the call to the addressee and select the original call in your phone.
From the "Extensions in my group" panel you can also drag calls in order to transfer them. Nevertheless, only the Auditor version allows you to transfer calls that are attended by other users. Thereby it is possible to "steal" calls. To "steal" a call you just have to click it and drag it on an empty place in the "My extension" panel if you want to catch it or to any extension in the "Extensions in my group" panel. The person which is attending this call will see how the conversation is interrupted and the phone hang up. After that the call begins to ring at the destination, what can be even you or another extension.
If your switchboard is an Asterisk 1.2 and the transfer is not carried out when dropping the call onto the addressee, check "Extension to park calls" and "Context to park calls" of the "Servers" group in the Configuration. They must match the configuration defined in the features.conf file of Asterisk.
DialApplet is able to optionally store an activity log. If you have some problem you may check this log or send it to your systems administrator.
The log is stored in a plain text file called "dialappletYYMM.log", where YY corresponds to the last two digits of the year and MM to the two digits of the ongoing month. This month the file name is "dialapplet1003.log". The location of this file depends on the operating system you're using:
where user is the user name, that can be Administrator or any other.
DialApplet Web is a web interface where you can surf and modify the contact list of DialApplet, see when did the users log in and out, send them notifications and manage the configuration of DialApplet in a centralized way.
For DialApplet Web to work you need to install an Apache web server with PHP. In order for the recorded calls to be correctly managed, DialApplet Web needs to be installed in the same server where Asterisk is. PHP 4 will work but we recommend using PHP 5. The installation of such a server is usually quite simple and straightforward for most of the Linux distributions and is usually only a matter of installing the proper packages. In openSUSE they are: apache2 and apache2-mod_php5. In Debian: apache2 and libapache2-mod-php5. The rest of packages will be automatically installed due to the dependencies.
The following PHP extensions also need to be installed: GD, Gettext, mbstring, PostgreSQL and XMLReader (this last one is already included by default in PHP 5.1 and later). In openSUSE the corresponding packages are: php5-gd, php5-gettext, php5-mbstring, php5-pgsql y php5-xmlreader. In other distributions the name might be slightly different.
Once the web server is installed and running, you need to install Zend Optimizer, which can be downloaded here:
http://www.zend.com/en/products/guard/downloads
After uncompressing ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz, run as root:
./install
In the beggining a welcome page will appear. Just press Enter. Then the Zend Optimizer license will be displayed. The license is also included in the LICENSE file, so you can just press Enter. When you get asked "Do you accept the terms of this license?" choose Yes. The next step is to choose the directory where Zend Optimizer will be installed. The default one is /usr/local/Zend and it should be fine.

Now you must tell the installer where is the php.ini file located in your server. In openSUSE as well as in Debian it's located in /etc/php5/apache2. After pressing Enter, Zend Optimizer asks if you are using the Apache web server, so answer Yes. You must then specify the path to the Apache controller (apache2ctl or apachectl, depending on the distribution), although it will usually detect it automatically. After that, Zend Optimizer will modify the php.ini file so that PHP uses Zend Optimizer.
The installation of Zend Optimizer has finished, so now you just need to restart Apache for it to be ready. The installer can restart it by itself, so answer Yes when it asks "Restart the Web Server now?".
Now you can install DialApplet Web. It's available in .tar.bz2 and .zip format. You may use whatever best fits your needs:
Uncompress it in the document root of the web server (in openSUSE the default one is /srv/www/htdocs and in Debian /var/www) and edit the includes/config.php file. The details of the connection to the PostgreSQL server are specified in this file. You need to modify it like this:
$config['adminpassword'] = 'password that will be used to log in DialApplet Web'; $config['postgresql_server'] = 'address of the PostgreSQL server'; $config['postgresql_database'] = 'name of the DialApplet database'; $config['postgresql_username'] = 'user name for authentication with PostgreSQL'; $config['postgresql_password'] = 'password of the given PostgreSQL user';
Once modified, you can launch a web browser and if everything went fine, after entering the URL of DialApplet Web you will see the login page.
In this page, type the administrator password you previously specified in the config.php file in the line $config['adminpassword'].
DialApplet Web is available in three languages: english, spanish and german. DialApplet Web automatically detects the user's language from the information the browser sends. If the language is not correctly detected or if you wish to change it you may specify append the "lang" variable at the end of the URL with the ISO 639-1 language code. For instance:
http://servidor/?lang=de
However, if it still doesn't appear in the language you specified, it's possible that the server doesn't have the "locales" of that language installed. This might happen in Debian, where you need to edit the /etc/locale.gen file and add a line with the locale corresponding to the language you want (for example, de_DE.UTF-8). After that, you need to run the command locale-gen and restart the web server. DialApplet Web should then appear correctly in the language you wish.
Through the Contact list tab in DialApplet Web it's possible to view the centralized contact list of DialApplet and edit its contents. It contains a table with the contacts and several columns. The table can be sorted by any of its fields just by clicking the field name. When doing so it will be sorted in ascendant order. To switch between ascendant and descendant order you can click the field name again.
You can also search for contacts using the text box in the upper right screen of the page. You can type part of the name, company, phone number, e-mail address or any of the fields and after you click Search on the right side only the contacts that match the filter will be displayed. After you have searched for someone, you can get all your contacts listed again if you click Clear.
If the contact list has many contacts, not all will be displayed in the first page. To go to the next page and see the rest of the contacts, click the link at the bottom of the page titled "Next page". In the same way, to go back to the previous page there's a link titled "Previous page" that you can click.
To better see a contact's picture or do something with the contact such as editing or removing it, you need to select it first. To select a contact just click anywhere in its corresponding row. On the left side of the screen a box will appear with the details of the contact and a bigger picture. There are also two links: "Edit the contact" and "Delete the contact", which allow you to do their corresponding actions. You can also edit a contact by double-clicking its row without needing to select it first.
When editing a contact, the edit contact page appears:
Here you can modify the contact's details. If you wish to set a picture for this contact you may click the Browse button (it might be an icon depending on your web browser) at the "Picture" line and choose a JPEG or PNG file with the contact's picture. It's also possible to control who should be able to see the contact at "Scope". The contacts can be made visible for all the system users (Global), only to those who belong to a certain group (Asterisk context) or to a certain user. Once you finish editing the contact details you should click Save in order for the changes to be stored. Otherwise the changes won't be applied.
To add new contacts to the contact list, click "Add a contact" in the upper left part of the Contact list. The page to add contacts will appear and you can do in the same way as when you edit a contact.
The "User activity" tab allows you to monitor the logins, logouts and the pauses the user have made. This way you can control how many time have they been logged in and how many breaks did they have.
The page displays a table with the user name, the action the user has made and the date/time when the user made it. If no date has been selected, the today's activity is displayed. However, it's possible to view the activity in other days and even in a whole month. For that purpose there's a calendar in the upper left part of the page. You can click a date in it and only the activity of that day will be displayed. If you click the name of the month, the activity of the whole month will be displayed. It's also possible to change to the previous/next month using the left/right arrows on the sides of the name of the month.
As well as viewing the activity on a certain date it might also be necessary to see only the activity of a certain user. There is a list of users on the left side of the page where you can click one of them and only the activity of that user in the selected date will be displayed. To show the activity of all the users again you may click "Show all" at the bottom of the user list.
It's possible to send notifications to users from DialApplet Web. These notifications appear instantly in their computers as popup windows. This feature is useful, for instance, if you want to quickly send a message to the users and you want to make sure they will read it. Using an e-mail you can't be sure they read it and it may take some minutes before they read it.
In the notifications page there's a table with the notifications that have already been sent before. You may sort the table by any of its fields by clicking the field name. As in the contact list, you may click the field name again in order to switch from ascendant to descendant order.
To be able to do something to any notification you need to select it first by clicking on it. Once it's selected a box appears on the left side with the possible actions you can do with it. It's possible to send a notification again so the users will see it again clicking "Send again". You can also edit a notification to change something and send it clicking "Edit the notification". This is useful, for instance, if you want to send a notification which is similar to another one you already sent before, so that you don't need to write most of the text again. You can also delete a notification if you click "Delete the notification". Anyone who didn't read the notification yet will not be able to.
In order to create a new notification and send it you just have to click "Send a notification". Whenever you create a new notification or you edit an old one, the notification edition page is loaded.
In this page you can write the title and contents of the notification. Next you can choose the addressee(s) the notification is meant for: everybody, for the users in a group or for a certain user. On the other hand, the notifications can be either sent only to the users who are logged in at the moment so that the users who are not logged won't see them or can the programmed so that the users who are not logged in can see them when they log in to DialApplet. That's the purpose of the "Show later to the offline users when they get connected" checkbox.
Once you've finished writing the notification you can click Send to send it. The users will see it instantly and the notification will be stored again in the list.
The "Centralized configuration" tab allows you to easily change the configuration of all DialApplet clients. It works this way: when changing the configuration, DialApplet Web generates a XML file which is accessible from the web server. DialApplet can be configured to download this file everytime it is started. This way, after you perform any change in the tab the next time the user starts DialApplet the file will be downloaded and the changes will be applied. The configuration of DialApplet to use this XML file is explained in the chapter 5.1. The URL of this file is displayed in this same page, at the "Download settings from:" line.

The different options of the centralized configuration correspond to the options in the DialApplet configuration window. For more information about them read the chapter 5, where they are explained in more detail.
Once you finish modifying the configuration you can save it clicking the Save button, so the XML file is updated. From that moment on, the next time the DialApplet clients are started they will download the new XML configuration file and the changes will be applied. To discard the changes you may click Cancel.
When you finish using DialApplet Web it is recommended to log out by clicking "Log out" to prevent other users from accessing to it in case the session cookie was not cleared in the browser.