Asterisk Quick Start Guide
Asterisk Quick Start Guide
What is Asterisk?
Asterisk is an open source framework for building communications applications. Asterisk turns an ordinary computer into a communications server. Asterisk powers IP PBX systems, VoIP gateways, conference servers and more. It is used by small businesses, large businesses, call centers, carriers and governments worldwide. Asterisk is free and open source. Asterisk is sponsored by Digium, the Asterisk Company. Asterisk is under the hood in countless voice communications applications and is capable of interfacing with many traditional Telcom protocols, VoIP protocols, and codecs. Asterisk provides a staggering list of capabilities and features including: IVR ACD Audio and Video Conferencing Voicemail Call Recording Fax termination CDR
http://www.asterisk.org/support
NOTE: Any server accessible from the public Internet should be security hardened, and an
Asterisk is no exception. General security best practices are not within the scope of this Quick Start Guide; however you may see Table 2 for default IP ports utilized by Asterisk. Instructions are provided for the Long Term Support (LTS) version of Asterisk, which is currently 1.8.
File Structure
The table below contains the default installation paths for Asterisk component files and libraries. This is not an exhaustive list, only the core components relative to this Quick Start Guide are listed:
Table 1 Default Installation Paths
Description Configuration files Location of binary executable message(error) logs and CDR Component module libraries
Default Ports
Protocol SIP IAX2 MGCP SCCP RTP Manager H323 Dundi Unistim Port number 5060/5061 4569 2727 2000 10,00 20,000 5038 1720 4520 5000 Transport TCP/UDP UDP UDP TCP UDP TCP TCP UDP UDP
Requirements
Asterisk can run on multiple base architectures including embedded systems and there are no strict requirements on CPU speed or memory size. This document assumes the use of a standard x86 based processor. Asterisk can run on a number of Operating Systems. Linux is the only officially supported OS, and it is recommended to use a 2.6.25 or higher kernel (although Asterisk will run on 2.4 kernels). A current and supported release of distributions such as CentOS or Debian is recommended. An Internet connection is also required.
Dependencies
There are a number of packages that are required to be pre installed on the host server to ensure that Asterisk will compile successfully. This Guide provides instructions for obtaining these packages for RedHat and Debian Distributions.
Downloading
The Asterisk source packages are available at: http://www.asterisk.org/downloads 1. Log in to your Linux machine as the root user (superuser). If you are using Ubuntu Linux log in as normal and prefix each command with sudo.
3. Download the current Asterisk source tarball to the host machine. This will download the latest (minor) version:
5. Enter the newly created source directory and execute the install_prereq in the contrib/scripts subdirectory. This will not only install the required dependencies but also install all packages necessary to build all option Asterisk components.
root@localhost:/usr/src/asterisk-1.8.16.0# ./configure root@localhost:/usr/src/asterisk-1.8.16.0# make root@localhost:/usr/src/asterisk-1.8.16.0# make install root@localhost:/usr/src/asterisk-1.8.16.0# make samples
7. Issue each command as shown. The mv (move) command is used here to rename (backup) the provided sample configuration files:
root@localhost:/user/src/asterisk-1.8.16.0# root@localhost:/etc/asterisk# mv modules.conf modules.conf.sample root@localhost:/etc/asterisk# mv extensions.conf extensions.conf.sample root@localhost:/etc/asterisk# mv sip.conf sip.conf.sample root@localhost:/etc/asterisk# mv iax.conf iax.conf.sample
8. Edit modules.conf and paste in the configuration provided. The ubiquitous WYSYWG editor gedit is used for example, although any editor will do. Save the file when done editing:
[modules] autoload=no load=pbx_config.so load=chan_sip.so Getting Help load=chan_iax2.so load=res_rtp_asterisk.so load=app_hangup.so load=app_dial.so load=codec_ulaw.so load=codec_gsm.so
[default] exten => _.,1,Hangup() [demo] exten => 2600,1,Dial(IAX2/[email protected]/s@default) same => n,Hangup()
11. Replace <RANDOM_STRING_X> with an actual randomly generated string. You can create these random strings of letters and numbers at http://www.random.org/strings/
NOTE: IF YOU DO NOT REPLACE THE <RANDOM_STRING> YOUR MACHINE IS VERY LIKELY TO BE COMPROMISED!!
13. Download, unzip, and extract the zoiper executable as described. Execute each command in order:
14. Execute the binary zoiper. That is extracted into the /usr/src directory:
root@localhost:/usr/src# ./zoiper
17. Enter the SIP account name that matches test_phone_<RANDOM_STRING_1> in /etc/asterisk/sip.conf. NOTE: Do NOT use the account name exactly as seen below. Create your OWN random string. If you copy the account name below your machine will VERY LIKELY be compromised!
18. Enter the account information. a. Domain must match the IP Address of the Asterisk server b. Username must match the account name (including random string) that you created. c. Password must match the secret you created in /etc/asterisk/sip.conf. This should be a random string! d. Caller ID Name can be whatever you like
10
11
12
21. Change Port to 5070. Click Save. This is only necessary if the Zoiper client is running on the host machine running Asterisk.
13
You are now be able to place a test call. Dial the configured extension 2600 from the softphone. This will dial to a Digium server using the IAX2 protocol and you will hear Digiums main IVR menu. You now have a running Asterisk server and a configured phone, as well as sample configuration. The extent of what you can do with Asterisk is only limited by your imagination!
14
1. Connecting to the Asterisk CLI There are many options that you can apply following the asterisk command at the Linux terminal. A few of the most common and useful are listed and described below. You can see a detailed list of all the valid options by running asterisk h. asterisk r If youve started Asterisk using a script or by running asterisk at the Linux terminal, you can then connect to that running instance of asterisk with the -r option. You will be presented license and warranty information, followed by the CLI prompt:
root@localhost:/usr/src# asterisk -r Asterisk 1.8.16.0, Copyright (C) 1999 - 2012 Digium, Inc. and others. Created by Mark Spencer <[email protected]> Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details. This is free software, with components licensed under the GNU General Public License version 2 and other licenses; you are welcome to redistribute it under certain conditions. Type 'core show license' for details. ========================================================================= Connected to Asterisk 1.8.16.0 currently running on localhost(pid = 80085) localhost*CLI>
asterisk c
Starts Asterisk in console mode. This assumes you have not already started asterisk as a background daemon process by running asterisk (or a script). You will immediately be connected to the Asterisk CLI. Run core stop now at the CLI to be end the process and return to the Linux prompt.
15
asterisk x This will issue a valid CLI command to Asterisk and provide the standard output to the Terminal. This should be immediately followed by the CLI command in quotes e.g. asterisk x sip show peers
core restart now Immediately restarts Asterisk. You will exit the CLI and be returned to the Linux prompt.
core stop now Immediately stops Asterisk. You will exit the CLI and be returned to the Linux prompt.
sip show peers Lists all configured SIP devices. The output includes the account name used for a given device and its IP address. dialplan show Displays all of the active (in memory) dialplan. This includes, but is not limited to, the configuration contained in /etc/asterisk/extensions.conf.
16