Thursday, September 24, 2015

Tips of using Elastix in your business center

Elastix is a feature-rich PBX system built on top of Asterisk.  It simplifies many administrative tasks via providing a GUI, making it a good choice for IT/administrator to adopt the open-source platform.

What is more, Elastix has a useful feature for business center.  The inbound route allows us to specify a DID-based text that would be shown on the front-desk IP phone.  It could be the company name of a business center's tenant and the front-desk staff could greet the caller accordingly.

By default, Elastix disallows input of UTF-8 characters in this text.  We can enable it with a few modifications and the front-desk staff could then see Chinese company name.

First of all, we have to change the charset of  the table asterisk.incoming to utf8.  This table keeps the information of the inbound route.

By enabling support of utf8, we can keep Chinese characters in the inbound route.

Secondly, we can use a quick way to disable the charset restriction in the php page that handles inbound route input.  Below code disables the charset validation in the corresponding php. 

1. /var/www/html/modules/pbxadmin/js/libfreepbx.javascripts.js
… (Line 1 to 129)
function isLetter(c)
{return true;}
//{return(((c>="a")&&(c<="z"))||((c>="A")&&(c<="Z"))||(c==" ")||(c=="&")||(c=="'")||(c=="(")||(c==")")||(c=="-")||(c=="/"))}
function isURLChar(c)
function isCallerIDChar(c)
{return true;}
//{return(((c>="a")&&(c<="z"))||((c>="A")&&(c<="Z"))||((c>="0")&&(c<="9"))||(c==":")||(c=="_")||(c=="-")||(c=="<")||(c==">")||(c=="(")||(c==")")||(c==" ")||(c=="\"")||(c=="&")||(c=="@")||(c==".")||(c=="+"))}

2. /var/www/html/admin/components.class.php
find and replace the code from htmlentities($currentvalue) to htmlentities($currentvalue, ENT_COMPAT | ENT_HTML401, "utf-8")

Now, you can create an Inbound Route with a Chinese CID prefix.  If the inbound route is hit by an incoming call, the CID prefix would be sent as part of the caller name to the route destination.  If your destination phone is capable of displaying Chinese characters, you will see the CID prefix string associated with the DID number.

Input Chinese characters in Inbound Route
IP phone shows Chinese CID prefix