<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CUQMQ3Y5fSp7ImA9WhVWGUo.&quot;"><id>tag:blogger.com,1999:blog-9220932811142893057</id><updated>2012-05-02T11:43:02.825-04:00</updated><category term="arin" /><category term="bgp" /><category term="wideband" /><category term="voalte" /><category term="books" /><category term="g-shock" /><category term="perl" /><category term="sipp" /><category term="openser" /><category term="ipv4" /><category term="telecom" /><category term="sip" /><category term="fedora" /><category term="linkedin" /><category term="Asterisk Cookbook" /><category term="pri" /><category term="shame" /><category term="sbc" /><category term="rfc3398" /><category term="cisco" /><category term="q931" /><category term="iphone" /><category term="cell phones" /><category term="social networking" /><category term="Maserati" /><category term="nokia" /><category term="consulting" /><category term="symbian" /><category term="amish" /><category term="oreilly" /><category term="performance" /><category term="dos" /><category term="cluecon" /><category term="myspace" /><category term="mci" /><category term="linux" /><category term="facebook" /><category term="ss7" /><category term="astlinux" /><category term="reviews" /><category term="orkut" /><category term="Star2Star" /><category term="recqual" /><category term="verizon" /><category term="snom" /><category term="submityoursip" /><category term="nanog" /><category term="dyndns" /><category term="despair" /><category term="godaddy" /><category term="kamailio" /><category term="sonus" /><category term="asterisk" /><category term="opensips" /><category term="sangoma" /><category term="cogent" /><category term="adsense" /><category term="time warner" /><category term="uunet" /><category term="quagga" /><category term="BMW" /><category term="history" /><category term="rtp" /><category term="drupal" /><category term="sipsak" /><category term="isdn" /><category term="ipv6" /><category term="freeswitch" /><category term="casio" /><title>Not Just AstLinux Stuff</title><subtitle type="html">I created AstLinux but I write and rant about a lot of other things here. Mostly rants about SIP and the other various technologies I deal with on a daily basis.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://blog.krisk.org/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://blog.krisk.org/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Kristian Kielhofner</name><uri>http://www.blogger.com/profile/06405875458561185080</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/-gr03qLpZIe8/Tp2gAW-nrvI/AAAAAAAAARo/LPwEMglNM0w/s220/kristian_kielhofner2.jpeg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>62</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/NotJustAstlinuxStuff" /><feedburner:info uri="notjustastlinuxstuff" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CUIAQn89fSp7ImA9WhVSFUs.&quot;"><id>tag:blogger.com,1999:blog-9220932811142893057.post-5581371610591436516</id><published>2012-03-12T10:23:00.000-04:00</published><updated>2012-03-12T10:45:43.165-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-12T10:45:43.165-04:00</app:edited><title>AstLinux Custom Build Engine now available!</title><content type="html">Ever since releasing the &lt;a href="http://doc.astlinux.org/devdoc:documentation#development_environment" target="_blank"&gt;AstLinux Development Environment&lt;/a&gt; several years ago the AstLinux Developers have spent a significant amount of time supporting new users who are (in many cases) building their first image with only minor customizations - slightly different hardware support, different Asterisk versions, etc.&lt;br /&gt;
&lt;br /&gt;
The trouble is, cross compiling anything is an extremely complicated task.&amp;nbsp; To be honest I'm surprised it works as often as it does.&amp;nbsp; When you step back and really look at what's going on it all starts to seem like magic.&amp;nbsp; Many people working in this space will openly admit to being practitioners of vodoo or one of the other &lt;a href="http://en.wikipedia.org/wiki/Black_magic" target="_blank"&gt;dark arts&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
After a brief e-mail exchange last week Lonnie Abelbeck and I decided to do something about this.&amp;nbsp; What if we could host a system with a web interface to build custom AstLinux images for users on demand?&amp;nbsp; What if this system could cache previous image configurations and save them for future users?&amp;nbsp; What if this system could be easily adapted to meet future configuration needs?&lt;br /&gt;
&lt;br /&gt;
Amazingly, barely a week later, Lonnie has provided all of these features and more.&amp;nbsp; Available immediately, the AstLinux Custom Build Engine is online to build custom AstLinux images that meet your needs.&lt;br /&gt;
&lt;br /&gt;
In an effort to keep bots, crawlers, and robots in general out we've added simple username and password authentication.&amp;nbsp; The secret is out and the username is "admin" with a password of "astlinux".&amp;nbsp; AstLinux users will recognize these credentials from the default administrative web interface provided with AstLinux.&amp;nbsp; These users will also recognize the familiar tabbed interface.&lt;br /&gt;
&lt;br /&gt;
Go ahead and &lt;a href="http://build.astlinux.org/" target="_blank"&gt;give it a try&lt;/a&gt;!&lt;br /&gt;
&lt;br /&gt;
These interfaces look alike because they share the same DNA.&amp;nbsp; Lonnie Abelbeck has done a great job creating a build system to serve our users now and in the future.&amp;nbsp; Thanks again Lonnie!&lt;br /&gt;
&lt;br /&gt;
P.S. - Lonnie just found &lt;a href="http://lists.digium.com/pipermail/asterisk-dev/2005-August/014858.html" target="_blank"&gt;this post&lt;/a&gt; from me, dated 8/25/2005, where I talk about something that looks a lot like build.astlinux.org.&amp;nbsp; If only Lonnie were around back then to help me actually create such a beast!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9220932811142893057-5581371610591436516?l=blog.krisk.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ZNiI1F-XdGJDMlSk6ShlFUBIxlk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZNiI1F-XdGJDMlSk6ShlFUBIxlk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ZNiI1F-XdGJDMlSk6ShlFUBIxlk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZNiI1F-XdGJDMlSk6ShlFUBIxlk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotJustAstlinuxStuff/~4/ziDVzGrLLD8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.krisk.org/feeds/5581371610591436516/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9220932811142893057&amp;postID=5581371610591436516" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/5581371610591436516?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/5581371610591436516?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotJustAstlinuxStuff/~3/ziDVzGrLLD8/astlinux-custom-build-engine-now.html" title="AstLinux Custom Build Engine now available!" /><author><name>Kristian Kielhofner</name><uri>http://www.blogger.com/profile/06405875458561185080</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/-gr03qLpZIe8/Tp2gAW-nrvI/AAAAAAAAARo/LPwEMglNM0w/s220/kristian_kielhofner2.jpeg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.krisk.org/2012/03/astlinux-custom-build-engine-now.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A04DR3Y_cCp7ImA9WhRaEUg.&quot;"><id>tag:blogger.com,1999:blog-9220932811142893057.post-6615740534896423639</id><published>2012-02-13T14:06:00.002-05:00</published><updated>2012-02-13T14:06:16.848-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-13T14:06:16.848-05:00</app:edited><title>Hyperspecialization and the shakeup of a 100 year old industry</title><content type="html">As someone who often finds themselves "in the trenches" dealing with some extremely nerdy technical nuances it's often easy to miss the larger picture.&amp;nbsp; I guess Mark Spencer was right when he said "Not many people get excited about telephones but the ones who do get REALLY excited about telephones". &lt;br /&gt;
&lt;br /&gt;
As someone who's natural inclination is to get stuck in the details I certainly understand this.&amp;nbsp; Some of you might be right there with me.&amp;nbsp; At this point I've gotten so specialized I'm next to useless on some pretty basic "computer things".&amp;nbsp; Think of the aunt or other relative/friend that lights up when they find out you're a "computer guy".&amp;nbsp; Then they inevitably pull you aside at a wedding to ask for help with their printer or "some box that pops up in Windows".&amp;nbsp; I'm happy to not have to feign ignorance any longer: I truly am ignorant on issues like these.&lt;br /&gt;
&lt;br /&gt;
I primarily use a Mac because it just works - for me.&amp;nbsp; That's not the point I'm trying to make here, though.&amp;nbsp; A Mac works so well for me because I use just two applications: a terminal (&lt;a href="http://www.iterm2.com/" target="_blank"&gt;Iterm2&lt;/a&gt;, to be exact) and Google Chrome.&amp;nbsp; Ok, ok every once in a while I whip up some crazy Wireshark display syntax but that's another post for another day.&amp;nbsp; For the most part when I need to work I take out my Mac, it comes out of sleep, connects to a network, and I start working.&amp;nbsp; It's a tool.&lt;br /&gt;
&lt;br /&gt;
As far as anything with a GUI goes that's the extent of my "expertise".&amp;nbsp; If my aunt wanted to ask me about my bash_profile, screenrc settings, IPv4 address exhaustion, or SIP network architecture I may have something to say.&amp;nbsp; Other than that you'll find me speaking in vague generalities than may lead the more paranoid to suspect I'm secretly a double for the CIA or some international crime syndicate member.&amp;nbsp; I wish I were kidding, this has actually happened before although "international crime syndicate" usually gets loosely translated to "drug dealer".&amp;nbsp; How else does a supposed "computer guy" not understand what's wrong with my printer?!?! &lt;br /&gt;
&lt;br /&gt;
As usual there's a point to all of this.&amp;nbsp; My hyperspecialization, in this case, allows me to forget what is really going on all around me: a shakeup in the 100 year old industry I find myself in and a change in the way we communicate.&lt;br /&gt;
&lt;br /&gt;
The evolution of the telephone is a strange thing.&amp;nbsp; It is a device and service that has remained largely unchanged for 100 years.&amp;nbsp; I'm not kidding.&amp;nbsp; To this day, in some parts of the United States, the only &lt;a href="http://en.wikipedia.org/wiki/Plain_old_telephone_service" target="_blank"&gt;telephone service available&lt;/a&gt; could be installed by Alexander Graham Bell himself.&amp;nbsp; Sure there have been many advances since the 1900s but they've been incremental improvements at best - digital services with the same voice bandwidth (dating to &lt;a href="http://en.wikipedia.org/wiki/G.711" target="_blank"&gt;1972&lt;/a&gt;), various capacity and engineering changes, and of course - the cell phone.&lt;br /&gt;
&lt;br /&gt;
In the end, however, we're left with a service that isn't much different than what my grandparents had.&amp;nbsp; You still have to phonetically spell various upper-frequency consonants ("S as in Sam, P as in Paul, T as in Tom") because the upper limit of the voice bandwidth on these services is ridiculously low (3.1 kHz).&amp;nbsp; Straining to hear the party at the remote end of a phone has only gotten worse with various digital compression standards in use today - &lt;a href="http://en.wikipedia.org/wiki/Enhanced_Variable_Rate_Codec" target="_blank"&gt;EVRC&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Adaptive_Multi-Rate_audio_codec" target="_blank"&gt;AMR&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/G.729" target="_blank"&gt;G.729&lt;/a&gt;, etc.&amp;nbsp; I love to compare the &lt;a href="http://www.youtube.com/watch?v=HnlqrMWVYCs" target="_blank"&gt;"pin drop" Sprint commercials of the 80s and 90s&lt;/a&gt; to the Verizon Wireless "CAN YOU HEAR ME NOW?" campaign over 20 years later.&amp;nbsp; We still dial by randomly assigned strings of 10 digit numbers.&amp;nbsp; This is supposedly progress?&lt;br /&gt;
&lt;br /&gt;
One thing that has changed - the network has gotten bigger.&amp;nbsp; Much bigger.&amp;nbsp; My grandparents may have not had much use for their &lt;a href="http://en.wikipedia.org/wiki/Party_line_%28telephony%29" target="_blank"&gt;party line&lt;/a&gt; because they didn't have anyone of interest to talk to on the other end.&amp;nbsp; In this manner the network has exploded - and it has exploded using the same standards that have been in place for these past 100 years.&amp;nbsp; I can directly dial a cell phone on the other side of the world and be connected in seconds.&lt;br /&gt;
&lt;br /&gt;
Meanwhile, there has been another network explosion - IP networks and the internet.&amp;nbsp; The internet, of course, needs no introduction.&amp;nbsp; While I'd love to spend some time talking about IP that's time I don't have at this point.&amp;nbsp; Let's just look at a couple of ways IP has been extremely disruptive for this 100 year old franchise.&lt;br /&gt;
&lt;br /&gt;
Not many people outside of telecom noticed it at the time but back in 2009 AT&amp;amp;T (THE AT&amp;amp;T) petitioned the FCC to decommission the legacy PSTN (copper and pairs and what-not).&amp;nbsp; Just over two years later we're starting to see some results, and AT&amp;amp;T is &lt;a href="http://vcxc.org/att/" target="_blank"&gt;realizing some ancillary benefits&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
As someone who has spent some time (not a lot, thankfully) in these central offices the maze of patch cables, wiring blocks, DC battery banks, etc make you really appreciate the analysis of this report.&amp;nbsp; Normally networks are completely faceless - you go to www.google.com or dial 8005551212 without seeing the equipment that gets you to the other end.&amp;nbsp; The fact that SBC reclaimed as much as 250 MILLION square feet by eliminating this legacy equipment is incredible.&lt;br /&gt;
&lt;br /&gt;
That's all well and good but what has AT&amp;amp;T done for us, the users?&amp;nbsp; The answer is, unfortunately, both good and bad.&amp;nbsp; AT&amp;amp;T like many physical, trench-digging network providers, has realized they are in the business of providing IP connectivity.&amp;nbsp; They don't have much of a product anymore and the product they do have is becoming more and more of a commodity everyday.&lt;br /&gt;
 &lt;br /&gt;
