VoIP, Linux, Security & much more fun
If you need any help regarding these subjects do not hesitate about sending me a text

In my opinion, I don't like Polycom. It is an ugly phone not very easy to configure. But there are people who like it. One of my customers loves it; in his last request, he asked to add a beep when you have a call on hold. So here it is how we did it.

Unfortunately Joomla from version 1.5 (which I've noticed, and probably 1.0 as well) does not save your encrypted passwords hop classic format: encrypted, but does the opposite. This complicates the interaction with other programs wishing to use the access database to authenticate. Fortunately there is a way to do it, with the risk involved that the password must be kept clear.

In my last article (time ago), I publish a way to keep FusionPBX on a diet (by safely deleting recordings and keeping the database with low disk use). But, what about the voicemails?

I will talk now how to delete safely the old voicemails within your policy.

When you run a successful PBX with FusionPBX, one of your problems is to keep it on diet. Depending on your server sizing, this issue may come soon or later, but it will arrive. I am talking about disk space.

There are two points cover:

  1. Database
  2. Recordings

A bridge is what I call a virtual interface; those interfaces where there is no physical device attached. Some examples are tun, tap, br, dummy, ppp and many others. In this case, I will put here how I do configuration for a bridge.

A bridge is a special interface that joins two interfaces (regardless if they are virtual or physical). Think on a bridge as a hub, a bit that arrives in one slave interface, or the bridge itself, all the members will get it.

This method will work on all RedHat based distributions, such as ClearOS, CentoOS, RedHat, Mandriva, Mageia and many others.

Today I have published in Mageia Cauldron RPMs for libTelnet 0.21.

RPM's are available for Mageia Cauldron. You can install it by doing an urpmi 'pkgconfig(libtelnet)' libtelnet-utils


Today I have published in OKay's RPM repository RPMs for Guacamole Server 0.9.9. Guacamole is a clientless remote desktop gateway. It supports standard protocols like VNC and RDP. These RPM'es have support for VNC, RDP, SSH and Telnet.

This is only the server part, later I will start working on the client end.

RPM's are available for Centos 6 and 7. And you can find it if you type yum search guac.


The beaver is the official animal of Canada. Then, I send you this nice picture I found somewhere.

Happy Holidays!

Today, while I was cleaning my Google Keep Notes I found a note I think it is useful for everyone. I have been using Voptech's IP Phone VI2007 (and VI2006 as well) for a while; I must say I am impressed the way they deal with NAT issues. So far, this telephone has a flawless behaviour; it connects on strange networks where other brands can not.

One of the big challenges is to do the Factory Reset. Do the following:

  1. Enter in POST mode, unplug the phone, press the # key and plug it. You will get a message telling you it is now in POST mode.
  2. Dial *#168, wait a moment.
  3. Reset the phone as usual.

I have done this in VI2006 and VI2007. It should work on other models as well.


Today I decided to give a second chance to Mageia Cauldron 6 (I love Mageia, but I haven't updated to Cauldron yet). Because Cauldron it is a development version of Mageia sometimes it is broken, so the best way to test it is in a virtual machine. To test, the best solution in a personal computer is to use VirtualBox.

The issue here is that from the GUI of VirtualBox, there is no way to boot from USB. Fortunately, there is a way using the CLI.

Today I have published in OKay's RPM repository RPMs for MariaDB 10.1 repository. MariaDB is one of the most popular database servers in the world. It’s made by the original developers of MySQL and guaranteed to stay open source. Notable users include Wikipedia, Facebook and Google.

MariaDB turns data into structured information in a wide array of applications, ranging from banking to websites. It is an enhanced, drop-in replacement for MySQL. MariaDB is used because it is fast, scalable and robust, with a rich ecosystem of storage engines, plugins and many other tools make it very versatile for a wide variety of use cases.

MariaDB is developed as open source software and as a relational database, it provides an SQL interface for accessing data. The latest versions of MariaDB also include GIS and JSON features.

RPM's are available for Centos 6 and 7. And you can find it if you type yum search mariadb101-release.


Today I have published in OKay's RPM repository RPMs for Kamailio 4.3.4. Kamailio is a very fast, reliable and flexible SIP (RFC3261) proxy server. Written entirely in C, Kamailio can handle thousands of calls per second even on low-performance hardware. A C Shell-like scripting language provides full control over the server's behaviour. It's modular architecture allows only required functionality to be loaded. Among available features: IPv4, IPv6, digest authentication, accounting, CPL scripts, instant messaging, MySQL, Postgres and UNIXODBC support, NoSQL backends Redis, Cassandra, Redis, Memcached, radius authentication, record routing, SMS gateway, ENUM, UDP, TCP, TLS and SCTP, transaction and dialog module, OSP, statistics support, registrar and user location, SNMP, SIMPLE Presence, Lua, Perl, Python, Java and Mono programming interfaces, WebSocket support for WebRTC, IMS extensions, embedded XCAP server and MSRP relay, DNSSEC, gzip compression.

RPM's are available for Centos 6 and 7. And you can find it if you type yum search kamailio.


Today I have published in OKay's RPM repository RPMs for RTPProxy 2.0.0. This is symmetric RTP proxy designed to be used in conjunction with the SIP Express Router (SER) or any other SIP proxy capable of rewriting SDP bodies in SIP messages that it processes. This package has enabled the 729 codec option, remember you should pay fees if patent applies in your country.

RPM's are available for Centos 6 and 7. And you can find it if you type yum search rtpproxy.


Today I have published in OKay's RPM repository RPMs for SIProxd 0.8.1. Siproxd is a proxy/masquerading daemon for the SIP protocol. It handles registrations of SIP clients on a private IP network and performs rewriting of the SIP message bodies to make SIP connections work via an masquerading firewall (NAT). It allows SIP software clients (like kphone, linphone) or SIP hardware clients (Voice over IP phones which are SIP-compatible, such as those from Cisco, Grandstream or Snom) to work behind an IP masquerading firewall or NAT router.

RPM's are available for Centos 6 and 7. And you can find it if you type yum search siproxd.


Yesterday I have published in OKay's RPM repository RPMs for PEN 0.32.0. PEN is a load balancer for "simple" TCP & UDP based protocols such as HTTP or SMTP. It allows several servers to appear as one to the outside and automatically detects servers that are down and distributes clients among the available servers. This gives high availability and scalable performance.

RPM's are available for Centos 6 and 7. And you can find it if you type yum search pen.


Bacula is one of the best options I have ever found. You can do complete, differential or incremental backups under schedule and, of course, you can restore those files under demand. I won't talk about Bacula's architecture here, but I will talk about one of the most common problems.

Nowadays, if you don't have a tape drive, most common way to set up the Storage Daemon is to use a server with huge space. You can get these days a 2 TB hard disk and use it for backing up. Eventually, that storage won't be enough. The issue here is that bacula won't old backups, you need to purge them manually.

I will talk in this article how I deal with this.

When you need to start doing tuning on your database, the first thing you need to modify is the configuration file. So far, it is easy to do this; the ugly part of this is, you may need to restart database daemon if you change a variable. Good news! Some of those variables do not need a server restart.

First, check if the variable you need to modify is dynamic. If it is, do the following:

To verify the current value: SELECT @@max_connections;

To change the value: SET GLOBAL max_connections = 1024;


I have found that sometimes when you run out of database handlers, FreeSWITCH does not know how to handle this situation gracefully. There are many reasons why this could happen; in my case the XML Handler written in LUA does not know how to recover, connections were held open and sooner than later the FreeSWITCH started to complain.

Root fix cause is a little more complex than expected. So I wrote this workaround.

Last week one of my dearest customers was worried about having enabled recursiveness in his server. I think he does not understand very well what this means and why sometimes it is considered a security flaw. After discussing with him, I promised him I will write an article explaining this. So here it is.

You should know he has hired from me the PowerDNS plugin with Low Latency Algorithm. So far, the server works as expected.

One of my multiple ideas/projects I am, it is about marketing into the social media. Therefore, Facebook is a must in this area.

Using my imagination, I need to define a user influence index; an artificial metric to let me know if you post something, your friends and followers will get the message, and better will follow it.

The user influence index on Facebook is so far potential impact measure that a user is able to perform. As I see, the impact is divided into two aspects:

  1. Timeline Impacts, It(u): those impacts by writing any content on your Facebook wall, and
  2. Group Impacts Ig(u): those impacts by writing a post on a Facebook group.

After a while after not having a formal Employer in Canada, I must say I am lucky. I found one! So, as this new employer is in Québec, and Québec has its own laws, I have decided to use services from a Certified Immigration Consultant. You should know that Québec is half-nation; when you enter from Ontario and get to the closest city (Montreal), there is a big difference.

Changing Employer with a close work permit within the Canada is not an easy thing. I will start telling what I did in case you are in the same situation.

DISCLAIMER: I am just showing my specific case. This is not intended to be used as an official guide. You should read on official government websites or consult a certified immigration consultant. This is what I did on November 2015, the process may change.

I have been using Joomla since 1.0 and I can tell that it is an awesome software. All the websites I do are done with Joomla. However, I have realized that Joomla is missing some options that may be very useful. In this case the capability to auto archive articles; this is very handful especially when you are writing a blog like mine.

In this article, I will show you all how to do this. I will assume you are familiar with your database and you have access to CLI.

Today I have published in OKay's RPM repository RPMs for CasperJS 1.1-beta3. CasperJS is an open source navigation scripting & testing utility written in Javascript and based on PhantomJS. It eases the process of defining a full navigation scenario and provides useful high-level functions, methods & syntactic sugar for doing common tasks.

RPM's are available for Centos 6 and 7. And you can find it if you type yum search casperjs.


Here it goes the first example. The system I need to scrap has a form of username and password to access data. So obviously, the first step is to log into the system by sending data using the HTTP POST method. I did this with these steps.

If you need more help than the free one provided here...