Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3
Warning

Asterisk GUI is no longer maintained and should not be used

Introduction to Asterisk GUI

Asterisk GUI is a framework for the creation of graphical interfaces for configuring Asterisk. Some sample graphical interfaces for specific vertical markets are included for reference or for actual use and extension.

Table of Contents

Software License

Asterisk GUI HTML and Javascript files Copyright (C) 2006-2011 Digium, Inc.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 only. This software is also available under commercial terms from Digium, Inc.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Please contact Digium for information on alternative licensing arrangements for Asterisk GUI.

Download

While package release is inconsistent and infrequent, you can always get a current copy of Asterisk GUI from subversion. The current stable version will always be under branches and is currently located in branches/2.0.

Support

Please note that Asterisk GUI is not officially supported, though bugs, patches, and feature requests may be submitted at http://issues.asterisk.org and should reference the Asterisk GUI project. You may also find peer support in the #asterisk-gui IRC channel and the Asterisk GUI forum.

Installation and Configuration

Installation

Code Block
langjavascript
$ ./configure
$ make
$ make install
$ make checkconfig

Configuration

You may install sample configuration files by doing "make samples". Also you will need to edit your Asterisk configuration files to enable Asterisk GUI properly, specifically:

http.conf:

Enable http.

Code Block
langjavascript
[general]
enabled=yes
enablestatic=yes
#bindaddr=0.0.0.0 # allow GUI to be accessible from all IP addresses.
bindaddr=127.0.0.1 # require access from the machine Asterisk is running on
bindport=8088
manager.conf

Enable manager access.

Code Block
langjavascript
[general]
enabled = yes
webenabled = yes

Create an appropriate entry in manager.conf for the administrative user (PLEASE READ THE security.txt FILE!)

Code Block
langjavascript
[admin]
secret = thiswouldbeaninsecurepassword
read = system,call,log,verbose,command,agent,config,read,write,originate
write = system,call,log,verbose,command,agent,config,read,write,originate
Access

Access Asterisk GUI via a URL formatted in the following way, where $IP is the IP address on which both Asterisk and Asterisk GUI are installed, $PORT is bindport from http.conf, and $PREFIX is the prefix from http.conf, and it can be omitted if blank.

Code Block
http://$IP:$PORT/$PREFIX/static/config/index.html

Troubleshooting

Check your filesystem permissions:

Code Block
langjavascript
$ chown -R asterisk:asterisk /etc/asterisk/ /var/lib/asterisk /usr/share/asterisk # if asterisk runs as the user "asterisk"
$ chmod 644 /etc/asterisk/*

Check that the bindaddr value in /etc/asterisk/http.conf matches the IP address of the machine you're using to access Asterisk GUI, not necessarily the IP address Asterisk GUI is running on.

Check on the Asterisk CLI that Asterisk is receiving the values you've set.

Code Block
http show status
manager show settings

Output should look like this:

Code Block
amelia*CLI> http show status
HTTP Server Status:
Prefix: /asterisk
Server Enabled and Bound to 0.0.0.0:8088

Enabled URI's:
/asterisk/httpstatus => Asterisk HTTP General Status
/asterisk/phoneprov/... => Asterisk HTTP Phone Provisioning Tool
/asterisk/amanager => HTML Manager Event Interface w/Digest authentication
/asterisk/arawman => Raw HTTP Manager Event Interface w/Digest authentication
/asterisk/manager => HTML Manager Event Interface
/asterisk/rawman => Raw HTTP Manager Event Interface
/asterisk/static/... => Asterisk HTTP Static Delivery
/asterisk/amxml => XML Manager Event Interface w/Digest authentication
/asterisk/mxml => XML Manager Event Interface

Enabled Redirects:
  None.
amelia*CLI> manager show settings

Global Settings:
----------------
  Manager (AMI):             Yes            
  Web Manager (AMI/HTTP):    Yes            
  TCP Bindaddress:           0.0.0.0:5038   
  HTTP Timeout (minutes):    60             
  TLS Enable:                No             
  TLS Bindaddress:           Disabled       
  TLS Certfile:              asterisk.pem   
  TLS Privatekey:                           
  TLS Cipher:                               
  Allow multiple login:      Yes            
  Display connects:          Yes            
  Timestamp events:          No             
  Channel vars:                             
  Debug:                     No             
  Block sockets:             No             

Check that the ports you've specified are open by using telnet from another computer.

Code Block
telnet $ASTERISK_SERVER_IP_ADDRESS 5038
telnet $ASTERISK_SERVER_IP_ADDRESS 8088

Check that the dahdi_genconf script runs correctly and creates /etc/asterisk/dahdi_guiread.conf.

Check the existence of /etc/asterisk/guipreferences.conf and inside that file, the existence of the following line:

Code Block
langjavascript
config_upgraded = yes

Check the last modified date of /etc/asterisk/http.conf. Asterisk GUI updates the timestamp on this file every time it is loaded. If the timestamp is not getting updated, your HTTP request is either not making it to Asterisk or it is not being processed correctly by Asterisk. This indicates a configuration error.

Check that the user Asterisk runs as has a login shell. Asterisk GUI depends on Asterisk being able to use the System application.

Code Block
langjavascript
su - asterisk

If you installed Asterisk GUI via 'yum' or 'apt-get', you may need to symlink /var/lib/asterisk/static-http to /usr/share/asterisk/static-http. Unfortunately /usr/share/asterisk/static-http will already exist, but fortunately it does not contain any useful files.

Code Block
ls /var/lib/asterisk/static-http/config && rm -rf /usr/share/asterisk/static-http && ln -s /var/lib/asterisk/static-http /usr/share/asterisk/static-http

Development

Debugging

To turn on debug messages, open config/js/session.js. On line 30, set "log" to "true":

Code Block
langjavascript
    log: true, /**< boolean toggling logging */

Hide Menu Categories

Hide menu categories by changing the HTML class attribute to "AdvancedMode" in index.html. Show them by enabling Advanced Options in the GUI.