Getting out of the way is the smartest thing they could be doing.&amp;nbsp; Speaking of AT&amp;amp;T, remember the Apple iPhone deal?&amp;nbsp; At the time a cell phone was a cell phone - AT&amp;amp;T provided an IP network and got some minutes but Apple built an application platform and changed the way people view the devices they carry with them everywhere they go.&amp;nbsp; Huge.&lt;br /&gt;
&lt;br /&gt;
Watch any sci-fi movie from the past 50 years and one almost ubiquitous "innovation" is the video phone.&amp;nbsp; Did AT&amp;amp;T or some other 100 year old company provide the video phone for baby's first steps to be beamed to Grandma across the country?&amp;nbsp; No - Apple did it with Facetime and a little company from Estonia (Skype) did it over the internet.&amp;nbsp; Thanks to these companies and IP networks we finally have video conferencing (maybe they'll release a 30th anniversary edition of &lt;a href="http://en.wikipedia.org/wiki/Blade_Runner" target="_blank"&gt;Blade Runner&lt;/a&gt; to celebrate).&lt;br /&gt;
&lt;br /&gt;
Unfortunately, there will always be people that cling to technologies of days past - this new network works well for all of these applications that were designed for it.&amp;nbsp; Meanwhile, some technologies are being shoehorned in with disastrous results.&amp;nbsp; Has anyone noticed faxing has actually gotten LESS reliable over the past several years?&amp;nbsp; That's what happens when you try to use decades-old modem designs on a completely different network.&amp;nbsp; You might as well try to burn diesel in your gasoline engine.&lt;br /&gt;
&lt;br /&gt;
The future is the network and the network (regardless of physical access medium) is IP.&lt;br /&gt;
&lt;br /&gt;
And now, for good measure, here are some random links for further reading:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.mgraves.org/" target="_blank"&gt;Graves on SOHO Technology&lt;/a&gt; - An early advocate of HD Voice, etc.&lt;br /&gt;
&lt;a href="http://www.vcxc.org/" target="_blank"&gt;The Voice Communication Exchange&lt;/a&gt; - Wants to push the world to HD Voice by 2018.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9220932811142893057-6615740534896423639?l=blog.krisk.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/qO7Y7gR2yV9jWm0i_HZYN9VrRkA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qO7Y7gR2yV9jWm0i_HZYN9VrRkA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/qO7Y7gR2yV9jWm0i_HZYN9VrRkA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qO7Y7gR2yV9jWm0i_HZYN9VrRkA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotJustAstlinuxStuff/~4/xOLe1TnYv7c" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.krisk.org/feeds/6615740534896423639/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9220932811142893057&amp;postID=6615740534896423639" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/6615740534896423639?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/6615740534896423639?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotJustAstlinuxStuff/~3/xOLe1TnYv7c/hyperspecialization-and-shakeup-of-100.html" title="Hyperspecialization and the shakeup of a 100 year old industry" /><author><name>Kristian Kielhofner</name><uri>http://www.blogger.com/profile/06405875458561185080</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/-gr03qLpZIe8/Tp2gAW-nrvI/AAAAAAAAARo/LPwEMglNM0w/s220/kristian_kielhofner2.jpeg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.krisk.org/2012/02/hyperspecialization-and-shakeup-of-100.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0AMR30zeip7ImA9WhRXFEw.&quot;"><id>tag:blogger.com,1999:blog-9220932811142893057.post-8768569859000983364</id><published>2011-12-20T17:23:00.000-05:00</published><updated>2011-12-20T17:23:06.382-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-20T17:23:06.382-05:00</app:edited><title>Performance Testing (Part 1)</title><content type="html">&lt;div style="background-color: transparent;"&gt;
&lt;b id="internal-source-marker_0.8060968250501901" style="font-weight: normal;"&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Over the past few years (like many other people in this business) I’ve needed to do performance testing. &amp;nbsp;Open source software is great but this is one place where you need to do your own leg work. &amp;nbsp;This conundrum first presented itself in the Asterisk community. &amp;nbsp;There are literally thousands of variables that can affect system the performance of Asterisk, FreeSWITCH, or any other software solution. &amp;nbsp;In no particular order:&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;- Configuration. &amp;nbsp;Which modules do you have loaded? &amp;nbsp;How are they configured? &amp;nbsp;If you’re using Kamailio, do you do hundreds of huge, slow, nasty DB queries for each call setup? &amp;nbsp;How is your logging configured? &amp;nbsp;Maybe you use Asterisk or FreeSWITCH and so several system calls, DB lookups, LUA scripts, etc? &amp;nbsp;Even the slightest misstep in configuration (synchronous syslogging with Kamailio, for example) can reduce your performance by 90%.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;- Features in use. &amp;nbsp;Paging groups (unicast) are notorious for destroying performance on standard hardware - every call needs to be setup individually, you need to handle RTP, and some audio mixing is involved. &amp;nbsp;Hardware that can’t do 10 members in a page group using Asterisk or FreeSWITCH may be capable of hundreds of sessions using Kamailio with no media.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;- Standard performance metrics. &amp;nbsp;“Thousands of calls” you say? &amp;nbsp;How many calls per second? &amp;nbsp;Are you transcoding? &amp;nbsp;Maybe you’re not handling any media at all? &amp;nbsp;What is the delay in call setup?&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;- Hardware. &amp;nbsp;This may seem obvious (MORE HERTZ) but even then there are issues... &amp;nbsp;If you’re handling RTP, what are you using for timing? &amp;nbsp;If you have lots of RTP, which network card are you using? &amp;nbsp;Does it and your kernel support MSI or MSI-X for better interrupt handling? &amp;nbsp;Can you load balance IRQs across cores? &amp;nbsp;How efficient (or buggy) is the driver (Realtek I’m looking at you)?!?&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;- The “guano” effect. &amp;nbsp;As features are added to the underlying toolkit (Asterisk, FreeSWITCH, etc) and to your configuration, how is performance affected over time? &amp;nbsp;Add a feature here, and a feature there - and repeat. &amp;nbsp;Over the months and years (even with faster hardware) you may find that each “little” feature reduced call capacity by 5%. &amp;nbsp;Or maybe your calls per second went down by two each time. &amp;nbsp;Not a big deal overall yet over time this adds up - assuming no other optimizations your call capacity could be down by 50% after ten “minor” changes. &amp;nbsp;It adds up - it really does.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Even when pointing out all of these issues you’d still be surprised how often one is faced with the question “Well yeah but how many calls can I handle on my dual core Dell server?”.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;In almost every case the best answer is “Get your hardware, develop your solution, run &lt;/span&gt;&lt;a href="http://sipp.sourceforge.net/"&gt;&lt;span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"&gt;sipp&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; against it and see what happens”. &amp;nbsp;That’s really about as good as we can do.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;SIPP is a great example of a typical, high quality open source tool. &amp;nbsp;In true “Unix philosophy” it does one thing and it does it well: SIP performance testing. &amp;nbsp;SIPP can be configured to initiate (or receive) just about any conceivable SIP scenario - from simple INVITE call handling to full &lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/SIMPLE"&gt;&lt;span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"&gt;SIMPLE&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; test cases. &amp;nbsp;In these tests SIPP will tell you call setup time, messages received, successful dialogs, etc.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;SIPP even goes a step further and includes some support for RTP. &amp;nbsp;SIPP has the ability to echo RTP from the remote end or even replay RTP from a PCAP file you have saved to disk. &amp;nbsp;This is where SIPP starts to show some deficiencies. &amp;nbsp;Again, you can’t blame SIPP because SIPP is a SIP performance testing tool - it does that and it does it well. &amp;nbsp;RTP testing leaves a lot to be desired. &amp;nbsp;First of all, you’re on your own when it comes to manipulating any of the PCAP parameters. &amp;nbsp;Length, content, codec, payload types, etc, etc need to be configured separately. &amp;nbsp;This isn’t a problem, necesarily, as there are various open source tools to help you with some of these tasks. &amp;nbsp;I won’t get into all of them here but they too leave something to be desired.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;What about analyzing the quality of the RTP streams? &amp;nbsp;SIPP provides mechanisms to measure various SIP “quality” metrics - SIP response times, SIP retransmits, etc. &amp;nbsp;With RTP you’re on your own. &amp;nbsp;Once again, sure, you could setup tshark on a SPAN port (or something) to do RTP stream analysis on every stream but this would be tedious and (once again) subject you to some of the harsh realities of processing a tremendous amount of small packets in software on commodity hardware.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Let’s face it - for a typical B2BUA handling RTP the numbers add up very quickly - let’s assume 20ms packetization for the following:&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Single RTP stream = 50 packets per second (pps)&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Bi-directional RTP stream = 100 pps&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;A-leg bi-directional RTP stream = 100 pps&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;B-leg bi-directional RTP stream = 100 pps&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;A leg + B leg = 200 pps PER CALL&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;What does this look like with 10,000 channels (using g711u)?&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;952 mbit/s (close to Gigabit wire speed) in each direction&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;1,000,000 (total) packets per second&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Open source software is great - it provides us with the tools to (ultimately) build services and businesses. &amp;nbsp;Many of us choose what to focus on (our core competency). &amp;nbsp;At Star2Star we provide business grade communication services and we spend a lot of time and energy to build these services because it’s what we do. &amp;nbsp;We don’t sell, manufacture, or support testing platforms.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;At this point some of you may be getting an idea... &amp;nbsp;Why don’t I build/design an open source testing solution? &amp;nbsp;It’s a good question and while I don’t want to crush your dreams there are some harsh realities:&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;1) &amp;nbsp;This gets insanely complicated, quickly. &amp;nbsp;Anyone who follows this blog knows SIP itself is complicated enough.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;2) &amp;nbsp;Scaling becomes a concern (as noted above).&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;3) &amp;nbsp;Who would use it?&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;The last question is probably the most serious - who really needs the ability to initiate 10,000 SIP channels at 100 calls per second while monitoring RTP stream quality, etc? &amp;nbsp;SIP carriers? &amp;nbsp;SIP equipment manufacturers? &amp;nbsp;A few SIP software developers? &amp;nbsp;How large is the market? &amp;nbsp;What kind of investment would be required to even get the project off the ground? &amp;nbsp;What does the competition look like? &amp;nbsp;While I don’t have the answers to most of these questions I can answer the last one.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Commercial SIP testing equipment is available from a few vendors:&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.spirent.com/Solutions-Directory/Abacus.aspx"&gt;&lt;span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"&gt;Spirent&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.empirix.com/products/hammer_g5.asp"&gt;&lt;span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"&gt;Empirix&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.ixiacom.com/products/display?skey=ixload_sip"&gt;&lt;span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"&gt;Ixia&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;...and I’m sure others. &amp;nbsp;We evaluated a few of these solutions and I’ll be talking more about them in a follow-up post in the near future.&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="background-color: transparent;"&gt;
&lt;b id="internal-source-marker_0.8060968250501901" style="font-weight: normal;"&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="background-color: transparent;"&gt;
&lt;b id="internal-source-marker_0.8060968250501901" style="font-weight: normal;"&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Stay tuned because this series is going to be good! &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9220932811142893057-8768569859000983364?l=blog.krisk.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/iatMeRJYCnFRsie9TjPrnEVyBEo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/iatMeRJYCnFRsie9TjPrnEVyBEo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/iatMeRJYCnFRsie9TjPrnEVyBEo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/iatMeRJYCnFRsie9TjPrnEVyBEo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotJustAstlinuxStuff/~4/9Qh8UH9uLpQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.krisk.org/feeds/8768569859000983364/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9220932811142893057&amp;postID=8768569859000983364" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/8768569859000983364?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/8768569859000983364?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotJustAstlinuxStuff/~3/9Qh8UH9uLpQ/performance-testing-part-1.html" title="Performance Testing (Part 1)" /><author><name>Kristian Kielhofner</name><uri>http://www.blogger.com/profile/06405875458561185080</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/-gr03qLpZIe8/Tp2gAW-nrvI/AAAAAAAAARo/LPwEMglNM0w/s220/kristian_kielhofner2.jpeg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.krisk.org/2011/12/performance-testing-part-1.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUEQ3s6fCp7ImA9WhRRGE4.&quot;"><id>tag:blogger.com,1999:blog-9220932811142893057.post-7015325512169486709</id><published>2011-12-02T09:58:00.001-05:00</published><updated>2011-12-02T10:03:22.514-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-02T10:03:22.514-05:00</app:edited><title>Star2Star Gets Noticed</title><content type="html">Just a quick one today (and some shameless self promotion on my part)...&amp;nbsp; Star2Star has been recognized on a few "lists" this year, check it out:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.inc.com/inc5000/profile/star2star-communications" target="_blank"&gt;Inc 500 &lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.forbes.com/lists/2011/28/most-promising-companies-11_Star2Star-Communications_OL02.html" target="_blank"&gt;Forbes 100 "Most Promising"&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
I'm lucky enough to tell people the same story all of the time - when I was a little kid I played with all of this stuff because I thought it was fun and I loved it.&amp;nbsp; Only later did I realize that one day I'd be getting paid for it.&amp;nbsp; I certainly never thought it could come to this!&lt;br /&gt;
&lt;br /&gt;
Ok, enough of that for now.&amp;nbsp; I'll be getting back to some tech stuff soon...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9220932811142893057-7015325512169486709?l=blog.krisk.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/OINcul2YgIrtfd_3XDP6JPGBAoY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OINcul2YgIrtfd_3XDP6JPGBAoY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/OINcul2YgIrtfd_3XDP6JPGBAoY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OINcul2YgIrtfd_3XDP6JPGBAoY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotJustAstlinuxStuff/~4/3R4YhbGK7vY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.krisk.org/feeds/7015325512169486709/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9220932811142893057&amp;postID=7015325512169486709" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/7015325512169486709?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/7015325512169486709?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotJustAstlinuxStuff/~3/3R4YhbGK7vY/star2star-gets-noticed.html" title="Star2Star Gets Noticed" /><author><name>Kristian Kielhofner</name><uri>http://www.blogger.com/profile/06405875458561185080</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/-gr03qLpZIe8/Tp2gAW-nrvI/AAAAAAAAARo/LPwEMglNM0w/s220/kristian_kielhofner2.jpeg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.krisk.org/2011/12/star2star-gets-noticed.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEMGRHY8fip7ImA9WhRSE0U.&quot;"><id>tag:blogger.com,1999:blog-9220932811142893057.post-6394306207408427806</id><published>2011-11-15T14:45:00.001-05:00</published><updated>2011-11-15T14:47:05.876-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-15T14:47:05.876-05:00</app:edited><title>Building a Startup (the right way)</title><content type="html">&lt;div style="background-color: transparent;"&gt;
&lt;span id="internal-source-marker_0.2732291151769459" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;(Continued from &lt;a href="http://blog.krisk.org/2011/11/bulding-startup.html"&gt;Building a Startup&lt;/a&gt;) &lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: transparent;"&gt;
&lt;span id="internal-source-marker_0.2732291151769459" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: transparent;"&gt;
&lt;span id="internal-source-marker_0.2732291151769459" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Our way wasn’t working. &amp;nbsp;To put it mildly our “business grade” solution didn’t perform much better than Vonage. &amp;nbsp;We became to exemplify VoIP - jittery calls, dropped calls, one way calls, etc, etc, etc. &amp;nbsp;Most of this was because of the lack of quality ITSPs at that time. &amp;nbsp;Either way our customers didn’t care. &amp;nbsp;It was us. &amp;nbsp;If we went to market with what we had the first time around we were going to loose.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;The problem was the other predominant architecture at the time was “hosted”. &amp;nbsp;Someone hosts a PBX for you and ships you some phones. &amp;nbsp;You plug them in behind your router and magically you have a phone system. &amp;nbsp;They weren’t doing much better. &amp;nbsp;Sure, their sales looked good but even then it was becoming obvious customer churn was quite high. &amp;nbsp;People didn’t like hosted either, and for good reason. &amp;nbsp;Typically they have less control over the call than we do.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;As I’ve eluded before I thought there was a better way. &amp;nbsp;We needed to host the voice applications where it made the most “sense”. &amp;nbsp;We were primarily using Asterisk and with a little creative provisioning, a kick-ass SIP proxy, and enough Asterisk machines we could build the perfect business PBX - even if that meant virtually none of it existed at the customer premise. &amp;nbsp;Or maybe all of it did. &amp;nbsp;That flexibility was key. &amp;nbsp;After a lot of discussions, whiteboard sessions, and late nights everyone agreed. &amp;nbsp;We needed a do-over.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;So we got to work and slowly our new architecture began to take shape. &amp;nbsp;We added a kick-ass SIP proxy (OpenSER). &amp;nbsp;OpenSER would power the core routing between various Asterisk servers each meeting different needs - IVR/Auto Attendant, Conferencing, Voicemail, remote phones (for “hosted” phones/softphones), etc. &amp;nbsp;The beauty was the SIP proxy could route between all of these different systems including the original AstLinux system at the customer premise. &amp;nbsp;Customer needs to call voicemail? &amp;nbsp;No problem - the AstLinux system at the CPE fires an INVITE off to the proxy and the proxy figures out where their voicemail server is. &amp;nbsp;The call is connected and the media goes directly between the two endpoints. &amp;nbsp;Same thing for calls between any two points on the network - AstLinux CPE to AstLinux CPE, PSTN to voicemail, IVR to conference.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;This is a good time to take a break and acknowledge what really made this all possible - OpenSER. &amp;nbsp;While it’s difficult to explain the exact history and family tree with any piece of SER software I can tell you one thing - this company would not be possible without it. &amp;nbsp;There is no question in my mind. &amp;nbsp;It’s now 2011 and whether you select &lt;/span&gt;&lt;a href="http://www.kamailio.org/"&gt;&lt;span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"&gt;Kamailio&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; or &lt;/span&gt;&lt;a href="http://opensips.org/"&gt;&lt;span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"&gt;OpenSIPS&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; for your SIP project you will not be sorry. &amp;nbsp;Even after five years you will not find a more capable, flexible, scalable piece of SIP server software. &amp;nbsp;It was one of the best decisions we ever made.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Need to add another server to meet demand for IVR? &amp;nbsp;No problem, bring another server online, add the IP to a table and presto - you’re now taking calls on your new IVR. &amp;nbsp;Eventually a new IVR lead to several new IVRs, voicemail servers, conference systems, web portals, mail servers, various monitoring systems, etc.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;What about infrastructure? &amp;nbsp;Starting at our small scale, regional footprint, and focus on quality we began to buy our own PRIs and running them on a couple of Cisco AS5350XM gateways. &amp;nbsp;This got us past our initial issues with questionable ITSPs. &amp;nbsp;Bandwidth was becoming another problem... &amp;nbsp;We had an excellent colocation provider that provided blended bandwidth but still we needed more control. &amp;nbsp;Here came BGP, ARIN, AS numbers, a pair of Cisco 7206VXRs w/ G2s, iBGP, multiple upstream providers, etc.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;At times I would wonder - whatever happened to spending my time worrying about cross compilers? &amp;nbsp;Looking back I’m not sure which was worse - GNU autoconf cross-compiling hell or SIP interop, BGP, etc. &amp;nbsp;It’s fairly safe to say I’m a sadomasochist either way.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Even with all of the pain, missteps, and work we finally had an architecture to take to market. &amp;nbsp;It would be the architecture that would serve us well for several years. &amp;nbsp;Of course there was more work to be done...&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9220932811142893057-6394306207408427806?l=blog.krisk.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/enrFxQ1qeKGjFg4_iPhY4NhPfZE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/enrFxQ1qeKGjFg4_iPhY4NhPfZE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/enrFxQ1qeKGjFg4_iPhY4NhPfZE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/enrFxQ1qeKGjFg4_iPhY4NhPfZE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotJustAstlinuxStuff/~4/_3DSQNSX_io" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.krisk.org/feeds/6394306207408427806/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9220932811142893057&amp;postID=6394306207408427806" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/6394306207408427806?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/6394306207408427806?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotJustAstlinuxStuff/~3/_3DSQNSX_io/building-startup-right-way.html" title="Building a Startup (the right way)" /><author><name>Kristian Kielhofner</name><uri>http://www.blogger.com/profile/06405875458561185080</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/-gr03qLpZIe8/Tp2gAW-nrvI/AAAAAAAAARo/LPwEMglNM0w/s220/kristian_kielhofner2.jpeg" /></author><thr:total>3</thr:total><feedburner:origLink>http://blog.krisk.org/2011/11/building-startup-right-way.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUMMR3kyfCp7ImA9WhRSE0U.&quot;"><id>tag:blogger.com,1999:blog-9220932811142893057.post-3170127710508933386</id><published>2011-11-02T16:49:00.000-04:00</published><updated>2011-11-15T15:04:46.794-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-15T15:04:46.794-05:00</app:edited><title>Building a Startup</title><content type="html">&lt;div style="background-color: transparent;"&gt;
&lt;span id="internal-source-marker_0.025660596787929535" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;(Continued from &lt;a href="http://blog.krisk.org/2011/10/starting-startup.html"&gt;Starting a Startup&lt;/a&gt;) &lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: transparent;"&gt;
&lt;/div&gt;
&lt;div style="background-color: transparent;"&gt;
&lt;span id="internal-source-marker_0.025660596787929535" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;After several days of meetings in Sarasota we determined:&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;1) &amp;nbsp;I was moving to Sarasota to start a company with Norm and Joe.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;2) &amp;nbsp;We were going to utilize open source software wherever possible (including AstLinux, obviously).&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;3) &amp;nbsp;The Internet was the only ubiquitous, high quality network to build a nationwide platform.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;4) &amp;nbsp;The Internet was only getting more ubiquitous, more reliable, and faster in coming months/years/decades/etc.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;5) &amp;nbsp;We were going to take advantage of as much of this as possible.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;These were some pretty lofty goals. &amp;nbsp;Remember, this is early 2006. &amp;nbsp;Gmail was still invitation-only beta. &amp;nbsp;Google docs didn’t exist. &amp;nbsp;Amazon EC2 didn’t exist. &amp;nbsp;“Cloud computing” hadn’t come back into fashion yet. &amp;nbsp;The term itself didn’t exist. &amp;nbsp;The Internet was considered (by many) to be “best effort”, “inherently unreliable”, and “unsuitable” for critical communications (such as real time business telephony). &amp;nbsp;There were many naysayers who were confident this would be a miserable failure. &amp;nbsp;As it turns out, they were almost right.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;We thought the “secret sauce” to business grade voice over the internet was monitoring and management. &amp;nbsp;If one could monitor and manage the internet connection business grade voice should be possible. &amp;nbsp;Of course this is very ambiguous but it lead to several great hires. &amp;nbsp;We hired &lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Joe had already deployed several embedded Asterisk systems to various businesses in the Sarasota area. &amp;nbsp;They used an embedded version of Linux he patched together and a third party (unnamed) “carrier” to connect to the PSTN. &amp;nbsp;The first step was upgrading these machines and getting them on AstLinux. &amp;nbsp;Once this was accomplished we felt confident enough to proceed with our plan. &amp;nbsp;This was Star2Star Communications and in the beginning of 2006 it looked something like this:&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;1) &amp;nbsp;Soekris net4801 machines running AstLinux on the customer premise.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;2) &amp;nbsp;Grandstream GXP-2000 phones at each desk.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;3) &amp;nbsp;Connectivity to a third party “ITSP”.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;4) &amp;nbsp;Management/monitoring systems (check IP connectivity, phone availability, ITSP reliability, local LAN, etc).&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;5) &amp;nbsp;Central provisioning of AstLinux systems, phones, etc.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;This was Star2Star and there was something I really liked about it - it was simple. &amp;nbsp;Anyone who knows me or knows of my projects (AstLinux, for example) has to know I favor simplicity whenever possible. &amp;nbsp;Keep it simple, keep it simple, keep it simple (stupid).&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;As time went on we started to learn that maybe this was too simple. &amp;nbsp;We didn’t have enough control. &amp;nbsp;Out monitoring wasn’t as mature as it should be. &amp;nbsp;We didn’t pick the right IP phones. &amp;nbsp;These could be easily fixed. &amp;nbsp;However, we soon realized our biggest mistake was architecture (or lack thereof). &amp;nbsp;This wasn’t going to be an easy fix.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;We couldn’t find an ITSP that offered a level of quality we considered to be acceptable. &amp;nbsp;Very few ITSPs had any more experience with VoIP, SIP, and the internet than we did. &amp;nbsp;More disturbing, however, was an almost complete lack of focus on quality and reliability. &amp;nbsp;No process.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;What we (quickly) discovered is the extremely low barrier to entry for ITSPs, especially back then. &amp;nbsp;Virtually anyone could install Asterisk on a $100/mo box in a colo somewhere, buy dialtone from someone (who knows) and call themselves an ITSP. &amp;nbsp;After going through several of these we discovered we needed to do it ourselves.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Even assuming we could solve the PSTN connectivity problem we discovered yet another issue. &amp;nbsp;All of the monitoring and management in the world cannot make up for a terrible last mile. &amp;nbsp;If the copper in the ground is rotting and the DSL modem can only negotiate 128kbps/128kbps that’s all you’re going to get. &amp;nbsp;To make matters worse in the event of a cut or outage the customer would be down completely. &amp;nbsp;While that may have always happened with the PSTN and an on premise PBX we considered this to be unacceptable.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;So then, in the eleventh hour, just before launch I met with the original founders and posed a radical idea - scrap almost everything. &amp;nbsp;There was a better way.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;(Continued in &lt;a href="http://blog.krisk.org/2011/11/building-startup-right-way.html"&gt;Building a Startup (the right way)&lt;/a&gt;) &lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9220932811142893057-3170127710508933386?l=blog.krisk.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/E35PR1fIa2cOyGq-zF4GjVCNPOM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/E35PR1fIa2cOyGq-zF4GjVCNPOM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/E35PR1fIa2cOyGq-zF4GjVCNPOM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/E35PR1fIa2cOyGq-zF4GjVCNPOM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotJustAstlinuxStuff/~4/qpXwjzhrql0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.krisk.org/feeds/3170127710508933386/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9220932811142893057&amp;postID=3170127710508933386" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/3170127710508933386?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/3170127710508933386?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotJustAstlinuxStuff/~3/qpXwjzhrql0/bulding-startup.html" title="Building a Startup" /><author><name>Kristian Kielhofner</name><uri>http://www.blogger.com/profile/06405875458561185080</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/-gr03qLpZIe8/Tp2gAW-nrvI/AAAAAAAAARo/LPwEMglNM0w/s220/kristian_kielhofner2.jpeg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.krisk.org/2011/11/bulding-startup.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUcERXoyeip7ImA9WhRTEks.&quot;"><id>tag:blogger.com,1999:blog-9220932811142893057.post-1780494026834126901</id><published>2011-10-25T14:09:00.000-04:00</published><updated>2011-11-02T16:50:04.492-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-02T16:50:04.492-04:00</app:edited><title>Starting a Startup</title><content type="html">&lt;span class="Apple-style-span" style="color: black; font-family: Times; font-size: small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="background-color: transparent;"&gt;
&lt;span id="internal-source-marker_0.45115007110871375" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;I know I’ve apologized for being quiet in the past. &amp;nbsp;This is not one of those times because (as you’ll soon find out) I’ve been hard at work and only now can I finally talk about it.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Six years ago I was spending most of my time working with Asterisk and AstLinux. &amp;nbsp;I spent a lot of time promoting both - working the conference circuit, blogging, magazines, books, etc. &amp;nbsp;Conferences are a great way to network and meet new people. &amp;nbsp;I did just that. &amp;nbsp;With each conference I attended came new business opportunities. &amp;nbsp;Sure, not all of them were a slam dunk and eventually I started to pick and chose which conferences I considered worthy of the time and investment.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;For anyone involved with Asterisk Astricon is certainly worthy of your time and energy - the mecca of the Asterisk community. &amp;nbsp;Astricon was always a whirlwind and 2005 was no exception. &amp;nbsp;We were in Anaheim, California and embedded Asterisk was starting to really heat up. &amp;nbsp;I announced my port of &lt;/span&gt;&lt;a href="http://www.astlinux.org/"&gt;&lt;span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"&gt;AstLinux&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; to &lt;/span&gt;&lt;a href="http://www.gumstix.com/"&gt;&lt;span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"&gt;Gumstix&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; and announced the “World’s Smallest PBX”, leading to an interview and &lt;/span&gt;&lt;a href="http://www.linuxfordevices.com/c/a/News/Worlds-smallest-VoIP-PBX/"&gt;&lt;span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"&gt;story&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; in LinuxDevices. &amp;nbsp;I worked a free community booth (thanks Astricon) with &lt;/span&gt;&lt;a href="http://the-edge.blogspot.com/"&gt;&lt;span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"&gt;Dave Taht&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; and was introduced to &lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/John_Draper"&gt;&lt;span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"&gt;Captain Crunch&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; (that’s another post for another day).&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;It was at Astricon in 2005 that I also met one of my soon to be business partners (although I certainly didn’t know it at the time). &amp;nbsp;While I was promoting embedded Asterisk and AstLinux I met a man from Florida named Joe Rhem. &amp;nbsp;Joe had come up with the idea of using embedded Asterisk systems as the cornerstone of a new way to provide business grade telephone services. &amp;nbsp;Joe and I met for a few minutes and discussed the merits of embedded Asterisk. &amp;nbsp;Unfortunately (and everyone already knows this) I don’t remember meeting with Joe. &amp;nbsp;Like I said Astricon was always a whirlwind and I had these conversations with dozens if not hundreds of people at each show. &amp;nbsp;I made my way through Astricon, made a pit stop in Santa Clara for (the now defunct) &lt;/span&gt;&lt;a href="http://blog.isp-planet.com/blog/2009/02/ispcon-closes.html"&gt;&lt;span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"&gt;ISPCon&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; and then returned home to Lake Geneva, WI with a stack of business cards, a few new stories, and a lot of work to finish (or start, depending on your perspective).&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;A couple of months later I received an e-mail from Joe Rhem discussing how he’d like to move forward with what we discussed in Anaheim. &amp;nbsp;Joe had recruited another partner to lead the new venture. &amp;nbsp;Norm Worthington was a successful serial entrepreneur and his offer to lead the company was the equivalent of “having General Patton lead your war effort”. &amp;nbsp;After some catch up I was intrigued with Joe’s idea. &amp;nbsp;A few hours on the phone later everyone was pretty comfortable with how this could work.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Now I just needed to fly to Sarasota, FL (where’s that - sounds nice, I thought) to meet with everyone, discuss terms, plan a relocation, and (most importantly) start putting the company, product, and technology together.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;A short time later I found myself arriving in Sarasota. &amp;nbsp;It was early January and I coming from Wisconsin I couldn’t believe how nice it was. &amp;nbsp;Looking back on it I’m sure Norm and Joe were very confident I’d be joining them in Sarasota. &amp;nbsp;Working with technology I love “in paradise”, how could I resist?&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;(Continued in &lt;a href="http://blog.krisk.org/2011/11/bulding-startup.html"&gt;Building a Startup&lt;/a&gt;) &lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9220932811142893057-1780494026834126901?l=blog.krisk.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Zib8pm3Ih8buryKGplBBlg5K3_g/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Zib8pm3Ih8buryKGplBBlg5K3_g/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Zib8pm3Ih8buryKGplBBlg5K3_g/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Zib8pm3Ih8buryKGplBBlg5K3_g/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotJustAstlinuxStuff/~4/XF1SkWd4q6M" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.krisk.org/feeds/1780494026834126901/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9220932811142893057&amp;postID=1780494026834126901" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/1780494026834126901?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/1780494026834126901?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotJustAstlinuxStuff/~3/XF1SkWd4q6M/starting-startup.html" title="Starting a Startup" /><author><name>Kristian Kielhofner</name><uri>http://www.blogger.com/profile/06405875458561185080</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/-gr03qLpZIe8/Tp2gAW-nrvI/AAAAAAAAARo/LPwEMglNM0w/s220/kristian_kielhofner2.jpeg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.krisk.org/2011/10/starting-startup.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUUCR3o7eCp7ImA9Wx5bEU4.&quot;"><id>tag:blogger.com,1999:blog-9220932811142893057.post-2726460683120987150</id><published>2010-10-26T17:39:00.005-04:00</published><updated>2010-10-26T18:47:46.400-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-26T18:47:46.400-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="sip" /><category scheme="http://www.blogger.com/atom/ns#" term="sipsak" /><title>Breaking RFC compliance to improve monitoring</title><content type="html">A colleague came to me today and had a troubling issue.  He's using &lt;a href="http://sipsak.org/"&gt;sipsak&lt;/a&gt; and &lt;a href="http://www.nagios.org/"&gt;nagios&lt;/a&gt; to monitor some SIP endpoints.  Pretty standard so far, right?  He noticed that when using UDP and checking on an endpoint that was completely offline sipsak would take over 30 seconds to finally return with an error.  Meanwhile Nagios would block and wait for sipsak to return...&lt;br /&gt;&lt;br /&gt;Without a simple command line option in sipsak that appeared to change this behavior, we had to enter the semi-complicated world of SIP timers.  I feared that to change this behavior we'd have to do some things that might not necessarily be RFC compliant...&lt;br /&gt;&lt;br /&gt;What's this?  For once I'm actually suggesting you do something against the better advice of an RFC?&lt;br /&gt;&lt;br /&gt;That's right, I am.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ietf.org/rfc/rfc3261.txt"&gt;RFC3261&lt;/a&gt; defines multiple timers and timeouts for messages and transactions.  It says things like:&lt;br /&gt;&lt;br /&gt;"If there is no final response for the original request in 64*T1 seconds"&lt;br /&gt;&lt;br /&gt;"The UAC core considers the INVITE transaction completed 64*T1 seconds after the reception of the first 2xx response."&lt;br /&gt;&lt;br /&gt;"The 2xx response is passed to the transport with an interval that starts at T1 seconds and doubles for each retransmission until it reaches T2 seconds"&lt;br /&gt;&lt;br /&gt;Without even knowing what "T1" is you can start to see that it's a pretty important timing parameter and (more or less) serves as the father of all timeouts in SIP.  Let's look at section 17 to find out what T1 is:&lt;br /&gt;&lt;br /&gt;"The default value for T1 is 500 ms.  T1 is an estimate of the RTT between the client and server transactions.  Elements MAY (though it is NOT RECOMMENDED) use smaller values of T1 within closed, private networks that do not permit general Internet connection.  T1 MAY be chosen larger, and this is RECOMMENDED if it is known in advance (such as on high latency access links) that the RTT is larger. Whatever the value of T1, the exponential backoffs on retransmissions described in this section MUST be used."&lt;br /&gt;&lt;br /&gt;T1 is essentially a variable for RTT between two endpoints that serves as a multiplier for other timeouts.  Unless we know better T1 should default to 500ms, which is quite high.  Some implementations (such as Asterisk with the SIP peer qualify option) automatically send OPTIONS requests to endpoints in an effort to better determine RTT instead of using the RFC default of 500ms.&lt;br /&gt;&lt;br /&gt;In reading through the sipsak source code it appeared to be RFC compliant for timing, using a default T1 value of 500ms and a transaction timeout value of 64*T1.  This is why it was taking over 30 seconds (32 seconds to be exact) for sipsak to finally timeout and return the status code to nagios.  This comes directly from the RFC:&lt;br /&gt;&lt;br /&gt;"For any transport, the client transaction MUST start timer B with a value of 64*T1 seconds (Timer B controls transaction timeouts)."&lt;br /&gt;&lt;br /&gt;This is all well and good but what happens when you don't have a way to dynamically determine T1 and you can't wait T1*64 (32s) for your results like my sipsak/nagios check earlier?  Simple: you go renegade, throw out the RFC, and hack the sipsak source yourself!&lt;br /&gt;&lt;br /&gt;So I had three options:&lt;br /&gt;&lt;br /&gt;1) Change the default value of T1.&lt;br /&gt;2) Change the value of T2 by changing the multiplier or setting a static timeout.&lt;br /&gt;3) Some combination of both.&lt;br /&gt;&lt;br /&gt;I decided to go with option #3 (RFC be damned).  Why?&lt;br /&gt;&lt;br /&gt;1)  500ms is crazy high for most of our endpoints.  At a glance 100ms would be fine for ~90% of them.  I'll pick 150ms.&lt;br /&gt;2)  I don't need that many retransmits.  If the latency and/or packet loss is that bad I'm not going to wait (my RTP certainly isn't) and I just want to know about it that much quicker.&lt;br /&gt;&lt;br /&gt;So I ended up with a quick easy patch to sipsak:&lt;br /&gt;&lt;br /&gt;diff -urN sipsak-0.9.6.orig/sipsak.h sipsak-0.9.6/sipsak.h&lt;br /&gt;--- sipsak-0.9.6.orig/sipsak.h    2006-01-28 16:11:50.000000000 -0500&lt;br /&gt;+++ sipsak-0.9.6/sipsak.h    2010-10-26 18:38:45.000000000 -0400&lt;br /&gt;@@ -102,11 +102,7 @@&lt;br /&gt; # define FQDN_SIZE   100&lt;br /&gt; #endif&lt;br /&gt;&lt;br /&gt;-#ifdef HAVE_CONFIG_H&lt;br /&gt;-# define SIP_T1 DEFAULT_TIMEOUT&lt;br /&gt;-#else&lt;br /&gt;-# define SIP_T1 500&lt;br /&gt;-#endif&lt;br /&gt;+#define SIP_T1 150&lt;br /&gt;&lt;br /&gt; #define SIP_T2 8*SIP_T1&lt;br /&gt;&lt;br /&gt;diff -urN sipsak-0.9.6.orig/transport.c sipsak-0.9.6/transport.c&lt;br /&gt;--- sipsak-0.9.6.orig/transport.c    2006-01-28 16:11:34.000000000 -0500&lt;br /&gt;+++ sipsak-0.9.6/transport.c    2010-10-26 18:38:51.000000000 -0400&lt;br /&gt;@@ -286,7 +286,7 @@&lt;br /&gt;             }&lt;br /&gt;         }&lt;br /&gt;         senddiff = deltaT(&amp;amp;(srt-&gt;starttime), &amp;amp;(srt-&gt;recvtime));&lt;br /&gt;-        if (senddiff &gt; (float)64 * (float)SIP_T1) {&lt;br /&gt;+        if (senddiff &gt; inv_final) {&lt;br /&gt;             if (timing == 0) {&lt;br /&gt;                 if (verbose&gt;0)&lt;br /&gt;                     printf("*** giving up, no final response after %.3f ms\n", senddiff);&lt;br /&gt;&lt;br /&gt;This changes the value of T1 to 150ms (more reasonable for most networks) and allows you to specify the number of retransmits (and thus the total timeout) using -D on the sipsak command line:&lt;br /&gt;&lt;br /&gt;kkmac:sipsak-0.9.6-build kris$ ./sipsak -p 10.16.0.3 -s sip:ext_callqual@asterisk -D1 -v&lt;br /&gt;** timeout after 150 ms**&lt;br /&gt;*** giving up, no final response after 150.334 ms&lt;br /&gt;&lt;br /&gt;kkmac:sipsak-0.9.6-build kris$ ./sipsak -p 10.16.0.3 -s sip:ext_callqual@asterisk -D2 -v&lt;br /&gt;** timeout after 150 ms**&lt;br /&gt;** timeout after 300 ms**&lt;br /&gt;*** giving up, no final response after 460.612 ms&lt;br /&gt;&lt;br /&gt;kkmac:sipsak-0.9.6-build kris$ ./sipsak -p 10.16.0.3 -s sip:ext_callqual@asterisk -D4 -v&lt;br /&gt;** timeout after 150 ms**&lt;br /&gt;** timeout after 300 ms**&lt;br /&gt;** timeout after 600 ms**&lt;br /&gt;*** giving up, no final response after 1071.137 ms&lt;br /&gt;&lt;br /&gt;kkmac:sipsak-0.9.6-build kris$&lt;br /&gt;&lt;br /&gt;Needless to say our monitoring situation is much improved.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9220932811142893057-2726460683120987150?l=blog.krisk.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/L3Ng8wiCT9p-MXIXnY52T-Sb2n4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/L3Ng8wiCT9p-MXIXnY52T-Sb2n4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/L3Ng8wiCT9p-MXIXnY52T-Sb2n4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/L3Ng8wiCT9p-MXIXnY52T-Sb2n4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotJustAstlinuxStuff/~4/d7ljmm4-x6I" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.krisk.org/feeds/2726460683120987150/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9220932811142893057&amp;postID=2726460683120987150" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/2726460683120987150?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/2726460683120987150?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotJustAstlinuxStuff/~3/d7ljmm4-x6I/breaking-rfc-compliance-to-improve.html" title="Breaking RFC compliance to improve monitoring" /><author><name>Kristian Kielhofner</name><uri>http://www.blogger.com/profile/06405875458561185080</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/-gr03qLpZIe8/Tp2gAW-nrvI/AAAAAAAAARo/LPwEMglNM0w/s220/kristian_kielhofner2.jpeg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.krisk.org/2010/10/breaking-rfc-compliance-to-improve.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkUHR3g5eSp7ImA9Wx5SEE8.&quot;"><id>tag:blogger.com,1999:blog-9220932811142893057.post-623147100480806586</id><published>2010-08-05T11:56:00.004-04:00</published><updated>2010-08-05T12:03:56.621-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-05T12:03:56.621-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="cluecon" /><category scheme="http://www.blogger.com/atom/ns#" term="freeswitch" /><title>A ClueCon Update</title><content type="html">Cluecon is going very well this year...  I spoke the first day and have spent the rest of my time here enjoying the presentations and interacting with the community.&lt;br /&gt;&lt;br /&gt;A few highlights:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Perfect wireless provided by &lt;a href="http://meraki.com/"&gt;Meraki&lt;/a&gt;. I've never been to a tech conference where the wifi has kept up with the crowd.  Well done.&lt;/li&gt;&lt;li&gt;The Trump Tower.  Phenomenal.&lt;/li&gt;&lt;li&gt;FreeSWITCH HA support in Sofia! This is worthy of its own post and it will have one when I get back and play with it.  In the meantime my guy Jay Binks has been working to &lt;a href="http://wiki.freeswitch.org/wiki/Freeswitch_HA"&gt;document&lt;/a&gt; this exciting new feature.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Chicago.  I just LOVE this town.&lt;/li&gt;&lt;/ul&gt;More later...  I've got to get back to the conference!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9220932811142893057-623147100480806586?l=blog.krisk.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/1thNri_lTQXtWcg07Bkt9ZnE1O8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1thNri_lTQXtWcg07Bkt9ZnE1O8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/1thNri_lTQXtWcg07Bkt9ZnE1O8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1thNri_lTQXtWcg07Bkt9ZnE1O8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotJustAstlinuxStuff/~4/21rRcCxXl3w" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.krisk.org/feeds/623147100480806586/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9220932811142893057&amp;postID=623147100480806586" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/623147100480806586?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/623147100480806586?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotJustAstlinuxStuff/~3/21rRcCxXl3w/cluecon-update.html" title="A ClueCon Update" /><author><name>Kristian Kielhofner</name><uri>http://www.blogger.com/profile/06405875458561185080</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/-gr03qLpZIe8/Tp2gAW-nrvI/AAAAAAAAARo/LPwEMglNM0w/s220/kristian_kielhofner2.jpeg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.krisk.org/2010/08/cluecon-update.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEMGQHY4eSp7ImA9Wx5TE0k.&quot;"><id>tag:blogger.com,1999:blog-9220932811142893057.post-4143689026510632086</id><published>2010-05-21T14:54:00.009-04:00</published><updated>2010-07-28T15:47:01.831-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-28T15:47:01.831-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="sip" /><category scheme="http://www.blogger.com/atom/ns#" term="opensips" /><category scheme="http://www.blogger.com/atom/ns#" term="freeswitch" /><title>A ClueCon Preview...</title><content type="html">A while back I saw a preview for the new A-Team movie.  While the movie itself looks horrible I was reminded of the original TV series with its many interesting characters and catch phrases.  Among my personal favorites?&lt;br /&gt;&lt;br /&gt;I love it when a plan comes together.&lt;br /&gt;&lt;br /&gt;That's exactly how I feel with one of my "pet projects" from the past couple of months.  Much like Hanibel and the A-Team I was up against formidable issues in trying to accomplish my task: implementing a flexible (very flexible), reasonably high performance LCR server that could be added to my existing architecture.&lt;br /&gt;&lt;br /&gt;First I needed to select an LCR "engine".  Multiple possibilities were considered but I left the final recommendation up to the DB and billing teams I work with.  They selected mod_lcr from FreeSWITCH.  While I was certain droute from OpenSIPS (or something similar) would have higher performance I accepted their recommendation.  After playing with mod_lcr a bit I can also see its potential.&lt;br /&gt;&lt;br /&gt;So now the question was: can FreeSWITCH respond with the proper SIP signaling (300 Multiple Choices)?  Using the redirect application from mod_dptools it could not.  I created a bounty to add multiple Contact/300 Multiple Choices functionality to FreeSWITCH.  Tony had it implemented that day.&lt;br /&gt;&lt;br /&gt;With the ability to respond properly I now had to get the data.  Mod_lcr looked nice but it certainly wasn't designed for this application.  All of the default syntax, tables, etc showed it being used with FreeSWITCH for FreeSWITCH.  The tables and code used several bridge specific syntax examples.  I hacked mod_lcr to return data to mod_dptools/redirect properly.  A created a JIRA issue with my patch and a couple of days later Rupa had it committed.&lt;br /&gt;&lt;br /&gt;So now FreeSWITCH could be a route server.  All I needed to do was make sure OpenSIPS could route from what FreeSWITCH returned.  Turns out it could not.  RFC 3261 (section 21.3.1) states "...the SIP response MAY contain several Contact fields or a list of addresses in a Contact field."  The Sofia stack from FreeSWITCH used multiple Contact headers, each with its own URI.  OpenSIPS would only parse the first one returned.  Sofia couldn't be changed easily so OpenSIPS would need to be changed (it was non-compliant anyway).  Without this change there is no ability to handle multiple contacts and only the first would be used.  It could be worse but obviously this wasn't good enough.&lt;br /&gt;&lt;br /&gt;I contacted Bogdan from OpenSIPS to see what it would take to update the parser to handle multiple Contact headers.  He indicated it would take four hours or so.  Once he got back to me I had an OpenSIPS system that would handle multiple contact headers and create new branches from a failure route as desired.&lt;br /&gt;&lt;br /&gt;So how did it all turn out?  Well, you have two ways to hear the end of this story:&lt;br /&gt;&lt;br /&gt;1)  Attend ClueCon at the Trump Hotel in Chicago, IL in early August.&lt;br /&gt;2)  Wait until mid-August for an update here.&lt;br /&gt;&lt;br /&gt;I'll make sure to post all of my materials - conference presentation, sipp scenarios for testing, OpenSIPS configuration, FreeSWITCH configuration, DB tweaks, etc.&lt;br /&gt;&lt;br /&gt;Too late to make it to ClueCon this year?  Just make sure to register next year, I'm sure I'll be there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9220932811142893057-4143689026510632086?l=blog.krisk.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/wYmJCuVKEz2QzdGL8HlUyU8h58M/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wYmJCuVKEz2QzdGL8HlUyU8h58M/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/wYmJCuVKEz2QzdGL8HlUyU8h58M/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wYmJCuVKEz2QzdGL8HlUyU8h58M/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotJustAstlinuxStuff/~4/cijUFBzvcgQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.krisk.org/feeds/4143689026510632086/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9220932811142893057&amp;postID=4143689026510632086" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/4143689026510632086?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/4143689026510632086?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotJustAstlinuxStuff/~3/cijUFBzvcgQ/cluecon-preview.html" title="A ClueCon Preview..." /><author><name>Kristian Kielhofner</name><uri>http://www.blogger.com/profile/06405875458561185080</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/-gr03qLpZIe8/Tp2gAW-nrvI/AAAAAAAAARo/LPwEMglNM0w/s220/kristian_kielhofner2.jpeg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.krisk.org/2010/05/cluecon-preview.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUGQ3Y-fip7ImA9WxFXE0w.&quot;"><id>tag:blogger.com,1999:blog-9220932811142893057.post-4961170044761634355</id><published>2010-05-19T18:47:00.005-04:00</published><updated>2010-05-19T19:03:42.856-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-19T19:03:42.856-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="sip" /><category scheme="http://www.blogger.com/atom/ns#" term="freeswitch" /><title>I've said it before but I'll say it again...</title><content type="html">FreeSWITCH rocks!&lt;br /&gt;&lt;br /&gt;Earlier today I wanted to play with the possibility of using FreeSWITCH as a route/LCR server for another platform.  FreeSWITCH already has &lt;a href="http://wiki.freeswitch.org/wiki/Mod_lcr"&gt;mod_lcr&lt;/a&gt; and &lt;a href="http://wiki.freeswitch.org/wiki/Misc._Dialplan_Tools_redirect"&gt;redirect&lt;/a&gt;.  Using these two features FreeSWITCH could be made to respond with a 302 and a single SIP URI in the Contact field.&lt;br /&gt;&lt;br /&gt;I wanted more.  I wanted a way to respond with multiple routes.&lt;br /&gt;&lt;br /&gt;The standard way to do this (using SIP, of course) is to respond to incoming INVITEs with a 300 Multiple Choices.  This response should contain a Contact header (or multiple Contact headers) with a list of SIP URIs (along with optional q values, etc) for the original system to route the call to.&lt;br /&gt;&lt;br /&gt;As usual I wrote the FreeSWITCH-Users mailing list to make sure this functionality didn't already exist somewhere.  It did not and it was suggested I create a bounty.&lt;br /&gt;&lt;br /&gt;Creating a bounty is always tough...  I don't deal with the source code of FreeSWITCH all that often.  I don't know how much work this is going to take.  I don't know how much C programmers make.  So I did my best to come up with something that seemed fair: $250.&lt;br /&gt;&lt;br /&gt;Less than two hours later the feature was coded, committed to FreeSWITCH, tested by me, and paid for.&lt;br /&gt;&lt;br /&gt;Once again, Open Source for the win!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9220932811142893057-4961170044761634355?l=blog.krisk.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/GPehNLaC8rkCZ4MtpML99ZpgvFA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GPehNLaC8rkCZ4MtpML99ZpgvFA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/GPehNLaC8rkCZ4MtpML99ZpgvFA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GPehNLaC8rkCZ4MtpML99ZpgvFA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotJustAstlinuxStuff/~4/7OZnw9WO0t0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.krisk.org/feeds/4961170044761634355/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9220932811142893057&amp;postID=4961170044761634355" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/4961170044761634355?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/4961170044761634355?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotJustAstlinuxStuff/~3/7OZnw9WO0t0/ive-said-it-before-but-ill-say-it-again.html" title="I've said it before but I'll say it again..." /><author><name>Kristian Kielhofner</name><uri>http://www.blogger.com/profile/06405875458561185080</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/-gr03qLpZIe8/Tp2gAW-nrvI/AAAAAAAAARo/LPwEMglNM0w/s220/kristian_kielhofner2.jpeg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.krisk.org/2010/05/ive-said-it-before-but-ill-say-it-again.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0IHSHY9eCp7ImA9WxFQFko.&quot;"><id>tag:blogger.com,1999:blog-9220932811142893057.post-1325689843640415415</id><published>2010-05-12T11:27:00.005-04:00</published><updated>2010-05-12T11:52:19.860-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-12T11:52:19.860-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="cisco" /><category scheme="http://www.blogger.com/atom/ns#" term="sip" /><category scheme="http://www.blogger.com/atom/ns#" term="freeswitch" /><title>Another SIP gotcha: Cisco</title><content type="html">Another quick and dirty SIP interop post.&lt;br /&gt;&lt;br /&gt;A while back I was tasked to interface a FreeSWITCH server and a Cisco Unified Communications Manager system.  Once the SIP trunk was configured on the Call Manager/CUCM side they sent an INVITE over.  It didn't have an SDP.&lt;br /&gt;&lt;br /&gt;It appeared that we needed to enable 3pcc (third party call control) in FreeSWITCH.  No problem.  I enabled 3pcc and interop continued.&lt;br /&gt;&lt;br /&gt;Problems arose, however, when we needed to send the Cisco ringback.  Whether it be a 180 or 183 (with or without SDP for either) this was going to be tough because with 3pcc enabled the dialog looked like so:&lt;br /&gt;&lt;br /&gt;&lt;-- Cisco&lt;br /&gt;--&gt; FreeSWITCH&lt;br /&gt;INVITE (without SDP) &lt;--&lt;br /&gt;100 Trying --&gt;&lt;br /&gt;200 OK (with SDP) --&gt;&lt;br /&gt;ACK (with SDP) &lt;--&lt;br /&gt;&lt;br /&gt;So...  There was no opportunity to signal progress as long as we 200 OKd the call almost immediately.  Sure I probably could generate some ringback after the 200 but that would just be wrong!&lt;br /&gt;&lt;br /&gt;As I like to say, the internet to the rescue.  Not having much experience with CUCM I thought I'd ask on VoiceOps.  Within a few minutes a very nice gentlemen by the name of &lt;a href="http://www.markholloway.com/"&gt;Mark Holloway&lt;/a&gt; mentioned "Media Termination Point Required" as a CUCM configuration option.  These were the magic words.  After some research it turned out that was the configuration option I needed*.  Thanks Mark!&lt;br /&gt;&lt;br /&gt;Once "Media Termination Point Required" was enabled on the Cisco side I disabled 3pcc in FreeSWITCH and all was good.  Users even get ringback now!&lt;br /&gt;&lt;br /&gt;I also brought the issue up on the FreeSWITCH-Users mailing list and found out this has been bothering people for some time.  MC from FreeSWITCH was even nice enough to start a &lt;a href="http://wiki.freeswitch.org/wiki/Cisco_Call_Manager"&gt;wiki page&lt;/a&gt; for me to document all of this there.&lt;br /&gt;&lt;br /&gt;Sometimes with SIP it's all about the SIMPLE achievements ;).&lt;br /&gt;&lt;br /&gt;* That research also brought up another possibility: enabling PRACK/100rel on the CallManager side instead of "MTP Required".  Of course the trouble with PRACK is there are a lot of SIP implementations (Asterisk) that don't support it.  FreeSWITCH does but can &lt;a href="http://jira.freeswitch.org/browse/FSCORE-392"&gt;crash&lt;/a&gt;.  Many SIP implementations don't support the default CUCM configuration (INVITE w/o SDP).  I was looking for the most canonical, compatible configuration possible.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9220932811142893057-1325689843640415415?l=blog.krisk.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/r7S3nMfsHovSf_YBNVd7Wq3Mo7Q/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/r7S3nMfsHovSf_YBNVd7Wq3Mo7Q/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/r7S3nMfsHovSf_YBNVd7Wq3Mo7Q/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/r7S3nMfsHovSf_YBNVd7Wq3Mo7Q/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotJustAstlinuxStuff/~4/lCyKZfIVeI4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.krisk.org/feeds/1325689843640415415/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9220932811142893057&amp;postID=1325689843640415415" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/1325689843640415415?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/1325689843640415415?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotJustAstlinuxStuff/~3/lCyKZfIVeI4/another-sip-gotcha-cisco.html" title="Another SIP gotcha: Cisco" /><author><name>Kristian Kielhofner</name><uri>http://www.blogger.com/profile/06405875458561185080</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/-gr03qLpZIe8/Tp2gAW-nrvI/AAAAAAAAARo/LPwEMglNM0w/s220/kristian_kielhofner2.jpeg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.krisk.org/2010/05/another-sip-gotcha-cisco.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck4DSXk-fyp7ImA9WxBUGE8.&quot;"><id>tag:blogger.com,1999:blog-9220932811142893057.post-6790685149391657887</id><published>2010-02-05T12:01:00.005-05:00</published><updated>2010-03-05T15:29:38.757-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-05T15:29:38.757-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="sip" /><category scheme="http://www.blogger.com/atom/ns#" term="wideband" /><category scheme="http://www.blogger.com/atom/ns#" term="voalte" /><title>(High Quality) VoIP on the iPhone</title><content type="html">(Regular readers will note that my excessive use of parentheses has now spilled into my titles and first sentences)!&lt;br /&gt;&lt;br /&gt;Ahhh Apple...  Ahh the iPhone.  Regardless of how you feel about this company or their product you can't doubt the market impact they've made over the last couple of years (decades perhaps?).  Multitouch (NOT multitasking).  App Store.  iTunes.  There are countless other blogs that discuss these topics so I don't need to.  As usual I'm here to talk about VoIP.&lt;br /&gt;&lt;br /&gt;For the last ten months or so I've been involved (part time) in another local venture.  &lt;a href="http://www.voalte.com"&gt;Voalte&lt;/a&gt; (pronounced volt) is a startup here in Sarasota, FL founded by Trey Lauderdale.  When the Apple iPhone was announced Trey was working in sales for Emergin, a healthcare IT middleware provider.  Trey noticed how incredibly arcane the mobile devices used in healthcare are when compared to this new device from Apple.  Once the iPhone SDK was announced Trey knew he had to develop an iPhone application for healthcare.  This application became Voalte One.&lt;br /&gt;&lt;br /&gt;Voalte One is an iPhone application that provides voice, alarms, and text for healthcare point of care providers (that's nurses to you and I).  The complete Voalte One solution is comprised of the following parts:&lt;br /&gt;&lt;br /&gt;- iPhone&lt;br /&gt;- Voalte Server (XMPP, LDAP, etc)&lt;br /&gt;- Voalte Voice Server (FreeSWITCH using SIP + event socket)&lt;br /&gt;- An overall excellent customer/user experience (also new to healthcare)&lt;br /&gt;&lt;br /&gt;Text messaging and alarm integration are cool but as I've already said, I do VoIP.  If you'd like to know more about iPhone development, XMPP, LDAP, etc let me know and I can point you in the right direction.&lt;br /&gt;&lt;br /&gt;VoIP in our application is interesting.  It's a softphone, technically, but unlike one you've ever seen before.  As everyone knows the iPhone cannot run multiple applications.  It can't background applications.  These are just two of the many challenges introduced when developing a user-friendly, always available, reliable non-GSM phone experience for the iPhone.  Simply downloading an off the shelf softphone and installing it on the iPhone is not enough.&lt;br /&gt;&lt;br /&gt;We're a startup and we get to do cool things.  For example, one of the big differences between VoIP/voice with Voalte One on the iPhone is the voice quality.  We use G.722 wideband at 16kHz as our standard voice codec.  Why?  Because one Saturday (after a long night out) Trey and I were having lunch.  I asked him if he thought we should set ourselves apart on something as basic as sample rate.  After a little explanation on my part we quickly decided - why not?&lt;br /&gt;&lt;br /&gt;As cool as G.722 is it introduces some interesting challenges:&lt;br /&gt;&lt;br /&gt;- The iPhone.  How are we going to get 16kHz audio from the hardware?&lt;br /&gt;- PJSIP (our SIP stack).  Does it support G.722?  How does it interface with the audio hardware?&lt;br /&gt;- Hospital PBXs.  Voalte One interfaces with the hospital PBX as an ordinary extension.  Most of them probably don't support G.722.  How/where do we resample to the standard 8kHz used in G.711?&lt;br /&gt;&lt;br /&gt;After looking through PJSIP and the available audio drivers for the iPhone we decided we needed to write our own.  There were legal and technical reasons and I'm glad we did it.  Especially because I didn't have to do most of the work! ;)  We also confirmed PJSIP supports G.722.&lt;br /&gt;&lt;br /&gt;Voalte has an amazing iPhone developer - Robbie Hanson.  Robbie, Ben (Voalte CTO), and I were able to look over the available audio frameworks on the iPhone and pick the best.  Not only is it the best overall (it supports echo cancellation, etc) it would provide us the sampling rate of 16kHz we knew we needed.&lt;br /&gt;&lt;br /&gt;After working with PJSIP and AudioUnit for a while Robbie was able to write an iPhone audio driver (using AudioUnit, of course) for PJSIP.  While working on the audio driver Robbie (along with another contributor) also wrote an Objective C wrapper for PJSIP.  These are the raw ingredients of a high quality VoIP experience on the iPhone.&lt;br /&gt;&lt;br /&gt;In the months leading up to release we had to deal with a plethora of other issues: push notifications, local ringback, wifi, etc, etc.  I won't (and probably can't) describe these issues in detail.&lt;br /&gt;&lt;br /&gt;The good news is Voalte has done the right thing and &lt;a href="http://www.voalte.com/Blog/post/2010/02/11/Voaltes-First-Open-Source-Project.aspx"&gt;released the core components of this solution as open source. &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I'm proud to work with companies that "get it" and are willing to actively participate in the free software ecosystem.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9220932811142893057-6790685149391657887?l=blog.krisk.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/yI4mXA4eNK6Q4gdUNXA6Du0DoCI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yI4mXA4eNK6Q4gdUNXA6Du0DoCI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/yI4mXA4eNK6Q4gdUNXA6Du0DoCI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yI4mXA4eNK6Q4gdUNXA6Du0DoCI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotJustAstlinuxStuff/~4/LuqRB3WbiVo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.krisk.org/feeds/6790685149391657887/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9220932811142893057&amp;postID=6790685149391657887" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/6790685149391657887?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/6790685149391657887?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotJustAstlinuxStuff/~3/LuqRB3WbiVo/high-quality-voip-on-iphone.html" title="(High Quality) VoIP on the iPhone" /><author><name>Kristian Kielhofner</name><uri>http://www.blogger.com/profile/06405875458561185080</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/-gr03qLpZIe8/Tp2gAW-nrvI/AAAAAAAAARo/LPwEMglNM0w/s220/kristian_kielhofner2.jpeg" /></author><thr:total>1</thr:total><feedburner:origLink>http://blog.krisk.org/2010/02/high-quality-voip-on-iphone.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0EFRXs5eip7ImA9WxBWEU8.&quot;"><id>tag:blogger.com,1999:blog-9220932811142893057.post-1968905950882236853</id><published>2010-02-02T10:39:00.003-05:00</published><updated>2010-02-02T10:46:54.522-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-02T10:46:54.522-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="opensips" /><title>Upcoming Review: Building Telephony Systems with OpenSIPS 1.6</title><content type="html">Packt Publishing has once again asked me to review their latest work in the OpenSIPS series: &lt;a href="http://www.packtpub.com/building-telephony-systems-with-opensips-1-6/book"&gt;Building Telephony Systems with OpenSIPS 1.6&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;My &lt;a href="http://blog.krisk.org/2008/07/book-review-building-telephony-systems.html"&gt;review&lt;/a&gt; of the previous edition goes all the way back to when OpenSIPS was called OpenSER.  I have another &lt;a href="http://blog.krisk.org/2008/08/more-openser-drama.html"&gt;post&lt;/a&gt; discussing that topic...&lt;br /&gt;&lt;br /&gt;Anyways, I should be receiving the book this week and I should have a review up by next week.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9220932811142893057-1968905950882236853?l=blog.krisk.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/eT_j7BSl3eOBI9hw_DUqsf21LzE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eT_j7BSl3eOBI9hw_DUqsf21LzE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/eT_j7BSl3eOBI9hw_DUqsf21LzE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eT_j7BSl3eOBI9hw_DUqsf21LzE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotJustAstlinuxStuff/~4/Frn34yPnj2E" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.krisk.org/feeds/1968905950882236853/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9220932811142893057&amp;postID=1968905950882236853" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/1968905950882236853?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/1968905950882236853?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotJustAstlinuxStuff/~3/Frn34yPnj2E/upcoming-review-building-telephony.html" title="Upcoming Review: Building Telephony Systems with OpenSIPS 1.6" /><author><name>Kristian Kielhofner</name><uri>http://www.blogger.com/profile/06405875458561185080</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/-gr03qLpZIe8/Tp2gAW-nrvI/AAAAAAAAARo/LPwEMglNM0w/s220/kristian_kielhofner2.jpeg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.krisk.org/2010/02/upcoming-review-building-telephony.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0EFQnY7cSp7ImA9WxBXEE0.&quot;"><id>tag:blogger.com,1999:blog-9220932811142893057.post-4065228717274126384</id><published>2010-01-20T11:37:00.003-05:00</published><updated>2010-01-20T11:40:13.809-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-20T11:40:13.809-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="astlinux" /><title>AstLinux 0.7 released and more!</title><content type="html">The AstLinux team (of which I'm an occasional member) has &lt;a href="http://www.astlinux.org/release/070"&gt;released&lt;/a&gt; AstLinux 0.7.  Darrick, Philip, Lonnie, and the rest of the community have done a great job getting this release out there.  I couldn't be happier with how my little project has grown up!&lt;br /&gt;&lt;br /&gt;In addition to getting this release out, they've also taken the time to focus on &lt;a href="http://doc.astlinux.org"&gt;documentation&lt;/a&gt; and a new &lt;a href="http://www.astlinux.org"&gt;website&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Well done guys!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9220932811142893057-4065228717274126384?l=blog.krisk.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/XNImZ_D7qyMk0nYwDILIUJBFhJk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/XNImZ_D7qyMk0nYwDILIUJBFhJk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/XNImZ_D7qyMk0nYwDILIUJBFhJk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/XNImZ_D7qyMk0nYwDILIUJBFhJk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotJustAstlinuxStuff/~4/-WGedCXZQps" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.krisk.org/feeds/4065228717274126384/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9220932811142893057&amp;postID=4065228717274126384" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/4065228717274126384?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/4065228717274126384?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotJustAstlinuxStuff/~3/-WGedCXZQps/astlinux-07-released-and-more.html" title="AstLinux 0.7 released and more!" /><author><name>Kristian Kielhofner</name><uri>http://www.blogger.com/profile/06405875458561185080</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/-gr03qLpZIe8/Tp2gAW-nrvI/AAAAAAAAARo/LPwEMglNM0w/s220/kristian_kielhofner2.jpeg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.krisk.org/2010/01/astlinux-07-released-and-more.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MESX44fCp7ImA9WxBXEE0.&quot;"><id>tag:blogger.com,1999:blog-9220932811142893057.post-8987566648558069629</id><published>2010-01-20T11:34:00.002-05:00</published><updated>2010-01-20T11:36:48.034-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-20T11:36:48.034-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="sip" /><category scheme="http://www.blogger.com/atom/ns#" term="sipp" /><title>Testing with SIPP</title><content type="html">A quick one, I promise...&lt;br /&gt;&lt;br /&gt;I'd been having some issues testing Asterisk with sipp.  It turns out there is a fairly well known issue with sipp when using five digit port numbers for RTP.  A quick Google search found a &lt;a href="http://www.mail-archive.com/sipp-users@lists.sourceforge.net/msg03698.html"&gt;solution&lt;/a&gt; pretty quickly.&lt;br /&gt;&lt;br /&gt;Just in case that link ever goes dead, here's the diff:&lt;br /&gt;&lt;br /&gt;diff -urb sipp.svn_orig/call.cpp sipp.svn_fixed/call.cpp&lt;br /&gt;--- sipp.svn_orig/call.cpp      2008-12-19 13:14:51.000000000 +0300&lt;br /&gt;+++ sipp.svn_fixed/call.cpp     2008-12-19 13:16:34.000000000 +0300&lt;br /&gt;@@ -192,7 +192,7 @@&lt;br /&gt;       /* m=audio not found */&lt;br /&gt;       return 0;&lt;br /&gt;     }&lt;br /&gt;-    begin += strlen(pattern) - 1;&lt;br /&gt;+    begin += strlen(pattern);&lt;br /&gt;     end = strstr(begin, "\r\n");&lt;br /&gt;     if (!end)&lt;br /&gt;       ERROR("get_remote_port_media: no CRLF found");&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;More on sipp later!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9220932811142893057-8987566648558069629?l=blog.krisk.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/jk8ujYrH5kp_NhUsD5bobOdzoYI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jk8ujYrH5kp_NhUsD5bobOdzoYI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/jk8ujYrH5kp_NhUsD5bobOdzoYI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jk8ujYrH5kp_NhUsD5bobOdzoYI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotJustAstlinuxStuff/~4/viPQq5XOcoY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.krisk.org/feeds/8987566648558069629/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9220932811142893057&amp;postID=8987566648558069629" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/8987566648558069629?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/8987566648558069629?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotJustAstlinuxStuff/~3/viPQq5XOcoY/testing-with-sipp.html" title="Testing with SIPP" /><author><name>Kristian Kielhofner</name><uri>http://www.blogger.com/profile/06405875458561185080</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/-gr03qLpZIe8/Tp2gAW-nrvI/AAAAAAAAARo/LPwEMglNM0w/s220/kristian_kielhofner2.jpeg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.krisk.org/2010/01/testing-with-sipp.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkQER3g-cSp7ImA9WxNWEU8.&quot;"><id>tag:blogger.com,1999:blog-9220932811142893057.post-8880050353716395656</id><published>2009-10-09T15:44:00.008-04:00</published><updated>2009-10-09T16:31:46.659-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-09T16:31:46.659-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="opensips" /><category scheme="http://www.blogger.com/atom/ns#" term="openser" /><category scheme="http://www.blogger.com/atom/ns#" term="Star2Star" /><category scheme="http://www.blogger.com/atom/ns#" term="freeswitch" /><title>I don't "do" testimonials</title><content type="html">I was (admittedly) getting a little bored at the office today when I realized that one of my favorite activities to pass time is checking the &lt;a href="http://wiki.freeswitch.org/wiki/Special:RecentChanges"&gt;recent changes&lt;/a&gt; page of the FreeSWITCH wiki.  Think about that for a minute...&lt;br /&gt;&lt;br /&gt;If that doesn't make me a FreeSWITCH fanboy, I don't know what does.  I guess I just have to finally admit it:&lt;br /&gt;&lt;br /&gt;I am a FreeSWITCH fanboy.&lt;br /&gt;&lt;br /&gt;How I got here I'm not really quite sure.  What I do know is that I despise fanboys of all sorts (in no particular order):&lt;br /&gt;&lt;br /&gt;- Linux&lt;br /&gt;- Apple&lt;br /&gt;- Microsoft (how?)&lt;br /&gt;- Asterisk&lt;br /&gt;- FreeSWITCH (self-loathing and denial are very powerful forces)&lt;br /&gt;&lt;br /&gt;I've been using FreeSWITCH for over a year and it's the closest thing to a whirlwind romance I've ever had (nerdom solidified, thank you).  While I'm sure the honeymoon period will end eventually at the moment I'm still smitten.  I sat down and started to write a testimonial on the FreeSWITCH wiki when I realized that this was the perfect opportunity to return to blogging.  I'm back and I want to talk about FreeSWITCH. Here's what I have to say (complete with an obligatory car analogy):&lt;br /&gt;&lt;br /&gt;Star2Star has over 12,000 (business) endpoints in the field and we currently use FreeSWITCH for:&lt;br /&gt;&lt;br /&gt;- SBC (multiple applications - customer and provider facing)&lt;br /&gt;- Conference services&lt;br /&gt;&lt;br /&gt;We're very quickly moving to IVR and (ultimately) voicemail.&lt;br /&gt;&lt;br /&gt;What is most impressive about FreeSWITCH are the small details that make working with it an absolute joy:&lt;br /&gt;&lt;br /&gt;- Sofia profiles (multiple unique SIP identities Just. Like. That.)&lt;br /&gt;- XML flexibility (static, custom module, mod_xml_curl)&lt;br /&gt;- Dialplan (conditions, PCRE, etc)&lt;br /&gt;- Channel variables (access to remote media IP address and anything else in a CHANNEL VARIABLE!)&lt;br /&gt;- proxy_media&lt;br /&gt;- bypass_media (beautiful, just beautiful)&lt;br /&gt;- RICH SIP/RTP support (SIPS, TCP, UDP, SCTP, SRTP, PAI, RPID). Yeah, I can talk to anything any way I need to.)&lt;br /&gt;- Codec support.  Resampling.  Repacketization.  It's just getting ridiculous.&lt;br /&gt;- Event socket. Inbound/outbound.  Async.  API commands.  Events.&lt;br /&gt;&lt;br /&gt;It is still *amazing* to me that I can make FreeSWITCH into the ultimate signaling-only SBC just by adding bypass_media=true or that I can send PAI to a destination with sip_cid_type=pid.  Just about every component of FreeSWITCH I've come across is very well thought out, completely logical, and completely predictable.  It's like driving a German car - if you take driving seriously everything just works and everything just works exactly as you expect it to.&lt;br /&gt;&lt;br /&gt;It's as if Anthony, Brian, Michael, and everyone else on the FreeSWITCH team are constantly sitting around, agonizing every detail of this awesome piece of software just as Hanz, Fritz, and Karl are in Munich agonizing over every detail for the next BMW 7 Series.  While there are several differences in this analogy perhaps the biggest difference is that it doesn't cost $100,000 for one of the most well engineered products I've ever come across (obviously I'm not talking about the BMW).&lt;br /&gt;&lt;br /&gt;Did I mention that in addition to this rich feature support it actually scales?  All the features in the world are completely useless to me in my environment unless they can scale.  We've seen again and again - FreeSWITCH scales.  With OpenSER/OpenSIPS at our core and FreeSWITCH serving various edge and endpoint roles I can't identify a single point where we couldn't (ultimately) scale to meet growth or demand.&lt;br /&gt;&lt;br /&gt;Star2Star is very unique.  We have a unique product, unique approach, and unique architecture.  While the architecture has generally evolved and scaled over the years with the number of users, the introduction of FreeSWITCH in a given role has always been accompanied by an excitement for what we'll be able to do for our company and our customers with our new favorite piece of software.  It's a very exciting time.&lt;br /&gt;&lt;br /&gt;The future at Star2Star is powered by our (quickly) growing customer base, FreeSWITCH, and our efforts to relentlessly deploy it where we can.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9220932811142893057-8880050353716395656?l=blog.krisk.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/tGc5g-pmVNCo1T5su5WMiIU50dE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/tGc5g-pmVNCo1T5su5WMiIU50dE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/tGc5g-pmVNCo1T5su5WMiIU50dE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/tGc5g-pmVNCo1T5su5WMiIU50dE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotJustAstlinuxStuff/~4/4si4h4olxPE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.krisk.org/feeds/8880050353716395656/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9220932811142893057&amp;postID=8880050353716395656" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/8880050353716395656?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/8880050353716395656?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotJustAstlinuxStuff/~3/4si4h4olxPE/i-dont-do-testimonials.html" title="I don't &quot;do&quot; testimonials" /><author><name>Kristian Kielhofner</name><uri>http://www.blogger.com/profile/06405875458561185080</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/-gr03qLpZIe8/Tp2gAW-nrvI/AAAAAAAAARo/LPwEMglNM0w/s220/kristian_kielhofner2.jpeg" /></author><thr:total>5</thr:total><feedburner:origLink>http://blog.krisk.org/2009/10/i-dont-do-testimonials.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE8ARH4-fip7ImA9WxVUGUQ.&quot;"><id>tag:blogger.com,1999:blog-9220932811142893057.post-1521395379383318724</id><published>2009-03-25T11:42:00.004-04:00</published><updated>2009-03-25T12:00:45.056-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-25T12:00:45.056-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="sip" /><category scheme="http://www.blogger.com/atom/ns#" term="opensips" /><category scheme="http://www.blogger.com/atom/ns#" term="asterisk" /><title>CANCEL</title><content type="html">I don't have a tremendous amount of time so this is going to be a short one.&lt;br /&gt;&lt;br /&gt;There is a CANCEL related bug in Asterisk 1.4.23 versions.  To be honest I'm not sure when it was introduced but I know when it was fixed:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bugs.digium.com/view.php?id=14431"&gt;http://bugs.digium.com/view.php?id=14431&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This caused trouble for me because I often use Asterisk in tandem with OpenSIPS and FreeSWITCH.  Both platforms were unable to match the CANCEL sent by Asterisk to the original INVITE.  As the bug note says, this is because the CANCEL sent by Asterisk had a different branch parameter than the original INVITE.  OpenSER/OpenSIPS would fail when checking t_check_trans()as long as method==CANCEL.&lt;br /&gt;&lt;br /&gt;FreeSWITCH was a *little* easier to diagnose because it would send a 481.  I suppose I could have made (and should make) my OpenSIPS configurations do this when using t_check_trans for CANCEL:&lt;br /&gt;&lt;br /&gt;if (is_method("CANCEL")) {&lt;br /&gt;  if (!t_check_trans()) {&lt;br /&gt;        # No matching transaction, error and exit&lt;br /&gt;        sl_send_reply("481","Call leg/transaction does not exist");&lt;br /&gt;        exit;&lt;br /&gt;  }&lt;br /&gt;   # Hand it to tm&lt;br /&gt;   t_relay();&lt;br /&gt;   exit;&lt;br /&gt;&lt;br /&gt;Anyways this has certainly been fixed in Asterisk 1.4.24.  I'm looking forward to not dealing with any of this for some time...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9220932811142893057-1521395379383318724?l=blog.krisk.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/P84KS6qBDpDY6A54djwVn-gtuwE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/P84KS6qBDpDY6A54djwVn-gtuwE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/P84KS6qBDpDY6A54djwVn-gtuwE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/P84KS6qBDpDY6A54djwVn-gtuwE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotJustAstlinuxStuff/~4/Sdb35roeNHY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.krisk.org/feeds/1521395379383318724/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9220932811142893057&amp;postID=1521395379383318724" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/1521395379383318724?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/1521395379383318724?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotJustAstlinuxStuff/~3/Sdb35roeNHY/cancel.html" title="CANCEL" /><author><name>Kristian Kielhofner</name><uri>http://www.blogger.com/profile/06405875458561185080</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/-gr03qLpZIe8/Tp2gAW-nrvI/AAAAAAAAARo/LPwEMglNM0w/s220/kristian_kielhofner2.jpeg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.krisk.org/2009/03/cancel.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUYMR306fSp7ImA9WxVXGU8.&quot;"><id>tag:blogger.com,1999:blog-9220932811142893057.post-7986498976528229066</id><published>2009-02-17T21:11:00.002-05:00</published><updated>2009-02-17T21:13:06.315-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-17T21:13:06.315-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="astlinux" /><category scheme="http://www.blogger.com/atom/ns#" term="freeswitch" /><title>AstLinux-FreeSWITCH ISO available for testing!</title><content type="html">Two posts in one day. Wow.&lt;br /&gt;&lt;br /&gt;Just as the title says and previous posts have hinted, FreeSWITCH has been added to AstLinux.  Please see the official announcement on the &lt;a href="http://www.astlinux.org/node/41"&gt;AstLinux homepage&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9220932811142893057-7986498976528229066?l=blog.krisk.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Pk7WwRg0Fdf9pHULoJIYRKqjqfI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Pk7WwRg0Fdf9pHULoJIYRKqjqfI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Pk7WwRg0Fdf9pHULoJIYRKqjqfI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Pk7WwRg0Fdf9pHULoJIYRKqjqfI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotJustAstlinuxStuff/~4/J_62hciYKg0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.krisk.org/feeds/7986498976528229066/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9220932811142893057&amp;postID=7986498976528229066" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/7986498976528229066?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/7986498976528229066?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotJustAstlinuxStuff/~3/J_62hciYKg0/astlinux-freeswitch-iso-available-for.html" title="AstLinux-FreeSWITCH ISO available for testing!" /><author><name>Kristian Kielhofner</name><uri>http://www.blogger.com/profile/06405875458561185080</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/-gr03qLpZIe8/Tp2gAW-nrvI/AAAAAAAAARo/LPwEMglNM0w/s220/kristian_kielhofner2.jpeg" /></author><thr:total>2</thr:total><feedburner:origLink>http://blog.krisk.org/2009/02/astlinux-freeswitch-iso-available-for.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMMQHk-fSp7ImA9WxVXGU0.&quot;"><id>tag:blogger.com,1999:blog-9220932811142893057.post-1391649091158091991</id><published>2009-02-17T15:32:00.003-05:00</published><updated>2009-02-17T15:44:41.755-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-17T15:44:41.755-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="astlinux" /><category scheme="http://www.blogger.com/atom/ns#" term="opensips" /><category scheme="http://www.blogger.com/atom/ns#" term="freeswitch" /><title>AstLinux Updates</title><content type="html">Just a few quick AstLinux updates:&lt;br /&gt;&lt;br /&gt;1)  FreeSWITCH support is just about done and has been committed to trunk. Still needs some testing but things look very promising.  The installed binaries are much smaller than I thought (~3MB or so stripped and linked against uClibc).  This includes some cool stuff like mod_xml_curl, mod_lua, mod_vmd, mod_snom, and more.  As Tony pointed out 1.2MB of that 3MB is mod_sofia!  As frustrating as that is at least mod_sofia includes IPV6, UDP, TCP, TLS, session timers, and just about every other relevant SIP standard... ;)&lt;br /&gt;&lt;br /&gt;  Small note but worth mentioning - FreeSWITCH is the first package to be committed without support for a keydisk of any kind.  You need to use unionfs with this one! &lt;br /&gt;&lt;br /&gt;2)  OpenSER support has been moved to OpenSIPS.  I'm still not sure about this one...  I've got an existing relationship with Bogdan and all of my projects have been moved to OpenSIPS (instead of Kamailio or SER).  We'll see what the community wants on this one (if AstLinux users care about a high performance SIP proxy at all).&lt;br /&gt;&lt;br /&gt;3)  RTPProxy upddate to 1.1.  I love this software.&lt;br /&gt;&lt;br /&gt;That's it for now!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9220932811142893057-1391649091158091991?l=blog.krisk.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/fwDlFAl6W0PBBQZUKMmduaLI1hA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fwDlFAl6W0PBBQZUKMmduaLI1hA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/fwDlFAl6W0PBBQZUKMmduaLI1hA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fwDlFAl6W0PBBQZUKMmduaLI1hA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotJustAstlinuxStuff/~4/bYEF0ZQ5C1g" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.krisk.org/feeds/1391649091158091991/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9220932811142893057&amp;postID=1391649091158091991" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/1391649091158091991?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/1391649091158091991?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotJustAstlinuxStuff/~3/bYEF0ZQ5C1g/astlinux-updates.html" title="AstLinux Updates" /><author><name>Kristian Kielhofner</name><uri>http://www.blogger.com/profile/06405875458561185080</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/-gr03qLpZIe8/Tp2gAW-nrvI/AAAAAAAAARo/LPwEMglNM0w/s220/kristian_kielhofner2.jpeg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.krisk.org/2009/02/astlinux-updates.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak4DSH86eip7ImA9WxVXFUU.&quot;"><id>tag:blogger.com,1999:blog-9220932811142893057.post-1232123531780277861</id><published>2009-02-13T23:57:00.005-05:00</published><updated>2009-02-14T00:22:59.112-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-14T00:22:59.112-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="sonus" /><title>The Joys of the Internet</title><content type="html">The members of the &lt;a href="http://messages.finance.yahoo.com/Stocks_(A_to_Z)/Stocks_S/threadview?m=te&amp;bn=16942&amp;tid=828098&amp;mid=828098&amp;tof=1&amp;frt=2#828098"&gt;Yahoo! Financial forum&lt;/a&gt; are now referring to me as "little hitler" (it's because I have a German last name, how clever) and suggesting I be sued for libel...  That would get interesting.  Perhaps they have never heard of &lt;a href="http://en.wikipedia.org/wiki/Streisand_effect"&gt;The Streisand Effect&lt;/a&gt;?&lt;br /&gt;&lt;br /&gt;It is unfortunate that what should be a mature, productive discussion has come to this.  What is it about the internet that brings out the worst in people?&lt;br /&gt;&lt;br /&gt;Anyways, it is very clear this issue should have never left a technical forum.  I don't give stock tips; they shouldn't argue RFCs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9220932811142893057-1232123531780277861?l=blog.krisk.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4WQTt-0RYtI4xsIZUjJ-mdDwGU8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4WQTt-0RYtI4xsIZUjJ-mdDwGU8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/4WQTt-0RYtI4xsIZUjJ-mdDwGU8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4WQTt-0RYtI4xsIZUjJ-mdDwGU8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotJustAstlinuxStuff/~4/KskM5GGY9fE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.krisk.org/feeds/1232123531780277861/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9220932811142893057&amp;postID=1232123531780277861" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/1232123531780277861?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/1232123531780277861?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotJustAstlinuxStuff/~3/KskM5GGY9fE/joys-of-internet.html" title="The Joys of the Internet" /><author><name>Kristian Kielhofner</name><uri>http://www.blogger.com/profile/06405875458561185080</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/-gr03qLpZIe8/Tp2gAW-nrvI/AAAAAAAAARo/LPwEMglNM0w/s220/kristian_kielhofner2.jpeg" /></author><thr:total>1</thr:total><feedburner:origLink>http://blog.krisk.org/2009/02/joys-of-internet.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkcBRHk-eyp7ImA9WxVXFUs.&quot;"><id>tag:blogger.com,1999:blog-9220932811142893057.post-5697828871405900957</id><published>2009-02-13T17:25:00.001-05:00</published><updated>2009-02-13T17:27:35.753-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-13T17:27:35.753-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="sonus" /><title>Yikes! (More on Sonus)</title><content type="html">It seems that my Sonus rant has crossed over into some other arenas...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://messages.finance.yahoo.com/Stocks_%28A_to_Z%29/Stocks_S/threadview?m=te&amp;bn=16942&amp;tid=827769&amp;mid=-1&amp;tof=15&amp;rt=1&amp;frt=2&amp;off=1#-1"&gt;Yahoo! Financial Discussion&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I've signed up for an account (kristian.kielhofner -at- yahoo.com) to participate in this thread.  Should be interesting.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9220932811142893057-5697828871405900957?l=blog.krisk.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/D4sDFBcTp1X1FrPHe6pAXqgBifY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/D4sDFBcTp1X1FrPHe6pAXqgBifY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/D4sDFBcTp1X1FrPHe6pAXqgBifY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/D4sDFBcTp1X1FrPHe6pAXqgBifY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotJustAstlinuxStuff/~4/hm1XBKp5hAM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.krisk.org/feeds/5697828871405900957/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9220932811142893057&amp;postID=5697828871405900957" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/5697828871405900957?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/5697828871405900957?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotJustAstlinuxStuff/~3/hm1XBKp5hAM/yikes-more-on-sonus.html" title="Yikes! (More on Sonus)" /><author><name>Kristian Kielhofner</name><uri>http://www.blogger.com/profile/06405875458561185080</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/-gr03qLpZIe8/Tp2gAW-nrvI/AAAAAAAAARo/LPwEMglNM0w/s220/kristian_kielhofner2.jpeg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.krisk.org/2009/02/yikes-more-on-sonus.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0YARno6eip7ImA9WxVXEUs.&quot;"><id>tag:blogger.com,1999:blog-9220932811142893057.post-6982558174761230589</id><published>2009-02-09T02:25:00.004-05:00</published><updated>2009-02-09T02:39:07.412-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-09T02:39:07.412-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="astlinux" /><category scheme="http://www.blogger.com/atom/ns#" term="recqual" /><category scheme="http://www.blogger.com/atom/ns#" term="freeswitch" /><title>More on FreeSWITCH</title><content type="html">I've hinted at it for some time:&lt;br /&gt;&lt;br /&gt;I've been playing with &lt;a href="http://www.freeswitch.org"&gt;FreeSWITCH&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Anyone who is reading this should already know what FreeSWITCH is and why someone (such as myself) would be so interested in it.  I'm not going to go over all of that again; there are plenty of rave reviews all over the internet.  I don't need to write another one (although I probably will some day).&lt;br /&gt;&lt;br /&gt;Here's an update on what I've done so far:&lt;br /&gt;&lt;br /&gt;1) &lt;a href="http://astlinux.svn.sourceforge.net/viewvc/astlinux/branches/astlinux-freeswitch/package/freeswitch/"&gt;FreeSWITCH support in AstLinux&lt;/a&gt;.  Still coming along but much progress has already been made.  It compiles cleanly (one more hack for sqlite) and appears to work.  More testing soon but I was pleasantly surprised - the build system seems to be just as well designed as the rest of the project.  They've done a great job!&lt;br /&gt;&lt;br /&gt;2) I hate transcoding.  Long, long ago I led an effort to re-record and convert all of the Asterisk prompts to various native file formats to avoid transcoding.  More than two years later I'm doing it again for FreeSWITCH although this time I don't have to pay to re-record them all!  Luckily they are made available in various sample rates already.  I just had to update the &lt;a href="http://mirror.astlinux.org/sounds/freeswitch/"&gt;script&lt;/a&gt; and do the &lt;a href="http://mirror.astlinux.org/sounds/freeswitch/"&gt;converting&lt;/a&gt;.  Big thanks to sox, Asterisk/res_convert and FreeSWITCH/Mod_native_file.&lt;br /&gt;&lt;br /&gt;3)  This one is barely worth mentioning but I've started (SVN branch, that's about it) working to re-implement &lt;a href="http://sourceforge.net/projects/recqual/"&gt;recqual&lt;/a&gt; using FreeSWITCH to place calls.  I've got some big plans for this.  Let's see how much time I actually have to work on it.  Don't expect much progress anytime soon.&lt;br /&gt;&lt;br /&gt;4)  Various production and consulting projects.  Obviously.&lt;br /&gt;&lt;br /&gt;As always, expect more to come!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9220932811142893057-6982558174761230589?l=blog.krisk.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/eD2Yr1-bg3dHhwnjPSHDy6QEKlU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eD2Yr1-bg3dHhwnjPSHDy6QEKlU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/eD2Yr1-bg3dHhwnjPSHDy6QEKlU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eD2Yr1-bg3dHhwnjPSHDy6QEKlU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotJustAstlinuxStuff/~4/e4H3ktHsPII" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.krisk.org/feeds/6982558174761230589/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9220932811142893057&amp;postID=6982558174761230589" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/6982558174761230589?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/6982558174761230589?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotJustAstlinuxStuff/~3/e4H3ktHsPII/more-on-freeswitch.html" title="More on FreeSWITCH" /><author><name>Kristian Kielhofner</name><uri>http://www.blogger.com/profile/06405875458561185080</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/-gr03qLpZIe8/Tp2gAW-nrvI/AAAAAAAAARo/LPwEMglNM0w/s220/kristian_kielhofner2.jpeg" /></author><thr:total>1</thr:total><feedburner:origLink>http://blog.krisk.org/2009/02/more-on-freeswitch.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0UCRXgycSp7ImA9WxVXEUs.&quot;"><id>tag:blogger.com,1999:blog-9220932811142893057.post-6301831976658003423</id><published>2009-02-05T14:00:00.004-05:00</published><updated>2009-02-09T02:41:04.699-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-09T02:41:04.699-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="sonus" /><category scheme="http://www.blogger.com/atom/ns#" term="sip" /><category scheme="http://www.blogger.com/atom/ns#" term="asterisk" /><category scheme="http://www.blogger.com/atom/ns#" term="freeswitch" /><title>The update you've been waiting for...</title><content type="html">UPDATE: Any updates for this and other SIP/RTP issues can be found &lt;a href="http://www.submityoursip.com/wiki/Sonus_NBS"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;In my last post over one month ago, I ranted on and on (big surprise, right) about some issues with Sonus equipment we were experiencing.  After learning more I should elaborate on "Sonus equipment".&lt;br /&gt;&lt;br /&gt;Like many other manufacturers Sonus has multiple products.  We'll be talking about their NBS SBC.  Many providers use the NBS SBC in conjunction with GSX gateways and PSX route servers.  I have no comments about GSX gateways or PSX route servers; this equipment is largely transparent to us "end users".  My gripes are with the NBS SBC.&lt;br /&gt;&lt;br /&gt;Providers that use Sonus NBS:&lt;br /&gt;&lt;br /&gt;- Level(3) (w/ GSX)&lt;br /&gt;- XO (w/ PSX &amp; GSX)&lt;br /&gt;- Global Crossing&lt;br /&gt;- Broadvox&lt;br /&gt;- Many others&lt;br /&gt;&lt;br /&gt;If you are using these carriers for SIP services, be aware.&lt;br /&gt;&lt;br /&gt;Last time I was talking about timestamps.  This time it's far more insidious...&lt;br /&gt;&lt;br /&gt;Apparently (as relayed to me from Level(3) engineers) Sonus has a DSP buffer limitation for RTP packet handling.  If there is ever more than a 100ms (my experience has shown it to be much less) gap in RTP Sonus will in technical terms, "freak out".&lt;br /&gt;&lt;br /&gt;We have now identified four RTP interop issues with Sonus equipment:&lt;br /&gt;&lt;br /&gt;1)  Sonus requires all RTP packets (events or voice) to have unique timestamps.  The RFCs specifically state that not only is it valid to use the same timestamp for various RTP packets, it is ideal in some cases (like events, for example).&lt;br /&gt;&lt;br /&gt;2)  The RFC 2833 events generated by Sonus equipment are goofy, to put it lightly.  The event duration increments do not match the packetization of the voice stream as stated in RFC 2833 and elaborated on in RFC 4733. Specifically, Sonus equipment increments RFC 2833 duration 80 samples&lt;br /&gt;at a time as if the voice stream is 10ms (regardless of what it actually is).  I don't know of any other implementations that do this.  Even when the audio stream is *clearly* 20 ms (in the SDP, too) Sonus will continue to increment 80 samples at a time.&lt;br /&gt;&lt;br /&gt;3)  The most recent (and biggest problem) has been caused by the Sonus (seemingly arbitrary) requirement that there never be greater than 100ms gaps in RTP.  This is inherently broken behavior for robustness in IP networks.&lt;br /&gt;&lt;br /&gt;4)  Sonus has yet another issue with RTP timing and sequencing...  If a call is brought up with an endpoint that clocks it's own RTP stream (IVR server, for example) everything will be fine.  Until the IVR server (or whatever) bridges that channel to another device that also clocks its own RTP.  Sonus (probably related to #3 above) will lose sync and drop audio for up to several seconds while it catches up to the new RTP stream.  This requires those of us that work with Sonus equipment to rewrite all timestamps and sequence numbers on our equipment; which has the adverse effect of less than optimal jitter buffering (which should ideally be done at each far endpoint).&lt;br /&gt;&lt;br /&gt;Asterisk is largely ok with all of these issues, believe it or not.  The one that still causes problems is #3.  If you are using Asterisk and Sonus gateways, make DAMN SURE that you are using Packet2Packet bridging and that your devices (whatever they may be) implement RFC 2833 the Sonus way.  If not...&lt;br /&gt;&lt;br /&gt;NO DTMF FOR YOU!&lt;br /&gt;&lt;br /&gt;If you are not using Packet2Packet bridging and your events need to traverse the Asterisk core (for features, fixup, or anything else) there will be a variable length RTP gap that often exceeds the Sonus DSP buffer requirement.  With gaps in RTP...&lt;br /&gt;&lt;br /&gt;NO DTMF FOR YOU!&lt;br /&gt;&lt;br /&gt;FreeSWITCH is also ok as long as you avoid #4.  FreeSWITCH provides the configuration option to rewrite timestamps and break jitter buffering.  If you are using Sonus gateways you should enable it, otherwise...&lt;br /&gt;&lt;br /&gt;NO DTMF FOR YOU!&lt;br /&gt;&lt;br /&gt;All of this makes me wish I was around back in the old days when there was one telco and all DTMF was inband!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9220932811142893057-6301831976658003423?l=blog.krisk.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/wNZk7umX7JMKK_2Svcqe8Aswyt0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wNZk7umX7JMKK_2Svcqe8Aswyt0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/wNZk7umX7JMKK_2Svcqe8Aswyt0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wNZk7umX7JMKK_2Svcqe8Aswyt0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotJustAstlinuxStuff/~4/lms74OMPLEM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.krisk.org/feeds/6301831976658003423/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9220932811142893057&amp;postID=6301831976658003423" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/6301831976658003423?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/6301831976658003423?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotJustAstlinuxStuff/~3/lms74OMPLEM/update-youve-been-waiting-for.html" title="The update you've been waiting for..." /><author><name>Kristian Kielhofner</name><uri>http://www.blogger.com/profile/06405875458561185080</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/-gr03qLpZIe8/Tp2gAW-nrvI/AAAAAAAAARo/LPwEMglNM0w/s220/kristian_kielhofner2.jpeg" /></author><thr:total>4</thr:total><feedburner:origLink>http://blog.krisk.org/2009/02/update-youve-been-waiting-for.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0QFQn06eSp7ImA9WxVXEUs.&quot;"><id>tag:blogger.com,1999:blog-9220932811142893057.post-494938902309117583</id><published>2009-01-07T00:10:00.004-05:00</published><updated>2009-02-09T02:41:53.311-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-09T02:41:53.311-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="sonus" /><category scheme="http://www.blogger.com/atom/ns#" term="sip" /><category scheme="http://www.blogger.com/atom/ns#" term="rtp" /><category scheme="http://www.blogger.com/atom/ns#" term="asterisk" /><category scheme="http://www.blogger.com/atom/ns#" term="freeswitch" /><title>Heads up!</title><content type="html">UPDATE: Any developments on this and other SIP/RTP issues can be found &lt;a href="http://www.submityoursip.com/wiki/Sonus_NBS"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Some serious issues for all of those of you in SIP land:&lt;br /&gt;&lt;br /&gt;There is a pretty serious RTP problem with Sonus equipment that has been making the rounds...&lt;br /&gt;&lt;br /&gt;Simply put, Sonus equipment will not accept two RTP packets with the same timestamp, even if the sequence number has been properly incremented.  According to various RFCs (namely 1889 and 2833) this is perfectly valid and in some cases (like video) desired.&lt;br /&gt;&lt;br /&gt;A few slight problems...  Many implementations (including Asterisk AND FreeSWITCH) will (did -more on this later) send out RFC 2833 DTMF events with the same timestamp as the last voice RTP packet.  This is perfectly valid according to the RFCs mentioned above.&lt;br /&gt;&lt;br /&gt;It appears (after my own testing) that Sonus will actually drop BOTH the voice RTP packet and the event packet.  After some testing against Sonus gear it was pretty clear that no audio was being passed as long as the DTMF event occured.  This makes sense because per RFC2833 a variable length DTMF event must use the same timestamp, increment the sequence counter and increase the duration when it is resent - DO NOT change the timestamp.  Oh Sonus.&lt;br /&gt;&lt;br /&gt;Both Asterisk and FreeSWITCH have incremented workarounds to address this.  They are similar but there is one key difference.  Asterisk now (as of SVN 12/15/2008 or so) will always use a unique timestamp for every RTP packet.  I guess that solves that problem.  FreeSWITCH is slightly smarter about it (as of SVN about the same time, interestingly enough) but I"m worried...&lt;br /&gt;&lt;br /&gt;FreeSWITCH will parse the SDP to find the originator line (o=).  If it is equal to "Sonus_UAC" FreeSWITCH activates a specific workaround to always send RTP packets with different timestamps.  This seems more elegant but I am worried they will have to expand this hack for other equipment in the future (requiring a code change and recompile).&lt;br /&gt;&lt;br /&gt;One could argue that Sonus has gotten this far with their current implementation and expected behavior.  While it is valid (per the RFCs) to use the same timestamp, it is more /compatible/ to always use different timestamps.  That appears to be what most equipment does.&lt;br /&gt;&lt;br /&gt;This issue is what (apparantly) caused so many issues for Teliax a while back while they switched from Asterisk to FreeSWITCH.  At least that's what I heard.  What doesn't make any sense is that Asterisk had the same behavior as FreeSWITCH - they both sent voice and event RTP packets with identical timestamps.  So that part doesn't make any sense.&lt;br /&gt;&lt;br /&gt;Also, one would like to think that when you provide voice services (which are pretty important to your customers) you would *test* something like DTMF when you were completely switching platforms.  I discovered these issues while testing Star2Star with Level(3), for example.  I'm glad I was paying attention.  Our customers would have been upset with broken DTMF while we updated all of our Asterisk machines (several hundred).&lt;br /&gt;&lt;br /&gt;I'm suprised no one noticed this until mid-December or so.  It will be interesting to see what other things pop out of this mess...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9220932811142893057-494938902309117583?l=blog.krisk.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ndTCme62KRRyH4dh6tcoPufToi0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ndTCme62KRRyH4dh6tcoPufToi0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ndTCme62KRRyH4dh6tcoPufToi0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ndTCme62KRRyH4dh6tcoPufToi0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotJustAstlinuxStuff/~4/5-KwvJrjRB8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.krisk.org/feeds/494938902309117583/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9220932811142893057&amp;postID=494938902309117583" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/494938902309117583?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9220932811142893057/posts/default/494938902309117583?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotJustAstlinuxStuff/~3/5-KwvJrjRB8/heads-up.html" title="Heads up!" /><author><name>Kristian Kielhofner</name><uri>http://www.blogger.com/profile/06405875458561185080</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/-gr03qLpZIe8/Tp2gAW-nrvI/AAAAAAAAARo/LPwEMglNM0w/s220/kristian_kielhofner2.jpeg" /></author><thr:total>5</thr:total><feedburner:origLink>http://blog.krisk.org/2009/01/heads-up.html</feedburner:origLink></entry></feed>

