Using g.729 on Asterisk with SNOM Phone

The why:  Using g729 on Asterisk is a great option if you want to save bandwidth on a crappy WAN link, it will about double the amount of concurrent calls you can handle and still sound great. You’ll need to of course get the appropriately legally licensed codec and driver and either put the binary in

g.729 is not an open source codec, you need to buy a license for it, probably quite a few depending on your application. Its available from Digium amongst other places and definitely don’t use the open source for educational purposes one from here unless you are just testing things out according to the laws etc….

If you do download the binaries for non-commercial testing for your flavor of linux and system, wget the .so file here:

sudo wget http://binaryweblocation…..*.so /usr/lib64/asterisk/modules/

Then restart Asterisk and run (On the Elastix Asterisk Cli in the GUI under PBX >Tools)

 core restart gracefully

(this waits for any active calls to stop the other option is “now” instead of “gracefully”)

 core show translation recalc 10

If you see numbers next to g729, you did it right. If you see all “–” horizontally in the g729 line the codec did not load correctly.

Now you need to set the PBX to favor g729

Add these lines to sip_custom.conf in the handy dandy Elastix conf editor also under PBX>Tools

disallow=all
allow=g729
allow=ulaw

Now restart Asterisk (gracefully) again

and you should be GTG, your device will use g729 but still support ulaw if you need it for a softphone or something else like recording your IVR and VM prompts at the highest possible quality.

 You need to set up the phone to default to g729.

 From the SNOM web based control panel, you need to dig up:

Indentity1>RTP Tab and set the codecs like so:

 Now your phone will be awesome and your calls will take half the bandwidth and you can squeeze a million concurrent calls through a 300 baud modem! But wait.

 Now our DTMF may not not work 🙁

 I am totally sure there is a reason, and a more elegant solution to this, but this one works and I am not always an elegant man.

 For this same Identity, go to the SIP tab (2 over from the RTP Tab) and change DTMF via SIP INFO to on:

That one took some hair pulling. I tested on a softphone and DTMF worked fine grep’d the settings for the snom for DTMF and experimented.

Make a test call into your snom through your trunk and then while the call is connected you can go back to the Cli and use:

 

You should see g.729 through the whole chain and no ulaw in sight.

SipML5 WebRTC based SIP Integratin into HTML 5

The prospect of simply coding a SIP “Click To Call” type interface into your web site or App and having it just work on any advice is definitely still a dream presently. But if WebRTC and SipML5 continue to progress down their current paths, we may not be too far off.

sip ML 5 architecture

According to SipML5 

This is the world’s first open source HTML5 SIP client (May 12, 2012) entirely written in javascript for integration in social networks (FaceBook, Twitter, Google+), online games, e-commerce sites… No extension, plugin or gateway is needed. The media stack rely on WebRTC.

The technology however is still in its infancy and deploying it in the wild would require users to be using some bleeding edge browsers. There is some differences in the data from the projects, with SipML5 stating that you need to be running firefox nightlies, while WebRTC says the stable versions are ready. Also if you want to use it with say, Asterisk, get ready to set up a testing VM to recompile.

Screen shot 2013-12-17 at 8.54.22 AM

Go Ahead and experiment, develop a cool click to call code snippet or widget for WordPress and I’d love to use it. For now I’m still looking for a good FOSS solution for this application.

Using Dell OpenManage on Centos

 

I’m sure that Dell DVD that comes with the OS – Free server you bought from dell works great if you are using RHEL but if you want to use some sort of Centos distro like Elastix and want to monitor your server you are SOL until you do a little SSH.

The Barebones Dell I got has a hardware RAID controller, but for real, like there is not eve a light or a beep or anything that goes down when a drive fails unless you are running their Openmanage software.

Step 1, blindly trust dell by piping a remote script into bash and potentially backdooring your system with whatever they want

http://linux.dell.com/wiki/index.php/Repository/hardware

from bash as root

 

wget -q -O - http://linux.dell.com/repo/hardware/latest/bootstrap.cgi | bash

This is ugly as hell, but will install the Dell Repo and let you execute:

 

# yum install srvadmin-all

# /opt/dell/srvadmin/sbin/srvadmin-services.sh start

 

Now, preemptively make a little script in your /usr/local/bin/ directory called

om_alert.sh

#!/bin/sh
HOST="descriptive server name"
EMAIL="you@you.com"
echo "Dell OpenManage ALERT detected on $HOST. Login Now at Port 1311" | mail $EMAIL -s "OM Alert $HOST"

 

then

 

chmod +x om_alert.sh

 

Now send all openmange alerts to your email: thanks to Gavin Burris

# for I in `omconfig system alertaction | sed 's/ *(.*)//; s/>.*//; s/.*[:<] *// ; s/|/ /g;'`; do 
echo $I; 
omconfig system alertaction event=$I alert=true broadcast=true execappath="/usr/local/bin/om-alert.sh"
done

 

Now you can login from any computer using your root login/pswd at:

 

https://serverip:1311

 

Please note, and this took a bit of figuring. If your root password has special characters (mine had an ampersand) it may not work in openmanage. I had to change it and then could log in fine. I reported this bug to dell and will hold breath until fixed.