Tuesday, December 25, 2012

PortGo SIP softphone with Asterisk 11

Something weird with Asterisk 11 and portGo that drove me nuts and finally figured the damn thing out.

So here’s my issue, when I use Asterisk 11 and port go, calls signaling can work but as soon as audio is to be transmitted, it hang up the call. After debugging on Asterisk, found that it was a remote disconnection request. Then it was obvious it is something to do with RTP, so I went into PortGo’s setup and click on Misc there was the RTP setting. I had to manually set the RTP setting there to something like 12000 to 12020, or whatever range of your fancy. And now it works, damn..


Monday, December 24, 2012

Setting up Channel Event Logging (CEL) on Asterisk 1.8 or up with MySQL and using FreePBX 2.11’s new CDR module to list em’

Hi guys, firstly wishing everyone a Merry Christmas…This would probably be my last posting here on technical matters for 2012. Lets usher in 2013 with some cool new FreePBX 2.11 CEL support.

In this guide, I will try to help you setup CEL which is one of the best things that happened in Asterisk 1.8 and up when it comes to audit/security. If you are using the official FreePBX-3.211.63 version, it will already come with CEL support, so you just need to switch it on or off like explained below. Those don’t have or not using the official distro, hope this guide helps.

With FreePBX 2.11 (in beta now), you can easily view CEL events straight from FreePBX’s CDR module (Reports). Here’s the how-to. Do improvise for whatever OS flavor you are running :). Lots of good advice taken off this link here from FreePBX dev team.

Assuming the following environments/conditions are already running and working for you already

1) Debian 6

2) Asterisk 1.8 or higher

3) FreePBX 2.11 (NOTE only 2.11 in beta now supports CEL. You must use FreePBX CDR module 2.11 or higher. Best thing is to make sure you get the modules in FBX updated to latest online repo.

We will be using the following backend


2) ODBC to connect to MySQL

IMPORTANT to note that the CDR with CEL support is in its infancy stage. Be sure to update it as frequently as available online. I do have some “annoyance” with this interface such as when you pull down the LINKIDs, you get to see all the events but you can’t seem to click on another LINKID, you have to reload the page or do your searches again. Yes, a little annoying but I am sure the FBX team is aware of this and will fix it when they do. This same behavior was noticed on the Distro too… :D

