Installing Asterisk Carl Davis Chief Architect, Stellar System Technologies Alex Vishnev Chief Technical Officer, ACN
PREREQUISITES Asterisk distribution – asterisk tar provides SIP based VoIPAsterisk distribution – asterisk tar provides SIP based VoIP Zaptel library – zaptel tar Digium hardware supportZaptel library – zaptel tar Digium hardware support PRI library – libpri tar supports ISDN PRI interfacesPRI library – libpri tar supports ISDN PRI interfaces Asterisk Sounds distribution – asterisk sounds tar provides professionally recorded prompts for use in your asterisk system.Asterisk Sounds distribution – asterisk sounds tar provides professionally recorded prompts for use in your asterisk system.
PREREQUISITES Linux distributionLinux distribution –RedHat Fedora Core (used in this presentation) –Debian –SuSE –Gentoo –Slackware –FreeBSD –And many more…
PREREQUISITES GNU Compiler Collection (GCC), v3.0 or higherGNU Compiler Collection (GCC), v3.0 or higher Make and bison – comes with most systemsMake and bison – comes with most systems C library headers – glibc-devel packageC library headers – glibc-devel package Curses graphics library – ncurses-devel packageCurses graphics library – ncurses-devel package Secure Socket library – openssl-develSecure Socket library – openssl-devel Zlib Compression library – zlib-develZlib Compression library – zlib-devel Newt Windowing Toolkit – libnewt-devel for use with zttool and ztcfg, very useful utilitiesNewt Windowing Toolkit – libnewt-devel for use with zttool and ztcfg, very useful utilities Doxygen documentation tool - doxygenDoxygen documentation tool - doxygen
PREREQUISITES Root login permissionsRoot login permissions Local or remote terminal console – telnet sessions work fine as long as the server allows root login from a telnet session.Local or remote terminal console – telnet sessions work fine as long as the server allows root login from a telnet session. General Knowledge of Linux commandsGeneral Knowledge of Linux commands –tar, vi, emacs, pico, etc, ftp and other administrative commands
PREREQUISITES Now, with all that said, you really don’t need knowledge of all that. Get the book “Asterisk: The Future of Telephony” from asteriskdocs.org, go to chapter 3 and type in each thing they have written. When you get into trouble, go to the Asterisk wiki at voip-info.org. You haven’t done anything that someone else hasn’t already done. If you have, try for a prize.Now, with all that said, you really don’t need knowledge of all that. Get the book “Asterisk: The Future of Telephony” from asteriskdocs.org, go to chapter 3 and type in each thing they have written. When you get into trouble, go to the Asterisk wiki at voip-info.org. You haven’t done anything that someone else hasn’t already done. If you have, try for a prize. Ready to Start?
Obtaining the Source Code FTP from asterisk.orgFTP from asterisk.org These generally resolve to ftp.digium.comThese generally resolve to ftp.digium.com Mirror sites are availableMirror sites are available Current stable version of Asterisk is 1.2.3(01/26/2006)Current stable version of Asterisk is 1.2.3(01/26/2006) Asterisk 2.0 is in betaAsterisk 2.0 is in beta The transfer supplies “tarballs”, tar.gz files containing source archivesThe transfer supplies “tarballs”, tar.gz files containing source archives Refer to asterisk.org for source code access via the Subversion source control systemRefer to asterisk.org for source code access via the Subversion source control system
Extracting the Source Code Copy the tar.gz archives into /usr/srcCopy the tar.gz archives into /usr/src Change directory to /usr/srcChange directory to /usr/src Extract the source code from the archivesExtract the source code from the archives –tar zxvf zaptel-*.tar.gz –tar zxvf libpri-*.tar.gz –tar zxvf asterisk-*.tar.gz The files will be extracted into their respective directories.The files will be extracted into their respective directories.
Building Zaptel cd /usr/src/zaptel-*cd /usr/src/zaptel-* make cleanmake clean zaptel-1.2.2]# make clean –rm -f torisatool makefw tor2fw.h radfw.h –rm -f ztcfg torisatool makefw ztmonitor ztspeed zttool zttest fxotune –rm -f *.o ztcfg tzdriver sethdlc sethdlc-new makemake zaptel-1.2.2]# make –cc -I. -O4 -g -Wall -DBUILDING_TONEZONE -DSTANDALONE_ZAPATA - DZAPTEL_CONFIG=\"/etc/zaptel.conf\" -c -o gendigits.o gendigits.c –cc -o gendigits gendigits.o -lm –./gendigits –ZAPTELVERSION="" build_tools/make_version_h > version.h.tmp –if cmp -s version.h.tmp version.h ; then echo; else \ –mv version.h.tmp version.h ; \ make installmake install
Building libpri cd /usr/src/libpri-*cd /usr/src/libpri-* make cleanmake clean zaptel-1.2.2]# zaptel-1.2.2]# cd../libpri-* libpri-1.2.2]# make libpri-1.2.2]# make clean –rm -f *.o *.so *.lo *.so.1 *.so.1.0 –rm -f testpri testprilib libpri.a libpri.so.1.0 –rm -f pritest pridump –rm -f.depend makemake –CC=gcc./mkdep -Wall -Werror -Wstrict-prototypes -Wmissing-prototypes -g `ls *.c` –gcc -Wall -Werror -Wstrict-prototypes -Wmissing-prototypes -g -c -o copy_string.o copy_string.c –gcc -Wall -Werror -Wstrict-prototypes -Wmissing-prototypes -g -c -o pri.o pri.c –gcc -Wall -Werror -Wstrict-prototypes -Wmissing-prototypes -g -c -o q921.o q921.c –gcc -Wall -Werror -Wstrict-prototypes -Wmissing-prototypes -g -c -o prisched.o prisched.c –gcc -Wall -Werror -Wstrict-prototypes -Wmissing-prototypes -g -c -o q931.o q931.c –gcc -Wall -Werror -Wstrict-prototypes -Wmissing-prototypes -g -c -o pri_facility.o pri_facility.c –ar rcs libpri.a copy_string.o pri.o q921.o prisched.o q931.o pri_facility.o –CC=gcc./mkdep -Wall -Werror -Wstrict-prototypes -Wmissing-prototypes -g `ls *.c` –gcc -Wall -Werror -Wstrict-prototypes -Wmissing-prototypes -g -c -o copy_string.o copy_string.c –gcc -Wall -Werror -Wstrict-prototypes -Wmissing-prototypes -g -c -o pri.o pri.c –gcc -Wall -Werror -Wstrict-prototypes -Wmissing-prototypes -g -c -o q921.o q921.c –gcc -Wall -Werror -Wstrict-prototypes -Wmissing-prototypes -g -c -o prisched.o prisched.c –gcc -Wall -Werror -Wstrict-prototypes -Wmissing-prototypes -g -c -o q931.o q931.c –gcc -Wall -Werror -Wstrict-prototypes -Wmissing-prototypes -g -c -o pri_facility.o pri_facility.c –ar rcs libpri.a copy_string.o pri.o q921.o prisched.o q931.o pri_facility.o make installmake install
Building Asterisk cd /usr/src/asterisk-*cd /usr/src/asterisk-* make cleanmake clean makemake make installmake install
Installing Asterisk Asterisk Installation Complete Asterisk Installation Complete YOU MUST READ THE SECURITY DOCUMENT + + YOU MUST READ THE SECURITY DOCUMENT Asterisk has successfully been installed. + + Asterisk has successfully been installed. + + If you would like to install the sample + + If you would like to install the sample + + configuration files (overwriting any + + configuration files (overwriting any + + existing config files), run: + + existing config files), run: make samples + + make samples or or You can go ahead and install the asterisk + + You can go ahead and install the asterisk + + program documentation now or later run: + + program documentation now or later run: make progdocs + + make progdocs **Note** This requires that you have + + **Note** This requires that you have + + doxygen installed on your local system + + doxygen installed on your local system
Installing Asterisk make samplesmake samples –Installs the sample configuration files in the /etc/asterisk directory make progdocsmake progdocs –Installs the Asterisk program documentation. This uses doxygen to generate the documentation from the source and some areas are documented better than others make configmake config –Configures the Linux system to execute Asterisk automatically on system startup
Commonly Used CLI Options -c – –Console. This allows you to connect to the Asterisk CLI. Example: asterisk -c -v – –Verbosity. This is used to set the amount of output for CLI debugging. Example: asterisk –vc or asterisk -vvvvvvc -r – –Remote. This is used to reconnect remotely to an already running Asterisk process. Example: asterisk -vr
Starting Asterisk asterisk-1.2.2]# asterisk asterisk-1.2.2]# asterisk -vvvc == Parsing '/etc/asterisk/asterisk.conf': Found == Parsing '/etc/asterisk/asterisk.conf': Found == Parsing '/etc/asterisk/extconfig.conf': Found == Parsing '/etc/asterisk/extconfig.conf': Found Asterisk 1.2.2, Copyright (C) Digium, Inc. and others Created by Mark Spencer Created by Mark Spencer Asterisk comes with ABSOLUTELY NO WARRANTY; type '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 'show license' for details. =============================================================== == Parsing '/etc/asterisk/logger.conf': Found Asterisk Event Logger Started /var/log/asterisk/event_log == Parsing '/etc/asterisk/dnsmgr.conf': Found Asterisk Dynamic Loader loading preload modules: == Parsing '/etc/asterisk/modules.conf': Found == Manager registered action Ping == Manager registered action Events == Manager registered action Logoff == Manager registered action Hangup Asterisk Ready.
Getting Help *CLI> help*CLI> help ! Execute a shell command abort halt Cancel a running halt add extension Add new extension into context add ignorepat Add new ignore pattern add queue member Add a channel to a specified queue ael debug contexts Enable AEL contexts debug ael debug macros Enable AEL macros debug …
Starting Asterisk Service Re-Attaching to Asterisk Console If you ran the make config command earlier or manually copied the initialization scripts, use them to start Asterisk. Otherwise, run the executable from /usr/sbin. asterisk-1.2.2]# /etc/rc.d/init.d/asterisk asterisk-1.2.2]# /etc/rc.d/init.d/asterisk start Starting asterisk: [ OK ] asterisk-1.2.2]# asterisk asterisk-1.2.2]# asterisk -vvvr == Parsing '/etc/asterisk/asterisk.conf': Found == Parsing '/etc/asterisk/asterisk.conf': Found == Parsing '/etc/asterisk/extconfig.conf': Found == Parsing '/etc/asterisk/extconfig.conf': Found Asterisk 1.2.2, Copyright (C) Digium, Inc. and others. Created by Mark Spencer Created by Mark Spencer Asterisk comes with ABSOLUTELY NO WARRANTY; type '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 'show license' for details. ========================================================= Connected to Asterisk currently running on stellar (pid = 20077) remote UNIX connection Verbosity is at least 3 stellar*CLI>
Q&A Alex VishnevAlex Vishnev Chief Technical Officer, VoIPChief Technical Officer, VoIP Reese Blvd. Ste Reese Blvd. Ste. 400 Huntersville, NC 28078Huntersville, NC Office (704) Office (704) Mobile (704) Mobile (704) Fax (704) Fax (704) Website Carl Davis Chief Architect Stellar System Technologies 35 Pinecrest Dr. Rochester, NY (585) Website