FreeSWITCH LCR Data for FreePhoneLine.ca

While I was bored and still on the lookout for jobs, I decided to embark on the task of building a Least Cost Routing database for FreeSWTICH’s mod_lcr module. This database I built is meant for use with FreePhoneLine.ca (also known as fongo)

The completed SQL database can be downloaded from here:
http://www.curriegrad2004.ca/freeswitch/fpl_fs_lcr.sql.gz

Some notes before you start using this database:

  • Data may not be complete
  • By default the carrier id is set to 1, but you can change all of this.

If I feel like it, I may provide an user interface so you can customize your Carrier ID and provide a more real-time like LCR SQL database. This should work on PostgreSQL and MySQL installations as the database linked is just a bunch of inserts. I’ll probably edit this post later for my rationale on why I created such database.

Update:

Here’s my rationale for creating a LCR database: Having to build a dialplan to match a huge list of “Free Calling Areas” provided by FreePhoneLine.ca can get daunting. Somebody by the name Jake on the FreePhoneLine forums did, and it didn’t look pretty once it gets integrated with the dialplan. To see what he came up with, look here. It does not look pretty AT ALL. Besides, it isn’t all that scalable when there are either new free calling areas being added or removed in the dialplan. Sure creating a huge list is just fine for a provider or two, but what if you have multiple VoIP providers at your fingertips?

Enter FreeSWITCH’s mod_lcr. Provided you know what you’re doing with this module, you can now dynamically route your calls via a database depending on the numbers using the LCR interface provided by FreeSWTICH. What does this mean to the average user? It means that now you can effectively route calls to free calling areas in FreePhoneLine.ca and use other routes for calls that are not covered by them for free. Your other routes could be VoIP.ms, Flowroute, VoiceNetwork.ca or any endpoint you can interface with FreeSWITCH as a matter of fact. Heck if you do own a traditional TDM voice link, you could use that as a fall back link if necessary!

The huge benefit of using mod_lcr to route calls is you can now remove and add routes via a database management frontend such as PhpMyAdmin or PhpPgAdmin (Depending on what database you choose to interface FreeSWITCH) without having the need to gain access to the FreeSWITCH console and refreshing the XML configuration in there. Routes added or removed using those database management frontends mentioned above take effect almost immediately as the calls are dynamically routed when the LCR module is used to route such calls.

So I hope you choose your poison carefully. Really 😛

A Nice HOWTO on Installing FreeSwitch on Scientific/CentOS/RHEL 6-based Servers

Over the past year I’ve been experimenting FreeSwitch as my home based PBX solution and so far using it seems like quite a breeze. Installation was quite a breeze too when you don’t run into problems. Maintaining it was also quite a breeze… until you discover (quite rudely) the fact that a boot option should be appended on the GRUB configuration file with these newer RHEL-like 6 releases. (I’m talking about Scientific/CentOS here, not the real RHEL 6 product which a poor starving student at the moment could not afford.)

Continue reading “A Nice HOWTO on Installing FreeSwitch on Scientific/CentOS/RHEL 6-based Servers”

An IGMPProxy init.d Script. (For Fedora/CentOS only again)

Yes, I’m at it again. This time it’s for IGMPProxy.

IGMPProxy is an IGMP snooper/proxy daemon for routing multicast packets across networks. Pretty useful for IPTV services like Telus TV or AT&T U-Verse.

Again, Google didn’t result in a working script, although a Russian tried to and failed to produce a working init script for IGMPProxy. Daemonize is required to run the daemon because for some reason the ‘daemon’ as claimed by IGMPProxy doesn’t work for some reason. Continue reading “An IGMPProxy init.d Script. (For Fedora/CentOS only again)”

A ZNC init.d Script For Fedora (Possibly on CentOS/RHEL too)

As most people who read this may know, I run my own IRC bouncer off my Fedora based router, which is powered by this nice piece of FOSS code called ZNC. However rebooting the router will usually mean I have to manually start the bouncer again by logging in to the terminal.

I did some Googling and didn’t find an init.d script written for Fedora. Okay, no problem, I write my own init.d script. However I don’t want to just keep this init.d script to myself. So I’ve decided to share it with you nice folks on the Interwebs.

Continue reading “A ZNC init.d Script For Fedora (Possibly on CentOS/RHEL too)”