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.

https://youtu.be/yAC6EOO0kWM


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 https://www.twilio.com/docs/security

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
// $_SERVER['SCRIPT_URI']
$url = 'https://mycompany.com/myapp.php?foo=1&bar=2';

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 https://www.twilio.com/docs/libraries

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

Error
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 (8.8.8.8)  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 www.rogersonenumber.ca 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.
http://www.webtatic.com/

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. 


Wednesday, October 24, 2012

Freeswitch CentOS PHP fsocket

Decided a while back to move on to freeswitch for developing IVR applications. Freeswitch is great - it does amazing things - the only thing it can't do is tell you when you are making dumb mistakes.  And most important how to fix them.

Just hoping i can save someone a few hours of pain. If you are developing apps with CentOS/Red Hat/ClearOS with PHP listen carefully. The php fsocket command was bombing on me and the google search didn't give exactly what i was hoping for.  Problem turned out to be selinux. The default settings prevent access to port 8021

to communicate with freeswitch don't forget to disable selinux.

in /etc/selinux/config change


SELINUX=disabled

reboot

or at the command line type

setenforce 0

you can also test from the command line

telnet 127.0.0.1 8021   
(space between ip and port number)
you should get something if it's listening

if you don't have telnet installed

yum install telnet

Wednesday, February 17, 2010

Grandstream GXP2000

I have roughly 30 of these phones in various client sites. My worst fears are coming true - these phones are failing at greater rates than ever. Grandstream has taught me some very important lessons. First - don't buy anything Grandstream no matter how tempting that low price is. Second - spend more time testing. Finally - If had spent more time viewing issues in Grandstreams own support forums and viewing their release notes for new firmware I probably would have not chosen to use these phones. The only thing I can do now is warn others of what issues they have to look forward to by using these phones.

The symptoms seem to be consistent with the ones that are failing.

These include:

1. Snap - Crackle - Pop sounds
2. Buzzing sounds
3. Decreasing volume - starts normal - but volume starts to go low to very low
4. Failing buttons - they stick or stop responding

Note: These phones work well in the beginning but over time they start acting up.