Changes

Jump to navigation Jump to search
Updated compiling/config information from README.md
Line 12: Line 12:     
== Compiling ==
 
== Compiling ==
 +
(From README.md)
 +
 +
This code has been successfully compiled on both Debian Stretch (9.4.0) and Ubuntu 16.04. For Ubuntu 16.04, you will only need to use libdev-ssl and not libdev1.0-ssl. The following commands below will download the files compile them and install them.
 +
 +
===Using setup.sh script===
 +
 +
To automatically build and install the port and all associated files:
 +
<pre>
 +
# https://github.com/pttlink/ASL-AsteriskNG/raw/master/setup.sh
 +
# sh setup.sh
 +
</pre>
 +
 +
===Compiling by hand===
 +
 +
If you prefer to do all the steps yourself:
 +
 +
<pre>
 +
# Ensure that the necessary repos for Debian are added to sources.list
 +
# echo "deb-src http://mirrors.kernel.org/debian/ stretch main" >> /etc/apt/sources.list
 +
# echo "deb-src http://mirrors.kernel.org/debian/ stretch-updates main" >> /etc/apt/sources.list
 +
# echo "deb-src http://security.debian.org/debian-security stretch/updates main" >> /etc/apt/sources.list
 +
 +
# Update and install the requirements needed to build the system
 +
# apt-get update
 +
# apt-get install -y git build-essential linux-headers-$(uname -r) linux-source-4.9 libss7-dev wget apt-utils \
 +
dahdi-source dahdi-linux aptitude tcsh gawk libusb-dev doxygen
 +
 +
# Download the sources
 +
# cd /usr/work
 +
# git clone https://github.com/pttlink/ASL-AsteriskNG.git
 +
# wget https://github.com/KG7QIN/AllStarLink/raw/master/dahdi/dahdi-linux-complete-2.10.2%2B2.10.2.tar.gz
 +
 +
# Run the Asterisk prereq install script
 +
# mkdir /etc/vpb
 +
# cd /usr/work/ASL-AsteriskNG
 +
# sh /usr/work/ASL-AsteriskNG/contrib/scripts/install_prereq install
 +
 +
# Fix some dependencies that may have changed due to the prereq script running
 +
# apt-get install -y libssl1.0-dev
 +
 +
# Extract, build and load the DAHDI modules
 +
# cd /usr/work/
 +
# tar -zxf dahdi-linux-complete-2.10.2+2.10.2.tar.gz
 +
# cd /usr/work/dahdi-linux-complete-2.10.2+2.10.2/tools/xpp/
 +
# sed -i -e 's/inline /extern inline /g' echo_loader.c
 +
 +
# cd /usr/work/dahdi-linux-complete-2.10.2+2.10.2/
 +
# sed -i -e 's/configure /configure CFLAGS=-Wno-error /g' Makefile
 +
# cd tools/xpp
 +
# sed -i -e 's/-I. -Ixtalk -Wall -Werror/-I. -Ixtalk -Wno-error/g' Makefile
 +
# cd ../../
 +
# make distclean
 +
# make
 +
# make install
 +
# make config
 +
 +
# Load DAHDI module
 +
# modprobe dahdi
 +
 +
# Build ASL-AsteriskNG with ASL port
 +
# By default debugging code is included in this build using the -g option below
 +
# cd /usr/work/ASL-AsteriskNG/
 +
# make distclean
 +
# ./configure LDFLAGS="-zmuldefs -lasound" CFLAGS="-Wno-unused -Wno-all -Wno-int-conversion -g"
 +
# make menuselect.makeopts
 +
# menuselect/menuselect --enable app_rpt --enable chan_beagle --enable chan_tlb --enable chan_usrp --enable chan_rtpdir --enable chan_usbradio --enable chan_simpleusb --enable chan_echolink --enable app_gps --enable chan_voter --enable radio-tune-menu --enable simpleusb-tune-menu  menuselect.makeopts
 +
# make
 +
# make install
 +
# make samples
 +
# make progdocs
 +
 +
# Now run the post-setup script
 +
# cd /usr/work/ASL-AsteriskNG
 +
# sh ./post_ast_setup.sh
 +
</pre>
 +
 +
===Using Docker to run===
 +
 +
A Dockerfile has been created that will allow you to build this code as it currently is and run it. 
 +
The base image is Debian Stretch (9.4.0).
 +
 +
To build:<br/>
 +
Grab the Dockerfile from the Docker directory and place in directory by itself
 +
<pre>
 +
# docker build -t asl1.8-test3 .
 +
</pre>
 +
 +
To run:
 +
<pre>
 +
# docker run -v /dev/dahdi:/dev/dahdi -v /dev/dsp:/dev/dsp  --privileged --net=host -d --name ASL -i -t asl1.8-test3
 +
</pre>
 +
 +
Note:  You will need to have successfully built the DAHDI kernel modules with the AllStarLink patches and have this module loaded into your host OS's kernel.
 +
 +
Make sure that you connect to the container's shell and configure the node's rpt.conf and other required files under /etc/asterisk.  Example files are included.
 +
 +
To connect to the Asterisk console:
 +
<pre>
 +
# docker exec -it ASL sh /usr/sbin/asterisk -cvvvr
 +
 +
For just a shell prompts on the running container:
 +
# docker exec -it ASL sh
 +
</pre>
 +
 +
When the container is started, it will automatically kick off running the /etc/asterisk/rc.updatenodelist file and asterisk as well.
 +
 +
You can cleanly shutdown Asterisk and stop the container by running from the Asterisk CLI "core stop gracefully" or "core stop now"
 +
 +
Once you configure the node you will need to either reload asterisk or stop and start the container again.
 +
 +
Congratulations!  If all went well, you will have a complete install of Asterisk 1.8 with the AllStarLink app_rpt programs on your computer.
 +
 +
Note that these steps are purposely compiling Asterisk and modules with debugging info (-g).  This is to make it easier to collect information about various problems while testing the port out.
 +
 +
Please test and abuse this and let us know what problems you find via the github repo.
 +
 +
==Notes==
 +
 +
There are also some changes that you will need to make to your extensions.conf file (or you an opt to convert it to either extensions.ael or extensions.lua).
 +
 +
One of these changes is how app_rpt is called.
 +
 +
Convert any of your lines that are similar to this:
 +
Rpt(${EXTEN:1}|Pv|${CALLERID(name)}-P)
 +
 +
To this:
 +
 +
Rpt(${EXTEN:1},Pv,${CALLERID(name)}-P)
 +
 +
Commas have replaced the | in Astersk 1.8's dialplan.  Failure to update your extensions.conf will result in Asterisk not loading it correctly.

Navigation menu