Firstly, we will need all the required ODBC related files for Asterisk to compile res_odbc and CEL with ODBC support.

  1. # apt-get update && apt-get install unixODBC-dev libmyodbc
  2. Go into your Asterisk source directory, and make sure you recompile, like this
  3. # make clean && ./configure && make menuconfig (if you browse around you will see that the CEL ODBC is selected under Channel Event Logging)
  4. Quit menuselect, then do # make && make install
  5. Lets populate our new tables and structure inside asteriskcdrdb (if don’t already exist, it could exist after compiling CEL CDR via Asterisk installation, you might want to check and skip some steps in item 5). Change values like “pass” accordingly to your MySQL root password. NOTE: I had to make the font small down here so that it first in one line, remember, these are one liners.
    # cd /usr/src
    # wget -O celcdr.sql http://pastebin.com/download.php?i=XNuN2DZL
    # mysql -u root -ppass asteriskcdrdb < ./celcdr.sql
    # mysql -h localhost -u root -ppass  mysql --execute="GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO celadmin@localhost IDENTIFIED BY 'pass';"
    # mysql -h localhost -u root -ppass mysql --execute="FLUSH PRIVILEGES"

  6. Create an ODBC connection to your local MySQL (modify accordingly your username and pass needed to connect to Asterisk and if the IP is your NIC ip, change to that or if the MySQL is remote, change accordingly. )
    # nano /etc/odbc.ini

    Description           = ODBC to Mysql
    Driver                = MySQL
    Database              = asteriskcdrdb
    Server                =
    UserName              = celadmin
    Password              = pass
    Socket                = /var/run/mysqld/mysql.sock 
    option                = 3

  7. ###Take note on the socket path for other OSes##

    # nano /etc/odbcinst.ini

    Description = ODBC for MySQL
    Driver = /usr/lib/odbc/libmyodbc.so
    Setup = /usr/lib/odbc/libodbcmyS.so
    FileUsage = 1
  8. Now, lets edit Asterisk configurations to use CEL in MySQL, edit the /etc/asterisk/cel.conf file, search and modify the following values
    NOTE: In our case, I am recording all events from all apps. Format your date according to your fancy, here I set it up to show like 23-12-2012 22:12:48 or don’t set it to leave it to Asterisk default.

    # nano /etc/asterisk/cel.conf
    dateformat = %d-%m-%Y %T
  9. Edit the res file now, add these at the bottom of these files.
    # nano /etc/asterisk/res_odbc.conf
    enabled => yes
    dsn => mysql-odbc
    username => celadmin
    password => pass
    pooling => no
    limit => 1
    pre-connect => yes
    # nano /etc/asterisk/cel_odbc.conf


  10. Then restart amportal (# amportal kill && sleep 2 && amportal start)
  11. To check, go into Asterisk CLI and type “cel show status”, you should see a bunch of stuff thrown out. Basically telling you that CEL is running and logging.
  12. To further check, make a call, if you use a tool like adminer or phpmyadmin or simply from MySQL CLI, you should start to see lines captured in CEL raw like here after making some test calls.
  13. If you see above, great so far, otherwise, just go into asterisk –rv and see if there’s any errors thrown when making calls with regards to res_odbc…its very likely permission or passwords, so fix them and restart asterisk again.
  14. When I enabled the CEL on Asterisk, FreePBX seem to have automatically detected it and set the value of CEL to yes, so really nothing much to do then…woohoo!
  15. That’s just about it. Now, be minded that the original CDR table still remains inside asteriskcdrdb CDR table and FBX is now reading off CEL table. Here’s how it looks with an expanded CEL event. Click on the IDs in “System” column items to expand the call’s events.
  16. NOTE, for my install, I had to click on Search again when I wanted to select another call to list. Meaning, its not like its pushing the list below, it “opens” up just that call info/event that you clicked. Nothing below.
  17. If you don’t want CEL, and want to use back good ole flat CDR, simply reverse the setting in item 13 above to set it to FALSE
  18. Be sure to watch that disk space, for a single call, there could be 10s of lines hah…

Monday, December 10, 2012

WebRTC and Asterisk 11 using sipML5 (with some FreePBX compatibility)

[UPDATED: 29 Mar 2014]


The following guide was taken off various sources as initial references such as Digium’s Wiki and sipML5’s how to for Asterisk found here.
And yes, again, this guide is mainly targeted to Debian users, other OS users, please improvise and do your best. Otherwise, drop me a note at sanjayws@gmail.com
OK, to begin, here are my components I am using

  1. Debian 6.0.7
  2. Asterisk 11.5
  3. Chrome Version 29.0.1547.66 m for Windows
  4. sipML5 (Thanks to Dubango Telekom http://www.doubango.org/)
  5. FreePBX (optional)
First, you need a working Asterisk 11.5 installation. If you don’t have one, use this guide here[don’t use this, its not updated, yet].  Be sure to use 11.5 as this guide is designed for that version!
Here’s a step by step with some explanation, remember only # cli codes you can copy paste
  1. Go to your source
  2. # cd /usr/src/
  3. Get libsrtp (as WebRTC only allows comms using secure / encrypted connections)
  4. # wget http://srtp.sourceforge.net/srtp-1.4.2.tgz && tar -zxvf srtp-1.4.2.tgz && cd srtp
  5. # ./configure
  6. # make && make install
  7. Now, we upgrade/update/install asterisk 11.5 if you’re not already running that particular version, if you are, skip the related parts here (points 8-11)
    # wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-11.5.tar.gz && tar -zxvf asterisk-11.5.0.tar.gz
    # cd /usr/src/asterisk-11.5.0 && make clean
  8. # ./configure --with-crypto --with-ssl --with-srtp=/usr/local/lib
  9. If you have errors with SRTP, you might want to just simply use apt/yum etc, e.g. #apt-get install libsrtp0 libsrtp0-dev
  10. [FREEPBX USERS]# contrib/scripts/get_mp3_source.sh
  11. [FREEPBX USERS]# make menuselect.makeopts
  12. [FREEPBX USERS]# menuselect/menuselect --enable format_mp3 --enable res_config_mysql --enable app_mysql --enable app_saycountpl --enable cdr_mysql --enable EXTRA-SOUNDS-EN-GSM
  13. Now time to reconfigure and recompile Asterisk with SRTP etc (WARNING, do not make samples if you have working configurations or use FreePBX etc)
  14. # make && make install
  15. Configure some parameters on Asterisk / config files
  16. Edit the /etc/asterisk/sip.conf (or modify Asterisk SIP Settings in FreePBX), add/modify the following settings, in [general]. Notice we add transport ws and wss, these are websocket and websocket secure

    realm=<yourIP or name> e.g.
  17. Edit the /etc/asterisk/rtp.conf and we add support for STUN (now supported on Asterisk 11). Read here for more info. Change/modify to your own if you don’t want to use the sample here.



    NOTE: You can use any STUN server of your choice, but be sure it works otherwise you will have slow network connection etc..
  18. Edit the http.conf file /etc/asterisk/http.conf, look for and modify or with an empty config, paste this below (uncomment if they are commented with a ; )


    Be sure its running after restarting Asterisk, check like below, you should be seeing output showing LISTEN somewhere
    # netstat -an | grep 8088
  19. Now, create one (or more if you wish to do browser to browser calls, for other phones create a normal SIP extensions like how you would do ) SIP accounts in /etc/asterisk/sip.conf with example below (FreePBX users modify it in /etc/asterisk/sip_custom.conf or if you are using FreePBX 2.11.10 or higher, the device/extensions page now directly supports WebRTC settings, see image below)


    callerid=Sanjay Willie <8001>

  20. [FREEPBX USERS] FreePBX 2.11.10 or higher, supports the WebRTC settings directly in its device/extensions settings page, here’s what you set.

  21. [FREEPBX USERS Pre versions 2.11.10] Since I also have older FreePBX versions, I use the context from-internal, where my dialplans are already created by FreePBX for me. For this customized extension to work, I created a SIP extension 2001 but under the DIAL I placed SIP/8000 instead so that it will ring my custom sip account and also the dialplan is now registered inside FreePBX’s dialplan to reach 8000. So. basically, now when I want to reach 8000 I actually dial 2001, get it? Otherwise write a simple dialplan like shown below the image

    exten => 8000,1,Dial(SIP/8000)
    same  => n,Hangup(16)

  22. [FREEPBX USERS] FreePBX users using 2.11.10 or higher, do not need to the above way as it is directly supported in its device/extensions settings already.
  23. Now, restart Asterisk (kill and start)
  24. Now, its time we get the sipML5 webphone and let’s get started!
  25. Go to your source directory, e.g. /usr/src, get the source using SVN, if you don’t have SVN, you need to install it (see how here)
  26. Assuming your web(http) default directory is in /var/www
  27. # svn checkout http://sipml5.googlecode.com/svn/trunk/ /var/www/myphone (note, some systems it may be /var/www/html/myphone)
  28. chown -R asterisk:asterisk /var/www/myphone/ (or /var/www/html/myphone)
  29. Now, head on to your Google Chrome browser and type
  30. http://<yourIP>/myphone/demos/call.htm (e.g.
  31. Click on Expert Mode, select to Disable Video.
  32. Enter the information like below except change the part where it says the IP, of course, enter your own IP there
  33. Those NATting, be sure to have a stun entry like shown above: [{ url: 'stun:stun.l.google.com:19302'}]. If you’re not NATting, then just put two [] like that and the ICE/STUN will not be used to manage RTP and you call will be connected faster as well. Be sure the stun you use on your server side is the same used on SIPML5 as well.
  34. Websocket URL: ws://  (Note this is not an SSL enabled site, i.e. using just ws, not wss, if you want to use WSS as the protocol, then you need to enable it on Asterisk’s HTTP server by generating keys etc…)
  35. Click on Save
  36. Go back to the other tab which the webphone is on, enter the SIP extension detailed you created above, or follow and modify per example below
    Display name: Sanjay Astiostech
    Private Identity: 8000 (or your extension number)
    Public Identity: sip:8000@ (if you are doing some NAT, it will be like sip:8000@ where the IP will be a public IP or name)
    Password: C@mplEX123
    Now click Login!, you should see the text Connected, like above in my picture
  37. Now, dial and dial away…..e.g. outbound call
  38. Now I use my Zoiper softphone to dial 8018 (or 8000 as per example), remember, it’s a “virtual” number we manipulated on FreePBX or manual dialplan to dial SIP/8018 (or in our example its SIP/8000) instead and here’s how it looks! Chrome receiving a call! [diagram below may not depict actual numbers, these are on my cloud servers]
      image image
  39. Now you can go ahead and try using it on another Chrome browser or other browsers, like Internet Explorer, Firefox and the rest and do give your feedback. But for other browsers you need a piece of software or set some configuration, see here.
  40. For mobile browsers, i tried Google Chrome and it worked with version 29.0.1547.72. Meantime, you can checkout Bowser (yes BOWSER) a WebRTC supported mobile web browser for iPhone and Android, however I had some issues with javascript complaining, hope you have better luck…If you did manage to get it to work, let us know and share with the community.
  41. An important thing to note, Webrtc definition allows to only use only g711 and OPUS. So, consider bandwidth repercussions using this solution as OPUS is not yet ready on Asterisk, so we have to live with g711 for now. In Asterisk 12, Opus support is passthru and that could be very cool :-)
  42. Don’t want the headaches of all of these installation steps, use PIAX - http://pbxinaflash.com/community/index.php?threads/new-webrtc-with-asterisk-11.15274/#post-99636 …ready to rock with WebRTC
  43. If you’re having one way audio issues, enable rtp debugging, you must see the text “VIA ICE” somewhere when the RTP packets are traversing.


Field notes

  1. If you get Got SIP response 603 "Failed to get local SDP" back when dialling to a WebRTC client, its probably because you enabled video but didn’t set it up correctly on extension and sip general level (Not covering video here, sorry). Solution is disable video from Asterisk SIP General (FREEPBX USERS, or in your SIP general settings)
  2. To speed up connection(call) you can disable stun gathering in expert setting, by setting ICE Server: [] – Put two square brackets there
  3. Its possible to use and start calling from latest Chome on Android, unfortunately the audio on my side seem to be stuttering, its something to do with ICE haven't got the the time to figure out yet. Perhaps its a fix needed in Chrome for Android, lets wait a tab bit longer for that, shall we..

  4. Each time you reload FreePBX/Asterisk, you need to relogin on SipML5



Tuesday, December 4, 2012

Asterisk 11 and chan_motif on FreePBX 2.11 (..still cooking with manual dialplans for GTalk..)

FreePBX does have chan_motif (currently GUI supports only GVoice ) with module under UNSUPPORTED category in Module Admin. But first, before getting there, we need to setup Asterisk 11 to enable
Here’s the howto, this is of course assuming that you’ve installed Asterisk 11 already (so it is now a recompile exercise here). If you need to install fresh, try my article here:
  1. # cd /usr/src
  2. # wget http://iksemel.googlecode.com/files/iksemel-1.4.tar.gz
  3. # cd iksemel-1.4
  4. # ./configure && make && make all && make install
  5. # cd /usr/src/asterisk*
  6. # make clean
  7. # ./configure
  8. # make menuselect (be sure that in Channel Drivers, see if the chan_motif driver is shows a * symbol.
  9. # make && make install
  10. Stop and restart asterisk # amportal kill && amportal start
Now, sign in to FreePBX
  1. Go to Admin | Module Admin
  2. Be sure to also select UNSUPPORTED as the options for repositories
  3. Lookout for the Google Voice/Chan Motif under Connectivity, install and go to that page
  4. Go to Connectivity | Google Voice [Motif]
  5. Configure happily there
I will update this article for use with GTALK later…since GVoice is done via FreePBX heck, why do dialplans Smile

Quick and Dirty Asterisk 11 and FreePBX 2.11 (RC) installation guide

MORE UPDATE : Why not try our VMWare Image of Asterisk 11 and FBX2.11B2, no installation required! Fully functional and business ready.
Hi guys, been a while since I got my hands on the blogging software. Anyway, I would like to share a simple guide to get an Asterisk 11 and FreePBX 2.11 (full release) running on a Debian 6.0x OS. If you use other OSes, the only thing you will probably change is the software repo manager (debians use apt, centos will like use yum) and the packages name. It won’t run too far from the installation shown here. Here’s a quick guide to install to Ubuntu (close to debian installation) and CentOS.
  • You should use FreePBX 2.11 as it officially supports Asterisk 11. Other versions may work but things may also break
  • This is a step by step copy paste guide, no explanations are provided. If anything breaks, something is wrong, nothing should break actually
  • # means it’s a command line you need to copy paste.  Of course, don’t copy the # itself, its just an indicator that it’s shell command …
  • Some of the Asterisk installations steps are taken off http://blogs.digium.com (don’t have to reinvent the wheel..)
  • This is not a comprehensive installation with best practices etc, but it does take care of some basic security stuff, do read online as much as possible
  • Get your Debian installed and ready to get worked on, be sure to work on a putty.exe session so be sure to install ssh # apt-get install ssh
  1. # apt-get update && apt-get upgrade    (reboot the box if updates are installed, if clean install no need to reboot)
  2. # apt-get install --force-yes build-essential ssh sudo libxml2 libxml2-dev libtiff4 libtiff4-dev php5 libapache2-mod-php5 php5-cli php5-curl php5-mysql php5-gd libmysqlclient-dev php-pear php-db linux-headers-`uname -r` curl sox apache2 libssl-dev libncurses5-dev bison libaudiofile-dev subversion libnewt-dev libcurl4-openssl-dev libnet-ssleay-perl openssl libauthen-pam-perl libio-pty-perl vim tcpdump  htop php5-cgi mpg123 libdbd-mysql-perl libdbi-perl libhtml-template-perl libnet-daemon-perl libplrpc-perl libterm-readkey-perl mysql-client-5.1 mysql-common libapt-pkg-perl libsqlite3-dev uuid-dev -y   (These include dependencies for FreePBX as well and some extras)
  3. # reboot (yes, reboot, then login to continue from below)
  4. # cd /usr/src/
  5. # wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz 
  6. # wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.4-current.tar.gz 
  7. # wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-11-current.tar.gz
  8. # tar -zxvf dahdi-linux-complete-current.tar.gz
  9. # tar -zxvf libpri-1.4-current.tar.gz
  10. # tar -zxvf asterisk-11-current.tar.gz
  11. # cd dahdi-*
  12. # make && make install && make config
  13. # cd ..
  14. # cd libpri-*
  15. # make && make install    (if you face errors with esp Ubuntu, you need to get a patch here, you should not see any errors tho)
  16. Before we install Asterisk, we would like to prep it for FreePBX use, e.g. creating groups and users and associating Apache to run as that low privileged user, dependencies etc, etc..
    • # groupadd asterisk
    • # useradd -g asterisk -c "Asterisk PBX" -d /var/lib/asterisk asterisk
    • # mkdir /var/run/asterisk
    • # chown -R asterisk:asterisk /var/run/asterisk
    • # cd /etc/apache2  (now, we will attempt to modify apache configs to run as the new user/group asterisk we just created, steps may be different from other OSes, take note)
    • # mv envvars envvars.old
    • # echo "export APACHE_RUN_USER=asterisk" >> envvars
    • # echo "export APACHE_RUN_GROUP=asterisk" >> envvars
    • # echo "export APACHE_PID_FILE=/var/run/apache2.pid" >> envvars
    • # echo "export APACHE_RUN_DIR=/etc/apache2" >> envvars
    • # echo "export APACHE_LOG_DIR=/var/log/apache2" >> envvars
    • # chown -R asterisk:asterisk /var/lib/php5
    • # /etc/init.d/apache2 restart
  17. # cd ..
  18. # cd /usr/src/asterisk-11*
  19. # contrib/scripts/get_mp3_source.sh
  20. # ./configure && make menuconfig (when the menu pops up, be sure to select under Add-ons, format_mp3, res_config_mysql, app_mysql, app_saycountpl and cdr_mysql. Now, go to Extra Sound Packages and if you can’t see that left menu option just keep scrolling down using your down arrow key, when you found it, move over to the right menu then select Extra-Sounds-En-WAV, in core sound packages, also select the WAV version for best compatibility. Save and exit) 
  21. # make && make install && make samples (NOTE: Don’t need to make config since we are using FreePBX and we start amportal rather than just asterisk itself)
  22. At this point you have a running Asterisk server! Congrats, now comes FreePBX. But there’s not much configs, so be prepared for Asterisk complaining about stuff and all if you try to start it.
  23. apt-get install -y mysql-server (when prompted, create the MySQL password, for this guide, we will use my@sql as the password
  24. cd /usr/src
  25. wget http://mirror.freepbx.org/freepbx-2.11.0.tar.gz (replace appropriate version that’s newer when available, see here )
  26. tar -zxvf freepbx*
  27. # cd freepbx*
  28. # mysqladmin create asteriskcdrdb -h localhost -u root -p (Enter your MySQL password as above when prompted)
  29. mysql -u root -p asteriskcdrdb < /usr/src/freepbx-2.11.0/SQL/cdr_mysql_table.sql (Enter your MySQL password when prompted, also note the directory of FreePBX to match the ver you downloaded)
  30. mysqladmin create asterisk -h localhost -u root -p (Enter your MySQL password as above when prompted)
  31. mysql -u root -p asterisk < /usr/src/freepbx-2.11.0/SQL/newinstall.sql (Password again)
  32. # mysql -h localhost -u root -p  mysql --execute="GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY 'fbx@mysql';" (Note: Here we create a new user for FreePBX to use MySQL and that is user asteriskuser with password fbx@mysql, change accordingly)
  33. mysql -h localhost -u root -p  mysql --execute="GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY 'fbx@mysql';"
  34. # cd /usr/src/freepbx-2.11.0/
  35. # mysql -h localhost -u root -p mysql --execute="FLUSH PRIVILEGES"
  36. # asterisk && ./install_amp (AT THIS POINT, ONLY ENTER THE DATABASE PASSWORD YOU CREATED IN STEP 34, in the case above that would be fbx@mysql)
  37. # /var/lib/asterisk/bin/module_admin upgradeall
  38. # /var/lib/asterisk/bin/module_admin reload
  39. Now to sign on to FreePBX. Go to your server http://<ipaddress>/html, default username and password is admin/admin be sure to change that too!!!
  40. Immediately update all modules in module admin
  41. NOTE: If you see FreePBX complain about some symlinks, do this below rm /etc/asterisk/iax.conf
    rm /etc/asterisk/sip.conf
    rm /etc/asterisk/extensions.conf
    rm /etc/asterisk/logger.conf
    rm /etc/asterisk/features.conf
    rm /etc/asterisk/sip_notify.conf
    rm /etc/asterisk/confbridge.conf
    rm /etc/asterisk/ccss.conf
    rm /etc/asterisk/cel.conf
    rm /etc/asterisk/cel_odbc.conf
    rm /etc/asterisk/res_odbc.conf

    • Then refresh your FreePBX browser page, and hit Apply Conf. If there are other .conf files interfering, just rm it and retrieve_conf again….
    • Change the admin password | Go to Admin | Administrators, select admin and change the password there
    • Change your AMI password – Go to Settings | Advanced Setting | under Asterisk Manager, change it there to something of your choice
    • Change ARI password – Go to Settings | Advanced Settings | under System Settings, change User Portal Admin Password to something of your choice
    • Get all the latest packages – Go to Admin | Module Admin |  select Basic and Extended, click on download all, upgrade all, click process, wait to download, click Apply
    • Sometimes, the SIP Nat settings can be wrong, click on Advanced | Asterisk SIP Settings | Be sure to set to Public to get things started..
    • If you get errors with conference just ignore or clear it, it wont come back and conferencing will work just fine
    • You should not screen any significant errors or warnings in the Dashboard
  43. OPTIONALLY, if you want Asterisk to start automatically when reboot
  44. Create a FreePBX startup script
  45. # echo “#!/bin/bash” > /usr/bin/amportal-start
    # echo “/usr/local/sbin/amportal start” >> /usr/bin/amportal-start
    # echo “exit 0” >> /usr/bin/amportal-start
    # chmod +x /usr/bin/amportal-start

  46. # nano /etc/rc.local
  47. Before where it says exit 0, paste this line
    # /usr/bin/amportal-start
  48. Reboot at least once
  49. And there you go, functional FreePBX 2.11 with Asterisk 11 ready to go…
  50. Test, test and test more

Known issues (this list keeps getting updated!)

- You might get errors with the FreePBX UI not loading and what not and says server error, tail the apache error log, its likely some module like digium modules breaking it, if you get that, run this

# amportal a ma disable digiumaddoninstaller
# amportal a ma delete digium_phones
# amportal a ma delete digiumaddoninstaller

You can add them later using Module Admin

Thanks and have a great week ahead!