Block Unwanted Callers

You can now prevent unwanted callers from calling your RingRoost PBX by blocking them under the “Contacts” tab of your RingRoost account. You can add a new contact and then block them, or block any of your current contacts (see more on the saving contacts here). The block call list features is great for prevent unwanted spammers who want stop trying to get a hold of you throughout the day.

Note that blocked contacts will not be able to reach your PBX and you will not be charged for the call.

google voice auto attendant

Many google voice customers in need of an auto attendant system (which google voice does not offer) asked us to document the process of porting a google voice number to RingRoost and setting up and simple auto attendant for their business, so here is our step by step guide.

Port your google voice number to RingRoost.

Porting a number from Google voice to RingRoost is pretty simple, the process should only take you a few minutes and the port will be complete in 5-7 days. You will first need to unlock your google voice number. You can do this here : https://www.google.com/voice/unlock

You should a screen that looks like the below image, then click “Unlock My Number”.

Port to RingRoost

Go to the number ports section within your RingRoost dashboard and click “port a number”.

You will then need to verify that you own your google voice number. Enter your google voice number (no spaces or dashes) and the automated system will call your phone and prompt you to enter verification code. It will look like this:

Note: Ensure that your google voice number forwards to your phone number so that your number can be verified by the automated system.

Input the required information to port your number and sign the LOA (letter of authorization to port the number) with your mouse and click “Submit Number Port”. Once the port submission is in place your google voice number will be fully ported to RingRoost after 5-7 days, in the meantime you will likely want to setup an auto attendant on RingRoost so when your number ports your phone system is ready to start taking calls.

Setting up an Auto Attendant

It’s really simple to create and auto attendant through your RingRoost PBX builder, the process should only take you 5-10 minutes to get a live auto attendant up and running.

First under your RingRoost dashboard create a new PBX called “My Auto Attendant” (or whatever you want):

Now click view/edit your PBX, and you will see your PBX builder. Drag and drop the “Answer Call Control” and the “Menu Control” onto your PBX and connect the two elements like so:

Note: If you are still waiting on you number port to gone through, you may want to buy a phone number for testing purposes until your port is complete.

Next type the text you want the caller to hear and add two menu items (1 for sales,2 for tech support) and connect them to the “Dial Control” with the numbers you want them to connect to. Make sure you save your auto-attendant and try it out, you should now have a working auto-attendant that looks like this:

Asterisk Installation Guide By Linux and Asterisk Version

Here I will maintain a “How To” list of installing various versions of Asterisk on various Linux platforms. Please tweet me at @taylorhawkes if any of the linked articles are incorrect or outdated.

linux Version Asterisk Version Article
Ubuntu 14 Asterisk 13 https://www.ringroost.com/blog/installing-asterisk-13-from-source-on-ubuntu-14/



Installing Asterisk 13 from source on Ubuntu 14

Ok, so before you read this guide, I have to urge you to consider ditching Asterisk in favor of using RingRoost. If you are a business or VoIP reseller there is nothing that Asterisk can do that RingRoost can’t (except break), contact us or schedule a demo to see what I mean.

Here is a guide on how to install Asterisk 13 on Ubuntu 14. It’s pretty easy/straight forward except one slightly tricky part – which is installing “PJSIP”, so make sure you read along carefully.

apt-get update

We will install Asterisk in “/usr/src”:

cd /usr/src
wget http://downloads.asterisk.org/pub/telephony/certified-asterisk/certified-asterisk-13.1-current.tar.gz .
tar -zxvf certified-asterisk-13.1-current.tar.gz
cd cd certified-asterisk-13.1-cert2/

Install some dependencies:

apt-get install build-essential 
apt-get install libxml2-dev
apt-get install libncurses5-dev libreadline-dev libreadline6-dev
apt-get install libssl-dev
apt-get install uuid-dev
apt-get install libjansson-dev
apt-get install libsqlite3-dev
apt-get install pkg-config

