Seriously friendly scanners…

Here’s my word to friendly scanners out there:

Why are you even spoofing the SIP User Agent Cisco-SIPGateway/IOS-12.x anyways? Because doing that will eventually get that UA added to a hot-list.

Of course, I can always do a fail2ban with FreeSWITCH, but seriously?

Tony of FreeSWITCH… Very Funny…

Ha Ha very funny of you…

In case if you’re wondering, yes Tony of FreeSWITCH did add that colorized banner in fs_cli.c with the effect of advertising that ClueCon is coming in a month…

For people who are getting annoyed at it, I’ve reverted that and you can use my patch to get rid of that banner:

From 23526fe0cbd306c9e993e31e679ff8f8f185f14b Mon Sep 17 00:00:00 2001
From: Jeff Leung 
Date: Sun, 15 Jul 2012 23:28:07 -0700
Subject: [PATCH] Haha very funny...

 libs/esl/fs_cli.c         |   11 ++++-------
 libs/esl/src/include/cc.h |    3 ---
 2 files changed, 4 insertions(+), 10 deletions(-)
 delete mode 100644 libs/esl/src/include/cc.h

diff --git a/libs/esl/fs_cli.c b/libs/esl/fs_cli.c
index 8532e23..408c946 100644
--- a/libs/esl/fs_cli.c
+++ b/libs/esl/fs_cli.c
@@ -916,18 +916,15 @@ static const char *banner =
        "* Paypal Donations Appreciated: *\n"
        "* Brought to you by ClueCon   *\n"
-       "\n";
-static const char *inf = "Type /help  to see a list of commands\n\n\n";
+       "\n"
+       "Type /help  to see a list of commands\n\n\n";

 static void print_banner(FILE *stream)
 #ifndef WIN32
-       fprintf(stream, "%s%s%s\n%s", output_text_color, banner, cc, inf);
+       fprintf(stream, "%s%s", output_text_color, banner);
-       fprintf(stream, "%s%s\n%s", banner, cc, inf);
+       fprintf(stream, "%s", banner);

diff --git a/libs/esl/src/include/cc.h b/libs/esl/src/include/cc.h
deleted file mode 100644
index 573a7f7..0000000
--- a/libs/esl/src/include/cc.h
+++ /dev/null
@@ -1,3 +0,0 @@

*Note: This patch isn’t meant to offend anybody. If it did, well there’s not much you can do about it 😛

FreeSWITCH LCR Data for

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 (also known as fongo)

The completed SQL database can be downloaded from here:

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.


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 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 and use other routes for calls that are not covered by them for free. Your other routes could be, Flowroute, 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 😛