Monthly Archives: May 2012
Or any clients for that matter.
I spent what would’ve been hours of joy playing and playing with the fun toys of Asterisk, but, I found myself trouble shooting intermittent problems with clients behind a NAT. What threw me off was that one softphone (Bria) would send/receive RTP every, single, time. But others, not so much.
What was it?
Turned out that I had the range “10000-10200″ in my rtp.conf.
But in my firewall? I had “10100-10200″.
It was a typo in my rtp.conf. Dammnit. So hopefully if you are googling for intermittent RTP problems with natted clients, you find this and you double check it. Man was that frustrating!!!
So, supposedly the libsrtp is included with 1.8.X (at some point) asterisk releases, but… I’m not having luck so, I went through with install it from a tarball and going from there.
What you’re going to want to do is, well first, reference this guy. Who got me pointed in the right direction.
Then I had to specify the prefix anyways… I got the code hint from Asterisk ./configure.
[user@host]$ ./configure CFLAGS=-fPIC --prefix=/usr [user@host]$ make [user@host]$ make install
Then… recompile Asterisk, starting with a ./configure. Also in “make menuselect” ensure that there’s a res_srtp.
So I’ve gone through this a couple times, and this time… enough is enough: I’m documenting it.
It’s not all that hard, but, I had to wade through to get it to work, again. Let’s fire up the pre-reqs first. I’m not going to chance my luck with a binary package from a yum repo, and I don’t want to search for a supplemental one. Especially when it’s so easy to compile Asterisk from source. However, I don’t have that philosophy with many other things, here I’ve compiled only what I needed — and the rest from my default yum repo(s).
Mainly to get it to work we need two modules for Asterisk: chan_gtalk & res_jabber. They’re not going to go without a few things, so download iksemel. But before you install it, go ahead with install these few modules:
[user@localhost asterisk]$ yum install gnutls-devel gnutls-utils
I got that idea from this blog post. I think it worked, but, I did it at a weird spot between failed installs. I didn’t get errors compiling iksemel without it, honestly. But, for the purposes here, I’d say: install ‘em. Next up, we’ll compile iksemel:
[user@localhost iksemel]$ ./configure --prefix=/usr --with-libgnutls-prefix=/usr [user@localhost iksemel]$ make [user@localhost iksemel]$ make check [user@localhost iksemel]$ make install
I had a warning with an extra parameter on the ./configure, it was “–with-gnutls”, add this if you have troubles.
But after all this, I’d compile Asterisk and make a CLI call — only to get this error.
localhost*CLI> module load res_jabber.so Error loading module 'chan_gtalk.so': libiksemel.so.3: cannot open shared object file: No such file or directory
So… The so linkage is screwy. I found this post from the asterisk-users list, which details what I did. Condensed here for you as:
[user@localhost asterisk]$ echo "/usr/local/lib" > /etc/ld.so.conf.d/iksemel.conf [user@localhost asterisk]$ ldconfig
And finally! …Let’s compile Asterisk. Here’s a refresher if you need it [followed by more fun with jabber/gtalk afterwords]. (Note that you’re going to want to install libpri & dahdi first [in that order] if you want to support them in your build)
…restock your freakin’ atmega328p-pu’s!
More to come about this lovely lady, I’m just getting to learn how to use her. Here’s a shot of an analog trace of tapeDuino’s MT8870DE IC’s early steering and 1/4 parallel data pins while doing a DTMF decode.