At this point we need to select the SIP library we are going to use in Asterisk. SIP is basically VoIP protocol that we MUST have in asterisk. Version 13 of Asterisk is a little awkward because it can use either “PJSIP” (a 3rd party library) or it’s native built in SIP library. The Asterisk team is encouraging people to use “PJSIP” instead of the native SIP library, so in Asterisk 13 PJSIP is the default library, but on Ubuntu 14 PJSIP must be installed and compiled from source.

So we can do things the quick and easy way (use the old Asterisk SIP library) or the right way (install PJSIP). I will outline both approaches below. If you are new to this I would just do the quick/easy way and then maybe switch to PJSIP later.

1. Use native SIP library in asterisk (quick and easy way)

./configure
make menuselect

Under channel drivers –> select chan_sip (press enter then save by pressing back then “s”). Then continue to compile & install instructions.

2. Install PJSIP (the right way)

cd /usr/src/
wget http://www.pjsip.org/release/2.4/pjproject-2.4.tar.bz2
tar -xjvf pjproject-2.4.tar.bz2
cd pjproject-2.4
 ./configure --prefix=/usr --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr CFLAGS='-O2 -DNDEBUG'
make dep && make && make install 
ldconfig

Go back to your asterisk directory and “./configure” then continue to then continue to compile & install instructions.

cd ../certified-asterisk-13.1-cert2/
./configure

Compile and Install Asterisk

make
make install
makes samples 
make config

Crank asterisk up:

/etc/init.d/asterisk start

Then connect to Asterisk Cli:

asterisk -rvvvvvvvv

Congrats you have at this point successfully installed Asterisk, if your not sure where to go from here you could start by setting up an interactive voice response system on Asterisk which I show how to do step by step in this article: https://www.ringroost.com/ivr-setup-asterisk.php.

Here are some common errors & fixes when you are installing asterisk 13 on ubuntu 14.04.

Error Issue Fix
uuid support not found (this typically means the uuid development package is missing Missing Package apt-get install uuid-dev
JSON support not found (this typically means the libjansson development package is missing Missing Package apt-get install libjansson-dev
Please install the SQLite3 development package. Missing Pacakge apt-get install libsqlite3-dev
Unable to connect to remote asterisk (does /var/run/asterisk/asterisk.ctl exist?) Asterisk not running. /etc/init.d/asterisk start

Thanks to these articles for installing Asterisk:
https://wiki.asterisk.org/wiki/display/AST/Installing+Asterisk+From+Source
http://www.asterisk.org/downloads/source-code
http://blogs.digium.com/2012/11/14/how-to-install-asterisk-11-on-ubuntu-12-4-lts/
http://ethertubes.com/install-asterisk-1-8-from-source-on-ubuntu-11-10/
http://blogs.digium.com/2015/02/24/install-asterisk-13-pjsip-centos-6/
http://asterisk.consulting/tutorial-installing-asterisk-13-with-pjsip-on-debian-ubuntu/

And these articles for working out various bugs/issue I ran into.
http://www.cyberciti.biz/faq/linux-unix-bsd-extract-targz-file/
http://forums.asterisk.org/viewtopic.php?f=1&t=90407
http://askubuntu.com/questions/378558/unable-to-locate-package-while-trying-to-install-packages-by-apt
http://stackoverflow.com/questions/1089741/how-do-i-obtain-use-libuuid
http://askubuntu.com/questions/567740/configure-warning-please-install-the-sqlite3-development-package
http://stackoverflow.com/questions/2800924/asterisk-unable-to-connect-to-remote-asterisk-does-var-run-asterisk-ctl-exis
https://wiki.asterisk.org/wiki/display/AST/Building+and+Installing+pjproject
https://wiki.asterisk.org/wiki/display/AST/Migrating+from+chan_sip+to+res_pjsip
https://wiki.asterisk.org/wiki/display/AST/Setting+up+PJSIP+Realtime
http://blog.gmane.org/gmane.comp.voip.pjsip/page=59
https://trac.pjsip.org/repos/wiki/Python_SIP/Build_Install
http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/2013-December/016912.html

Registering a Zoiper Softphone with RingRoost.

Registering a Zoiper Softphone with RingRoost is a breeze. Simply drag and drop a “SIP Phone Control” onto your PBX. As shown below:

Screen Shot 2015-02-13 at 3.06.35 PM

Then open up Zoiper and under settings -> General put your SIP username/password in the appropriate fields:
Screen Shot 2015-02-13 at 3.08.14 PM

Ensure that you have “u-law” set as your Codec on Zoiper:Screen Shot 2015-02-13 at 3.15.27 PM

Pick up our phone and make a test call, it’s as simple as that.

See what else you can with RingRoost by checking out the help videos and other resources.

Android studio + PhoneGap + Mac – “Hello World” Android App (From HTML/CSS/Javascript)

Taylor Hawkes

Author:

Created: May 20 , 2015


Below I explain how to get set up and run a “Hello World” Android application using Android Studio and PhoneGap. The process goes like this: First will write a HTML/CSS/Javascript, then we will use PhoneGap to convert that html app into a Java/Android app, then we will use Android Studio to compile and run the Java/Android app in simulator, finally I will show how to use Android studio to push your app to an actual Android Device.

FYI: I’ve long suspected that the “developer hubris” of certain technology players (Apple/Google) has unintentionally obfuscated the “getting started” process for new developers. I’ll do my best to overcome this, and explain the process in a incredibly gentle & easy to follow manor.


Installing Android Studio (And Android SDK)

Android studio helps us with a lot, we will use Android Studio to: Install Android Libraries (also know as SDK), Run the android emulator, push our app to a android device.

Note: You may see other tutorials using Eclipse (with the android plugin) – this is an outdated way of doing things, and is going to cause you some serious headaches.

a.) Download Android studio from: http://developer.android.com/sdk/index.html
b.) Run the .dmg and walk through installation (leave all the default settings, & accepts the licenses etc…)
c.) Open Android Studio and create a w project (just use default project settings – we won’t even use this)

