The HUD3 server is a stable actively developed product. The sever has been deployed trouble free on thousands of Fonality PBX's. Typically when there are problems it's due to one of three configuration files being incorrectly written: u3.xml, p3.xml or server.properties.
These files will be described in this article and you'll be able to identify problems in the files.
The HUD server may need to be restarted for serveral reasons. Here are the steps for restart the HUD server.
HUD3 server uses several file and directories. Outside of being familiar with the format of a few of the files, simply knowing where the HUD related files are stored is adequate in troubleshooting HUD. In som
Logs : /var/log/fonality/hud3.0/
Configuration : /etc/asterisk/fonality/hud3.0/
Binaries/Libraries : /usr/local/fonality/hud3.0/
Cache/Chat Logs : /usr/local/fonality/hud3.0/caches/
The u3.xml file contains settings for each user in the Web Admin Panel. The settings in this file are used for features in the HUD client. For example, the mobile number tag contains the number that is called when some clicks on the mobile phone icon.
There are <user></users> blocks for each user and the inHUD options determines whether the user is allowed to login to HUD. The username and password fields are the Web Username and Web Password for the user.
The settings in purple highlights attributes for the extension and are used for display purpose in the HUD client or as parameters for clickable icons.
The <extension></extension> is what ties a telephone to extensions. This is how the HUD client knows which extension square to update when someone is on a call.
<?xml version="1.0" encoding="UTF-8"?>
<users>
<user id="122169" inHUD="1" password="12344" username="3025_3000">
<description>DID Test</description>
<email>jfeinman@fonality.com</email><firstName>SV</firstName>
<lastName>P1</lastName>
<mobile phone="5551234" />
<extension device="SIP/0005901327FB" inboundPhone="18883105000" number="3000">
<directory companyDir="1" nameDir="1" />
<queue inBlastGroup="1" multipleCalls="1" pressToAccept="1" />
<ring seconds="20" />
<voicemail attachment="1" box="3000" callOut="1" callReturn="1" email="jfeinman@fonality.com" pager="jfeinman@fonality.com" password="1234" />
</extension>
</user>
<user id="122170" inHUD="0" password="12345" username="3025_3050">
<extension device="/dev/null" number="3050">
<directory companyDir="1" nameDir="1" />
<ring seconds="20" />
<voicemail box="3050" password="1234" />
</extension>
<firstName>SwissVoice</firstName>
<lastName>Phone 2</lastName>
</user></users>
The p3.xml file stores the permissions settings for all of the groups on the Extensions>Groups page. The settings for each group is represented by the group tag. In each group there is a members tag and multiple permissions tags.
group : The group tag contains settings for the group. Notables are autoAdd, for automatically adi
members : The members tag is a list of the extensions that are a port of the group.
permissions : There is upto one user permissions section and or zero or more group permission section in each group block. The permission tags with a group attributes represent the group permissions while the permission tags without a group attribute represents user permissions.
id and ids : These attribute contain tokens that represent each permission in HUD. For example, the acd_add_q permission is the User Permission that permit user with the Permission to add queues on the ACD>Add Queue page in the Web User Panel.
<opt> <permissions server_id="3025" version="1.0"> <group id="60305" name="Test Group" autoAdd="false" department="false" ext="600" hud-default-group="false"> <members ext="7017,7018,591" server="3025" /> <permissions id="acd_add_q,pe_xfer_from,pe_record,pe_xfer_to" />
<permissions group="60305" ids="oe_agent_change_status,oe_barge,oe_record" />
</group> <group id="60309" name="Test Group 2" autoAdd="false" department="false" ext="601" hud-default-group="false"> <members ext="2201,7773,593" server="3025" /> <permissions id="acd_q_auto_logoff,acd_agent_login_logout,acd_press_to_accept" />
<permissions group="60305" ids="oe_show_state,oe_barge,oe_filter_ext" />
<permissions group="60309" ids="oe_show_state,oe_barge,oe_filter_ext" /> </group> </permissions> </opt>
The server properties contains the URL of the server that HUD client authenticate against. If the PBX has linked servers this file may contain the URL for the linked server which would cause HUD authentication to fail.
Fh
The file should contain a single line similar to the line below.
file: /etc/asterisk/hud3.0/server.properties
instance.serverId=s3025.pbxtra.fonality.com
The serverId should be set the URL of the primary server. Sometime when using a Live Backup Server, the serverId URL will be set the real server ID of the LBS server and users will get authentication failure messages.
The HUD3 server listens for connections on port tcp/5222. Using the linux tcpdump utilitity we can verify that communication for the HUD client is actually reaching the HUD server.
tcpdump is used to watch network traffic between two computer. In this case, one computer is the PBX server and the other is a computer running a HUD client.
When running HUD on servers with under 512 MB of RAM and lots of activity, the HUD process can elevate the system load to a point where call quality begins to deteriorate. Ultimately the solution to this problem is to install more RAM on the system.
The temporary work around is it restart the HUD server when this begins to happen. Follow the steps below to restart HUD.
Click here for steps on restarting the HUD server
If there more the one HUD server processes in the process list, then HUD clients will not be able to connect. To view the list of HUD processes, run the following command at the linux command line.
'ps aux | grep hudserver | grep -v grep
This sample run shows a single HUD process with process ID 2184:
[root@pbxtra3025 ~]# ps aux | grep hudserver | grep -v grep
nobody 2184 0.2 7.4 284656 35840 ? Sl May29 12:10 /usr/java/default/bin/java -Xmx128m -Dnetworkaddress.cache.ttl=30 -Dnetworkaddress.cache.negative.ttl=5 -cp hud-server.jar:lib/core-3.1.1.jar:lib/jetty-6.1.10.jar:lib/jetty-util-6.1.10.jar:lib/jsp-2.1.jar:lib/jsp-api-2.1.jar:lib/servlet-api-2.5-6.1.10.jar com.fonality.hudserver.HUDServerStarter daemon
This sample run show two HUD process, process ID 2184 and process ID 3157:
[root@pbxtra3025 ~]# ps aux | grep hudserver | grep -v grep
nobody 2184 0.2 7.4 284656 35840 ? Sl May29 12:10 /usr/java/default/bin/java -Xmx128m -Dnetworkaddress.cache.ttl=30 -Dnetworkaddress.cache.negative.ttl=5 -cp hud-server.jar:lib/core-3.1.1.jar:lib/jetty-6.1.10.jar:lib/jetty-util-6.1.10.jar:lib/jsp-2.1.jar:lib/jsp-api-2.1.jar:lib/servlet-api-2.5-6.1.10.jar com.fonality.hudserver.HUDServerStarter daemon
nobody 3157 0.2 7.4 284656 35840 ? Sl May29 12:10 /usr/java/default/bin/java -Xmx128m -Dnetworkaddress.cache.ttl=30 -Dnetworkaddress.cache.negative.ttl=5 -cp hud-server.jar:lib/core-3.1.1.jar:lib/jetty-6.1.10.jar:lib/jetty-util-6.1.10.jar:lib/jsp-2.1.jar:lib/jsp-api-2.1.jar:lib/servlet-api-2.5-6.1.10.jar com.fonality.hudserver.HUDServerStarter daemon
Follow the steps below to resolve this issue.
The FONmon daemon should start HUD automatically if it's not running. It runs the following command to start HUD and the java process should start within 2 to 10 seconds.
/etc/init.d/hud3 restart
If the process stays in the process list for longer than 10 seconds, then there is some problem starting the HUD server. Run this command to see if the start command is in the process list.
# ps aux | grep hud3
The init.d script runs the following command to try to run the HUD server. Try running these command manually to see if there are any error messages when starting HUD.
# cd /usr/local/fonality/hud3.0/ # /usr/java/default/bin/java -Xmx128m -Dnetworkaddress.cache.ttl=30 -Dnetworkaddress.cache.negative.ttl=5 -cp hud-server.jar:lib/core-3.1.1.jar:lib/jetty-6.1.10.jar:lib/jetty-util-6.1.10.jar:lib/jsp-2.1.jar:lib/jsp-api-2.1.jar:lib/servlet-api-2.5-6.1.10.jar com.fonality.hudserver.HUDServerStarter daemon
If there are errors starting HUD using this manual process above, then their is a problem with this HUD server installation. Re-install the HUD server using the steps below.
# yum remove jre # yum install HUD3-server
<user id="122170" inHUD="0" password="12345" username="3025_3050">
<extension device="/dev/null" number="3050">
<directory companyDir="1" nameDir="1" />
<ring seconds="20" />
<voicemail box="3050" password="1234" />
</extension>
<firstName>SwissVoice</firstName>
<lastName>Phone 2</lastName>
</user>
<opt> <permissions server_id="3025" version="1.0"> <group id="60305" name="Test Group" autoAdd="false" department="false" ext="600" hud-default-group="false"> <members ext="7017,7018,591" server="3025" /> <permissions id="acd_add_q,pe_xfer_from,pe_record,pe_xfer_to" />
<permissions group="60305" ids="oe_agent_change_status,oe_barge,oe_record" />
</group> <group id="60309" name="Test Group 2" autoAdd="false" department="false" ext="601" hud-default-group="false"> <members ext="2201,7773,593" server="3025" /> <permissions id="acd_q_auto_logoff,acd_agent_login_logout,acd_press_to_accept" />
<permissions group="60305" ids="oe_show_state,oe_barge,oe_filter_ext" />
<permissions group="60309" ids="oe_show_state,oe_barge,oe_filter_ext" /> </group> </permissions> </opt>