<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5764703310470488152</id><updated>2012-01-24T06:34:11.059-08:00</updated><category term='voip'/><category term='web'/><title type='text'>Turn Geek</title><subtitle type='html'>A Technology Blog</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>61</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-7571963826773007509</id><published>2011-05-23T11:21:00.001-07:00</published><updated>2011-05-23T13:02:33.973-07:00</updated><title type='text'>Any craigslist applications out there for Android?</title><content type='html'>&lt;span class="fullpost"&gt;Know of any craigslist applications which allow you to post ads in addition to just alerts?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;Update: Used&amp;nbsp; the &lt;a href="https://market.android.com/details?id=bazaar.android&amp;amp;feature=search_result"&gt;Bazaar android application&lt;/a&gt; to post my ad. It worked like a charm - except two small login glitches: While logging into the application, it told me to create a Bazaar account. There are some sort of network error creating that but the app logged me in. Then to post the ad into craigslist, I got a similar error logging in. Retrying the request just worked. &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-7571963826773007509?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/7571963826773007509/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=7571963826773007509' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/7571963826773007509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/7571963826773007509'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2011/05/any-craigslist-applications-out-there.html' title='Any craigslist applications out there for Android?'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-9041925784187961190</id><published>2011-05-23T11:20:00.000-07:00</published><updated>2011-05-23T11:20:48.195-07:00</updated><title type='text'>iPad/Android</title><content type='html'>My iPhone is now my son's property. It seems that I am no longer even allowed to keep it on my table or pocket. "You must put it on charge in the night", says my son. That is how these youngsters are. The whole of last week went into playing and downloading iPhone games. I will post the ones we found good for kids here.&lt;br /&gt;&lt;br /&gt;I did notice that even after turning off my GPS and solely using the WIFI connection, my phone was still slow. That makes me scared of upgrading it newer versions of the iPhone OS.&lt;br /&gt;&lt;br /&gt;I am also thinking of buying an iPad or Android tablet next. Anyone with kids having a better experience with Android. I know the iPad must be good, but I am hoping Android has caught up by now with applications, ease of use and speed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-9041925784187961190?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/9041925784187961190/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=9041925784187961190' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/9041925784187961190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/9041925784187961190'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2011/05/ipadandroid.html' title='iPad/Android'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-7388855079257620190</id><published>2011-05-11T10:00:00.000-07:00</published><updated>2011-05-11T10:00:10.448-07:00</updated><title type='text'>Finally rid of my iPhone!</title><content type='html'>&lt;span class="fullpost"&gt;I am sure lot of people must be surprised to read my post - why is this guy talking about getting rid of his iPhone. While the iPhone 3G was a great product, it turned out to be my worst buy after an year of use. Now - this doesnt apply to most people so go ahead and buy your iPhone but just DONT UPGRADE THE SOFTWARE ON IT!! This is what I did - I used to religiously apply the software updates coming from Apple for my phone on iTunes. One of these updates which installed a newer version of the OS on my Phone (I think it was OS 3.0) totally messed up my phone. After that update my phone become very unresponsive and slow. For example, on occasions when a call would come in, it would just get consumed with the ringing process. I would not even be able to slide the slider to accept the call. Eventually after incessant ringing, the call would go to voicemail. Sometimes I would get a notification that there is a voicemail and when I click on listen, I would just have to roll my eyes for a minute after which the phone application was just killed by the OS - because I guess it could be unresponsive. Web browsing, searching etc - everything became slow. I even tried to downgrade my phone but Apple didn't allow that. I guess they just don't test these upgrades well enough. Because of my contract with ATT and my switching jobs and being very busy all the time, I was not able to find a "permanent solution" to this problem. Even snapping back at the phone seemed like a risky endeavor which could cost me $200-300. Now my contract is over and I am going for an Android phone. Its going to be a 4G phone for me from HTC (HTC Inspire). It arrived yesterday and I am going to be playing with it today and rest of the week. Thank God I am out of iPhone hell!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-7388855079257620190?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/7388855079257620190/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=7388855079257620190' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/7388855079257620190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/7388855079257620190'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2011/05/finally-rid-of-my-iphone.html' title='Finally rid of my iPhone!'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-2734394735871342461</id><published>2011-04-29T14:18:00.000-07:00</published><updated>2011-04-29T14:18:09.444-07:00</updated><title type='text'>Screenshot software: Greenshot</title><content type='html'>&lt;span class="fullpost"&gt;If you have been spoilt by SnagIT (made by Techsmith) which is probably one of the best screenshot tool out there and are now looking for a free alternative, you may find &lt;a href="http://getgreenshot.org/downloads/"&gt;Greenshot&lt;/a&gt; to be a pretty good replacement. Greenshot lets you edit, add additional text, pointers on top of the snagged images.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-2734394735871342461?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/2734394735871342461/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=2734394735871342461' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/2734394735871342461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/2734394735871342461'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2011/04/screenshot-software-greenshot.html' title='Screenshot software: Greenshot'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-9107180427970232163</id><published>2011-04-29T14:12:00.000-07:00</published><updated>2011-04-29T14:12:15.236-07:00</updated><title type='text'>How to run command on one windows PC from another</title><content type='html'>If you don't know about it yet, &lt;a href="http://192.168.0.210/wiki/index.php?title=Page_http://technet.microsoft.com/en-us/sysinternals/bb897553_PSEXEC&amp;amp;action=edit&amp;amp;redlink=1"&gt;psexec &lt;/a&gt;is a nice utility which allows you to run a windows command on one PC from another. Here is an example:&lt;br /&gt;&lt;blockquote&gt;psexec \\remote-machine C:\RunBatchFile.bat  &lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-9107180427970232163?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/9107180427970232163/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=9107180427970232163' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/9107180427970232163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/9107180427970232163'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2011/04/how-to-run-command-on-one-windows-pc.html' title='How to run command on one windows PC from another'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-1307250738858833371</id><published>2011-04-29T14:07:00.000-07:00</published><updated>2011-04-29T14:07:23.020-07:00</updated><title type='text'>Run a Unix command remotely from Windows</title><content type='html'>&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:WordDocument&gt;   &lt;w:View&gt;Normal&lt;/w:View&gt;   &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:TrackMoves/&gt;   &lt;w:TrackFormatting/&gt;   &lt;w:PunctuationKerning/&gt;   &lt;w:ValidateAgainstSchemas/&gt;   &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:DoNotPromoteQF/&gt;   &lt;w:LidThemeOther&gt;EN-US&lt;/w:LidThemeOther&gt;   &lt;w:LidThemeAsian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:Compatibility&gt;    &lt;w:BreakWrappedTables/&gt;    &lt;w:SnapToGridInCell/&gt;    &lt;w:WrapTextWithPunct/&gt;    &lt;w:UseAsianBreakRules/&gt;    &lt;w:DontGrowAutofit/&gt;    &lt;w:SplitPgBreakAndParaMark/&gt;    &lt;w:EnableOpenTypeKerning/&gt;    &lt;w:DontFlipMirrorIndents/&gt;    &lt;w:OverrideTableStyleHps/&gt;   &lt;/w:Compatibility&gt;   &lt;w:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;   &lt;m:mathPr&gt;    &lt;m:mathFont m:val="Cambria Math"/&gt;    &lt;m:brkBin m:val="before"/&gt;    &lt;m:brkBinSub m:val="&amp;#45;-"/&gt;    &lt;m:smallFrac m:val="off"/&gt;    &lt;m:dispDef/&gt;    &lt;m:lMargin m:val="0"/&gt;    &lt;m:rMargin m:val="0"/&gt;    &lt;m:defJc m:val="centerGroup"/&gt;    &lt;m:wrapIndent m:val="1440"/&gt;    &lt;m:intLim m:val="subSup"/&gt;    &lt;m:naryLim m:val="undOvr"/&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"  DefSemiHidden="true" DefQFormat="false" DefPriority="99"  LatentStyleCount="267"&gt;   &lt;w:LsdException Locked="false" Priority="0" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Normal"/&gt;   &lt;w:LsdException Locked="false" Priority="9" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="heading 1"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 1"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 2"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 3"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 4"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 5"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 6"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 7"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 8"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 9"/&gt;   &lt;w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/&gt;   &lt;w:LsdException Locked="false" Priority="10" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Title"/&gt;   &lt;w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/&gt;   &lt;w:LsdException Locked="false" Priority="11" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/&gt;   &lt;w:LsdException Locked="false" Priority="22" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Strong"/&gt;   &lt;w:LsdException Locked="false" Priority="20" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/&gt;   &lt;w:LsdException Locked="false" Priority="59" SemiHidden="false"   UnhideWhenUsed="false" Name="Table Grid"/&gt;   &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/&gt;   &lt;w:LsdException Locked="false" Priority="1" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/&gt;   &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/&gt;   &lt;w:LsdException Locked="false" Priority="34" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/&gt;   &lt;w:LsdException Locked="false" Priority="29" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Quote"/&gt;   &lt;w:LsdException Locked="false" Priority="30" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="19" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/&gt;   &lt;w:LsdException Locked="false" Priority="21" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/&gt;   &lt;w:LsdException Locked="false" Priority="31" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/&gt;   &lt;w:LsdException Locked="false" Priority="32" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/&gt;   &lt;w:LsdException Locked="false" Priority="33" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Book Title"/&gt;   &lt;w:LsdException Locked="false" Priority="37" Name="Bibliography"/&gt;   &lt;w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt; /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-parent:""; mso-padding-alt:0in 5.4pt 0in 5.4pt; mso-para-margin:0in; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman","serif";}&lt;/style&gt; &lt;![endif]--&gt;  &lt;br /&gt;After helping a customer numerous times by diagnosing a failed cron job, I was looked up how to call the job from Windows. This turned out to be interesting given it was a command which could only be run from sudo. Here are the details:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;First you need a program called plink which is part of the putty distribution. You can download putty from&amp;nbsp; &lt;a href="http://the.earth.li/%7Esgtatham/putty/latest/x86/putty-0.60-installer.exe"&gt;http://the.earth.li/~sgtatham/putty/latest/x86/putty-0.60-installer.exe&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Create a text file with your commands somewhere on the PC. For example:&lt;/li&gt;&lt;ol&gt;&lt;li&gt;/usr/bin/sudo su - &lt;username&gt; &lt;command&gt;&lt;br /&gt;&lt;/command&gt;&lt;/username&gt;&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Either set up your path environment variable on Windows or simply go the putty install folder &lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; (e.g C:\Program Files\Putty).&lt;span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;plink -t zz000412@PRODDOCS-VORA -m &lt;path command="" containing="" file="" to=""&gt;&lt;/path&gt;&lt;/li&gt;&lt;/ol&gt;psexec is another command to run from windows to call a script on another windows box.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-1307250738858833371?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/1307250738858833371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=1307250738858833371' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/1307250738858833371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/1307250738858833371'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2011/04/run-unix-command-remotely-from-windows.html' title='Run a Unix command remotely from Windows'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-8761347723797862371</id><published>2011-04-29T13:52:00.000-07:00</published><updated>2011-04-29T13:59:40.401-07:00</updated><title type='text'>Mediawiki + Bugzilla + SVN + SCMBug + Tweaks = Software Manager's recipe</title><content type='html'>It was fun trying to integrate SVN, Bugzilla and Mediawiki using SCMBug and BugzillaReports. The integrated system is really an efficiency booster and considering how easy it was to set up the value/effort ratio was well worth it. I am listing the steps needed to set this system up on Windows here which makes things very interesting sometimes. Linux install is similar and simpler.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="fullpost"&gt;The first step was installing Apache, PHP and Active Perl on Windows. This is straightforward and well documented.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="fullpost"&gt;Install MySQL &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="fullpost"&gt;Install Bugzilla. This is straightforward as well. Bugzilla uses Perl.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="fullpost"&gt;Install Mediawiki.&lt;/span&gt;&lt;/li&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="fullpost"&gt;Turn off caching in Mediawiki. With caching on, you get stale data on bugs which can lead you to make wrong decisions. &lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;&lt;span class="fullpost"&gt;Install the Mediawiki - &lt;a href="http://www.mediawiki.org/wiki/Extension:BugzillaReports"&gt;BugzillaReports&lt;/a&gt; Addon. This gives the ability to write short scripts in mediawiki which query bugzilla and present data on a web page as a reports. This itself takes you from zero to fifty.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="fullpost"&gt;Set up backup scripts for MySQL. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="fullpost"&gt;Install SVN&lt;/span&gt;&lt;/li&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="fullpost"&gt;&lt;a href="http://www.collab.net/downloads/subversion/"&gt;Collabnet &lt;/a&gt;worked out pretty well.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="fullpost"&gt;Set up Backup scripts for SVN&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;&lt;span class="fullpost"&gt;Create custom fields in Bugzilla for recording code change list&lt;/span&gt;&lt;span class="fullpost"&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="fullpost"&gt;Install SCMBug&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="fullpost"&gt;Customize code in SCMBug. This will help:&lt;/span&gt;&lt;/li&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="fullpost"&gt;Format the regular expression for parsing out the bug ID from the comments.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="fullpost"&gt;Change code to post changes to custom field instead of comments. SCMBug by default posts changes to Bugzilla comments which can be very annoying to users.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-8761347723797862371?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/8761347723797862371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=8761347723797862371' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/8761347723797862371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/8761347723797862371'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2011/04/mediawiki-bugzilla-svn-scmbug-tweaks.html' title='Mediawiki + Bugzilla + SVN + SCMBug + Tweaks = Software Manager&apos;s recipe'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-4067564691122991744</id><published>2010-08-14T22:53:00.001-07:00</published><updated>2010-08-14T22:53:33.710-07:00</updated><title type='text'>Checkout my new blog</title><content type='html'>&lt;span class="fullpost"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Finally, having battled with SEO, I am putting my thoughts together in&amp;nbsp;&lt;a href="http://seo4starters.blogspot.com/"&gt;this new blog&lt;/a&gt;. Hopefully I will have the time and energy and the prodding of few smart people to keep it going here :).&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-4067564691122991744?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/4067564691122991744/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=4067564691122991744' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/4067564691122991744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/4067564691122991744'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2010/08/checkout-my-new-blog.html' title='Checkout my new blog'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-8554922381986277097</id><published>2010-08-14T22:35:00.001-07:00</published><updated>2010-08-14T22:35:39.556-07:00</updated><title type='text'>If you are in the Atlanta area, call on my brother's new Handyman biz</title><content type='html'>&lt;span class="fullpost"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: medium;"&gt;Especially if you are commercial - a hotel, office, building or industrial enterprise needing facility management maintenance work, he is offering some really good deals to sign you up as customer at this point. The company -&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: medium;"&gt;&lt;a href="http://www.crisissolutionsga.com/"&gt;Crisis Solutions of Georgia&lt;/a&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: medium;"&gt;&amp;nbsp;has a g&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: medium;"&gt;&lt;a href="http://www.crisissolutionsga.com/sites/default/files/Krishan-Bhatia.pdf"&gt;ood deal of experience in this kind of maintenance work&lt;/a&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: medium;"&gt;. Especially pools, large scale equipment etc. If you own a home and have regular handyman work, you may want to give Crisis Solutions of Georgia a shot as well. Tell them I sent you there and get a discount!&lt;/span&gt;&lt;/span&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/5764703310470488152-8554922381986277097?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/8554922381986277097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=8554922381986277097' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/8554922381986277097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/8554922381986277097'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2010/08/if-you-are-in-atlanta-area-call-on-my.html' title='If you are in the Atlanta area, call on my brother&apos;s new Handyman biz'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-8864423311753034447</id><published>2010-06-29T20:26:00.000-07:00</published><updated>2010-06-29T20:26:54.949-07:00</updated><title type='text'>To all the Odyssey owners</title><content type='html'>&lt;span class="fullpost"&gt;This post is for the Odyssey owners who have their AC condenser exposed to road debris.&lt;/span&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;Well, I may be no car mechanic, but this was easy even for me. The funny thing is that I bought a car part for my Odyssey from Home Depot and installed it using ties. Truly satisfying - the power of the Home Depot.&lt;/span&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;It seems this is a very common documented problem - something I knew about (the fix as well) before buying the car. Check out this website or google for the Odyssey AC compressor road debris issue - once I saw the compressor exposed below the OEM Honda Grille, I knew no one was making up stories.&lt;/span&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;An aluminum grille is available on Ebay for around $100, but the home depot solution was $12. Moreover in both cases, you have to use ties to secure the grille.&lt;/span&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;In the Home Depot solution, most people use the plastic gutter guards. I used the 1/4 inch fence net - which is just fine. With any metal net, you will need to cut it to size and make sure you wear gloves to prevent cuts. Rest is really easy. There are some instructions on these links:&lt;/span&gt;&lt;br /&gt;&lt;span class="fullpost"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;http://townhall.edmunds.com/WebX/.f0e4807&lt;/span&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;http://www.carspace.com/chimrichalds/?slideshowShowThumbnails@@.59b06135!ix=12&amp;amp;lastStart=0#pix&lt;/span&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-8864423311753034447?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/8864423311753034447/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=8864423311753034447' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/8864423311753034447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/8864423311753034447'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2010/06/to-all-odyssey-owners.html' title='To all the Odyssey owners'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-4717508996073349096</id><published>2010-06-29T10:37:00.000-07:00</published><updated>2010-06-29T10:55:49.298-07:00</updated><title type='text'>NX client and server for RHEL</title><content type='html'>&lt;span class="fullpost"&gt;After having used numerous ssh sessions open from your windows PC to linux, you are going to appreciate the NX client and server. They are extremely fast and easy to set up. I followed the instructions on http://www.penlug.org/twiki/bin/view/Main/FreeNX for my RHEL 5 distributions.&lt;/span&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;Here are the quick steps. I am planning to set this up on all my boxes:&lt;/span&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="fullpost"&gt;Make sure what the release of RHEL or any other flavor of linux you are running is by typing the following command: cat /etc/*-release&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="fullpost"&gt;Get into a temporary folder where you can download all the binaries (e.g /tmp)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="fullpost"&gt;Go to the Centos site to find the binaries for freenx, nx and expect which will work for you. After a bit of checking I found that CentOS release numbers are matched up with their RHEL counterparts, so I downloaded the packages for the CentOS 5.X releases:&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="fullpost"&gt;wget http://mirror.centos.org/centos/5/extras/i386/RPMS/freenx-0.7.3-4.el5.centos.i386.rpm&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="fullpost"&gt;wget whttp://mirror.centos.org/centos/5/extras/i386/RPMS/nx-3.4.0-4.el5.centos.i386.rpm&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;span class="fullpost"&gt; Now install these rpms as follows:&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="fullpost"&gt;rpm -Uvh nx-3.4.0-4.el5.centos.i386.rpm&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="fullpost"&gt;rpm -Uvh freenx-0.7.3-4.el5.centos.i386.rpm&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;span class="fullpost"&gt;This may tell you that you need expect. So download and install it as well&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="fullpost"&gt;wget http://mirror.centos.org/centos/5/os/i386/CentOS/expect-5.43.0-5.1.i386.rpm&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="fullpost"&gt;rpm -Uvh expect-5.43.0-5.1.i386.rpm&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ol&gt;&lt;span class="fullpost"&gt;You are now done with the server side. Now download the client from http://www.nomachine.com/download.php. The client requires some set up. You can pick any name for the session. If it fails to connect to the server, you need to check if you disabled encryption - it may be trying to connect to ports which are not open on your linux box. So enable encryption. Also root account works in case you have that question! Also you must remember to copy paste the client key from the server as the link above notes in the client. The windows client comes coded with some default key which doesnt work.&lt;/span&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;Note: The client key is located on the server at: &lt;/span&gt;&lt;br /&gt;&lt;pre&gt;/var/lib/nxserver/home/.ssh/client.id_dsa.key&lt;/pre&gt;&lt;pre&gt;&lt;/pre&gt;&lt;pre&gt;and I found most of the other dependencies for RHEL 5 here (for some reason my yum update wouldnt work):&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;http://mirror.centos.org/centos/5/os/i386/CentOS/&lt;/pre&gt;&lt;pre&gt;&lt;/pre&gt;&lt;span class="fullpost"&gt;Ciao and enjoy!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-4717508996073349096?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/4717508996073349096/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=4717508996073349096' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/4717508996073349096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/4717508996073349096'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2010/06/nx-client-and-server-on-rhel.html' title='NX client and server for RHEL'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-5198586559733987064</id><published>2008-10-24T21:05:00.000-07:00</published><updated>2008-10-24T21:18:16.966-07:00</updated><title type='text'>Lucene! O' Lucene!</title><content type='html'>Well, I recently got a chance to evaluate search platforms and it turned out to be a very interesting experience. First, the obvious choice was lets use Google - but it turned out that Google's search engine while doing a great job on the internet is one of the least equipped when it comes to enterprise search - which is more a data mining job rather than what happens on the internet - cross linking, user clicks etc. For example Google lacks faceted search - which is by far the most touted and seeming useful feature when it comes to enterprise data getting exposed on an intranet or even customers. Even the Lucene/Solr combination supports faceted search (though I have yet to try that out!)&lt;span class="fullpost"&gt;&lt;/span&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Search Engine integration and customization still proves  to be a specialist job though there is a lot of open source which exists in the area. If you are trying to do anything out of the ordinary (like the corner search box which does simple keyword search) or you have a large amount of data then you are in for some heavy duty $$ spending. The major players in the search space are still Autonomy, Endeca, FAST, Recommind, Exalead, Dieselpoint, Vivisimo.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I did find a lot of open source which can be integrated with Lucene though: Nutch, Lingpipe, Gate and Carrot. You could do lots of nifty things with this. Also CNet and Factiva seem to use Lucene.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-5198586559733987064?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/5198586559733987064/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=5198586559733987064' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/5198586559733987064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/5198586559733987064'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/10/lucene-o-lucene.html' title='Lucene! O&apos; Lucene!'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-7301895371718268212</id><published>2008-08-12T08:43:00.001-07:00</published><updated>2008-08-12T08:43:50.902-07:00</updated><title type='text'>Choosing between Drupal, Joomla and RoR</title><content type='html'>I recently did a quote update for myself where the three strong contenders are when building community sites today. Ruby on Rails has been in news a lot as the coolest app around, in hot demand. Rails has become almost the tool of choice for startups today trying to build something quickly without fear of it getting outdated or hard to manage when they grow. A lot of rails hosting companies have also sprung up.&lt;br /&gt;&lt;br /&gt;It may also seem that the debate between Drupal and Joomla needs to be resolved once for all. I have evaluated the two myself a few times without any conclusive results as to which one is the clear winner. I think a lot depends on what you really want to do and your goals. &lt;br /&gt;&lt;br /&gt;For example, Joomla may be the ideal choice when it comes to quickly building up a site with nice features which come integrated or are easy to find. However if you need flexibility or are not sure how the site will evolve as time goes by (in other words if you think your website may be your business next year or so), then you need to look at Drupal and RoR. Joomla may not be a wise choice, at least based on what I have read or experimented with. So if you have a bounded task at hand, Joomla is quick, simple, elegant and beautiful.&lt;br /&gt;&lt;br /&gt;If you are building a content site and have ruled out Joomla based on the above, then Drupal may be something you want to seriously look at. Though it is based on PhP, a not so hot technology, it has the bones to last you for a long time. &lt;br /&gt;&lt;br /&gt;Finally, if you have a custom application you are building from scratch (so there is no previous baggage of Java or PhP)&amp;nbsp; targeted towards consumers or a community, Ruby on Rails should be your choice.&lt;br /&gt;&lt;br /&gt;Enterprise or B2B applications may be best suited for Java and you can pick the Spring/Hibernate framework there which is probably a much more safer approach considering it is much more mature and feature rich.&lt;br /&gt;&lt;br /&gt;Finally, here is a g&lt;a href="http://www.ibm.com/developerworks/ibm/osource/implement.html"&gt;reat series of articles on Drupal&lt;/a&gt; from IBM, who picked it as their platform of choice between Joomla and RoR (though that was back in 2006)&lt;br /&gt;   &lt;div class="flockcredit" style="text-align: right; color: #CCC; font-size: x-small;"&gt;Blogged with the &lt;a href="http://www.flock.com/blogged-with-flock" style="color: #999; font-weight: bold;" target="_new" title="Flock Browser"&gt;Flock Browser&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-7301895371718268212?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/7301895371718268212/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=7301895371718268212' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/7301895371718268212'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/7301895371718268212'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/08/choosing-between-drupal-joomla-and-ror.html' title='Choosing between Drupal, Joomla and RoR'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-8332743676490910924</id><published>2008-08-06T21:08:00.001-07:00</published><updated>2008-08-06T21:08:31.785-07:00</updated><title type='text'>Rails v/s Spring v/s J2EE</title><content type='html'>Well, after having researched and played around with Rails quite a bit, I have a few conclusions I have formed. For example, if you are developing a web Software as a Service model, the best framework or language to use may be Java/Spring since it is clean and lightweight compared to J2EE for doing something much simpler than a full enterprise class application which may be best done using the latter. It is also much more mature than Ruby/Rails which may be more suitable for consumer facing or retail applications like a video sharing or social networking site. If you are starting fresh, I'd highly recommend going with Ruby/Rails to reduce the development cycles required. Other good choices would be Python/Django or just PHP if that works.&lt;br /&gt;&lt;br /&gt;While this lays down a few things regarding application development, some important decisions need to be made regarding hosting. CentOS is clearly a winner when it comes to deciding which operating system to use (most stable and free for server hosting). However I am still not clear which "cloud" provider is the best to go with. Amazon's EC2 presents some very flexible options regarding that, but it doesn't seem to come with persistent data. Amazon S3 doesn't seem like a good candidate to fill that hole since it doesn't do a good job of handling a database. There seem to be a large number of good alternatives like &lt;a href="http://www.gogrid.com"&gt;GoGrid&lt;/a&gt;, &lt;a href="http://www.joyent.com"&gt;Joyent &lt;/a&gt;etc in this space which may give a flexible hosting option (which looks more traditional than Amazon EC2) which includes a database. Check these out and do comment if you have a recommendation...&lt;br /&gt;   &lt;div class="flockcredit" style="text-align: right; color: #CCC; font-size: x-small;"&gt;Blogged with the &lt;a href="http://www.flock.com/blogged-with-flock" style="color: #999; font-weight: bold;" target="_new" title="Flock Browser"&gt;Flock Browser&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-8332743676490910924?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/8332743676490910924/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=8332743676490910924' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/8332743676490910924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/8332743676490910924'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/08/rails-vs-spring-vs-j2ee.html' title='Rails v/s Spring v/s J2EE'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-3483927455691231516</id><published>2008-07-17T20:17:00.001-07:00</published><updated>2008-07-17T20:17:30.361-07:00</updated><title type='text'>The Back-end Wars</title><content type='html'>While there is a war brewing up on the web front end frameworks, viz AIR, Gears, Sproutcore and Silveright, many don't realize there is a similar war brewing on the web back-end technologies as well. The developer communities are gearing up to take each other on on different aspects like ease of use, frameworks, performance, size of community etc. Here are the major contenders: &lt;br /&gt;&lt;br /&gt;1. PHP&lt;br /&gt;2. Python&lt;br /&gt;3. Ruby&lt;br /&gt;4. Groovy&lt;br /&gt;5. Perl&lt;br /&gt;6. Java&lt;br /&gt;&lt;br /&gt;All of these technologies have evolved in the past few years to come up with a lot of MVC frameworks which help clean up the code and reduce fresh development cycles needed to launch new sites. For example Symfony is the most popular framework for PHP. Django is the winner for Python. Rails is leading the path for Ruby and Grails is leading the path for Groovy (which seems to be the path Java developers may pick going forward). In Java, the Springs framework is quite popular now. Perl developers pick Catalyst a lot of times. &lt;br /&gt;&lt;br /&gt;These are too many options. So which combination is going to be the winner? My viewpoint is that this is not going to be a decision based on performance of the software as many think, but more driven by adoption. For example Python and Django have been blessed by Google App Engine. That means its a clear winner. Ruby and RoR have had tremendous success in the last few years as new developers move to Ruby in large numbers because of the language features. Groovy provides a migration path for Java developers and I think it will have its share of success as long as the bridges to existing Java code work. I really don't see much future for PHP or Perl based frameworks going forward. Among Python, Ruby and Groovy, I think Python and Ruby will continue to grow at a much larger pace than Groovy community.&lt;br /&gt;   &lt;div class="flockcredit" style="text-align: right; color: #CCC; font-size: x-small;"&gt;Blogged with the &lt;a href="http://www.flock.com/blogged-with-flock" style="color: #999; font-weight: bold;" target="_new" title="Flock Browser"&gt;Flock Browser&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-3483927455691231516?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/3483927455691231516/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=3483927455691231516' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/3483927455691231516'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/3483927455691231516'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/07/back-end-wars.html' title='The Back-end Wars'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-1863940350035259455</id><published>2008-07-06T21:52:00.001-07:00</published><updated>2008-07-06T21:52:12.561-07:00</updated><title type='text'>Web 2.0 challenges for Ribbit</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a href='http://www.ribbit.com'&gt;Ribbit &lt;/a&gt;is an excellent example of what kind of challenges a telecom outfit can face in the Web 2.0 world. First, Ribbit is an innovator of kinds - it is perhaps the only flash/flex based phone I have seen which claims to provide connectivity to the PSTN. I don't fully understand what architecture they currently utilize, but its quite possible that they connect RTMP protocol to their traditional network on the proprietary softswitch they have on the backend.&lt;br/&gt;&lt;br/&gt;There are several game changing plays still left when it comes to VoIP and flash, so lets summarize those before we come back to ribbit. Real time streaming using Flash today requires the Flash MX media server in the network and currently my assumption is that it doesn't support SIP (though Adobe has included support for &lt;a href='http://www.speex.org/'&gt;Speex &lt;/a&gt;- an open source free codec in the &lt;a href='http://www.flashcomguru.com/index.cfm/2008/5/15/player-10-beta-speex-p2p-rtmfp'&gt;latest version 10 of Flash&lt;/a&gt;). When Flash does support SIP, a lot of new players doing VoIP and Flash integration will jump in. Flash is a proprietary technology and there are a lot of open source versions of software which attempt to reverse engineer Flash (yes, this is completely legal it seems). &lt;a href='http://osflash.org/red5'&gt;Red5&lt;/a&gt; is the most prominent of all which intends to act as a substitute for MX server. &lt;a href='http://www.gnu.org/software/gnash/'&gt;GNU flash&lt;/a&gt; is a client side substitute for Flash runtime.&lt;br/&gt;&lt;br/&gt;I also didn't fully understand Ribbit's business model when I was on their site, but that is perhaps due to the fact that they are very different from a traditional telecom company from this perspective. A traditional telecom company sells minutes when connecting to PSTN or monthly charges for telephone numbers you can buy. Ribbit's model is a little different here and they seem to be mostly trying to sell their VoIP and web capabilities to other companies with web based products which will benefit with Voice features. Salesforce.COM is one integration they have done. One suggestion from me would be the more traditional customer support market where companies would benefit with Voice support to improve post sales communications with customers. On the consumer side, Ribbit's model is not clear and I am quite surprised they don't have the valley approved "Ad Model" worked out yet for that ;)&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-1863940350035259455?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/1863940350035259455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=1863940350035259455' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/1863940350035259455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/1863940350035259455'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/07/web-20-challenges-for-ribbit.html' title='Web 2.0 challenges for Ribbit'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-7135494197853677542</id><published>2008-06-23T13:15:00.001-07:00</published><updated>2008-06-23T13:15:56.750-07:00</updated><title type='text'>The Zimbra for Mobile: Funambol</title><content type='html'>&lt;a href="http://www.funambol.com"&gt;Funambol &lt;/a&gt;has an open source approach to Mobile Email and Mobile Sync. Some say that &lt;a href="http://www.linuxdevices.com/news/NS9595069286.html"&gt;Funambol is out to take out RIM&lt;/a&gt;. They have a model similar to what I saw last with SugarCRM - free for Enterprise IT users or personal sync and you can buy the enterprise edition. I think that is a good model and the space needs a competitor as well. The software appears to be licensed under the AGPL, again I have seen that after a while. For those not familiar with &lt;a href="http://en.wikipedia.org/wiki/Affero_General_Public_License"&gt;AGPL&lt;/a&gt; (Affero GPL), it is a stricter form of traditional GPL license in that you cannot even host it w/o disclosing source code.&lt;br /&gt;   &lt;div class="flockcredit" style="text-align: right; color: #CCC; font-size: x-small;"&gt;Blogged with the &lt;a href="http://www.flock.com/blogged-with-flock" style="color: #999; font-weight: bold;" target="_new" title="Flock Browser"&gt;Flock Browser&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-7135494197853677542?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/7135494197853677542/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=7135494197853677542' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/7135494197853677542'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/7135494197853677542'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/06/zimbra-for-mobile-funambol.html' title='The Zimbra for Mobile: Funambol'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-4175313670746474196</id><published>2008-06-23T12:14:00.001-07:00</published><updated>2008-06-23T12:14:23.981-07:00</updated><title type='text'>Wix and Sprout: Online Flash Editors</title><content type='html'>If the thought of having to learn flash to make the delightful widgets and apps ever occurred to you, then here are two tools for you: &lt;a href="http://www.wix.com/"&gt;Wix &lt;/a&gt;and &lt;a href="http://sproutbuilder.com/"&gt;Sprout&lt;/a&gt;. I tried Sprout myself and it was extremely easy to use (I am still waiting for a Wix Invite). Sprout's focus seems to be the creation of widgets - small pockets of content with rich media you can put on your blogs or websites to promote anything you want or tell people about yourself (the new jazzed up way against the old boring image of yourself). Wix on the other hand is more focused on building a full website.&lt;br /&gt;&lt;br /&gt;Other differences include the fact that Sprout is on the West Coast (and Hawaii) and Wix is in NY and the former is kind of ahead in that it recently got its Series A with Polaris ($5M).&lt;br /&gt;   &lt;div class="flockcredit" style="text-align: right; color: #CCC; font-size: x-small;"&gt;Blogged with the &lt;a href="http://www.flock.com/blogged-with-flock" style="color: #999; font-weight: bold;" target="_new" title="Flock Browser"&gt;Flock Browser&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-4175313670746474196?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/4175313670746474196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=4175313670746474196' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/4175313670746474196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/4175313670746474196'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/06/wix-and-sprout-online-flash-editors.html' title='Wix and Sprout: Online Flash Editors'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-9065353372381747295</id><published>2008-05-14T06:39:00.000-07:00</published><updated>2008-05-14T06:51:04.021-07:00</updated><title type='text'>Linux on everything</title><content type='html'>Here is a company I came across who provide linux porting on various devices and what I found interesting was the home page which was on wordpress with some default layout. That's geeky. But it was nice and warm. I quickly bounced from their site to another interesting company: Jumpbox which is again into some interesting things. Simple, but interesting. A Jumpbox is basically software which runs on virtual servers (and they restrict it only to virtual servers) and it provides a kind of starter toolkit for typical applications like joomla, crm (mostly open source apps) etc. Its great for enterprises, but I am not sure how they manage to keep the IT guy away. Eventually to manage even a website - to configure any opensource app to run properly you need a geek or you better be one. Most open source apps are easy to install at a certain level of geekness ;) I mean they are not hard. I have found most of the systems they are talking about there relatively easy to install without knowing any details about the systems. Maybe I need to learn more. I think one of the more interesting things Jumpbox does is the subscription. Even with that I still don't know why I don't need the IT guy. And if I have one, why do I need Jumpbox? It seems like a small delta. Need to understand it better...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-9065353372381747295?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/9065353372381747295/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=9065353372381747295' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/9065353372381747295'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/9065353372381747295'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/05/linux-on-everything.html' title='Linux on everything'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-4669542578614087178</id><published>2008-05-02T21:05:00.000-07:00</published><updated>2008-05-02T21:10:32.488-07:00</updated><title type='text'>Evaluating Hosting Providers</title><content type='html'>Our next phase of network evolution is finally here which means I am evaluating a bunch of hosting providers for the services they provide and hope to share some information soon on different parameters like: (a) Where are the NOCs and why that is important for you (b) Availability of High Availability options (c) Cost etc. The providers I am looking at are: hostway, rackspace, servepath, theplanet, logicworks and godaddy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-4669542578614087178?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/4669542578614087178/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=4669542578614087178' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/4669542578614087178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/4669542578614087178'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/05/evaluating-hosting-providers.html' title='Evaluating Hosting Providers'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-6253103164184370514</id><published>2008-05-02T20:57:00.001-07:00</published><updated>2008-05-02T21:01:03.718-07:00</updated><title type='text'>Replicating MySQL over the WAN</title><content type='html'>I am researching how practical it is to do real-time replication of a MySQL database over a WAN SSH tunnel. What are the constraints caused by bandwidth, MySQL *blocking* bugs (apparently there are a few out there in older versions of MySQL such as 4.x) and how real-time is the real-time replication. How well does a Master/Slave or a Master/Master MySQL system work in this case?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-6253103164184370514?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/6253103164184370514/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=6253103164184370514' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/6253103164184370514'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/6253103164184370514'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/05/replicating-mysql-over-wan.html' title='Replicating MySQL over the WAN'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-2969638277082180894</id><published>2008-04-21T22:00:00.000-07:00</published><updated>2008-04-21T22:17:26.323-07:00</updated><title type='text'>Challenges in peering a P2P SIP Network with a traditional SIP Network</title><content type='html'>There are considerable challenges in peering a P2P SIP Network with a traditional SIP Network and this goes back to why SBCs exist really for peering. For example, authentication, policy enforcement, billing, accounting and media path steering are few of the functions performed by the SBCs and most of these only work when SBCs are used for peering with other SBCs!&lt;br /&gt;&lt;br /&gt;For example the SBC needs to authenticate calls coming from the P2P SIP Network at both the signaling and media level. Several methods may be used here: (i) A certificate mechanism may be employed between the P2P SIP endpoints and the SBC. However this may soon become unmanageable since the SBC will need to authenticate a lot of certificates on a lot of connections, each belonging to a unique P2P node. However it is within the realm of possibilities (ii) A SIP proxy may be used as a fixed peering point between the P2P SIP network and the SBC. The SBC can indirectly trust all media associated with calls exchanged with the trusted SIP proxy. This avoids having to aggregate media which can introduce unnecessary relaying. &lt;br /&gt;&lt;br /&gt;Hung calls may also result in the system when the P2P SIP nodes dies or suddenly becomes unreachable. SIP Session timers must be used to detect these calls and the SBC must implement and enforce these timers.&lt;br /&gt;&lt;br /&gt;All calls from the P2P SIP Network passed on to the SBC must also be authenticated and accounted since the SBC lies in a different administrative domain. What if the node is authentic (has the right certificate for example), but is not allowed to make calls since the bill has not been paid? It seems that the aggregate SIP Proxy is the best foot forward. This proxy will need to make sure the call is accounted for and the endpoint is authenticated in the P2P SIP domain itself.&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-2969638277082180894?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/2969638277082180894/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=2969638277082180894' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/2969638277082180894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/2969638277082180894'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/04/challenges-in-peering-p2p-sip-network.html' title='Challenges in peering a P2P SIP Network with a traditional SIP Network'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-6958283154343167143</id><published>2008-04-21T21:55:00.000-07:00</published><updated>2008-04-21T21:58:36.028-07:00</updated><title type='text'>Peering a P2P SIP Network and a traditional SIP Network</title><content type='html'>Peering between SIP Networks has been the subject of discussion in the SPEERMINT group of the IETF. Most of the work done has been focused on peering traditional SIP Networks using fixed signaling and media peering points (SBCs) which act as policy enforcement points for signaling and media traffic respectively.&lt;br /&gt;&lt;br /&gt;However, when you start looking at the problem of peering a P2P SIP network with a network having an SBC, a fresh set of problems surface. This kind of peering may be desired for connecting subscribers together or to provide PSTN access.&lt;br /&gt;&lt;br /&gt;Also, both Infrastructure P2P SIP and Application P2P SIP are in scope when looking at this form of peering. See my earlier posts on this blog for the difference between the two.&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-6958283154343167143?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/6958283154343167143/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=6958283154343167143' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/6958283154343167143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/6958283154343167143'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/04/peering-p2p-sip-network-and-traditional.html' title='Peering a P2P SIP Network and a traditional SIP Network'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-4211338338740949182</id><published>2008-04-21T21:43:00.000-07:00</published><updated>2008-04-21T21:54:16.493-07:00</updated><title type='text'>Skinning P2P SIP</title><content type='html'>Peer-to-peer telephony has always meant different things to different people. For example, the designers of SIP designed it to be peer-to-peer application level protocol where servers like the SIP Registrar and Proxy essentially provide the minimal roles of location and routing in a large SIP network. SIP Applications were designed to work end-to-end between two endpoints or between an endpoint and media server providing functions like conferencing and/or voicemail etc. On a different note, the P2P SIP working group in the IETF is focused entirely on making the location and routing functions in large SIP networks independent of centralized servers. P2P SIP can this be divided into &lt;span style="font-weight:bold;"&gt;“Infrastructure P2P SIP”&lt;/span&gt; which deals with location and routing issues and &lt;span style="font-weight:bold;"&gt;“Application P2P SIP”&lt;/span&gt; which deals with the complete P2P Implementation of SIP applications. In both cases the use of centralized and/or stateful servers is avoided. One of the main differences between infrastructure and application P2P SIP is the scale at which they are designed to operate. Application P2P SIP can operate at a much smaller scale of a few SIP nodes in the network while infrastructure SIP typically makes sense if there are at least a few thousand nodes in the network. Infrastructure SIP also tends to break down functions like NAT Traversal to make them more peer-to-peer while application P2P SIP does not really get into these aspects.&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-4211338338740949182?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/4211338338740949182/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=4211338338740949182' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/4211338338740949182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/4211338338740949182'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/04/skinning-p2p-sip.html' title='Skinning P2P SIP'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-4939098062231081520</id><published>2008-04-18T20:21:00.000-07:00</published><updated>2008-04-18T20:27:45.550-07:00</updated><title type='text'>Performance comparison of LOTS with an Asterisk</title><content type='html'>Transnexus provides a lot of interesting white papers on their website on OpenSER and Asterisk performance and these are really helpful when it comes to evaluating LOTS. Consider the following piece of data:&lt;br /&gt;&lt;br /&gt;Each GHz of Intel CPU running at 60% CPU utilization is worth 60 calls per second with an OpenSER and only 6 calls per second when it comes to Asterisk. This means a direct 10x hardware cost of Asterisk based system compared to LOTS!&lt;br /&gt;&lt;br /&gt;For the actual white papers, refer to &lt;a href="http://www.transnexus.com"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-4939098062231081520?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/4939098062231081520/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=4939098062231081520' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/4939098062231081520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/4939098062231081520'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/04/performance-comparison-of-lots-with.html' title='Performance comparison of LOTS with an Asterisk'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-5253614715690376010</id><published>2008-04-18T20:04:00.000-07:00</published><updated>2008-04-18T20:21:12.199-07:00</updated><title type='text'>The first perception of quality</title><content type='html'>Last month we spent a considerable time in debugging our VoIP network and proving out the feasibility of telephony grids and SIP trunks using the LOTS architecture I am working on. After hooking up a SIP trunk from several VoIP Providers and making sure call quality was great, several of our customers started complaining of bad service. The culprit turned out to be high PDD! Here is what was going on:&lt;br /&gt;&lt;br /&gt;LOTS uses OpenSER at the core of the network. By default this proxy has a timeout of 200s between an initial INVITE and when the next hop responds with a 18X. This was killing our service quality. Most of the SIP Providers are not able to figure out a good number from a bad one, so they end up routing our calls to such numbers to several termination networks and the PDD becomes huge. Here is how we ended up resolving this:&lt;br /&gt;&lt;br /&gt;1) Tune the OpenSER to have a much smaller timeout between the INVITE and 18x&lt;br /&gt;2) Introduce a local progress indication in our applications which run on the PC which indicate to users connection is in progress. Once the 18X is received, an actual ring tone is available.&lt;br /&gt;&lt;br /&gt;This really helps!&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-5253614715690376010?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/5253614715690376010/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=5253614715690376010' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/5253614715690376010'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/5253614715690376010'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/04/first-perception-of-quality.html' title='The first perception of quality'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-17220846884831544</id><published>2008-02-23T16:34:00.000-08:00</published><updated>2008-02-23T16:44:42.611-08:00</updated><title type='text'>Getting Asterisk to work behind a firewall</title><content type='html'>One of the main things you will need to get to work is Asterisk behind a firewall for the LOTS architecture. Asterisk doesn't support STUN and instead relies on pinholes and firewall policies to be tweaked. Here is what you need to do:&lt;br /&gt;&lt;br /&gt;1) Set the externip in sip.conf to the firewall's extenal IP address. This address is used by Asterisk in all its signaling messages which are directed outside the firewall. E.g  externip=123.123.123.123&lt;br /&gt;&lt;br /&gt;2) Set the localnet variable to indicate. This is perhaps the most important thing to do since it indicates to Asterisk what is private - which means it knows what is public from a NAT perspective. If you don't specify this, Asterisk will not apply the externip and will assume every address is private. Things may not work as you expect. E.g localnet=192.168.0.0/255.255.255.0&lt;br /&gt;&lt;br /&gt;3) In the firewall, open pinholes which redirect all traffic on the firewall IP address for the rtpstart and rtpend ports defined in rtp.conf to Asterisk.&lt;br /&gt;&lt;br /&gt;For more general info, you can look at &lt;a href="http://www.asteriskguru.com/tutorials/sip_nat_oneway_or_no_audio_asterisk.html"&gt;this link&lt;/a&gt; but it may have more than what you are looking for, so stay focused :).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-17220846884831544?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/17220846884831544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=17220846884831544' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/17220846884831544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/17220846884831544'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/02/getting-asterisk-to-work-behind.html' title='Getting Asterisk to work behind a firewall'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-6604535449749597603</id><published>2008-02-23T16:30:00.001-08:00</published><updated>2008-02-23T16:34:35.274-08:00</updated><title type='text'>Asterisk and LOTS</title><content type='html'>If you are wondering about Asterisk and LOTS, don't get confused. Asterisk has a place in LOTS - at the edge of the network. A starting application is Voicemail - which kicks in when a user (or a user group) is not reachable. LOTS doesn't allow endpoints to register with Asterisk and uses Asterisk as a gateway. We set up a SIP Peering connection between the OpenSER and Asterisk. What else is on the edge of the LOTS network? The answer is SBCs, Media Gateways, High Density conferencing servers etc.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-6604535449749597603?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/6604535449749597603/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=6604535449749597603' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/6604535449749597603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/6604535449749597603'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/02/asterisk-and-lots.html' title='Asterisk and LOTS'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-775266266551548848</id><published>2008-01-31T20:27:00.000-08:00</published><updated>2008-01-31T20:45:22.510-08:00</updated><title type='text'>What's the equivalent of the browser in LOTS?</title><content type='html'>No one talks about the browser when saying LAMP is the building block of Web 2.0. Browsers have gone through limitless standardization starting from transmission protocols like HTTP/XML to others which determine rendering of the digital content like CSS, Javascript etc. Browser world is dominated by few very sophisticated players like Firefox, IE etc which differ mainly in how fast they run, what management features they provide etc. This is completely different from LOTS. In LOTS, the equivalent of the browser is a smart VoIP client. The only standard for VoIP which exists out there is SIP. Like HTTP, SIP can run between LOTS server and the VoIP client. However, SIP can also run between clients themselves since its a P2P protocol. The VoIP clients can be visualized as implementing a distributed Application layer between themselves which is very unlike the web world. The clients can also coordinate between themselves to implement other sophisticated VoIP functions as a GRID. This can get very interesting compared to what today's browsers can do. &lt;br /&gt;&lt;br /&gt;The key thing to realize is that the LOTS server itself has none of the common VoIP Server functions and these if required are implemented on the VoIP clients.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-775266266551548848?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/775266266551548848/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=775266266551548848' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/775266266551548848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/775266266551548848'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/01/whats-equivalent-of-browser-in-lots.html' title='What&apos;s the equivalent of the browser in LOTS?'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-2848803604551550856</id><published>2008-01-29T13:36:00.000-08:00</published><updated>2008-02-22T19:21:49.453-08:00</updated><title type='text'>NAT Traversal Servers for SIP</title><content type='html'>After a long time, I Googled out for open source and commercial standards based NAT Traversal servers which can be used to put together a solution for SIP based networks. The results are appalling... The industry is still in paralysis with there being more whitepapers on the topic than something substantial.&lt;br /&gt;&lt;br /&gt;I only found the following solutions: &lt;a href="http://www.eyeball.com/"&gt;Eyeball Networks&lt;/a&gt;, &lt;a href="http://www.estacado.net/"&gt;Estacado&lt;/a&gt;and &lt;a href="http://www.paradial.com"&gt;Paradial&lt;/a&gt;. I tried contacting Estacado and didnt hear back from them at all - which is always a bad sign. That leaves two.&lt;br /&gt;&lt;br /&gt;Apart from these the following two options are available as well.&lt;br /&gt;&lt;a href="http://www.ag-projects.com/index.php?option=com_weblinks&amp;catid=66&amp;Itemid=126"&gt;&lt;br /&gt;OpenSER Mediaproxy&lt;/a&gt; &lt;br /&gt;SBC and firewall options&lt;br /&gt;&lt;br /&gt;Other than these, I already posted two open source STUN servers in past posts on this blog.&lt;br /&gt;&lt;br /&gt;Just got to know that Radvision also makes a STUN server, though you have to ask for it. Not sure what the intentions or focus is, but it seems to support the latest STUN bis specs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-2848803604551550856?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/2848803604551550856/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=2848803604551550856' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/2848803604551550856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/2848803604551550856'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/01/nat-traversal-servers-for-sip.html' title='NAT Traversal Servers for SIP'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-5109087843073938656</id><published>2008-01-29T11:49:00.001-08:00</published><updated>2008-01-29T11:54:02.056-08:00</updated><title type='text'>Two Retail VoIP Carriers I would recommend</title><content type='html'>If you need to use your SIP softphone for some manual dialing and get good rates and good quality, try out &lt;a href="http://www.freecall.com"&gt;FreeCall &lt;/a&gt;and &lt;a href="http://www.voipbuster.com"&gt;VoipBuster&lt;/a&gt;. What do they offer?&lt;br /&gt;&lt;br /&gt;1. Good Clean Standards based VoIP Connectivity using SIP&lt;br /&gt;2. G.711, G.729 and iLBC codecs&lt;br /&gt;3. RFC 2833 DTMF&lt;br /&gt;4. Full NAT Traversal capabilities (no STUN required)&lt;br /&gt;5. Good quality&lt;br /&gt;6. Cheap rates with lots of free calling within U.S&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-5109087843073938656?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/5109087843073938656/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=5109087843073938656' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/5109087843073938656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/5109087843073938656'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/01/two-retail-voip-carriers-i-would.html' title='Two Retail VoIP Carriers I would recommend'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-9011868372308971258</id><published>2008-01-29T11:34:00.001-08:00</published><updated>2008-01-29T11:47:39.510-08:00</updated><title type='text'>How to publish an image link in your blogger template</title><content type='html'>Blogger provides some easy ways to post images inside the posts. However, when it comes to posting one as part of your template so its visible all the time on the left or right or top center bar, then you need to search around a bit. I did. To keep it short, just follow the following two links and you are done...&lt;br /&gt;&lt;br /&gt;http://betabloggerfordummies.blogspot.com/2007/01/making-image-link.html&lt;br /&gt;http://www.bloggerforum.com/modules/xfsection/article.php?articleid=11&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-9011868372308971258?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/9011868372308971258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=9011868372308971258' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/9011868372308971258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/9011868372308971258'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/01/how-to-publish-image-link-in-your.html' title='How to publish an image link in your blogger template'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-4955681261651959695</id><published>2008-01-29T10:48:00.000-08:00</published><updated>2008-01-29T10:53:08.167-08:00</updated><title type='text'>How to use a third party SIP softphone with your Vonage Account</title><content type='html'>This is real easy. The Vonage server uses SIP in a very standards compliant way and makes use of SIP forking etc which allows multiple phones to register as well.&lt;br /&gt;&lt;br /&gt;Here are some pointers to help:&lt;br /&gt;&lt;br /&gt;1) The vonage SIP Proxy is basically 216.115.20.41 or sphone.vopr.vonage.net&lt;br /&gt;2) You will need to get a userid and password for your softphone account from Vonage.&lt;br /&gt;&lt;br /&gt;That's pretty much it. After that you can register any standards compliant SIP Softphone like &lt;a href="http://www.sjphone.org"&gt;SJPhone &lt;/a&gt;or a more sophisticated solution like &lt;a href="http://www.webastra.net"&gt;WebAstra &lt;/a&gt;to work with your  Vonage account!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-4955681261651959695?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/4955681261651959695/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=4955681261651959695' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/4955681261651959695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/4955681261651959695'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/01/how-to-use-third-party-sip-softphone.html' title='How to use a third party SIP softphone with your Vonage Account'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-7402092819970027893</id><published>2008-01-29T07:01:00.000-08:00</published><updated>2008-01-29T07:02:46.594-08:00</updated><title type='text'>mediaproxy and natproxy options for OpenSER</title><content type='html'>Checkout:&lt;br /&gt;&lt;br /&gt;http://www.voip-info.org/wiki/view/OpenSER+And+RTPProxy&lt;br /&gt;http://www.voip-info.org/wiki/view/OpenSER+And+Mediaproxy&lt;br /&gt;&lt;br /&gt;Make sure to check out the documentation of these modules on OpenSER website.&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-7402092819970027893?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/7402092819970027893/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=7402092819970027893' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/7402092819970027893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/7402092819970027893'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/01/mediaproxy-and-natproxy-options-for.html' title='mediaproxy and natproxy options for OpenSER'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-7067692798649243430</id><published>2008-01-29T06:56:00.000-08:00</published><updated>2008-01-29T07:00:01.636-08:00</updated><title type='text'>Turning on Signaling NAT Traversal in OpenSER</title><content type='html'>&lt;blockquote&gt;loadmodule "nathelper.so"&lt;br /&gt;modparam("nathelper", "rtpproxy_disable", 1)&lt;br /&gt;&lt;br /&gt;if (uri==myself) {&lt;br /&gt;                force_rport();&lt;br /&gt;&lt;br /&gt;                if (method=="INVITE") {&lt;br /&gt;&lt;br /&gt;                        if (nat_uac_test("7")) {&lt;br /&gt;                                fix_nated_contact();&lt;br /&gt;                        };&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;                route(1);&lt;br /&gt;        };&lt;br /&gt;route[1] {&lt;br /&gt;&lt;br /&gt;        t_on_reply("1");&lt;br /&gt;&lt;br /&gt;        # send it out now; use stateful forwarding as it works reliably&lt;br /&gt;        # even for UDP2TCP&lt;br /&gt;        if (!t_relay()) {&lt;br /&gt;                sl_reply_error();&lt;br /&gt;        };&lt;br /&gt;        exit;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;onreply_route[1] {&lt;br /&gt;&lt;br /&gt;        if (nat_uac_test("1")) {&lt;br /&gt;                fix_nated_contact();&lt;br /&gt;        };&lt;br /&gt;}&lt;/blockquote&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-7067692798649243430?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/7067692798649243430/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=7067692798649243430' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/7067692798649243430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/7067692798649243430'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/01/turning-on-signaling-nat-traversal-in.html' title='Turning on Signaling NAT Traversal in OpenSER'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-7104481705462417423</id><published>2008-01-29T06:44:00.000-08:00</published><updated>2008-01-29T06:54:03.532-08:00</updated><title type='text'>NAT Traversal choices for LOTS</title><content type='html'>YOu will face this problem when deploying LOTS since there are lots of viable alternatives for doing this. When thinking about getting SIP signaling seamlessly through all the involved NAT boxes, you need to break up the problem into signaling NAT Traversal and Media NAT traversal since both may be solved at different points of the network. Most people think there are multiple alternatives of doing NAT Traversal, but in my opinion the best architecture is the following:&lt;br /&gt;&lt;br /&gt;1) Do Signaling NAT Traversal always at the first hop proxy. This would be the OpenSER.&lt;br /&gt;2) Split the media NAT Traversal problem into two. If you have UA to UA traffic, then use a combination of STUN and ICE. If your UAs are behind the same NAT, then you definitely need ICE. Otherwise you may not need ICE. There are other complications with ICE and reasons to avoid it as I will explain in another entry. If you don't control the NAT box and are worried that symmetric NATs will exist, then you need ICE with a TURN server to solve the problem.&lt;br /&gt;3) For PSTN Calls, do the media NAT Traversal at the termination gateway or SBC. Do not overload the STUN server with traversing pinholes for PSTN calls. There is a very good reason for this.&lt;br /&gt;&lt;br /&gt;If 2-3 sound too complicated, then there are two alternatives in my order of preference:&lt;br /&gt;&lt;br /&gt;I) Use the OpenSER box with media/rtpproxy modules. This will solve your media nat traversal problem&lt;br /&gt;II) Use an SBC. An SBC can be quite expensive and may end up costing you more in bandwidth costs as well, but it can solve 1-3 at a single point in the network.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-7104481705462417423?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/7104481705462417423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=7104481705462417423' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/7104481705462417423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/7104481705462417423'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/01/nat-traversal-choices-for-lots.html' title='NAT Traversal choices for LOTS'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-1633322837040728967</id><published>2008-01-28T21:15:00.000-08:00</published><updated>2008-01-28T21:28:42.589-08:00</updated><title type='text'>Is Jajah just a fancy Asterisk Outfit?</title><content type='html'>Its interesting to read about all the &lt;a href="http://blog.jajah.com/index.php?/archives/30-JAJAH-and-Asterisk-Lesson-1.html"&gt;interoperability Jajah has with Asterisk boxes and providers&lt;/a&gt; until you come to a point and start wondering - what is the difference between the thousands of Asterisk based providers on the internet and a company like Jajah. What sets the two apart? Lets dive into that.&lt;br /&gt;&lt;br /&gt;A more in depth look at Jajah reveals that &lt;a href="http://blog.jajah.com/index.php?/archives/26-Lets-have-a-SIP-with-JAJAH.html"&gt;they also support SIP&lt;/a&gt; and I am probably &lt;a href="http://messenger.es/voxalot-un-clon-de-jajah-con-sip_443/en/"&gt;not the first one raising such a question&lt;/a&gt;. Blogs such as &lt;a href="http://www.masternewmedia.org/Skype/videoconferencing_and_voip/Skype_killer_offers_more_features.htm"&gt;this one&lt;/a&gt; which rave about Jajah give out a lot of misleading information - like Jajah is a peer-to-peer system like Skype. Well... some times too much advertising can turn people off as well.&lt;br /&gt;&lt;br /&gt;What is clear is that Jajah has done a good job in differentiating themselves from other VoIP providers by focusing on mobile markets and better marketing. They definitely think a lot bigger than a lot of other Asterisk providers and smaller VoIP outfits I have come across. To summarise, Jajah is cool because they have done a good job on marketing and staying ahead of others, for example &lt;a href="http://blog.jajah.com/index.php?/archives/172-Apple-iPhone-+-Jajah.html"&gt;offering iPhone support&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-1633322837040728967?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/1633322837040728967/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=1633322837040728967' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/1633322837040728967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/1633322837040728967'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/01/is-jajah-just-fancy-asterisk-outfit.html' title='Is Jajah just a fancy Asterisk Outfit?'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-2560128200546125385</id><published>2008-01-28T21:00:00.000-08:00</published><updated>2008-01-28T21:05:52.956-08:00</updated><title type='text'>SER Compatibility with SIPX and PJSIP</title><content type='html'>I see a lot of people asking questions about getting SER to work with SIPX. We got that working. However due to some reasons, we had to switch to the &lt;a href="http://www.pjsip.org"&gt;PJSIP &lt;/a&gt;SIP Stack. Due to that we got to do some comparison between SIPX and PJSIP on their SER or &lt;a href="http://www.openser.org"&gt;OpenSER &lt;/a&gt;compatibility. It seems to me that &lt;a href="http://www.sipfoundry.org"&gt;SIPX &lt;/a&gt;required more hard work than PJSIP to work easily with SER or OpenSER. For example we would find issues with SUBSCRIBE challenges SER would generate which SIPX would not be able to handle and required some modifications to the SIPX source. Right now, we have OpenSER working with PJSIP clients w/o doing any special modifications on either side.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-2560128200546125385?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/2560128200546125385/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=2560128200546125385' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/2560128200546125385'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/2560128200546125385'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/01/ser-compatibility-with-sipx-and-pjsip.html' title='SER Compatibility with SIPX and PJSIP'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-1894182527151069700</id><published>2008-01-28T19:17:00.000-08:00</published><updated>2008-01-28T19:44:32.749-08:00</updated><title type='text'>Vista Sound Quality Issues with VoIP Apps</title><content type='html'>Today we had a *fun* time trying to get our application working on Vista. I was so glad Bill Gates was leaving Microsoft which would give Microsoft an opportunity to change. Maybe Gates was meant to be a politician or a banker and thats what he should really focus on. Anyway, let me do the needless by offering you some advice on porting your XP application to Vista. My advice is: GET ON IT!&lt;br /&gt;&lt;br /&gt;Our testing on Vista is full of tragedies which include a complete hard disk crash of the Lenovo T61. It seems that hard disk crashes are common on Vista PCs as Vista gets confused about the Boot sector on the disk. Anyway, Lenovo shipped us a new disk and we were able to get back on track in a week. Then the next series of bugs related to VoIP hit us.&lt;br /&gt;&lt;br /&gt;Our app uses a VoIP protocol called STUN which is used to traverse NATs. For some reasons STUN clients refuses to work on an Vista PC even after we had the whole Windows firewall turned off. After solving that issue (by basically disabling STUN), we found that while you could play good audio on the PC, the remote end (typically a phone in our case) had poor audio quality. It seems Vista introduces a new module called MMCSS which may be the source of a whole bunch of scheduling and prioritization problems with playing media and network traffic (both of which happen simultaneously in VoIP apps). Completely confused why Windows would do something like this, we started a Skype voice call. While Skype was certainly behaving better, the call quality was not that great and exhibited a lot of noise as well.&lt;br /&gt;&lt;br /&gt;Next, we started playing with the Windows XP compatibility settings for our app. God, this was the worst thing to tamper with. Now our application wouldn't even come up. It seems Vista has enough knobs and levers for the average Joe to kill himself!&lt;br /&gt;&lt;br /&gt;For people who are getting same issues, I suggest looking at the following pages on the internet and trying out the fixes. We are still working on testing this out.&lt;br /&gt;&lt;br /&gt;http://courtneymalone.com/2007/08/28/a-note-on-vista-network-speed/&lt;br /&gt;http://blogs.technet.com/markrussinovich/archive/2007/08/27/1833290.aspx&lt;br /&gt;&lt;br /&gt;Vista SP1 is not out yet. &lt;a href="http://windowsvistablog.com/blogs/windowsvista/pages/windows-vista-service-pack-1-beta-whitepaper.aspx"&gt;Its still in Beta&lt;/a&gt;. &lt;a href="http://www.news.com/2100-1016-6209481.html?tag=tb"&gt;I recommend going back to XP until SP1 is out&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-1894182527151069700?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/1894182527151069700/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=1894182527151069700' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/1894182527151069700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/1894182527151069700'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/01/vista-sound-quality-issues-with-voip.html' title='Vista Sound Quality Issues with VoIP Apps'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-4572693956960389074</id><published>2008-01-25T16:06:00.000-08:00</published><updated>2008-01-25T16:12:54.183-08:00</updated><title type='text'>STUN Servers</title><content type='html'>Does anyone know of a stable STUN server which can handle lots of load (ie., STUN transactions per second)? We have tried the &lt;a href="http://sourceforge.net/projects/stun/"&gt;Vovida STUN Server&lt;/a&gt;, but it gets hosed up intermittently. Not sure what is the problem behind that yet. We are looking into it though. If anyone has similar problems, please ping me...&lt;br /&gt;&lt;br /&gt;There is &lt;a href="http://developer.berlios.de/projects/mystun/"&gt;another STUN server&lt;/a&gt; which is in Alpha state. We tested this server and preliminary testing seems to yield good results.&lt;br /&gt;&lt;br /&gt;From a service standpoint, the XTEN STUN Server (stun.xten.com) seems pretty stable. I am not sure what they are using though. Is that a commercial or open source server?&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-4572693956960389074?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/4572693956960389074/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=4572693956960389074' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/4572693956960389074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/4572693956960389074'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/01/stun-servers.html' title='STUN Servers'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-5670143122264142600</id><published>2008-01-25T15:45:00.000-08:00</published><updated>2008-01-25T16:06:22.183-08:00</updated><title type='text'>Error Handling in OpenSER for LOTS</title><content type='html'>In SIP it is a little tricky on what kinds of errors you want to handle and go to the next route you have. For example, errors like 486 or 404 are not standard failure errors which should trigger a failover route. These errors are from the network telling you that the number is either not right or the called party is not accepting calls at this time. If we keep trying the same number from a different gateway, chances are we will be wasting time and network resources! I put together some basic config I found on the internet which should handle this scenario:&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;Main Route Logic&lt;br /&gt;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++&lt;br /&gt;    t_on_failure("1");&lt;br /&gt;   t_on_reply("1");&lt;br /&gt;           rewritehostport("gatewayip:gatewayport");&lt;br /&gt;    if (!t_relay()) {&lt;br /&gt;     sl_reply_error();&lt;br /&gt;    }&lt;br /&gt;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++&lt;br /&gt;onreply_route[1] {&lt;br /&gt; if( status =~ "18[0-9]" ) {&lt;br /&gt;  t_on_failure("0");&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt; failure_route[1]&lt;br /&gt; {&lt;br /&gt;  rewritehostport("backupip:backupport");&lt;br /&gt;  append_branch();&lt;br /&gt;  t_relay();&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-5670143122264142600?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/5670143122264142600/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=5670143122264142600' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/5670143122264142600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/5670143122264142600'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/01/error-handling-in-openser-for-lots.html' title='Error Handling in OpenSER for LOTS'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-7269841643165028870</id><published>2008-01-25T08:30:00.000-08:00</published><updated>2008-01-25T08:32:42.893-08:00</updated><title type='text'>Methods to cut out your posts and insert a Read me more link...</title><content type='html'>This is a common problem with Blogger. The posts need to be truncated beyond a certain length and then a "Read more" link makes more sense. I am sure I saw something on the internet which automatically did this based on word counts, but I can't seem to find the site again. The manual way of doing it is specified by &lt;a href="http://help.blogger.com/bin/answer.py?hl=en&amp;answer=42215"&gt;Blogger itself&lt;/a&gt;. That's what I am using for now. If someone knows of a better way based on wordcounts, that would be great...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-7269841643165028870?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/7269841643165028870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=7269841643165028870' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/7269841643165028870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/7269841643165028870'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/01/methods-to-cut-out-your-posts-and.html' title='Methods to cut out your posts and insert a Read me more link...'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-299087427450553116</id><published>2008-01-25T07:05:00.001-08:00</published><updated>2008-01-25T08:24:31.247-08:00</updated><title type='text'>Monitoring the health of OpenSER</title><content type='html'>Here is another detail which I spent a few hours testing and getting to work. If you worried about the health of your OpenSER (single server), use the tool called &lt;a href="http://www.openser.org/dokuwiki/doku.php/install:configure-initd-script"&gt;Monit&lt;/a&gt;. Do not use chkconfig etc (on linux) since Monit effectively will take over that part including the openserctl start and stop commands. After the installation, things are fully transparent and you can still use your openserctl stop/start (which invokes monit).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-299087427450553116?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/299087427450553116/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=299087427450553116' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/299087427450553116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/299087427450553116'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/01/monitoring-health-of-openser.html' title='Monitoring the health of OpenSER'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-1732098759830017668</id><published>2008-01-25T06:47:00.001-08:00</published><updated>2008-01-25T06:53:57.957-08:00</updated><title type='text'>Compiling OpenSER with MySQL</title><content type='html'>Just noticed that the default make for openser1.2.x does not include the MySQL package. After tinkering around the INSTALL doc and various other things I basically went into the Makefile and found that the package was excluded by default). If you are lazy like I am, just search in the Makefile and turn off the exclusion of the mysql package. After that, do a "make modules" followed by a "make install" and then run the "openser_mysql.sh  create" script which is all what you need to do. After this you can include the module and use it for all persistent storage for openser. Ciao!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-1732098759830017668?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/1732098759830017668/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=1732098759830017668' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/1732098759830017668'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/1732098759830017668'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/01/compiling-openser-with-mysql.html' title='Compiling OpenSER with MySQL'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-7582256514546195226</id><published>2008-01-24T20:57:00.000-08:00</published><updated>2008-01-25T08:27:29.456-08:00</updated><title type='text'>How to set up an SER for LOTS</title><content type='html'>I recently set up an &lt;a href="http://www.openser.org"&gt;OpenSER &lt;/a&gt;for the LOTS architecture to work and here I am sharing some of the configuration which is useful to make it work the way we want for LOTS. BTW, I am not including all the config here in this article. Some of it is spread through other blog posts on this blog. The part I am looking at over here is the SIP Trunk and there could be several of them acting as backups for each other. Click on Read more below for more details...&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;We use a module called &lt;a href="http://www.openser.org/docs/modules/1.2.x/dispatcher.html"&gt;dispatcher &lt;/a&gt;in OpenSER which allows round robin through the trunks. What I dont like about the dispatcher module at this point was the fact that the list of gateways was in a file and not in the database. However, it was much easier to configure than the &lt;a href="http://www.openser.org/docs/modules/1.2.x/lcr.html"&gt;Least Cost Routing Module&lt;/a&gt; which apparently can be used and allows configuration of gateways in the database. The LCR module as it says does more than what I need, but in your case, could be useful instead of the Dispatcher. Anyway, 'here is config:&lt;br /&gt;&lt;br /&gt;First you need the dispatcher.list file and the location of this file by default in the openser binary directory:&lt;br /&gt;&lt;br /&gt;++++++++++++++++++++++++++++++++++++++++&lt;br /&gt;# $Id: dispatcher.list 2 2005-06-13 16:47:24Z bogdan_iancu $&lt;br /&gt;# dispatcher destination sets&lt;br /&gt;#&lt;br /&gt;&lt;br /&gt;# proxies&lt;br /&gt;2 sip:127.0.0.1:5080&lt;br /&gt;2 sip:127.0.0.1:5082&lt;br /&gt;&lt;br /&gt;# gateways&lt;br /&gt;1 sip:127.0.0.1:7070&lt;br /&gt;1 sip:127.0.0.1:7072&lt;br /&gt;1 sip:127.0.0.1:7074&lt;br /&gt;++++++++++++++++++++++++++++++++++++++++&lt;br /&gt;&lt;br /&gt;You must set the the dispatcher module config in the main openser.cfg file as follows:&lt;br /&gt;&lt;br /&gt;++++++++++++++++++++++++++++++++++++++++&lt;br /&gt;&lt;br /&gt;# -- dispatcher params --&lt;br /&gt;# we are in fallover mode... set flag=2&lt;br /&gt;modparam("dispatcher", "flags", 2 )&lt;br /&gt;&lt;br /&gt;++++++++++++++++++++++++++++++++++++++++&lt;br /&gt;&lt;br /&gt;In your route function which hits the call first, you must select the list of gateways from the dispatcher.list file. Note that our file above has two lists:&lt;br /&gt;&lt;br /&gt;++++++++++++++++++++++++++++++++++++++++&lt;br /&gt;ds_select_domain("1","4");&lt;br /&gt;++++++++++++++++++++++++++++++++++++++++&lt;br /&gt;&lt;br /&gt;After this, you must set the failure route:&lt;br /&gt;&lt;br /&gt;++++++++++++++++++++++++++++++++++++++++&lt;br /&gt;        t_on_failure("2");&lt;br /&gt;++++++++++++++++++++++++++++++++++++++++&lt;br /&gt;&lt;br /&gt;In the failure route, you basically move forward with the list. Note that when all entries in the list are used up, you must handle the scenario:&lt;br /&gt;&lt;br /&gt;++++++++++++++++++++++++++++++++++++++++&lt;br /&gt;if( ds_next_domain() ){&lt;br /&gt;                t_on_failure("2");&lt;br /&gt;}&lt;br /&gt;++++++++++++++++++++++++++++++++++++++++&lt;br /&gt;&lt;br /&gt;And that's it. We are done!&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-7582256514546195226?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/7582256514546195226/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=7582256514546195226' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/7582256514546195226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/7582256514546195226'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/01/how-to-set-up-ser-for-lots.html' title='How to set up an SER for LOTS'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-8674790310874599944</id><published>2008-01-23T06:44:00.000-08:00</published><updated>2008-01-23T06:47:06.607-08:00</updated><title type='text'>Getting a free U.S number?</title><content type='html'>I have known this for a while now, but I realize many people do not know about this cool service from &lt;a href="http://www.ipkall.com"&gt;IPKall&lt;/a&gt;: You can get a free number in 4-5 washington state area codes for the U.S from IPKall. So what do you do with that? Ok, here is what we do - we take that number and tell IPKall to pass it as a SIP call to &lt;a href="http://www.3clogic.com"&gt;our system&lt;/a&gt; which then distributed it to a bunch of people like agents in a call center. Cool. Isn't it?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-8674790310874599944?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/8674790310874599944/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=8674790310874599944' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/8674790310874599944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/8674790310874599944'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/01/getting-free-us-number.html' title='Getting a free U.S number?'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-7428905406885939181</id><published>2008-01-22T20:39:00.000-08:00</published><updated>2008-01-25T08:28:45.914-08:00</updated><title type='text'>Why LOTS is internet friendly</title><content type='html'>Its interesting to look at the following question - what makes the LOTS architecture friendly to the internet compared to other methods of deploying VoIP on the internet. For example, Hosted IP Centrex, Asterisk based systems are some of the VoIP deployments which are not LOTS compliant and can be deployed on the internet. So here is my argument why they are not needed and why they are not friendly to the internet style architecture. Click on Read more below for details...&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;The first thing to realize is that the architecture of the internet comprises of a stateless network core and intelligence on the edge (where a lot of PCs/hosts or internet servers reside). The internet provides a location function and a method to route IP packets from A to B and it does this really well. Gateways, switches and routers can go up/down w/o degrading the network. The internet is built like this for a reason - to provide robust behavior.&lt;br /&gt;&lt;br /&gt;In our case, servers which sit in the network core for Hosted IP Centrex for example are smart servers which break this network property of the internet (though such applications are completely IP based!).&lt;br /&gt;&lt;br /&gt;OpenSER (or SER) in the case of LOTS is a stateless or merely a transaction stateful server which satisfies this requirement and hence is what I call - "Internet friendly". If the server goes down, it can come right back up in a minute w/o disrupting service.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-7428905406885939181?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/7428905406885939181/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=7428905406885939181' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/7428905406885939181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/7428905406885939181'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/01/why-lots-is-internet-friendly.html' title='Why LOTS is internet friendly'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-8362380634462839865</id><published>2008-01-22T20:25:00.000-08:00</published><updated>2008-01-22T20:31:24.767-08:00</updated><title type='text'>To my geeky friends: Think ahead!</title><content type='html'>These two articles are really good if you are thinking of a new idea on your own, especially something on the Web (maybe Web 2.0). The first question to ask is how are you going to monetize your site. &lt;a href="http://www.ojr.org/ojr/wiki/make_money/"&gt;This article gets you to put on the thinking cap and think ahead about what ballpark you may be talking about&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Finally, &lt;a href="http://www.inc.com/magazine/20070601/features-how-to-kill-a-great-idea.html"&gt;an illustrative story on Friendster&lt;/a&gt; is illuminating. This article is brilliantly written and applies to a lot of companies - its just that few choose to write in such detail about failure and other business misadventures.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-8362380634462839865?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/8362380634462839865/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=8362380634462839865' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/8362380634462839865'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/8362380634462839865'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/01/to-my-geeky-friends-think-ahead.html' title='To my geeky friends: Think ahead!'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-1855471889256069705</id><published>2008-01-22T20:22:00.000-08:00</published><updated>2008-01-22T20:24:34.716-08:00</updated><title type='text'>LAMP on the way out...</title><content type='html'>I think the future of LAMP is at stake with the &lt;a href="http://techpiper.blogspot.com/2008/01/sun-to-purchase-mysql.html"&gt;recent Sun purchase of MySQL&lt;/a&gt;. I assume Sun is finding ways of retaining the “.” in “.com” slogan. The while Web 2.0 is built upon LAMP. Sun's acquisition of MySQL is cheap compared to Oracle's acquisition of BEA, but Sun's goals will be clear only after a while. &lt;br /&gt;&lt;br /&gt;Question is whether it is possible that the popular alternative to MySQL - Postgres can step up and become the defacto standard. I believe the window of opportunity exists to change LAMP to LAPP...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-1855471889256069705?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/1855471889256069705/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=1855471889256069705' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/1855471889256069705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/1855471889256069705'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/01/lamp-on-way-out.html' title='LAMP on the way out...'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-638937325757838959</id><published>2008-01-22T20:18:00.001-08:00</published><updated>2008-01-22T20:18:45.674-08:00</updated><title type='text'>Ads Layout which makes sense</title><content type='html'>Here is a good &lt;a href="https://www.google.com/adsense/support/bin/answer.py?answer=17954"&gt;"Hot Areas" diagram from Google&lt;/a&gt; which draws attention to common hot areas where ads placed on Blogs work. Take a look since this may be important to a few of you who want to blog for money!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-638937325757838959?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/638937325757838959/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=638937325757838959' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/638937325757838959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/638937325757838959'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/01/ads-layout-which-makes-sense.html' title='Ads Layout which makes sense'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-5465779115624884029</id><published>2008-01-21T15:56:00.000-08:00</published><updated>2008-01-21T16:09:29.485-08:00</updated><title type='text'>LOTS = A LAMP for Voice 2.0?</title><content type='html'>If LAMP is the fundamental building block of Web 2.0, then what is the fundamental building block for Voice 2.0? I firmly believe that building block is &lt;span style="font-weight:bold;"&gt;LOTS&lt;/span&gt; (Linux+OpenSER+sip Tunks+STUN). &lt;br /&gt;&lt;br /&gt;Most folks who are doing voice on the net are quite close to a LOTS based architecture and they probably don't realize the pure generality of how they arrived at it and how much time it took. I believe today getting LOTS to work is still a *LOT* harder than getting LAMP to work for an internet website. Just like there are a lot of ways apart from LAMP to build a website, but if you use LAMP, you can do it in half an hour and find hundreds of other people who will support you, there are a dozen different ways of doing voice on the internete. It just happens that it seems a lot easier to work with LOTS. So how does a LOTS based architecture work for voice and what are all the components involved? How simple is it to put it together? How much time does it take - half an hour? I will provide some more details on that in this blog...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-5465779115624884029?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/5465779115624884029/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=5465779115624884029' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/5465779115624884029'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/5465779115624884029'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/01/lots-lamp-for-voice-20.html' title='LOTS = A LAMP for Voice 2.0?'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-6088865580971900148</id><published>2008-01-21T15:23:00.000-08:00</published><updated>2008-01-21T15:54:34.241-08:00</updated><title type='text'>A fail-safe architecture for Voice on the Internet</title><content type='html'>Innovation on the internet has extremely low barriers to entry. If you know LAMP very well, you have a basic start. Familiarity with a few extra tools for web site creation should be enough. You can have content or other applications on your site. However, if you are thinking of providing voice or any other real-time application intergrated on your site, you need to stack up on your mountaineering gear.&lt;br /&gt;&lt;br /&gt;Voice can come in different forms. Let look at a few very different examples: Skype, Jajah, Jaxtr provide some basic coverage. Skype is the only one which offers PC to PC calling I believe and for that it requires you to download a special client. The client has lots of specialized codecs embedded inside it which utilize the PC Operating system as a phone and require the use of handsets and other devices. Jajah and Jaxtr on the other hand are more "hands-off" applications of voice. They don't use the PC for the voice and instead rely on existing handsets or mobile phones. The web or internet part comes when you use their widgets or web interfaces to configure or initiate the whole calling process.&lt;br /&gt;&lt;br /&gt;On another end are applications which utilize the Adobe Media Server framework for voice processing using Adobe flash. Flash is quite unique since it utilizes the browser as a place to embed itself and do voice processing. There are some other services which use ActiveX instead of flash to do similar things.&lt;br /&gt;&lt;br /&gt;Note that almost all services offer other forms of browser integration like browser based calling, monitoring etc.&lt;br /&gt;&lt;br /&gt;There are a lot of pros and cons of all three methods when it comes to the functionality and utility they deliver and the cost they have to operate the network. The ultimate web based voice application really needs to utilize the browser and should be standards based like the rest of the internet is. And there are issues there as well...&lt;br /&gt;&lt;br /&gt;Lets dive into some details.&lt;br /&gt;&lt;br /&gt;Skype's infrastructure utilizes P2P. Comparable services from Google and Yahoo! utilize more network infrastructure, but I believe they have costs in the same ballpark as long as the are not routing voice through their own network (which I am guessing they don't do). Passing real-time voice through your own network can impose significant costs to manage and deliver the quality and can require a lot of staffing on your side. Its really easy to get a VoIP infrastructure up and running without having to actually route the real-time voice on your own and just hand it over to more capable and mature partners. We will get into that in this blog (maybe not in this post!).&lt;br /&gt;&lt;br /&gt;Note that services like &lt;a href="www.jajah.com/"&gt;Jajah&lt;/a&gt; and &lt;a href="http://www.jaxtr.com"&gt;Jaxtr&lt;/a&gt; can easily be erected by deploying VoIP servers like Asterisk. Since they actually bring the voice call off the internet, the costs of doing these hand-offs can be extremely high on a per minute basis (since that's how third parties called carriers will charge you for putting your internet call over to a mobile or landline phone). The only problem with any Asterisk based system is its high cost of ownership.&lt;br /&gt;&lt;br /&gt;Solutions based on Adobe Media Servers are very high utility to the user, but extremely expensive to operate and maintain. The voice media gets routed through a centralized Adobe server in all cases (for no reason at all!) which becomes a huge scalability bottleneck. Adobe servers are designed for playing static media and my guess is Adobe never actually intended to use them for making normal run of the mill voice calls for which they become very inefficient. However flash is still the king of the land and possibly the only browser based voice solution which does not require any installation or software downloads! Its voice codec is proprietary (&lt;a href="http://en.wikipedia.org/wiki/Nellymoser_Asao_Codec_in_Flash"&gt;NellyMoser&lt;/a&gt;) as well. Good news is that its not illegal to reverse engineer Flash Server based on observing how Flash client works. Some people have done it and the result is the &lt;a href="http://www.osflash.org/"&gt;red5 Flash open source project&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-6088865580971900148?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/6088865580971900148/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=6088865580971900148' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/6088865580971900148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/6088865580971900148'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/01/fail-safe-architecture-for-voice-on.html' title='A fail-safe architecture for Voice on the Internet'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-1234892816588553906</id><published>2008-01-20T19:43:00.000-08:00</published><updated>2008-01-20T19:46:55.203-08:00</updated><title type='text'>An interesting tool to measure ranks</title><content type='html'>There are several sites on the internet which will give you your Google rank, Yahoo! rank etc. Here is one site which combines them all and after a lot of testing I highly recommend it!&lt;br /&gt;&lt;br /&gt;http://popuri.us/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-1234892816588553906?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/1234892816588553906/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=1234892816588553906' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/1234892816588553906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/1234892816588553906'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/01/interesting-tool-to-measure-ranks.html' title='An interesting tool to measure ranks'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-833665740858221513</id><published>2008-01-20T13:07:00.000-08:00</published><updated>2008-01-20T13:10:27.967-08:00</updated><title type='text'>A good "Recent Comments" widget</title><content type='html'>This &lt;a href="http://blogger-templates.blogspot.com/2007/03/recent-comments.html"&gt;widget &lt;/a&gt;adds to your blog by creating a small window on comments someone else posted on your blog in an aggregate format. This really shows overall activity on your blog to your viewers. I think it is great and worth a try...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-833665740858221513?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/833665740858221513/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=833665740858221513' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/833665740858221513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/833665740858221513'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/01/good-recent-comments-widget.html' title='A good &quot;Recent Comments&quot; widget'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-2615662786699631073</id><published>2008-01-18T11:35:00.000-08:00</published><updated>2008-01-18T11:48:43.560-08:00</updated><title type='text'>Blogger: Traffic building</title><content type='html'>If your blog or site is new, you will need to understand the mechanics and rules of engagement on the internet first. Especially if you are a firm believer like me in "no fee advertising"...&lt;br /&gt;&lt;br /&gt;1) The average blogger on the internet may make a few pennies or upwards of a few thousand $$ from the website. There is nothing weird about it. You need to decide why you are building your website. If your site gets the traffic it warrants, fame will come anyway. You need to decide whether you want to money or not. If you do want it, then you can move on. O/w skip through the rest of this post...&lt;br /&gt;&lt;br /&gt;2) The nature of the content will decide almost all factors which determine whatever money you make. The content will determine the audience, viewership and their tendency to click on ads, buy stuff etc. Content will also determine the "freshness" of the blog which eventually determines the frequency at which certain events happen. For example, if the content doesnt change fast enough or you dont update the blog too often, then you will be in a totally different money bucket than you should be. Also, the theme of the website will give you some idea of what bucket you should be in and how much time you should dedicate on your blog.&lt;br /&gt;&lt;br /&gt;3) There is no chicken and egg problem with a blog. Content always has to come first and the website should look appeasing. Any form of advertising is focus of a later stage. So don't spend too many cycles looking at where you need to get that from&lt;br /&gt;&lt;br /&gt;4) Getting indexed and your popularity high is important. Google determines your rank from ranks of other websites pointing to yours. So cross indexing with other established sites (getting your blog listed in directories, rating systems, forums etc) is very important.&lt;br /&gt;&lt;br /&gt;5) Again, I cannot stress the importance of good content. Getting viewers in first time may happen by luck. But you need to make sure viewers are second time visitors or third time visitors etc. There are basically two kinds of users - casual browsers and power browsers. You need to see how you can get power browsers hooked onto your content. If you build viewership, everything else is easy...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-2615662786699631073?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/2615662786699631073/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=2615662786699631073' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/2615662786699631073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/2615662786699631073'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/01/blogger-traffic-building.html' title='Blogger: Traffic building'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-7145972676523454998</id><published>2008-01-17T21:09:00.000-08:00</published><updated>2008-01-17T21:19:23.567-08:00</updated><title type='text'>Tips and Templates sites for Bloggers</title><content type='html'>Here are a few really good sites which have tips and templates which are good. I have used these sites again and again and I will recommend them with ease:&lt;br /&gt;&lt;br /&gt;1. &lt;a href="http://tips-for-new-bloggers.blogspot.com/"&gt;Tips for New Bloggers&lt;/a&gt;&lt;br /&gt;2. &lt;a href="http://designs.bloggerbuster.com/"&gt;BloggerBuster&lt;/a&gt;&lt;br /&gt;3. &lt;a href="http://blogger-templates.blogspot.com/2005/01/remove-navbar.html"&gt;Blogger Templates&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-7145972676523454998?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/7145972676523454998/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=7145972676523454998' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/7145972676523454998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/7145972676523454998'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/01/tips-and-templates-sites-for-bloggers.html' title='Tips and Templates sites for Bloggers'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-1474303281620024855</id><published>2008-01-17T20:49:00.001-08:00</published><updated>2008-01-17T21:09:40.052-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Hey Blogger: Don't Panic!</title><content type='html'>I have been wanting to put this down for a while, before I loose track:&lt;br /&gt;&lt;br /&gt;Here is my &lt;span style="font-weight:bold;"&gt;Don't Panic&lt;/span&gt; Guide (or List at this point) for a newbie blogger. Things I mention here are simply my recommendations based on the experience I have had so far with some simple reasons. I don't intend to give you a choice here, but this is more like a direction which typically is what you need when you are a newbie. &lt;br /&gt;&lt;br /&gt;1. If you have any doubts about using Blogger v/s Wordpress, shed them right here. My recommendation is Blogger right away. Wordpress has better looks because there are default good looking templates for it and may look attractive that way. Do not get confused... Blogger is as good and offers more control. It is widely supported by all third party tools and is more open. If you have your own server, read some of my other blog entries... This is a simple guide for starters.&lt;br /&gt;&lt;br /&gt;2. Do not stick to the two column template offered by Blogger. A template is perhaps the most important choice which you need to make upfront. Choose a three column template to start off and you can download it from a lot of sites for free. I will post some sites on my blog soon, but googling should yield some good current choices for you. When choosing the template, remember layout, cleanliness, font, colors are as important as the content in the beginning unless your content is going to be unique and awesome (even then a good appeasing layout is a must). Also note that getting a template to work is really easy, but will take a lot of time until you get it absolutely right. So be patient.&lt;br /&gt;&lt;br /&gt;3. Whatever Blogger template you choose, it will need to be tweaked for several different things like the top menu you see in my case, advertising etc. I will post the sites which I found useful.&lt;br /&gt;&lt;br /&gt;4. Get rid of the Blogger Navbar. Its not required to be there and typically takes people away from your site to places you don't know. Its a distraction.&lt;br /&gt;&lt;br /&gt;5. Do not be scared of creating at least a thousand other accounts for third party tools and apps which drive up your index, site or traffic. If your site is new, you will need help from a lot of people to make it work. More on this in another post.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-1474303281620024855?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/1474303281620024855/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=1474303281620024855' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/1474303281620024855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/1474303281620024855'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/01/hey-blogger-dont-panic.html' title='Hey Blogger: Don&apos;t Panic!'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-8374976899856098343</id><published>2008-01-08T12:47:00.000-08:00</published><updated>2008-01-17T20:49:00.244-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='voip'/><title type='text'>Getting G.729 to work on Windows in the cheapest and most effective way</title><content type='html'>This is a very common question people ask for G.729: G.729 is the most common codec supported by a variety of VoIP providers and gateways. Though there are lots of better and free codecs around, G.729 is still the most preferred (and expensive) codecs around. The G.729 IPR billing is controlled by a company called &lt;a href="http://www.sipro.com"&gt;SIPRO&lt;/a&gt; and if your product is sold with the G.729 codec embedded in it (even if it never gets turned on), you must pay the order of $5-$10 bucks per port to the consortium. SIPRO takes care of disbursing the payments around to the IPR owners. However, this is a well hidden secret for some reason. The common path taken by a lot of product vendors for supporting G.729 is that they license a complete media package from companies like VoiceAge. The media package bundles a voice processing layer which integrates G.729. The cost of the package is in the tens of thousands of $$. Here is an option which is much cheaper and works as good or better since it gives you full control of what is going on at least on Windows:&lt;br /&gt;&lt;br /&gt;1) Get the Intel IPP development package from any of the resellers. This costs a few hundered bucks. The IPP is basically a development package which takes the original G.729 code published in the ITU standard and makes it work on Windows with some mods and optimizations. &lt;br /&gt;&lt;br /&gt;2) As and when you sell licenses of your product you get a deal done with SIPRO and pay few bucks on a per seat basis. This avoids a lot of fees and proves to be much cheaper.&lt;br /&gt;&lt;br /&gt;DI almost forgot to add that its as good voice quality as well!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-8374976899856098343?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/8374976899856098343/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=8374976899856098343' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/8374976899856098343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/8374976899856098343'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/01/getting-g729-to-work-on-windows-in.html' title='Getting G.729 to work on Windows in the cheapest and most effective way'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-1220664509132789901</id><published>2008-01-08T12:27:00.000-08:00</published><updated>2008-01-17T20:49:00.245-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='voip'/><title type='text'>SIPX on Windows</title><content type='html'>SIPX was one of the first open source SIP stacks we played around with on Windows. SIPX is supported by a strong community of developers and the code baseline came from Pingtel. There is a company called &lt;a href="http://www.sipez.com"&gt;SIPEZ&lt;/a&gt; started by &lt;a href="http://www.sipez.com/about.html"&gt;Daniel Petrie&lt;/a&gt;, a well known SIP Guru which supports SIPX. SIPX is used in a wide variety of commercial applications and is licensed under LGPL which is very attractive. I knew Daniel from IETF and often contacted and got his help during our evaluation phase. Based on what we found, SIPX is a great choice if you want to build a softphone very quickly since it has a lot of applications built into it and a lot of third party software hooks as well. However, we couldn't hire SIPX developers fast enough to support customer requirements and it proved harder to change and support in a cost effective way. Our next stop was brief and we looked at reSIProcate. reSIProcate, while supported on Windows is really meant for server side applications - at least that is the impression I got by talking to the SIP community at large. My team never really played around with it too much and we moved on to something called PJSIP. PJSIP has a very restrictive license (licensed under GPL) compared with SIPX and reSIProcate. That was one reason it was way down in our list though my gut feeling always was that it would have been a quicker fit (that's a lesson there for me - always feel out your guts properly in this phase :). PJSIP was supported by a much smaller community of developers and was not that widely known or deployed. One of my friends, Dr &lt;a href="http://www.amazon.com/Internet-Communications-Using-Henry-Sinnreich/dp/0471413992"&gt;Henry Sinnreich&lt;/a&gt; (now at Adobe) actually introduced PJSIP to me. Overall we found PJSIP to be much more malleable and suitable to what we wanted to do both from a tactical and long term perspective. It also has a much smaller footprint compared to SIPX. However applications are much fewer. Its much more suitable for embedded systems.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-1220664509132789901?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/1220664509132789901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=1220664509132789901' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/1220664509132789901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/1220664509132789901'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/01/sipx-on-windows.html' title='SIPX on Windows'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-260581215512898845</id><published>2008-01-08T11:46:00.000-08:00</published><updated>2008-01-17T20:49:00.245-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='voip'/><title type='text'>Making Voice on Windows</title><content type='html'>Well, Voice on Windows is hard unless you are willing to spend gobs of dollars and are willing to buy something you cannot extend or control yourself. We used an open source SIP stack and spent a lot of time to get that to work. In just a matter of few months we knew how critical this decision was for us in taking control of our destiny.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-260581215512898845?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/260581215512898845/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=260581215512898845' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/260581215512898845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/260581215512898845'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/01/making-voice-on-windows.html' title='Making Voice on Windows'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5764703310470488152.post-341764266537322129</id><published>2008-01-08T11:15:00.000-08:00</published><updated>2008-01-17T20:49:00.245-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='voip'/><title type='text'>Making SIP work on Windows</title><content type='html'>Few months back I did some research on &lt;a href="http://techpiper.blogspot.com/2007/01/open-source-for-sip.html"&gt;open source Windows based SIP stacks&lt;/a&gt; and the sheer number of options available excited me. We explored several stacks: &lt;a href="http://www.sipfoundry.org/"&gt;SIPX&lt;/a&gt;, &lt;a href="http://www.pjsip.org"&gt;PJSIP&lt;/a&gt;, &lt;a href="http://www.resiprocate.org"&gt;ReSIProcate&lt;/a&gt;. In this article and few others I will put down my insight into what we learned during an ordeal which lasted for six months, talking to numerous people, vendors and component providers. Our goal was to have a stable, clean and extendable SIP API in our application well integrated with some good quality sound processing software. That was just 50% of the application. The other 50% was to do with rich GUI and data processing functionality for supporting a SaaS application on Windows. Nothing like this existed in the market. Our application was also a smart SIP client which implemented some new Peer-2-Peer techniques to avoid expensive network components which were inscalable and hard to manage (and thus supported the SaaS based model very well).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5764703310470488152-341764266537322129?l=turngeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turngeek.blogspot.com/feeds/341764266537322129/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5764703310470488152&amp;postID=341764266537322129' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/341764266537322129'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5764703310470488152/posts/default/341764266537322129'/><link rel='alternate' type='text/html' href='http://turngeek.blogspot.com/2008/01/making-sip-work-on-windows.html' title='Making SIP work on Windows'/><author><name>Medhavi</name><uri>http://www.blogger.com/profile/10520531503499264992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_VRchToSEn3o/SKsuzQ8iITI/AAAAAAAAAQ0/5llphLqR3y8/S220/mb-new.jpg'/></author><thr:total>0</thr:total></entry></feed>
