Learn how to install Asterisk on a Rackspace cloud server. This is an easy to follow step by step guide with all the commands you need to compile and install Asterisk with Dahdi.
I use Rackspace for most of my cloud servers since their support is second to none. They are always very helpful in getting me answers or even going above and beyond what they technically support. So because of this I often build Asterisk servers up there to test with or even for production use. Here is an easy to follow guide on how to build an Asterisk 11 server using Centos 5 image. You can just copy and paste the commands one by one or add them to a text file and run as a script.
Note: This step by step guide is for 64bit operating systems, if you use a 32bit Centos 5 server it will fail.
yum -y update sed -i s/SELINUX=permissive/SELINUX=disabled/g /etc/selinux/config reboot
Then we need to install some packages:
yum -y install bind-utils curl-devel doxygen gcc gcc-c++ gtk+ gtk+-devel gnutls-devel httpd kernel-xen kernel-xen-devel kernel kernel-devel kernel-smp-devel kernel-smp libxml2-devel libtermcap-devel libtool-ltdl libtool-ltdl-devel make mysql mysql-server mysql-devel mysql-server-devel mysql-connector-odbc net-snmp-devel neon-devel newt-devel ncurses-devel ntp openssl-devel openssl perl-suidperl php-mysql system-config-securitylevel screen texinfo unixODBC unixODBC-devel wget reboot
Now we can do the heavy lifting of installing Asterisk, Dahdi and LibPRI.
cd /usr/src wget http://downloads.asterisk.org/pub/telephony/certified-asterisk/certified-asterisk-11.6-current.tar.gz wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.4-current.tar.gz tar zxf certified-asterisk-11.6-current.tar.gz tar zxf dahdi-linux-complete-current.tar.gz tar zxf libpri-1.4-current.tar.gz cd /usr/src/dahdi-linux-complete-* make && make install && make config cd /usr/src/libpri-1.4* make && make install cd /usr/src/certified-asterisk-11.6-* ./configure --libdir=/usr/lib64 && make menuselect && make && make install make samples make config service dahdi start service asterisk start
All done! It really is that easy 😉
Are you trying to figure out how to set up click to call from a webpage using the Asterisk AMI? Well look no further, this is an easy to follow guide on exactly how to do it.
So before we start a couple of things you have to know about my environment. First I am hosting the webpage on the Asterisk server for the click to call so I have Apache installed and running, second I have port 80 open on the Asterisk server firewall so I can allow external requests.
So first thing you need to do is configure your Asterisk manager config file with a username who can originate the call.
/etc/asterisk/manager.conf [general] displaysystemname = yes enabled = yes webenabled = yes port = 5038 [clickadmin] secret=asdf1234S3 permit=127.0.0.0/255.255.255.0 ; Authorization for various classes read = system,call,log,verbose,command,agent,user,config write = system,call,log,verbose,command,agent,user,config
Once you create a user and password, in this case I have the username “clickadmin” then you can start writing the php code.
/var/www/html/clickcall/index.php $extension = $_REQUEST['internalnum']; $dialphonenumber = $_REQUEST['outboundnum']; $timeout = 10; $asterisk_ip = "127.0.0.1"; $socket = fsockopen($asterisk_ip,"5038", $errno, $errstr, $timeout); fputs($socket, "Action: Login\r\n"); fputs($socket, "UserName: clickadmin\r\n"); fputs($socket, "Secret: asdf1234S3\r\n\r\n"); $wrets=fgets($socket,128); echo $wrets; fputs($socket, "Action: Originate\r\n" ); fputs($socket, "Channel: SIP/$extension\r\n" ); fputs($socket, "Exten: $dialphonenumber\r\n" ); fputs($socket, "Context: dial-outbound\r\n" ); // very important to change to your outbound context fputs($socket, "Priority: 1\r\n" ); fputs($socket, "Async: yes\r\n\r\n" ); $wrets=fgets($socket,128); echo $wrets;
So that webpage will respond to url post of http://[ip address]/clickcall/index.php?internalnum=101&outboundnum=4075551234
It will first place a phone call to the extension number, in the example case would be 101. Once extension 101 answers that call it will then place the outbound leg of the call to phone number 4075551234.
I love to hear from my students so today I am posting a survey for you to fill me in on what you want more of. Tell me what you like and what you don’t like, or what you want to see more of. Say whatever you want, I am here to listen to you.
I just created a video of how to install Asterisk 13 on CentOS 7 64bit so anyone can follow along. I take this step by step to make it very easy to install the latest version of Asterisk. See the commands below the video.
yum install automake bluez-libs-devel bzip2 corosynclib-devel gcc gcc-c++ git gsm-devel jansson-devel libcurl-devel libedit-devel libical-devel libogg-devel libsrtp-devel libtool-ltdl-devel libuuid-devel libvorbis-devel libxml2-devel libxslt-devel lua-devel mariadb-devel nano ncurses-devel neon-devel net-snmp-devel newt-devel openldap-devel openssl-devel perl popt-devel postgresql-devel speex-devel sqlite-devel subversion unixODBC-devel uuid-devel wget cd /usr/src/ wget http://downloads.asterisk.org/pub/telephony/certified-asterisk/certified-asterisk-13.1-current.tar.gz wget http://www.pjsip.org/release/2.4/pjproject-2.4.tar.bz2 bzip2 -d pjproject-2.4.tar.bz2 tar xvf pjproject-2.4.tar cd pjproject-2.4 ./configure CFLAGS="-DNDEBUG -DPJ_HAS_IPV6=1" --prefix=/usr --libdir=/usr/lib64 --enable-shared --disable-video --disable-sound --disable-opencore-amr make dep make make install ldconfig cd /usr/src tar zxfv certified-asterisk-13.1-current.tar.gz cd certified-asterisk-13.1-cert2/ ./bootstrap.sh ./configure --libdir=/usr/lib64 make menuselect make make install make samples make config service asterisk start asterisk -rvvv
One of my clients AstLinux PBX’s was acting up a couple weeks ago by going into after hours mode in the middle of the day. Upon further investigation it turned out the PBX had lost power and rebooted so I realized the date/time was very wrong. The date command revealed the operating system believed it was 1999 so I figured the CR2032 battery on the board had gone bad. After replacing the battery I was expecting NTP to set the correct time for me, well that was a wrong assumption.
I restarted the NTP service many times only to continue getting an error of:
pbx ~ # service ntpd start Starting ntpd... sntp email@example.com Sat Feb 7 06:51:14 UTC 2015 (1) 2015-08-15 05:06:36.118274 (+0500) -8696498.478863 +/- 5797665.661695 north-america.pool.ntp.org 184.108.40.206 s2 adj_systime: Invalid argument
I checked the logs which reported the same issue:
pbx ~ # date Sat Jan 22 15:59:53 EST 2000 pbx ~ # cat /var/log/messages Jan 22 16:07:48 pbx daemon.notice ntpd: ntpd firstname.lastname@example.org Sat Feb 7 06:49:37 UTC 2015 (1): Starting Jan 22 16:07:48 pbx daemon.info ntpd: Command line: ntpd ? Jan 22 16:07:48 pbx daemon.info ntpd: proto: precision = 11.734 usec (-16) Jan 22 16:07:48 pbx daemon.info ntpd: getconfig: Couldn't open Jan 22 16:07:48 pbx daemon.info ntpd: Listen and drop on 0 v4wildcard 0.0.0.0:123 Jan 22 16:07:48 pbx daemon.info ntpd: Listen normally on 1 lo 127.0.0.1:123 Jan 22 16:07:48 pbx daemon.info ntpd: Listen normally on 2 eth0 192.168.247.10:123 Jan 22 16:07:48 pbx daemon.info ntpd: Listening on routing socket on fd #19 for interface updates Jan 22 16:09:03 pbx user.info sntp: sntp email@example.com Sat Feb 7 06:51:14 UTC 2015 (1) Jan 22 16:09:03 pbx user.info sntp: 2000-01-22 16:09:03.294382 (+0500) +482356762.551 +/- 321571175.034339 ntp.myfloridacity.us 220.127.116.11 s1 Jan 22 16:09:03 pbx user.err sntp: adj_systime: Invalid argument
At this point I figured the date was so far off that the system could not calculate the correct time based on the Invalid argument log entry. So I went ahead and manually set the date/time using the date command.
pbx ~ # date -s 2015.05.17-13:28:00 Sun May 17 13:28:00 EDT 2015
Then I did a restart on the NTP service which restored NTP to working order.
pbx ~ # service ntpd restart
All was back to normal after that, just make sure to manually set the time to be as close as possible then restart the ntpd service.
If your like me and use an iPhone to do a lot of you’re emailing then it is imperative to have a gmail account connected to it. Below are the quick and easy steps to configure a Gmail account on your iPhone or iPad using the latest version of Apple IOS8.
Good luck and let me know if you have any questions or feedback.
Do you want to build your own cloud phone system?
Do you want a get your own dedicated phone number?
How would you like to do all of this for less than the cost of a cup of coffee?
I recently finished another udemy training course where I walk you through step by step to building a cloud phone system and ordering a phone number. If you are looking to stop using your cell phone for all your work and personal phone calls this class is for you and for being a visitor of my blog get 60% off the original price.
There are many times when I would like to present my iPhone on a projector or large computer screen to show others an app or something on my phone. This has been a challenge in the past using tools like airplay or some third-party apps. Well not anymore, with OS X Yosemite there is now a native tool to display your iPhone or iPad right on your computer screen. QuickTime player now has an easy to use option to make your phone the video source. See below for how to set up the screen sharing option.
1. Plug your iPhone or iPad into your Mac using the usb lightning cable.
2. Open iTunes and click Trust on your iPhone/iPad pop-up to allow your computer access to the device.
3. Open QuickTime Player from Applications menu.
4. From the QuickTime file menu select New Movie Recording.
5. By default the movie screen will open using the computers FaceTime camera. Click the down arrow next to the record button then select your iPhone/iPad.
6. Now your phone will appear in the QuickTime movie window which will allow you to display to others or start a recording.
I just posted my first Udemy course on learning Linux and Asterisk. If you are having problems getting started with Asterisk and Linux this is an easy step by step video series where I walk my students all the way through installing Linux and compiling Asterisk. I have included a link to the course below.