Download and install PhoneGap

1. Installing Node.js & Apache Ant (PhoneGap Dependencies)

brew update
brew install node
brew install ant
note: If you don’t have brew you can download it from: http://brew.sh/, or you could just install node.js directly from: http://nodejs.org/download/, and install Apache Ant directly at http://ant.apache.org/manual/install.html.

2. Install PhoneGap

sudo npm install -g phonegap

Creating Our PhoneGap App

We will use PhoneGap to create a default html/css/javascript app.

cd ~/Desktop/
phonegap create helloworld com.world.hello HelloPrettyWorld
cd ~/Desktop/helloworld/

You will now notice a “www” folder in your current directory, this is our default html/css app, we will change this shortly, but we need to do a few more things first.

Next we need to use PhoneGap compile our HTML/CSS/JS app into Java app. This requires just the one tricky step of lettings PhoneGap know where the Android SDK Libraries live. We have already downloaded the SDK, when we downloaded Android Studio, now we just need to know it’s path.

To find your SDK path:

Open Android Studio -> On the Top Bar go to “Tools” -> “Android” -> “SDK Manager”

You should then see your SDK Path, mine is: /Users/taylorhawkes/Library/Android/sdk
Screen Shot 2015-01-13 at 11.38.27 AM

You then need to set the “ANDROID_HOME” variable that PhoneGap Uses, run the below command (CHANGE TO YOUR PATH, NOT MINE):

export ANDROID_HOME=/Users/taylorhawkes/Library/Android/sdk
export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

To permanently add this variable, append the above command to your “~/.bash_profile” file.

Now Under the Android Studio SDK Manager, select version 19 of the SDK build tools Android 4.4.2(API 19) and install the packages.

Screen Shot 2015-01-13 at 12.04.19 PM

Note: Generally when using PhoneGap we are going to have to use a slightly older version of the Android SDK, this is because the PhoneGap team has to build their software off some SDK and by the time it’s ready their is a new SDK out. Currently PhoneGap uses version 19, while Android studio installs and uses version 24 by default. In the future it’s likely that both PhoneGap & Android studio will use newer versions, however they pry won’t match by default – so you will always need to install the version that PhoneGap uses. If you don’t have the correct version, PhoneGap will let you know when you to build the app with an error message like : Error: Please install Android target “android-19″.

