Home » Posts tagged 'asterisk' (Page 23)
Tag Archives: asterisk
SIP Happens! And Kamailio Makes It Easy, Part I
If ever there was a Swiss Army Knife for SIP, Kamailio (a.k.a. OpenSER) is the hands-down winner. The flexibility of this open source SIP server is legendary. Whether it’s secure communications, insulation from brute force attacks, load balancing, failover, WebRTC, or the return of shared line appearances on your office phone system, Kamailio can handle it while processing thousands of call setups per second on minimal hardware platforms.
Our plan for today is to walk you through setting up a Debian-based Kamailio server on an inexpensive cloud platform that is suitable for making thousands of free SIP phone calls worldwide. Down the road, we’ll walk you through using Kamailio as a frontend for one or more Asterisk® servers to insulate your communications workhorses without sacrificing network security. If, like us, you managed an office which migrated from key telephones to a platform like Asterisk, then you will most certainly appreciate the ability to once again let your managers and secretaries share phone lines without the aggravation of call parking and pickup. Other than removing a free office coffee machine, I can’t think of any single event that ever prompted a staff and management revolt quite like the one we experienced with the removal of key telephones. Little wonder that it’s part of all Cisco and Avaya phone systems as well as cloud offerings from Vonage, 8X8, Jive, and probably others.
Before we begin our adventure, let me caution everyone that this is an experimental platform with a tutorial prepared by a Kamailio novice. While we’ve done our homework, digging out information on Kamailio is a challenge because many of the experts depend upon Kamailio consulting for their livelihood. It’s quite similar to the early Asterisk years. We also don’t vouch for the longevity of any of these VPS providers. Reread our article for details.
SIP URI (Free) Calling Opportunities
We mentioned free SIP phones in our introduction of Kamailio. But let that sink in for a moment. As we have stressed for many years, SIP calls to anyone with a public SIP URI (somebody@somewhere.com) are entirely free to anyone worldwide. And you can talk as long as you like. All that’s required is an Internet connection, a SIP phone or softphone, and a SIP URI. As part of the Kamailio implementation, we’ll show you how easy it is to create SIP URIs for all your friends and business acquaintances securely… in seconds. First, let’s take a moment to consider what SIP URI (free) calling opportunities are available. There literally are millions of SIP URI resources that await. But, unless you want to be one of the "don’t call us, we’ll call you" folks, you also will need one or more SIP URIs for yourself. YOU DON’T NEED A KAMAILIO SERVER TO OBTAIN A SIP URI. Here are just a few of the possibilities. Using SIP Broker, you can call anyone on more than 2,000 VoIP networks around the globe. Using a softphone and a free or almost free registration with VoIP.ms, CallCentric, or LocalPhone, you not only get a SIP URI, but you also can request an iNUM number which also doubles as a SIP URI by coupling it with @81.201.82.50. 3CX and pbxes.org also offer SIP URIs to complement their free offerings. All of these companies will let you connect a softphone or SIP endpoint directly to their service without the need for an Asterisk PBX in the middle.1 You can even refer your favorite spam callers to Lenny via SIP URI: 2233435945@sip2sip.info.
Deploying a Cloud-Based Debian Server
We hope you took advantage of one of the special VPS offerings we highlighted to start the New Year. Some are still available with annual pricing that’s less than the cost of most lunches these days. We recommend a cloud platform because (1) it’s cheap, (2) it’s easy to set up a Debian platform, and (3) it provides a static IP4 address for your server. When you sign up or if you wish to reconfigure an existing VPS that you may have gathering dust, just choose the Debian 8/64 operating system and assign an FQDN to your server. Once you get your credentials, log into the server as root with the password that was provided. Immediately change your root password and issue the following commands to bring Debian up to date. We also strongly recommend changing the SSH port to deter would-be attackers. A TCP port in the 1000-2000 range works wonders. Simply edit /etc/ssh/sshd_config and change the Port 22 entry before rebooting. HINT: Birth years make the SSH port easy to remember.
passwd apt-get update apt-key update apt-get dist-upgrade apt-get -y install gcc flex bison libmysqlclient-dev make libssl-dev nano apt-get -y install libcurl4-openssl-dev libxml2-dev libpcre3-dev ntp ntpdate reboot
Once the reboot is complete, log back into your server’s new SSH port using this syntax where 1234 is the port number you chose.
ssh -p 1234 root@server-ip-address
Now we’re ready to install the necessary packages to support Kamailio:
apt -y install mysql-server mysql_secure_installation apt -y install kamailio kamailio-mysql-modules apt -y install kamailio-dbg apt -y install kamailio-extra-modules apt -y install kamailio-outbound-modules apt -y install kamailio-presence-modules apt -y install kamailio-tls-modules apt -y install kamailio-utils-modules apt -y install kamailio-websocket-modules
Configuring Kamailio’s kamctlrc File
For today, we’ll be configuring Kamailio to allow user logins from SIP endpoints including SIP phones and softphones. Down the road, we’ll change things up to let Kamailio serve as the front-end to one or more Asterisk PBXs. But let’s learn to walk before we start running. We’ll be editing three configuration files and then adding a SIP account to support logging in from a SIP phone. Let’s begin with kamctlrc.
(1) Edit kamctlrc: nano -w /etc/kamailio/kamctlrc
(2) Start by uncommenting SIP_DOMAIN and insert the FQDN you associated with your VPS.
(3) Uncomment DBENGINE line and make certain it points to MYSQL.
(4) Uncomment the following line: DBRWUSER="kamailio".
(5) Uncomment the DBRWPW line and insert your own password between the quotes.
(6) Uncomment the following line: DBROUSER="kamailioro".
(7) Uncomment the DBROPW line and insert a different password between the quotes.
(8) Uncomment the DBACCESSHOST line and insert the IP address of your server.
(9) Drop down near the bottom of the file and uncomment the PID_FILE line.
(10) Save the file.
Configuring Kamailio’s kamailio.cfg Startup File
(1) Edit kamailio.cfg: nano -w /etc/kamailio/kamailio.cfg
(2) Make the top of the startup file look like the following:
#!KAMAILIO #!define WITH_MYSQL #!define WITH_AUTH #!define WITH_USRLOCDB #!define WITH_ANTIFLOOD #!define WITH_PRESENCE # change next line to comment to disable logging #!define WITH_ACCDB # # Kamailio (OpenSER) SIP Server v4.2 - default configuration script
(3) Find the line: #!define DBURL "mysql://kamailio:kamailiorw@localhost/kamailio"
(4) Change the kamailiorw entry to the password you entered in step #5 above.
(5) Tighten up security a bit by searching for the line containing friendly-scanner.
(6) Immediately above that line, cut-and-paste this addition from Fred Posner at AstriCon:
### Posner additions if ($ua =~ "(friendly-scanner|sipvicious|sipcli)") { xlog("L_INFO","script kiddies from IP:$si:$sp - $ua \n"); $sht(ipban=>$si) = 1; sl_send_reply("200", "OK"); exit; } if($au =~ "(\=)|(\-\-)|(')|(\#)|(\%27)|(\%24)" and $au != $null) { xlog("L_INFO","[R-REQINIT:$ci] sql injection from IP:$si:$sp - $au \n"); $sht(ipban=>$si) = 1; exit; } ###
(7) Save the file.
(8) Generate the MySQL database and tables to support Kamailio: kamdbctl create
(9) At every prompt, type Y to add the feature.
(10) Open MySQL as root using the actual MySQL password you assigned when adding the MySQL package:
mysql -u root -ppassw0rd kamailio
(11) At the MySQL prompt, cut-and-paste the following commands:
ALTER TABLE acc ADD COLUMN src_user VARCHAR(64) NOT NULL DEFAULT ''; ALTER TABLE acc ADD COLUMN src_domain VARCHAR(128) NOT NULL DEFAULT ''; ALTER TABLE acc ADD COLUMN src_ip varchar(64) NOT NULL default ''; ALTER TABLE acc ADD COLUMN dst_ouser VARCHAR(64) NOT NULL DEFAULT ''; ALTER TABLE acc ADD COLUMN dst_user VARCHAR(64) NOT NULL DEFAULT ''; ALTER TABLE acc ADD COLUMN dst_domain VARCHAR(128) NOT NULL DEFAULT ''; ALTER TABLE missed_calls ADD COLUMN src_user VARCHAR(64) NOT NULL DEFAULT ''; ALTER TABLE missed_calls ADD COLUMN src_domain VARCHAR(128) NOT NULL DEFAULT ''; ALTER TABLE missed_calls ADD COLUMN src_ip varchar(64) NOT NULL default ''; ALTER TABLE missed_calls ADD COLUMN dst_ouser VARCHAR(64) NOT NULL DEFAULT ''; ALTER TABLE missed_calls ADD COLUMN dst_user VARCHAR(64) NOT NULL DEFAULT ''; ALTER TABLE missed_calls ADD COLUMN dst_domain VARCHAR(128) NOT NULL DEFAULT ''; quit
Configuring Kamailio Defaults in /etc/default/kamailio
(1) Edit Kamailio defaults: nano -w /etc/default/kamailio
(2) Make the startup defaults look like the following:
# # Kamailio startup options # # Set to yes to enable kamailio, once configured properly. RUN_KAMAILIO=yes # User to run as USER=kamailio # Group to run as GROUP=kamailio # Amount of shared and private memory to allocate # for the running Kamailio server (in Mb) SHM_MEMORY=128 PKG_MEMORY=4 # Config file CFGFILE=/etc/kamailio/kamailio.cfg
(3) Save the file.
Managing Kamailio Startups & Shutdowns
With all the pieces in place, here’s how to start, restart, stop, and check status of Kamailio:
systemctl start kamailio systemctl restart kamailio systemctl stop kamailio systemctl status kamailio
Adding Users/Accounts to Kamailio
Now we’re ready to add accounts to Kamailio. These can be numeric, alphanumeric, or purely alpha entries. They become the user’s respective SIP URIs when coupled with @FQDN where FQDN is the fully-qualified domain name assigned to your server:
kamctl add username userpw
As you probably have guessed, kamctl is the main management tool for Kamailio. Issuing the command by itself will list all of the possible options that are available.
Monitoring Kamailio Access
There are a number of ways to monitor access (both legitimate and otherwise) to your Kamailio server. Here are a few of our favorites:
systemctl status kamailio cat /var/log/syslog | grep kamailio mysql -u root -ppassw0rd kamailio -e "select * from acc" mysql -u root -ppassw0rd kamailio -e "select * from missed_calls"
Connecting a SIP Phone to Kamailio
You can connect virtually any kind of SIP telephone or endpoint to Kamailio. You can find dozens of recommendations for hardware-based SIP phones both on Nerd Vittles and the PIAF Forum. For today we’ll get you started with one of our favorite (free) softphones, YateClient. It’s available for almost all desktop platforms.
Download YateClient from here. Run YateClient once you’ve installed it and enter the credentials for the account you created above. You’ll need the IP address of your server plus your account’s password. Fill in the Yate Client template using the IP address or FQDN of your Server as well as your Username and whatever Password you assigned to the account when you created it. Click OK to save your entries.
Once the Yate softphone shows that it has registered with Kamailio, try a test call to Lenny by dialing sip:2233435945@sip2sip.info.
Next week, we’ll tackle security. If you run systemctl status kamailio for a few days, you’ll understand why. We’ll also get your Kamailio server interconnected with Asterisk so that inbound calls to your new SIP URI pass through to Asterisk transparently. Enjoy!
Originally published: Monday, January 14, 2019
Need help with Asterisk? Visit the VoIP-info Forum.
Special Thanks to Our Generous Sponsors
FULL DISCLOSURE: ClearlyIP, Skyetel, Vitelity, DigitalOcean, Vultr, VoIP.ms, 3CX, Sangoma, TelecomsXchange and VitalPBX have provided financial support to Nerd Vittles and our open source projects through advertising, referral revenue, and/or merchandise. As an Amazon Associate and Best Buy Affiliate, we also earn from qualifying purchases. We’ve chosen these providers not the other way around. Our decisions are based upon their corporate reputation and the quality of their offerings and pricing. Our recommendations regarding technology are reached without regard to financial compensation except in situations in which comparable products at comparable pricing are available from multiple sources. In this limited case, we support our sponsors because our sponsors support us.
BOGO Bonaza: Enjoy state-of-the-art VoIP service with a $10 credit and half-price SIP service on up to $500 of Skyetel trunking with free number porting when you fund your Skyetel account. No limits on number of simultaneous calls. Quadruple data center redundancy. $25 monthly minimum spend required. Tutorial and sign up details are here.
The lynchpin of Incredible PBX 2020 and beyond is ClearlyIP components which bring management of FreePBX modules and SIP phone integration to a level never before available with any other Asterisk distribution. And now you can configure and reconfigure your new Incredible PBX phones from the convenience of the Incredible PBX GUI.
VitalPBX is perhaps the fastest-growing PBX offering based upon Asterisk with an installed presence in more than 100 countries worldwide. VitalPBX has generously provided a customized White Label version of Incredible PBX tailored for use with all Incredible PBX and VitalPBX custom applications. Follow this link for a free test drive!
Special Thanks to Vitelity. Vitelity is now Voyant Communications and has halted new registrations for the time being. Our special thanks to Vitelity for their unwavering financial support over many years and to the many Nerd Vittles readers who continue to enjoy the benefits of their service offerings. We will keep everyone posted on further developments.
- Some of our links refer users to sites or service providers when we find their prices are competitive for the recommended products. Nerd Vittles receives a small referral fee from these providers to help cover the costs of our blog. We never recommend particular products solely to generate commissions. [↩]
Celebrating 2019: Return of the One-Minute Desktop PBX
If you’re new to the VoIP world and aren’t quite ready to dive into the Nerd Vittles cloud computing offerings, then we have a one minute setup solution today that doesn’t require you to buy anything ever. You can use almost any desktop computer you already own to bring up the VirtualBox® edition of Incredible PBX® in less than 60 seconds. If you’ve followed Nerd Vittles over the years, you already know that VirtualBox from Oracle® is one of our favorite platforms. Once VirtualBox is installed on your desktop computer, adding Incredible PBX is a snap. Download the new Incredible PBX vbox image from SourceForge, double-click on the downloaded image, check the initialize MAC address box, and boom. In less than a minute, your PBX is ready to use.
The really nice thing about playing along today is it won’t cost you a dime to try things out for yourself. And, if you really love it and we think you will, there’s no hidden fee or crippleware to hinder your continued use of Incredible PBX for as long as you like. Of course, the Incredible PBX feature set is included as well which brings you nearly three dozen applications for Asterisk® that will revolutionize your communications platform. Just add your credentials and speech-to-text, voice recognition, and a Siri-like telephony interface are as close as your nearest SIP phone. If you later decide you’d like to migrate your server to an inexpensive cloud-based platform, Incredible Backup and Restore make it a 15-minute turnkey task.
Installing Oracle VM VirtualBox
Oracle’s virtual machine platform inherited from Sun is amazing. It’s not only free, but it’s pure GPL2 code. VirtualBox gives you a virtual machine platform that runs on top of any desktop operating system. In terms of limitations, we haven’t found any. We even tested this on an Atom-based Windows 7 machine with 2GB of RAM, and it worked without a hiccup. So step #1 today is to download one or more of the VirtualBox installers from VirtualBox.org or Oracle.com. Our recommendation is to put all of the 100MB installers on a 4GB thumb drive.1 Then you’ll have everything in one place whenever and wherever you happen to need it. Once you’ve downloaded the software, simply install it onto your favorite desktop machine. Accept all of the default settings, and you’ll be good to go. For more details, here’s a link to the Oracle VM VirtualBox User Manual.
Installing Incredible PBX 13 with VirtualBox
To begin, download the latest Incredible PBX vbox image (2.6 GB) onto your desktop. Incredible PBX 13-13.10 includes all of the very latest FreePBX® 13 modules.
Next, double-click on the Incredible PBX .ova image on your desktop. Be sure to check the box to initialize the MAC address of the image and then click Import. Once the import is finished, you’ll see a new Incredible PBX virtual machine in the VM List of the VirtualBox Manager Window. Let’s make a couple of one-time adjustments to the Incredible PBX configuration to account for possible differences in sound and network cards on different host machines.
(1) Click once on the Incredible PBX virtual machine in the VM List. Then (2) click the Settings button. In the Audio tab, check the Enable Audio option and choose your sound card. In the Network tab for Adapter 1, check the Enable Network Adapter option. From the Attached to pull-down menu, choose Bridged Adapter. Then select your network card from the Name list. Then click OK. That’s all the configuration that is necessary for Incredible PBX.
Running Incredible PBX in VirtualBox
Once you’ve imported and configured the Incredible PBX Virtual Machine, you’re ready to go. Highlight the Incredible PBX virtual machine in the VM List on the VirtualBox Manager Window and click the Start button. The standard Linux boot procedure will begin and, within a few seconds, you’ll get the familiar Linux login prompt. During the bootstrap procedure, you’ll see a couple of dialogue boxes pop up that explain the keystrokes to move back and forth between your host operating system desktop and your virtual machine. Remember, you still have full access to your desktop computer. Incredible PBX is merely running as a task in a VM window. Always gracefully halt Incredible PBX just as you would on any computer.
Here’s what you need to know. To work in the Incredible PBX virtual machine, just left-click your mouse while it is positioned inside the VM window. To return to your host operating system desktop, press the right Option key on Windows machines or the left Command key on any Mac. For other operating systems, read the dialogue boxes for instructions on moving around. To access the Linux CLI, login as root with the default password: password. Change your passwords immediately by typing: /root/update-passwords.
Setting the Date and Time with VirtualBox
On some platforms, VirtualBox has a nasty habit of mangling the date and time of your virtual machine. Typing date will tell you whether your VM is affected. If it’s a problem, manually set the date and time and then update the hardware clock. Here’s how assuming 01070709 is the month, day, and correct time of your server:
date 01070709 clock -w
Overview of the Initial Asterisk Setup Process
For those new to PBXs, here’s a two paragraph summary of how Voice over IP (VoIP) works. Phones connected to your PBX are registered with Extensions so that they can make and receive calls. When a PBX user picks up a phone and dials a number, an Outbound Route tells the PBX which Trunk to use to place the call based upon established dialing rules. Unless the dialed number is a local extension, a Trunk registered with some service provider accepts the call, and the PBX sends the call to that provider. The provider then routes the call to its destination where the recipient’s phone rings to announce the incoming call. When the recipient picks up the phone, the conversation begins.
Looking at things from the other end, when a caller somewhere in the world wishes to reach you, the caller picks up a telephone and dials a number known as a DID that is assigned to you by a provider with whom you have established service. When the provider receives the call to your DID, it routes the call to your PBX based upon destination information you established with the provider. Your PBX receives the call with information identifying the DID of the call as well as the CallerID name and number of the caller. An Inbound Route on your PBX then determines where to send the call based upon that DID and CallerID information. Typically, a call is routed to an Extension, a group of Extensions known as a Ring Group, or an IVR or AutoAttendant giving the caller choices on routing the call to the desired destination. Once the call is routed to an Extension, the PBX rings the phone registered to that Extension. When you pick up the phone, the conversation begins.
Configuring Asterisk to Support NAT-Based Routing
With a VoIP server, many PBXs and Extensions are housed behind a NAT-based router that is found in most homes and businesses. These routers assign private IP addresses that are not accessible from the Internet. This causes SIP routing headaches because there are actually two legs to every call, one on the private IP address of your server or extension and another on the public Internet with an entirely different IP address. Routers supposedly handle this handoff of the call using Network Address Translation (NAT) and SIP ALG. With Asterisk-based PBXs, we want the PBX itself to handle the NAT chores so it is critically important to do three things when setting up your PBX. First, turn off SIP ALG on every router used by your PBX and every extension connected to your PBX. Second, tell your PBX about your public and private IP address setup. Step #2 is done in the Incredible PBX GUI with a browser. Login as admin and choose Settings:Asterisk SIP Settings. In the NAT Settings section of the form, click Detect Network Settings. Make sure your public and private IP addresses are correctly listed. Then click Submit and reload your dialplan when prompted. Failure to perform BOTH of these steps typically results in calls with one-way audio, i.e. where either you or the called party can’t hear the other party in the conversation. The third rule to remember is to always configure SIP Extensions on your PBX with NAT Mode=YES. This is rarely harmful and failure to configure SIP extensions in this way typically causes one-way audio in calls as well. IAX extensions avoid NAT issues.
Configuring Extensions with Incredible PBX GUI
Extensions are created using the Incredible PBX GUI: Applications:Extensions. Many SIP phones expect extensions to communicate on UDP port 5060. If this is the case with your SIP phone or softphone, then always create Chan_SIP extensions which communicate on UDP 5060. If your SIP phone or softphone provide port flexibility, then you have a choice in the type of SIP extension to create: Chan_SIP or the more versatile PJSIP. Just remember to always configure SIP extensions with NAT Mode=YES in the Advanced tab. If your VoIP phones or softphones support IAX connectivity, you may wish to consider IAX extensions which avoid NAT problems.
When you create a new Extension, a new entry is automatically created in the PBX Internal Directory. If you wish to allow individual users to manage their extensions or use the WebRTC softphone, then you will also have to create a (very) secure password for User Control Panel (UCP) access. Choose Admin:User Management and click on the key icon of the desired extension to assign a password for UCP and WebRTC access.
Configuring SIP Phones with Incredible PBX GUI
SIP phones and softphones typically require three pieces of information: the IP address of your server, the extension number, and the extension password. If you’re using a PJSIP extension, you also will need to change the port to UDP 5061. If your server is behind a NAT-based router, SIP phones also behind the same router need to use the private LAN address rather than the public IP address. If the SIP phones are outside the router protecting the PBX, then use the public IP address and make certain that you also map ports 5060 and 5061 from your router to the private LAN address of your PBX. Beginning with Incredible PBX 13-13.10, you now can make free SIP URI calls worldwide from almost any SIP phone or softphone. Our SIP URI tutorial covers everything you need to know.
The PIAF Forum can provide you with helpful information in choosing high quality SIP phones. Yealink phones are highly recommended with minimal issues. Cisco phones are the most difficult to configure. Insofar as free softphones, we recommend the Zoiper 3 offerings for Windows, Mac, iOS, and Android. Zoiper 5 still is experiencing some growing pains. A key advantage of the Zoiper softphone is it supports IAX extensions which eliminate the NAT issues entirely. On the Mac platform, we also recommend the Telephone app which is available in the App Store. For SRTP communications, use Grandstream Wave.
Configuring Trunks with Incredible PBX GUI
Perhaps the most difficult component to configure in the PBX is the Trunk. Almost every provider has a different way of doing things. We’ve taken some of the torture out of the exercise by providing configuration settings for dozens of providers. All you need to do is edit the desired Trunk (Connectivity:Trunks), change the Disable Trunk entry to No, and insert your credentials in both the PEER Details and Registration string of the SIP Settings Outgoing and Incoming tabs.
UPDATE: Whether your desktop PBX has a static IP address on the Internet or not, you now can take advantage of a terrific Nerd Vittles Skyetel offer of $50 in free service using Skyetel’s just released support for dynamic IP addressing. Start by mapping UDP ports 5060 and 10000-20000 to your server from your router. The firewall settings and Skyetel trunk setups are preconfigured in this VirtualBox image. Once you get this far, you’re ready to install Skyetel’s new dynamic IP address updater. This is required since you never actually register a trunk with Skyetel. Here’s how. Log into your server as root and cd /usr/src
. Then follow this tutorial to put the pieces in place. While this is beta software at this juncture, we have tested it with excellent results. However, if you run into issues, please post your questions on the PIAF Forum. Now jump over to our Skyetel Tutorial to claim your $50 credit and to get your account set up and configured. Effective 10/1/2023, $25/month minimum spend required.
Of course, Incredible PBX comes preconfigured with setups for dozens of other providers that let you register a new trunk on the provider’s server. VoIP.ms (free iNUM), CircleNet, CallCentric (free DID and iNUM), LocalPhone (25¢/mo. iNUM), Future-Nine, AnveoDirect, and V1VoIP are excellent options.2 Most don’t cost you anything unless you make calls. Review our complete SIP tutorial here: Developing a Cost-Effective SIP Strategy.
Configuring Inbound Routes in Incredible PBX GUI
Inbound Routes, as the name implies, are used to direct incoming calls to a specific destination. That destination could be an extension, a ring group, an IVR or AutoAttendant, or even a conference or DISA extension to place outbound calls (hopefully with a very secure password). Inbound Routes can be identified by DID, CallerID number, or both. To create Inbound Routes, choose Connectivity:Inbound Routes and then click Add Inbound Route. Provide at least a Description for the route, a DID to be matched, and the Destination for the incoming calls that match. If you only want certain callers to be able to reach certain extensions, add a CallerID number to your matching criteria. You can add Call Recording and CallerID CNAM Lookups under the Other tab.
Configuring Outbound Routes in Incredible PBX GUI
Outbound Routes serve a couple of purposes. First, they assure that calls placed by users of your PBX are routed out through an appropriate trunk to reach their destination in the least costly manner. Second, they serve as a security mechanism by either blocking or restricting certain calls by requiring a PIN to complete the calls. For example, if you only permit 10-digit calls and route all of those calls out through a specific trunk with a $20 account balance, there is little risk of running up an exorbitant phone bill because of unauthorized calls unless you’ve deposited a lot of money in your account or activated automatic funds replenishment. This raises another important security tip. Never authorize recurring charges on credit cards registered with your VoIP providers and, if possible, place pricing limits on calls with your providers. If a bad guy were to break into your PBX, you don’t want to give the intruder a blank check to make unauthorized calls. And you certainly don’t want to join the $100,000 Phone Bill Club.
To create outbound routes in the Incredible PBX GUI, navigate to Connectivity:Outbound Routes and click Add Outbound Route. In the Route Settings tab, give the Outbound Route a name and choose one or more trunks to use for the outbound calls. In the Dial Patterns tab, specify the dial strings that must be matched to use this Outbound Route. NXXNXXXXXX would require only 10-digit numbers with the first and fourth digits being a number between 2 and 9. Note that Outbound Routes are searched from the top entry to the bottom until there is a match. Make certain that you order your routes correctly and then place test calls watching the Asterisk CLI to make sure the calls are routed as you intended.
Design Methodology for Outbound Routes
There are a million ways to design outbound calling schemes on PBXs with multiple trunks. One of the simplest ways is to use no dial prefix for the primary trunk and then use dialing prefixes such as *1 and *2 for the remaining trunks.
Another outbound calling scheme would be to assign specific DIDs to individual extensions on your PBX. Here you could use NXXNXXXXXX with the 1 Prepend as the Dial Pattern with every Outbound Route and change the Extension Number in the CallerID field of the Dial Pattern. With this setup, you’d need a separate Outbound Route for each group of extensions using a specific trunk on your PBX. Additional dial patterns can be added for each extension designated for a particular trunk. A lower priority Outbound Route then could be added without a CallerID entry to cover extensions that weren’t restricted or specified.
HINT: Keep in mind that Outbound Routes are processed by FreePBX in top-down order. The first route with a matching dial pattern is the trunk that is selected to place the outbound call. No other outbound routes are ever used even if the call fails or the trunk is unavailable. To avoid failed calls, consider adding additional trunks to the Trunk Sequence in every outbound route. In summary, if you have multiple routes with the exact same dial pattern, then the match nearest to the top of the Outbound Route list wins. You can rearrange the order of the outbound routes by dragging them into any sequence desired.
Configuring Incredible PBX for VirtualBox
In order to take advantage of all the Incredible PBX applications, you’ll need to obtain IBM text-to-speech (TTS) and speech-to-text (STT) credentials as well as a (free) Application ID for Wolfram Alpha.
NOV. 1 UPDATE: IBM moved the goal posts effective December 1, 2018:
This Nerd Vittles tutorial will walk you through getting your IBM account set up and obtaining both your TTS and STT credentials. Be sure to write down BOTH sets of credentials which you’ll need in a minute. For home and SOHO use, IBM access and services are FREE even though you must provide a credit card when signing up. The IBM signup process explains their pricing plans.
To use Wolfram Alpha, sign up for a free Wolfram Alpha API account. Just provide your email address and set up a password. It takes less than a minute. Log into your account and click on Get An App ID. Make up a name for your application and write down (and keep secret) your APP-ID code. That’s all there is to getting set up with Wolfram Alpha. If you want to explore costs for commercial use, there are links to let you get more information.
In addition to your Wolfram Alpha APPID, there are two sets of IBM credentials to plug into the Asterisk AGI scripts. Keep in mind that there are different usernames and passwords for the IBM Watson TTS and STT services. The TTS credentials will look like the following: $IBM_username and $IBM_password. The STT credentials look like this: $API_USERNAME and $API_PASSWORD. Don’t mix them up. 🙂
All of the scripts requiring credentials are located in /var/lib/asterisk/agi-bin so switch to that directory after logging into your server as root. Edit each of the following files and insert your TTS credentials in the variables already provided: nv-today2.php, ibmtts.php, and ibmtts2.php. Edit each of the following files and insert your STT credentials in the variables already provided: getquery.sh, getnumber.sh, and getnumber2.sh. Finally, edit 4747 and insert your Wolfram Alpha APPID.
Using Asteridex with Incredible PBX
AsteriDex is a web-based dialer and address book application for Asterisk and Incredible PBX. It lets you store and manage phone numbers of all your friends and business associates in an easy-to-use SQLite3 database. You simply call up the application with your favorite web browser: http://pbx-ip-address/asteridex4/. When you click on a contact that you wish to call, AsteriDex first calls you at extension 701, and then AsteriDex connects you to your contact through another outbound call made using your default outbound trunk that supports numbers in the 1NXXNXXXXXX format.
Taking Incredible PBX for a Test Drive
You can take Incredible PBX on a test drive by dialing D-E-M-O (3366) from any phone connected to your PBX.
With Allison’s Demo IVR, you can choose from the following options:
- 0. Chat with Operator — connects to extension 701
- 1. AsteriDex Voice Dialer – say "Delta Airlines" or "American Airlines" to connect
- 2. Conferencing – log in using 1234 as the conference PIN
- 3. Wolfram Alpha Almanac – say "What planes are flying overhead"
- 4. Lenny – The Telemarketer’s Worst Nightmare
- 5. Today’s News Headlines — courtesy of Yahoo! News
- 6. Weather by ZIP Code – enter any 5-digit ZIP code for today’s weather
- 7. Today in History — courtesy of OnThisDay.com
- 8. Chat with Nerd Uno — courtesy of SIP URI connection to 3CX iPhone Client
- 9. DISA Voice Dialer — say any 10-digit number to be connected
- *. Current Date and Time — courtesy of Incredible PBX
News Flash: Turn Incredible PBX into a Fault-Tolerant HA Platform for $1/Month
Continue Reading: Configuring Extensions, Trunks & Routes
Don’t Miss: Incredible PBX Application User’s Guide covering the 31 Whole Enchilada apps
Originally published: Monday, January 7, 2019 Updated: Sunday, January 20, 2019
Need help with Asterisk? Visit the VoIP-info Forum.
Special Thanks to Our Generous Sponsors
FULL DISCLOSURE: ClearlyIP, Skyetel, Vitelity, DigitalOcean, Vultr, VoIP.ms, 3CX, Sangoma, TelecomsXchange and VitalPBX have provided financial support to Nerd Vittles and our open source projects through advertising, referral revenue, and/or merchandise. As an Amazon Associate and Best Buy Affiliate, we also earn from qualifying purchases. We’ve chosen these providers not the other way around. Our decisions are based upon their corporate reputation and the quality of their offerings and pricing. Our recommendations regarding technology are reached without regard to financial compensation except in situations in which comparable products at comparable pricing are available from multiple sources. In this limited case, we support our sponsors because our sponsors support us.
BOGO Bonaza: Enjoy state-of-the-art VoIP service with a $10 credit and half-price SIP service on up to $500 of Skyetel trunking with free number porting when you fund your Skyetel account. No limits on number of simultaneous calls. Quadruple data center redundancy. $25 monthly minimum spend required. Tutorial and sign up details are here.
The lynchpin of Incredible PBX 2020 and beyond is ClearlyIP components which bring management of FreePBX modules and SIP phone integration to a level never before available with any other Asterisk distribution. And now you can configure and reconfigure your new Incredible PBX phones from the convenience of the Incredible PBX GUI.
VitalPBX is perhaps the fastest-growing PBX offering based upon Asterisk with an installed presence in more than 100 countries worldwide. VitalPBX has generously provided a customized White Label version of Incredible PBX tailored for use with all Incredible PBX and VitalPBX custom applications. Follow this link for a free test drive!
Special Thanks to Vitelity. Vitelity is now Voyant Communications and has halted new registrations for the time being. Our special thanks to Vitelity for their unwavering financial support over many years and to the many Nerd Vittles readers who continue to enjoy the benefits of their service offerings. We will keep everyone posted on further developments.
- Some of our purchase links refer users to Amazon when we find their prices are competitive for the recommended products. Nerd Vittles receives a small referral fee from Amazon to help cover the costs of our blog. We never recommend particular products solely to generate Amazon commissions. However, when pricing is comparable or availability is favorable, we support Amazon because Amazon supports us. [↩]
- Some of our links refer users to sites or service providers when we find their prices are competitive for the recommended products. Nerd Vittles receives a small referral fee from these providers to help cover the costs of our blog. We never recommend particular products solely to generate commissions. [↩]
A Sobering Look at Asterisk and the 2019 VoIP Landscape
Every six months or so we like to gaze into our crystal ball for a quick look at the VoIP landscape. 2018 has been quite the transformative year with the acquisition of Digium® and Asterisk® by Sangoma®. Unfortunately, as we predicted, the Digium layoffs have already begun, and 2019 may only get worse. While we have no inside information, we wouldn’t be surprised to see Digium’s headquarters in Huntsville closed within six months in an effort to balance the books. Part of the problem may be attributable to the terms of the purchase itself. However, we sense there’s a more troubling development. And that is the reality that VoIP is becoming less and less appealing to home users and small businesses as more and more folks migrate purely to cell phones. Those with teenagers already know this transformation is underway. With services such as Google Fi starting at $20 for unlimited calling and texting, it’s difficult to justify VoIP services even at bargain basement prices. Making the cellular switch even more appealing are offers such as a $400 credit with the purchase of an LG G7 smartphone from Google or a free LG G7 with new Sprint service.
What you lose with a pure cellular platform are many of the features that have made PBXs popular in the VoIP space: call routing, text-to-speech and voice recognition applications, conferencing, SPAM call blocking, and much more. But 2018 also was the year that Google finally pulled the plug on free calling through your PBX. Instead, you now have to purchase and configure a $50 OBi200 to continue with Google Voice, and the integration is painful to put it charitably. The demise of Google Voice added one more nail to the free VoIP coffin. And, as many of you know, Vitelity, our long-time platinum sponsor, now has bowed out of the VoIP retail business due to a change in focus from Voyant, the company’s new owner. Finally, our bargain-basement cloud provider for experimentation, HiFormance, appears to have bitten the dust. Details here. Suggestions here. Reminder: "You get what you pay for."
It’s not all bad news for 2019. First, all of the Incredible PBX platforms are still alive and well. And they will remain open source GPL code. Second, we’ve found a terrific new VoIP provider, Skyetel, that will give you a $50 credit so you can kick the tires for a good long while. Effective 10/1/2023, $25/month minimum spend required. Third, if you’re looking for a robust Cloud platform, Digital Ocean still is offering a $100 signup credit for your first 60 days of service, and Incredible PBX runs swimmingly on their $5/month platform with CentOS. Spend another $1 a month, and you get automatic backups of your cloud-based server. It’s cheap insurance for something as important as your phone system.
If you’re like us, you may be getting a little nervous about the future of Asterisk. We’ve already provided a series of articles on FusionPBX for FreeSWITCH. Our original tutorial and the follow-on articles showing how to create voice prompts using IBM Watson and how to create and deploy TTS applications such as news and weather reports are worth a careful read. And, if you consider yourself a pioneer, then you owe it to yourself to try out the FreeSWITCH developers’ new cloud-based platform, SignalWire. Here’s the $55 Promo code that worked for us: ITEXPO2019. That should get you off to a great start. And check out the pricing: U.S. DIDs are $0.08 per month, U.S. Origination rate (incoming) is $0.00325 per minute, U.S. Termination rate (outgoing) is $0.0072 per minute, U.S. SMS Outbound is $0.0009 per message, and U.S. SMS Inbound messages are free. MMS also available. Once verified, you can spoof any CallerID name and number that you own! What’s not to like? Asterisk Trunk setup example available here.
CAUTIONARY NOTE: SignalWire should be considered EXPERIMENTAL SOFTWARE and is not yet suitable for production use.
That should be enough excitement to keep all of you entertained over the holidays. We’re planning a few days off to be with family and friends. Let us be the first to wish each of you a very Merry Christmas. We’re looking forward to an exciting 2019!
Originally published: Monday, December 17, 2018
Need help with Asterisk? Visit the VoIP-info Forum.
Special Thanks to Our Generous Sponsors
FULL DISCLOSURE: ClearlyIP, Skyetel, Vitelity, DigitalOcean, Vultr, VoIP.ms, 3CX, Sangoma, TelecomsXchange and VitalPBX have provided financial support to Nerd Vittles and our open source projects through advertising, referral revenue, and/or merchandise. As an Amazon Associate and Best Buy Affiliate, we also earn from qualifying purchases. We’ve chosen these providers not the other way around. Our decisions are based upon their corporate reputation and the quality of their offerings and pricing. Our recommendations regarding technology are reached without regard to financial compensation except in situations in which comparable products at comparable pricing are available from multiple sources. In this limited case, we support our sponsors because our sponsors support us.
BOGO Bonaza: Enjoy state-of-the-art VoIP service with a $10 credit and half-price SIP service on up to $500 of Skyetel trunking with free number porting when you fund your Skyetel account. No limits on number of simultaneous calls. Quadruple data center redundancy. $25 monthly minimum spend required. Tutorial and sign up details are here.
The lynchpin of Incredible PBX 2020 and beyond is ClearlyIP components which bring management of FreePBX modules and SIP phone integration to a level never before available with any other Asterisk distribution. And now you can configure and reconfigure your new Incredible PBX phones from the convenience of the Incredible PBX GUI.
VitalPBX is perhaps the fastest-growing PBX offering based upon Asterisk with an installed presence in more than 100 countries worldwide. VitalPBX has generously provided a customized White Label version of Incredible PBX tailored for use with all Incredible PBX and VitalPBX custom applications. Follow this link for a free test drive!
Special Thanks to Vitelity. Vitelity is now Voyant Communications and has halted new registrations for the time being. Our special thanks to Vitelity for their unwavering financial support over many years and to the many Nerd Vittles readers who continue to enjoy the benefits of their service offerings. We will keep everyone posted on further developments.
Skyetel Smorgasborg: SMS Blasting, SMS Dictator, and more
Just in time for Santa, we’ve got a great treat for those of you that have taken advantage of the Nerd Vittles special offer from Skyetel which gets you a $50 credit on their powerful VoIP platform. Today we’re adding not one, but three, SMS messaging utilities to the Incredible PBX UC platform. Effective 10/1/2023, $25/month minimum spend required. In addition to a command line utility to send SMS messages, we’re also introducing SMS Message Blasting which lets you send an SMS message to as many recipients as you would like. It’s perfect for sports team and community group messaging. To round out the trifecta, we’ve updated our SMS Dictator utility by integrating Skyetel messaging with IBM’s powerful voice recognition software.1 Simply dial S-M-S (767) from any extension on your PBX and dictate an SMS message to send to a recipient of your choice. Gone are the days of wrestling with Google’s ever-changing voice recognition platform. Good riddance!
To get started, you’ll need to have an IBM Watson account with an APIkey for their Speech-to-Text (STT) engine. Next, you will need a Skyetel SMS-enabled DID. Before we install today’s SMS scripts, it should be noted that SMS messages must be sent from the PBX registered as the Skyetel Endpoint Group for the SMS-enabled DID specified in the Skyetel SMS scripts. So let’s begin with the configuration steps to put all the pieces in place.
Getting Started with IBM Watson STT Service
We’ve created a separate tutorial to walk you through obtaining and configuring your IBM Watson credentials. Start there.
Now let’s get IBM’s Speech to Text service activated. Log back in to the IBM Cloud. Click on the (upper left) Menu icon and select Dashboard. Click on the Speech to Text app. Choose a Region to deploy in, choose your Organization from the pull-down menu, and select STT as your Space. Choose the Standard Pricing Plan or LITE Plan. Then click Create. When Speech to Text Portal opens, click the Service Credentials tab. In the Actions column, click View Credentials and copy down your STT APIkey. Then logout of IBM Watson.
Getting Started with Skyetel Messaging
If you haven’t already signed up for a Skyetel account, read our tutorial and take advantage of the $50 coupon for free service. Sign up for a DID and activate the SMS feature for your number. Create an Endpoint Group with the public IP address of your PBX. Then edit your phone number and link it to the Endpoint Group of your server. If you want to forward incoming SMS messages to either an email address or to your smartphone’s messaging service, configure it under the SMS & MMS tab. Finally, click on the settings icon beside your account name in the upper right corner of the Skyetel portal and then click the API Keys tab. Click the Create button and copy down your SID and SECRET for Skyetel’s API service. This secret is not retrievable once you close the window so put the credentials in a safe place for subsequent use. Then logout of the Skyetel portal.
Installing the SMS Components on Your PBX
There are three separate applications which we will install on your PBX: (1) a stand-alone utility that lets you send SMS messages from the Linux CLI by entering a recipients 11-digit phone number and an SMS message surrounded by quotes, (2) an SMS message blasting utility that lets you send a previously prepared SMS message to a group of recipients whose 11-digit SMS numbers have been entered into a text file, and (3) the SMS Dictator application which lets you pick up any phone on your PBX and dial S-M-S (767) to dictate a message and send it to a recipient whose number you’ve key in from your phone. For those not residing in North America, the number of phone number digits can easily be changed in all of the scripts. After we install the three applications, we’ll edit each of the scripts to insert your IBM STT and Skyetel API credentials. Then you’re ready to start messaging.
First, let’s install the stand-alone and message blasting SMS utilities. Log into your server as root and issue the following commands:
cd /root mkdir sms-skyetel cd sms-skyetel wget http://incrediblepbx.com/smsblast-skyetel.tgz tar zxvf smsblast-skyetel.tgz rm -f smsblast-skyetel.tgz
Next, let’s install the SMS Dictator application while still logged into your server:
cd /var/lib/asterisk/agi-bin wget http://incrediblepbx.com/sms-767-skyetel.tgz tar zxvf sms-767-skyetel.tgz rm -f sms-767-skyetel.tgz ./install-sms767-dialplan.sh
Configuring the Skyetel SMS Components
While still positioned in the agi-bin directory, edit smsgen.sh. Insert apikey as your API_USERNAME and your actual STT APIkey as API_PASSWORD in the fields provided. Insert your Skyetel SID, SECRET, and 11-digit DID in the fields provided. Then save the file.
Next, change directories to /root/sms-skyetel and edit BOTH sms-skyetel and smsblast and insert your Skyetel credentials and DID in the fields provided at the top of both files.
Finally, when you’re ready to use the message blasting application (smsblast), first insert your SMS message in the smsmsg.txt file. Then insert the list of SMS numbers in smslist.txt.
Testing the Skyetel SMS Components
To try out the SMS Dictator application, dial S-M-S (767) from a phone connected to your PBX. When prompted, enter the 11-digit number of the SMS recipient. When prompted, dictate the message to be sent and press #.
To try out the stand-alone SMS application, navigate to /root/sms-skyetel and issue the following command using the 11-digit number of the SMS recipient followed by a space and an SMS message to be sent surrounded by quotes: ./sms-skyetel 18005551212 "Howdy."
To try out the message blasting SMS application, navigate to /root/sms-skyetel. Enter the message to be sent in smsmsg.txt and enter the list of SMS numbers in smslist.txt. Kick off the message blast by entering the command: ./smsblast
.
Originally published: Monday, December 10, 2018
Support Issues. With any application as sophisticated as this one, you’re bound to have questions. Blog comments are a difficult place to address support issues although we welcome general comments about our articles and software. If you have particular support issues, we encourage you to get actively involved in the PBX in a Flash Forum. It’s the best Asterisk tech support site in the business, and it’s all free! Please have a look and post your support questions there. Unlike some forums, the PIAF Forum is extremely friendly and is supported by literally hundreds of Asterisk gurus and thousands of users just like you. You won’t have to wait long for an answer to your question.
Need help with Asterisk? Join our new MeWe Support Site.
Special Thanks to Our Generous Sponsors
FULL DISCLOSURE: ClearlyIP, Skyetel, Vitelity, DigitalOcean, Vultr, VoIP.ms, 3CX, Sangoma, TelecomsXchange and VitalPBX have provided financial support to Nerd Vittles and our open source projects through advertising, referral revenue, and/or merchandise. As an Amazon Associate and Best Buy Affiliate, we also earn from qualifying purchases. We’ve chosen these providers not the other way around. Our decisions are based upon their corporate reputation and the quality of their offerings and pricing. Our recommendations regarding technology are reached without regard to financial compensation except in situations in which comparable products at comparable pricing are available from multiple sources. In this limited case, we support our sponsors because our sponsors support us.
BOGO Bonaza: Enjoy state-of-the-art VoIP service with a $10 credit and half-price SIP service on up to $500 of Skyetel trunking with free number porting when you fund your Skyetel account. No limits on number of simultaneous calls. Quadruple data center redundancy. $25 monthly minimum spend required. Tutorial and sign up details are here.
The lynchpin of Incredible PBX 2020 and beyond is ClearlyIP components which bring management of FreePBX modules and SIP phone integration to a level never before available with any other Asterisk distribution. And now you can configure and reconfigure your new Incredible PBX phones from the convenience of the Incredible PBX GUI.
VitalPBX is perhaps the fastest-growing PBX offering based upon Asterisk with an installed presence in more than 100 countries worldwide. VitalPBX has generously provided a customized White Label version of Incredible PBX tailored for use with all Incredible PBX and VitalPBX custom applications. Follow this link for a free test drive!
Special Thanks to Vitelity. Vitelity is now Voyant Communications and has halted new registrations for the time being. Our special thanks to Vitelity for their unwavering financial support over many years and to the many Nerd Vittles readers who continue to enjoy the benefits of their service offerings. We will keep everyone posted on further developments.
- Skyetel outbound SMS messages are billed at 1¢/message plus a monthly SMS surcharge of 10¢ per SMS-enabled DID. With IBM’s STT service, users have a choice of the LITE tier providing 100 minutes a month of free transcription or the STANDARD tier providing unlimited message transcription at a cost of 2¢/minute. [↩]
Spam Phone Call Blocker and CNAM Caching for FreePBX
Blocking spam phone calls has been a challenge to put it charitably. Thanks to some earlier work by Stewart Nelson on the DSLR forum as well as Stewart’s considerable hand-holding in the development of today’s tutorial, we want to introduce a new approach to blocking these calls. The way it works is first time callers that pass the TrueCNAM SPAM check will be prompted to "press 5 to connect." Since most spam calls sit in a queue for several seconds before a live person chimes in, that person won’t hear the prompt. After 10 seconds or an invalid response, a SIT tone is played and the call is disconnected. If you’d prefer, you can send the failed calls to voicemail by uncommenting a single line in your dialplan. When a successful caller calls again, the caller will be connected without encountering the press 5 prompt.1 While today’s approach won’t block every robocaller, our testing suggests that, in combination with TrueCNAM, it will catch more than 95% of the spam callers. Using CallerID Superfecta with CNAM lookups from OpenCNAM coupled with AsteriDex and the Asterisk® Phonebook will provide an extremely low-cost solution both for blocking spammers AND for displaying accurate CNAM data for incoming calls since you’ll only pay for CNAM and TrueCNAM lookups from legitimate callers once.
Here’s the actual dialplan addition that will monitor your incoming calls:
[sub-log-caller] exten => s,1,NoOp(*** begin sub-log-caller ***) exten => s,n,GotoIf(${DB_EXISTS(cidname/${CALLERID(num)})}?CNAMCHECK) exten => s,n,GotoIf($[${DB_EXISTS(SPAMCHECK/deactivate)} = 0]?ACTIVATE) exten => s,n,GotoIf($[${DB(SPAMCHECK/deactivate)} = 1]?CONNECTNOW) exten => s,n(ACTIVATE),NoOp(Not yet WhiteListed) exten => s,n,AGI(truecnam.sh,${CALLERID(number)}) exten => s,n,GotoIf($["${SPAM}"="SPAM"]?FLUNKED) exten => s,n,Playback(silence/1) exten => s,n,Playback(to-call-num-press) exten => s,n,Playback(digits/5) exten => s,n,Read(MYCODE,beep,1,n,1,10) exten => s,n,GotoIf($["${MYCODE}" = "5"]?ANONTEST) exten => s,n(FLUNKED),NoOp(*** Caller FLUNKED screening ***) ;exten => s,n,Dial(local/*701@from-internal) ; uncomment to send to 701 VM exten => s,n,Zapateller() exten => s,n,Hangup exten => s,n,Return() exten => s,n(ANONTEST),GotoIf($[${CALLERID(num)} > 0]?WHITELIST:CONNECTNOW) exten => s,n(CNAMCHECK),Set(CNAM1=${CALLERID(name)}) exten => s,n,Set(CNAM2=${DB(cidname/${CALLERID(number)})}) exten => s,n,GotoIf($["${CNAM1}" = "${CNAM2}"]?WHITELISTED exten => s,n(WHITELIST),Set(DB(cidname/${CALLERID(number)})=${CALLERID(name)}) exten => s,n,Set(CALLERID(all)="${CALLERID(name)} < ${CALLERID(number)}>") exten => s,n(WHITELISTED),NoOp(WhiteListed: ${CALLERID(all)}) exten => s,n(CONNECTNOW),NoOp(*** end of sub-log-caller ***) exten => s,n,Return()
We first introduced some of the CallerID caching concepts in our previous article last May. That article also documented the procedure for adding inbound call processing logic into FreePBX. If you already have implemented the steps outlined in that article, then the only modification required to deploy today’s new spam blocking technique is to replace the [sub-log-caller] context and reload the Asterisk dialplan. NOTE: Some deployments of CallerID Superfecta have an incorrect database password in the Default setup for AsteriDex. The original article will walk you through making the necessary change.
If you’re starting from scratch, stop here for a bit and follow all of the steps in our previous article which now incorporates the spam blocking code as well. Here’s the link to get started. Return here once you’ve completed the initial setup.
If you’re updating a previous deployment, here are the steps. Edit extensions_custom.conf in /etc/asterisk and remove the [sub-log-caller] context toward the end of the file. Then save the file. Next, issue the following commands to move the TrueCNAM script into place and insert the updated [sub-log-caller] context as well as the new [macro-dialout-trunk-predial-hook] context. Then reload your Asterisk dialplan. The dialplan additions will populate the Asterisk Phonebook and also whitelist calls from your PBX as well as incoming calls making it through the Spam Blocker.
cd /tmp wget http://incrediblepbx.com/sub-log-caller.tar.gz tar zxvf sub-log-caller.tar.gz rm -f sub-log-caller.tar.gz mv truecnam.sh /var/lib/asterisk/agi-bin cd /etc/asterisk cat /tmp/sub-log-caller.txt >> extensions_custom.conf asterisk -rx "dialplan reload"
Rotary Dial Phones & Blocked Numbers
If someone you know and love still has a rotary dial phone, then you will need to manually add their number to either AsteriDex or your Asterisk Phonebook. Otherwise, the calls will never make it through the Spam Catcher. You can do this within the FreePBX GUI by accessing Admin -> Asterisk Phonebook. Click + Add Phonebook Entry and enter the 10-digit number for Grandma as well as her name. Add a second entry with Grandma’s 11-digit number in case some of your VoIP providers happen to send 11-digit CallerID numbers. We hasten to add you should normalize the formatting of your CallerID numbers as quickly as you can to avoid double entries. For those in the U.S. and Canada, we recommend the from-pstn-e164-us context for all of your trunks.
If you have lots of friends with rotary dial phones or if you get calls from important, but unknown numbers such as medical offices where Caller ID numbers are blocked, then you probably should consider uncommenting the voicemail option in [sub-log-caller]. Then you at least will get voicemail notifications when one of these callers attempts to contact you. You still will have to manually add them to AsteriDex or the Asterisk Phonebook so they can contact you directly in the future. HINT: Most medical office calls now spoof the main number of the office so you only need to add the office number just as you did with grandma.
Toggling Spam Blocker On and Off
We’ve also included the ability to turn off the Spam Blocker should you ever wish to do so. To disable the Spam Blocker, issue the following command at the Asterisk CLI:
database put SPAMCHECK deactivate 1
To once again enable the Spam Blocker, issue the following command at the Asterisk CLI:
database deltree SPAMCHECK
WhiteListing Previous Callers
We appreciate that you may not want to aggravate callers that have been calling you for years by making them jump through hoops the next time they call. So here’s a quick way to populate your Asterisk Phonebook with the names and numbers of previous callers. For entries where the CNAM is merely the CallerID Number, future calls from these numbers still will be looked up with OpenCNAM to obtain an actual CNAM match. We’ve made a couple of assumptions that you are more than welcome to adjust to meet your own needs. First, we’ve limited the list to callers from the past two calendar years. Second, we’ve only captured calls that lasted more than 15 seconds. We’ll drop down to the Linux CLI to build the list of callers to import. Then we’ll use the FreePBX GUI to import the list into the Asterisk Phonebook. While we’re building the import list, you’ll have two opportunities to prune the list using your favorite text editor. To get started, issue the following commands from the Linux CLI:
mysql -u root -ppassw0rd asteriskcdrdb -Ns -e "select distinct src, clid \\ from cdr where calldate > '2017/01/01' and duration > 15 \\ order by clid asc" > 2YR-full
Now edit the 2YR-full file and remove any complete lines you don’t want to import.
Next, we’ll reformat the CallerID Numbers and Names into a format needed for the import:
cat 2YR-full | cut -f 1 -d '"' | sed 's|[[:space:]]||' > 2YR-numbers cat 2YR-full | cut -f 2 -d '"' > 2YR-names paste 2YR-numbers 2YR-names | awk '{print $1,$2,$3,$4}' > 2YR-all awk '{print $2 " " $3 $4 ";" $1";"}' 2YR-all > 2YR-freepbx.csv
Now we should have our 2YR=freepbx.csv file in its final form for import. Open the file in your favorite editor. The syntax of the entries should be CallerID Name, then a semicolon, then CallerID Number, and then a semicolon. Discard any additional lines you wish to exclude from the import. Once you have all the entries squared away, copy the file to your desktop PC and open FreePBX in your browser. Navigate to Admin -> Asterisk Phonebook. Click Import Phonebook and then Browse. Select the 2YR-freepbx.csv file from your desktop. Then click Upload. Take a final look at the new entries in your Asterisk Phonebook to make sure nothing came unglued, and you’re all set.
TrueCNAM: The Icing on the Spam Cake
A couple years ago we introduced TrueCNAM, a service that provides not only CNAM data but also Caller Reputation scoring. Those that flunk using the revolving caller reputation matrix get disconnected automatically. We strongly encourage you to add the TrueCNAM service to your PBX. The service includes a free tier as well as incredibly reasonable commercial tiers. For background on the service, here’s a link to our previous TrueCNAM tutorial. For today, start by signing up for a TrueCNAM account and obtain an APIkey and APIpassword. Then register at least one of your DIDs with the service. Once you have your credentials and your DID number in hand, edit truecnam.sh in /var/lib/asterisk/agi-bin. Insert these three items at the top of the file and save it to activate TrueCNAM. It doesn’t get much easier than that.
Now make a few test calls to your PBX to assure that everything is working as documented. Enjoy!
Originally published: Monday, November 26, 2018
Support Issues. With any application as sophisticated as this one, you’re bound to have questions. Blog comments are a difficult place to address support issues although we welcome general comments about our articles and software. If you have particular support issues, we encourage you to get actively involved in the PBX in a Flash Forum. It’s the best Asterisk tech support site in the business, and it’s all free! Please have a look and post your support questions there. Unlike some forums, the PIAF Forum is extremely friendly and is supported by literally hundreds of Asterisk gurus and thousands of users just like you. You won’t have to wait long for an answer to your question.
Need help with Asterisk? Join our new MeWe Support Site.
Special Thanks to Our Generous Sponsors
FULL DISCLOSURE: ClearlyIP, Skyetel, Vitelity, DigitalOcean, Vultr, VoIP.ms, 3CX, Sangoma, TelecomsXchange and VitalPBX have provided financial support to Nerd Vittles and our open source projects through advertising, referral revenue, and/or merchandise. As an Amazon Associate and Best Buy Affiliate, we also earn from qualifying purchases. We’ve chosen these providers not the other way around. Our decisions are based upon their corporate reputation and the quality of their offerings and pricing. Our recommendations regarding technology are reached without regard to financial compensation except in situations in which comparable products at comparable pricing are available from multiple sources. In this limited case, we support our sponsors because our sponsors support us.
BOGO Bonaza: Enjoy state-of-the-art VoIP service with a $10 credit and half-price SIP service on up to $500 of Skyetel trunking with free number porting when you fund your Skyetel account. No limits on number of simultaneous calls. Quadruple data center redundancy. $25 monthly minimum spend required. Tutorial and sign up details are here.
The lynchpin of Incredible PBX 2020 and beyond is ClearlyIP components which bring management of FreePBX modules and SIP phone integration to a level never before available with any other Asterisk distribution. And now you can configure and reconfigure your new Incredible PBX phones from the convenience of the Incredible PBX GUI.
VitalPBX is perhaps the fastest-growing PBX offering based upon Asterisk with an installed presence in more than 100 countries worldwide. VitalPBX has generously provided a customized White Label version of Incredible PBX tailored for use with all Incredible PBX and VitalPBX custom applications. Follow this link for a free test drive!
Special Thanks to Vitelity. Vitelity is now Voyant Communications and has halted new registrations for the time being. Our special thanks to Vitelity for their unwavering financial support over many years and to the many Nerd Vittles readers who continue to enjoy the benefits of their service offerings. We will keep everyone posted on further developments.
- Once installed, you can change the voice prompt to a number other than 5 by modifying lines 10 and 12 of the context sub-log-caller which you will find in extensions_custom.conf in the /etc/asterisk directory at the completion of this install. [↩]
R.I.P. GVSIP: A Final Farewell to Google Voice
It’s been a death by a thousand cuts, but today marks the end of the Google Voice era with Asterisk®. Since Google removed XMPP support and transitioned to their new GVSIP platform, many have held out hope that Google hadn’t moved to a purely commercial platform with their ObiHai deal. Yesterday, the head of the Google Voice project requested that all Asterisk GVSIP implementations be discontinued citing Google’s Terms of Service. We hinted this was coming back in July and have reproduced our tweet below. We have since removed all of our articles pertaining to GVSIP, and we would encourage all of our readers to honor Google’s wishes and move on. We’ve made it easy with a $50 gift certificate from Skyetel (expires March 31, 2019). It will buy you many months of free VoIP service.
You still have several options with your Google Voice trunks. First, you can forward all incoming calls to Google Voice to another phone or DID of your choosing. This costs you nothing other than a minute to set it up. Second, you can port out your Google Voice number to another provider. Skyetel will cover your porting expense at their end during your first 60 days of service. Google charges $3 to port out your number unless you originally ported it into Google in which case it is free. Here’s how. Although we’re not big fans, a third option is to purchase an OBi200 device and continue to use your Google Voice trunk with Asterisk. Our tutorial from last May will show you how. Effective 10/1/2023, $25/month minimum spend at Skyetel is required.
As we’ve mentioned often, the beauty of VoIP is not having to put all of your telephony eggs in a single basket. Google’s latest move reinforces how important it actually is to configure several VoIP trunks on your server. While Skyetel and Vitelity are both excellent primary trunks and rarely experience an outage, it’s still a good idea to have a backup. VoIP.ms (free iNUM), CircleNet, CallCentric ($1/mo. DID and iNUM), LocalPhone (25¢/mo. iNUM), Future-Nine, AnveoDirect, and V1VoIP are excellent options. Most don’t cost you anything unless you make calls. Review our complete SIP tutorial here: Developing a Cost-Effective SIP Strategy.
Dale Carnegie Award: ObiHai Man of the Year
Originally published: Friday, November 16, 2018
Need help with Asterisk? Join our new MeWe Support Site.
Special Thanks to Our Generous Sponsors
FULL DISCLOSURE: ClearlyIP, Skyetel, Vitelity, DigitalOcean, Vultr, VoIP.ms, 3CX, Sangoma, TelecomsXchange and VitalPBX have provided financial support to Nerd Vittles and our open source projects through advertising, referral revenue, and/or merchandise. As an Amazon Associate and Best Buy Affiliate, we also earn from qualifying purchases. We’ve chosen these providers not the other way around. Our decisions are based upon their corporate reputation and the quality of their offerings and pricing. Our recommendations regarding technology are reached without regard to financial compensation except in situations in which comparable products at comparable pricing are available from multiple sources. In this limited case, we support our sponsors because our sponsors support us.
BOGO Bonaza: Enjoy state-of-the-art VoIP service with a $10 credit and half-price SIP service on up to $500 of Skyetel trunking with free number porting when you fund your Skyetel account. No limits on number of simultaneous calls. Quadruple data center redundancy. $25 monthly minimum spend required. Tutorial and sign up details are here.
The lynchpin of Incredible PBX 2020 and beyond is ClearlyIP components which bring management of FreePBX modules and SIP phone integration to a level never before available with any other Asterisk distribution. And now you can configure and reconfigure your new Incredible PBX phones from the convenience of the Incredible PBX GUI.
VitalPBX is perhaps the fastest-growing PBX offering based upon Asterisk with an installed presence in more than 100 countries worldwide. VitalPBX has generously provided a customized White Label version of Incredible PBX tailored for use with all Incredible PBX and VitalPBX custom applications. Follow this link for a free test drive!
Special Thanks to Vitelity. Vitelity is now Voyant Communications and has halted new registrations for the time being. Our special thanks to Vitelity for their unwavering financial support over many years and to the many Nerd Vittles readers who continue to enjoy the benefits of their service offerings. We will keep everyone posted on further developments.
Free Asterisk Voicemail Transcription with IBM Watson STT
There are many commercial voicemail transcription services for Asterisk® PBXs, but none hold a candle to the speech-to-text (STT) quality of the IBM Cloud offering known as Watson® STT, formerly known as Bluemix TTS. Despite a recent price increase that takes effect in December, the pricing remains competitive. On the Standard Pricing Plan, voicemail transcription is 2¢ per minute. Or you can try things out on the LITE plan which offers 100 minutes a month at no cost. When the messages are delivered by email, you get the voicemail recording in MP3 format AND transcribed text courtesy of Watson TTS. With IBM services, there no longer are username:password credentials. Instead, you will have a new apikey.
Those with existing configurations can update your credentials by inserting a new apikey using the following commands, or you can simply insert apikey as your $API_USERNAME and enter your actual APIkey as your $API_PASSWORD.
cd /usr/local/sbin sed -i 's|$API_USERNAME:$API_PASSWORD|"apikey:x-yy-zzz"|' sendmailmp3 sed -i 's|$API_USERNAME:$API_PASSWORD|"apikey:x-yy-zzz"|' bluemix-test
IBM Cloud’s STT solution is a real game-changer for one simple reason. Their STT API performs more accurately than any speech recognition engine in the world. As an added bonus, you won’t have to worry about Google breaking our middleware every month. It’s worth noting that IBM doesn’t round up minutes. Transcribing two 30-second messages counts as one minute.
https://youtu.be/JWnLgZ58zsw
Overview. What we’ve done today is integrate the Watson STT API directly into existing Asterisk voicemail systems. We started with Nicolas Bernaerts’ terrific sendmailmp3 script. It works on both the Wazo and FreePBX® platforms. If you have deployed Incredible PBX®, then the setup takes a couple of minutes. For everyone else, there’s an additional configuration step using your favorite GUI. To get started, you’ll sign up for an IBM Cloud account and obtain your credentials. Next, you download today’s script for your platform and insert your credentials. Finally, you set up voicemail on the extensions desired and insert an email address for each voicemail account. On generic FreePBX systems, you’ll need to add the name of our script to manage your voicemail recordings. And, regardless of your PBX platform, you obviously need outgoing SMTP email working reliably.
Start by sending yourself a test email and get that working first:
echo "test" | mail -s testmessage yourname@your-email-domain.com
What About the Quality? Here’s the bottom line. Speech recognition isn’t all that useful if it fails miserably in recognizing everyday speech. The good news is that IBM Watson’s speech recognition engine is now the best in the business. If you want more details, read the article below which will walk you through IBM’s latest speech recognition breakthrough:
Why IBM's speech recognition breakthrough matters for AI and IoT. Via @techrepublic https://t.co/AJi8MA3E20
— IBM Developer (@IBMDeveloper) March 15, 2017
Obtaining IBM Cloud Speech to Text Credentials
Follow this link to set up your IBM account and obtain credentials for both Speech to Text (STT) and Text to Speech (TTS) services. Please note that your STT and TTS API keys will NOT be the same. So don’t accidentally use the wrong one.
Installing STT Engine with Incredible PBX for Wazo
1. After logging into your Incredible PBX for Wazo server as root using SSH/Putty:
cd /usr/sbin wget http://incrediblepbx.com/sendmailibm.tar.gz tar zxvf sendmailibm.tar.gz rm -f sendmailibm.tar.gz
2. Edit sendmailibm and insert IBM STT API_KEY and URL.
3. Edit bluemix-test and insert IBM STT API_KEY and URL.
4. Apply the patch documented above if using LITE plan using sendmail filename instead of sendmailmp3.
5. Copy the updated sendmailibm file to sendmail:
cd /usr/sbin cp -p sendmailibm sendmail
6. Test your Bluemix STT setup: bluemix-test
7. Result should be: please record your message after the beep
8. Set up voicemail account for a Wazo extension with your email address.
9. Place a test call to the extension and record a voicemail when prompted.
10. Your message will be transcribed and delivered via email.
Installing STT Engine with Incredible PBX for RasPi
1. After logging into your Raspberry Pi server as root using SSH/Putty:
cd /usr/sbin wget http://incrediblepbx.com/sendmailibm-raspi.tar.gz tar zxvf sendmailibm-raspi.tar.gz rm -f sendmailibm-raspi.tar.gz
2. Edit sendmailmp3.ibm and insert your Bluemix STT API_KEY and URL. Save file.
3. Edit bluemix-test and insert your Bluemix STT API_KEY and URL. Save the file.
4. Copy the updated sendmailmp3.ibm file to sendmailmp3:
cd /usr/sbin cp -p sendmailmp3.ibm sendmailmp3
5. Apply the patch documented above if using LITE plan.
6. Test your Bluemix STT setup: bluemix-test
7. Result should be: your dictation is now being processed and emailed please wait
8. Set up voicemail for a RasPi extension with your email address.
9. Place a test call to the extension and record a voicemail when prompted.
10. Your message will be transcribed and delivered via email.
Installing STT Engine with Incredible PBX 13-13
1. After logging into your Incredible PBX 13 server as root using SSH/Putty:
cd /usr/local/sbin wget http://incrediblepbx.com/sendmailibm-13.tar.gz tar zxvf sendmailibm-13.tar.gz rm -f sendmailibm-13.tar.gz
2. Edit sendmailmp3.ibm and insert your IBM STT API_KEY and URL. Save file.
3. Edit bluemix-test and insert your IBM STT API_KEY and URL. Save the file.
4. Copy the updated sendmailmp3.ibm file to sendmailmp3:
cd /usr/local/sbin cp -p sendmailmp3.ibm sendmailmp3
5. Test your Bluemix STT setup: bluemix-test
6. Result should be: we are now transferring you out of the company directory…
7. Set up voicemail for an extension and include your email address.
8. Place a test call to the extension and record a voicemail when prompted.
9. Your message will be transcribed and delivered via email.
Installing STT Engine with VitalPBX
For those using VitalPBX with or without Incredible PBX, we’ve written a new tutorial to walk you through the procedure to get voicemail transcription with IBM Watson STT up and running. Here’s the link.
Installing STT Engine with Legacy FreePBX Servers
1. Follow steps #1 through #8 from the Incredible PBX 13 tutorial above.
2. Choose Settings -> Voicemail Admin -> Settings in the GUI.
3. In the format field, insert: wav|wav49
4. In the mailcmd field, insert: /usr/local/sbin/sendmailmp3
5. Click Submit to save your settings and then Reload the FreePBX Dialplan.
6. Place a test call to the extension and record a voicemail when prompted.
7. Your message will be transcribed and delivered via email.
Update: Matt Darnell reports that, depending upon your existing setup, you may need to add the unix2dos and lame packages with legacy FreePBX servers to get MP3 messages delivered correctly.
Originally published: Monday, March 12, 2018 Updated: Monday, November 12, 2018
Got Friends? 7 Countries Have Never Visited Nerd Vittles. 2018 Is Calling! https://t.co/wMfmlhAr16 #asterisk #freepbx #wazo #issabel #IncrediblePBX #3CX pic.twitter.com/kAmAEnwVIw
— Ward Mundy (@NerdUno) January 9, 2018
Need help with Asterisk? Visit the PBX in a Flash Forum.
Special Thanks to Our Generous Sponsors
FULL DISCLOSURE: ClearlyIP, Skyetel, Vitelity, DigitalOcean, Vultr, VoIP.ms, 3CX, Sangoma, TelecomsXchange and VitalPBX have provided financial support to Nerd Vittles and our open source projects through advertising, referral revenue, and/or merchandise. As an Amazon Associate and Best Buy Affiliate, we also earn from qualifying purchases. We’ve chosen these providers not the other way around. Our decisions are based upon their corporate reputation and the quality of their offerings and pricing. Our recommendations regarding technology are reached without regard to financial compensation except in situations in which comparable products at comparable pricing are available from multiple sources. In this limited case, we support our sponsors because our sponsors support us.
BOGO Bonaza: Enjoy state-of-the-art VoIP service with a $10 credit and half-price SIP service on up to $500 of Skyetel trunking with free number porting when you fund your Skyetel account. No limits on number of simultaneous calls. Quadruple data center redundancy. $25 monthly minimum spend required. Tutorial and sign up details are here.
The lynchpin of Incredible PBX 2020 and beyond is ClearlyIP components which bring management of FreePBX modules and SIP phone integration to a level never before available with any other Asterisk distribution. And now you can configure and reconfigure your new Incredible PBX phones from the convenience of the Incredible PBX GUI.
VitalPBX is perhaps the fastest-growing PBX offering based upon Asterisk with an installed presence in more than 100 countries worldwide. VitalPBX has generously provided a customized White Label version of Incredible PBX tailored for use with all Incredible PBX and VitalPBX custom applications. Follow this link for a free test drive!
Special Thanks to Vitelity. Vitelity is now Voyant Communications and has halted new registrations for the time being. Our special thanks to Vitelity for their unwavering financial support over many years and to the many Nerd Vittles readers who continue to enjoy the benefits of their service offerings. We will keep everyone posted on further developments.
Some Recent Nerd Vittles Articles of Interest…
Double-NAT Blues: Tackling Asterisk’s Thorniest Problems
Whether you’re new to VoIP technology or an Old Timer, nothing is quite as frustrating as wrestling with one-way audio and no audio on SIP calls either because of poorly designed NAT-based routers or poorly implemented SIP ALG solutions on low-end residential routers. To make matters worse, you get to deal with calls originating behind not one, but two, NAT-based routers neither of which complies with the basic SIP Rules of the Road. In a perfect world, SIP and RTP packets arriving from the Internet would have their public IP address translated into a private LAN address upon arrival at the NAT-based router. And the departing packets would have their private IP addresses translated into the public IP address of the router when leaving. If your PBX and SIP phone happen to be behind different NAT-based routers and hardware from the likes of Comcast, Spectrum, and AT&T, the odds of SIP calls working reliably are somewhere between slim and none. Perhaps it’s no coincidence that each of these providers also happens to offer competing (expensive) telephony service.
Today we’d like to offer some Asterisk® solutions that resolve these issues. First, if you are the subscriber to cable or DSL Internet service, you may have some success by talking to your provider and persuading them to set up their hardware in bridged mode so that you can install your own NAT-based router that properly handles SIP traffic. Second, it’s almost always a good idea to disable SIP ALG service on routers that you control. The reason is because of the poor ALG implementations on almost all low-cost routers. Third, configuring the Public and Private IP NAT Settings for your PBX using the FreePBX® GUI (Settings->Asterisk SIP Settings->NAT Settings) often solves the problems. Fourth, make sure NAT=yes is set in your extension and trunk settings.
If you happen to be traveling and have no control over the network architecture, the chances of the above recommendations resolving your SIP problems are not likely. This includes offerings in hotels, rental units, cruise ships, and WiFi HotSpots worldwide. In most of these locations, you would want to use a SIP phone to connect back to your home or office PBX so that you could receive incoming calls and place outbound calls just as if you were sitting at your desk at home. In these situations, we have a failsafe solution for you, but it requires a little advance planning because you need to configure your home or office Asterisk server to support the design.
The easiest way to eliminate NAT problems is to take NAT out of the equation when making and receiving SIP calls. With Asterisk, this is easy. What we typically do is interconnect the home or office Asterisk PBX with a local Asterisk PBX using an IAX2 trunk. Thus, no SIP traffic passes between your local PBX and your home or office PBX regardless of the number of layers of routers that are present between the two servers. If you can make SIP calls through a provider while sitting at home, you have solved the SIP connectivity issues at the home/office end. If your local PBX and SIP phone or softphone are on the same local LAN whether wired or wireless, then there is no SIP connectivity issue locally either. So how?
Rule #1: Always travel with a notebook computer that includes VirtualBox and a reliable SIP softphone. We’re big fans of all of the Mac notebooks, any of them will suffice. Windows and Linux notebooks work as well. Steer clear of Chromebooks which lack a crucial Linux kernel driver required by VirtualBox. There’s a solution, but it’s painful. On the Mac platform, you can’t beat the free Telephone app for your SIP phone.
Rule #2: Set up a NeoRouter VPN to provide secure interconnectivity between your home or office PBX and your local PBX. With Incredible PBX platforms, the NeoRouter client is included. You’ll just need to install the NeoRouter server component on some server with a public IP address. Complete details are here. To obtain a NeoRouter private IP address on each PBX, run this command after logging in as root: nrclientcmd
.
Configuring IAX Trunk on Home/Office Server. You’ll need the NeoRouter IP address and a secure password to set up the trunk that will interconnect your Home-PBX with your local PBX. We’re going to refer to the two servers as Home-PBX (10.0.0.1) and Travel-PBX (10.0.0.2) to keep things simple. On the Home-PBX, create an IAX trunk using the FreePBX GUI with a Trunk Name of Travel-PBX. The PEER Details should look like the following using a very secure password that will be used on the trunk at the other end as well:
type=friend secret=very-secure-password host=dynamic context=from-internal requirecalltoken=no deny=0.0.0.0/0.0.0.0 permit=0.0.0.0/0.0.0.0
The Registration String would look like the following where very-secure-password is your actual shared secret for the two trunks and 10.0.0.2 is the actual VirtualBox IP address of the Travel-PBX: Home-PBX:very-secure-password@10.0.0.2
Configuring IAX Trunk on Travel-PBX Server. You’ll need the NeoRouter IP address and a secure password to set up the trunk that will interconnect your Travel-PBX server with your Home-PBX. On the Travel-PBX, create an IAX trunk using the FreePBX GUI with a Trunk Name of Home-PBX. The PEER Details should look like the following using a very secure password that will be used on the trunk at the other end as well:
type=friend secret=very-secure-password host=dynamic context=from-internal requirecalltoken=no deny=0.0.0.0/0.0.0.0 permit=0.0.0.0/0.0.0.0
The Registration String would look like the following where very-secure-password is your actual shared secret for the two trunks and 10.0.0.1 is the actual VirtualBox IP address of the Home-PBX: Travel-PBX:very-secure-password@10.0.0.1
Once you get this far, log into both servers as root and start up the Asterisk CLI. On each server, issue the following command to be sure the two trunks are registered with each other: iax2 show registry
Routing Calls from Home-PBX to Travel-PBX. What follows is one scenario for call routing. We’re assuming calls to your Home-PBX are routed to a Ring Group consisting of various extensions in your home or office. We’re also assuming you want to now add an extension on Travel-PBX to that Ring Group so that incoming calls to your Home-PBX will also ring the softphone connected to an extension on your Travel-PBX. In the Asterisk/FreePBX world, we accomplish this by adding an Outbound Route for the Travel-PBX extension and then adding this number to the Ring Group with a # prefix to tell FreePBX that it’s a trunk call rather than a local extension. In our example, we’re assuming the softphone extension on Travel-PBX is 701, but we’re also assuming there is a different extension 701 on Home-PBX. To avoid confusing the Home-PBX, we’ll add a 7 prefix for the Travel-PBX extension and then strip it off before passing the call to Travel-PBX.
First, create an Outbound Route called Travel-PBX-Out. For the Dial Pattern, enter a Prefix of 7 and a Match Pattern of 701. For the Trunk Sequence, choose Travel-PBX. Move the Outbound Route near the top of your route list to assure that it gets processed before any other 4-digit extensions. Second, edit your Ring Group and add 7701# to the existing list.
Routing Calls from Travel-PBX to Home-PBX. On the Travel-PBX, we’re assuming you’d like calls placed from your softphone to be processed exactly as if you were calling from a local extension on Home-PBX. Create an Outbound Route called Home-PBX-Out. For the Dial Patterns, add one for 10-digit calls: NXXNXXXXXX. If you want to be able to reach 3-digit extensions on Home-PBX, add a second dial pattern with a 9 prefix and XXX for the Match Pattern so it doesn’t conflict with local extensions. For Trunk Sequence, choose Home-PBX.
Originally published: Monday, August 20, 2018
Support Issues. With any application as sophisticated as this one, you’re bound to have questions. Blog comments are a terrible place to handle support issues although we welcome general comments about our articles and software. If you have particular support issues, we encourage you to get actively involved in the PBX in a Flash Forums. It’s the best Asterisk tech support site in the business, and it’s all free! Please have a look and post your support questions there. Unlike some forums, ours is extremely friendly and is supported by literally hundreds of Asterisk gurus and thousands of users just like you. You won’t have to wait long for an answer to your question.
Need help with Asterisk? Visit the PBX in a Flash Forum.
Special Thanks to Our Generous Sponsors
FULL DISCLOSURE: ClearlyIP, Skyetel, Vitelity, DigitalOcean, Vultr, VoIP.ms, 3CX, Sangoma, TelecomsXchange and VitalPBX have provided financial support to Nerd Vittles and our open source projects through advertising, referral revenue, and/or merchandise. As an Amazon Associate and Best Buy Affiliate, we also earn from qualifying purchases. We’ve chosen these providers not the other way around. Our decisions are based upon their corporate reputation and the quality of their offerings and pricing. Our recommendations regarding technology are reached without regard to financial compensation except in situations in which comparable products at comparable pricing are available from multiple sources. In this limited case, we support our sponsors because our sponsors support us.
BOGO Bonaza: Enjoy state-of-the-art VoIP service with a $10 credit and half-price SIP service on up to $500 of Skyetel trunking with free number porting when you fund your Skyetel account. No limits on number of simultaneous calls. Quadruple data center redundancy. $25 monthly minimum spend required. Tutorial and sign up details are here.
The lynchpin of Incredible PBX 2020 and beyond is ClearlyIP components which bring management of FreePBX modules and SIP phone integration to a level never before available with any other Asterisk distribution. And now you can configure and reconfigure your new Incredible PBX phones from the convenience of the Incredible PBX GUI.
VitalPBX is perhaps the fastest-growing PBX offering based upon Asterisk with an installed presence in more than 100 countries worldwide. VitalPBX has generously provided a customized White Label version of Incredible PBX tailored for use with all Incredible PBX and VitalPBX custom applications. Follow this link for a free test drive!
Special Thanks to Vitelity. Vitelity is now Voyant Communications and has halted new registrations for the time being. Our special thanks to Vitelity for their unwavering financial support over many years and to the many Nerd Vittles readers who continue to enjoy the benefits of their service offerings. We will keep everyone posted on further developments.
Some Recent Nerd Vittles Articles of Interest…