Wednesday, August 10, 2016

Sipura 3000 VOIP ATA Teardown - Make sure to remove all screws!

Tuesday, August 2, 2016

Wednesday, July 27, 2016

Monday, July 18, 2016

Grandstream GXP2000 Teardown

One of my unfortunate decisions. This VOIP phone cause me a lot of  headaches. I just had to open it up just to see what made such a bad choice for a voip phone.

Wednesday, October 14, 2015

Twilio Request Validator

Been developing some voip apps that also provide SMS notifications. For the most part everything seems to work very well with Twilio. One thing that i wanted to make sure is that inbound messages were not being spoofed. Twilio provides just the thing

Great! But it doesn't work - it looks like someone hasn't updated this for a very long time. Most of the post variables they indicate in the snip of code are no longer in use. This is very important because without the exact post variables you can't verify if the message is legit. Twilio does not provide a list of IP's that their messages arrives from so you have to use other options.

// The post variables in the Twilio request. You may be able to use
// $postVars = $_POST
$postVars = array(
'CallSid' => 'CA1234567890ABCDE',
'Caller' => '+14158675309',
'Digits' => '1234',
'From' => '+14158675309',
'To' => '+18005551212'

CallSid, Caller, and digits are no longer used. The comment says you may be able to  $postVars = $_POST This is exactly what you need to do. Take some security precautions.

// The Twilio request URL. You may be able to retrieve this from
$url = '';

No - this is completely wrong also. no such thing as SCRIPT_URI. The url they need to refer is what you create in your control panel for your numbers  "Request URL". It should be exactly the same. There is an example program included with official SDK

This also includes variables that the service no longer uses. So what  do you actually need to create a signature validation? You need the following items to create proper validation.

1. All the variables that Twilio posts to your Request URL - yes all of them. everything in $_POST
2.$_SERVER["HTTP_X_TWILIO_SIGNATURE"]; //this is still correct
3. AuthToken

If you make these changes in the example code you can properly calculate the validation code.

Tuesday, February 25, 2014

Rogers One Service

Please check your internet connection, and/or verify that your firewall security software is set to allow the web phone to establish a connection. If you are still experiencing difficulty, please contact technical support at 1888-Rogers1
error EB503

If you are getting the following error on your rogers one service when you try to login it's a DNS issue.

After wasting my time with rogers support i just decided to change the DNS to googles DNS servers (  and see what happens. Like magic the service works. This issue might be on some of rogers DNS servers which have not been updated recently to reflect changes in portal.

Initially thought it was rogers just blocking my ip because I was able to establish a vpn tunnel and get the service to work. This probably worked because once I established the vpn tunnel I was using the remote dns settings.

Thank you rogers!

Friday, October 26, 2012

Freeswitch phpmod esl

Just upgraded php on CentOS 5.8 To find your version type:
cat /etc/redhat-release

I needed a more current version of PHP that supported json encoding/decoding without having resort third party libraries. Plus it would be more aligned with my development environment on my notebook.

I used the following link on how to upgrade old versions of CentOS to more current PHP/MySQL.

The upgrade was smooth except that ESL for PHP stopped working. Following error when trying startup PHP.

PHP Warning:  PHP Startup: ESL: Unable to initialize module
Module compiled with module API=20050922
PHP    compiled with module API=20090626
These options need to match
 in Unknown on line 0

Doing the following should have resolved the issue but it didn't work.

cd /usr/local/src/freeswitch/libs/esl
make clean
make phpmod
make phpmod-install

When I removed the old version of PHP it must have removed one of the dependencies. The compile error message indicated that I need to install libtermcap

yum install libtermcap.i386
yum install libtermcap-devel

The libtermcap.i386 was already installed but the devel wasn't.

After this make completed properly and everything was back to normal.

Note: The above make commands are correct. The "make phpmod-install" is the way it should be done.
If you do "make phpmod install" it will fail. This can be easily confused if you are doing things really fast.