After installing the correct SDK version/API & adding the SDK libraries to our path, we can initialize a default android template:

phonegap platform add android
Note: It’s important that we don’t try to build our app yet (we to import the app into android studio first), otherwise Android Studio will not be able to import the project properly.

Importing PhoneGap App into Android Studio & Running the App

Cool, now we just need to import the app into Android studio and run the app, this process should be pretty easy.

In Android Studio go to: File->Import Project -> Select the Project Folder “/Users/taylorhawkes/Desktop/helloworld” – > Click Next Until you get to the below screen and make sure you select “Android API 19 Platform” -> Then Click Next -> Finish.

Screen Shot 2015-01-13 at 1.18.12 PM

After importing the project, we will make sure everything is working by running the Android Studio Emulator.

Got to Run-> Run Android as shown below:

Screen Shot 2015-01-13 at 5.05.31 PM

Andriod studio should fire up the emulator and you should see something like this:
Screen Shot 2015-01-13 at 5.06.45 PM

Note: A common error at this point is: ERROR: x86 emulation currently requires hardware acceleration!. Make sure you have installed the HAXM installers, follow the direction on this thread: http://stackoverflow.com/questions/26355645/error-in-launching-avd. notice that even after you install this through the “SDK Manager” you will still have run the silent_install.sh

Changing The Default app

Now for the fun part, since we got things working properly lets add our own little html/css/js App, build it and see how it looks.

You can of course use your own html/css/js app (just like your would build a regular webpage). For a simple example, I will work from the default template already created, I will add a red box that when clicked alerts “Hello My Friend”. You can download the whole “www” folder here, or make the few small changes I outline below.

Add the below code under opening body tag “www/index.html”


<div id="red_square">Click Me</div>

Add these two lines in “www/js/index.html” (in the onDeviceReady function)

var square=document.getElementById("red_square");
square.onclick=function(){ alert("Hello My Friend"); };  

Add this css to “www/css/index.css”

#red_square{                                                                                                         
position:absolute;                                                                                                   
top:100px;
left:100px;
width:100px;
height:100px;                                                                                                        
background:red;
}

Now for the magic, we use PhoneGap to build the android app. From your ~/Desktop/helloworld/ folder run:

phonegap build
You will need to run “phonegap build” after every change you make in your html/css/js app. Make sure you don’t run this command prior to importing into Android studio, or will run into errors when trying to run your App.

Then, back in Android studio lets run our app just like we did before: Run-> Run. This time we can see the changes we made in our app, try clicking the red button and see what happens :-).

Screen Shot 2015-01-15 at 3.36.44 PM

Pushing your App to a real device

Now we will push our app to a real android device. First we need to do a few thing to prepare our android device for the app.

a. Plugin your device.
b. Under you android device go to settings -> General – > Security and ensure that “Unknown sources” is checked under “Device Administration”.
c. Under settings -> General – > Developer options check: “USB Debugging”

Change Run Configuration in Android Studio
Go to Run->Edit Configuration -> and select “Show chooser dialog” under target device , then apply and hit ok.

Screen Shot 2015-01-13 at 5.23.05 PM

Push to device by going to Run -> Run -> Select your device and hit ok:
Screen Shot 2015-01-13 at 5.26.25 PM

Congrats!!! You should now see your app launch on your device.

If you looking for the RingRoost mobile app you can find more about connecting your mobile device to RingRoost here.

Thanks to these various articles:
http://www.panopticdev.com/blog2014/phonegap-mac-osx-setup-configuration-android-ios/
http://phonegap.com/install/
http://stackoverflow.com/questions/24931155/cordova-3-5-0-install-error-please-install-android-target-19
http://stackoverflow.com/questions/24688345/cordova-wants-android-19-i-have-android-20
http://www.tricedesigns.com/2013/05/16/phonegap-android-studio/
http://www.codenutz.com/getting-started-phonegap-android-studio/
http://stackoverflow.com/questions/26355645/error-in-launching-avd
http://developer.android.com/tools/device.html
http://www.codenutz.com/getting-started-phonegap-android-studio/