tag:blogger.com,1999:blog-4490223479458898352024-03-14T07:53:18.361+01:00Jean Deruelle's BlogAnonymoushttp://www.blogger.com/profile/03020856645147141247noreply@blogger.comBlogger35125tag:blogger.com,1999:blog-449022347945889835.post-64153945506632786142012-08-16T22:29:00.002+02:002012-08-16T22:53:31.483+02:00Mobicents SIP Servlets on JBoss AS7 passes the JSR 289 TCK !<div style="text-align: justify;">
<div style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;">
<div style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;">
Following on today's news that <a href="http://telestax.com/2012/08/16/telestax-inc-is-now-member-of-the-jcp-and-part-of-jsr-359-expert-group/" target="_blank">TeleStax, Inc is now a member of the JCP and part of the JSR 359 Expert Group</a>, we are also pleased to announce that latest snapshot version of <a href="http://code.google.com/p/sipservlets/" target="_blank">Mobicents SIP Servlets</a> (MSS) on JBoss AS7 is now passing the JSR 289 which means it is the first SIP Servlets container to <a href="http://blog.devrealm.org/2011/01/13/converged-http-sip-applications-using-async-processing/" target="_blank">integrate with HTTP Servlets 3.0</a>, Java EE 6 and benefits from all the <a href="http://www.jboss.org/as7" target="_blank">JBoss AS7 goodnesses</a> (it now starts as fast as Tomcat and integrates with JBoss AS7 CLI for monitoring and management)</div>
</div>
</div>
<div style="text-align: justify;">
<div style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;">
<img src="http://newspaper.li/static/97f0e65283ae9d263978f5da60dfae95000" /></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br /></div>
<div style="text-align: justify;">
You can see <a href="https://mobicents.ci.cloudbees.com/job/MobicentsSipServletsJBoss7TCK/14/testReport/" target="_blank">the test results</a> from our Cloudbees Jenkins Continuous Integration Job (Thanks to the <a href="http://www.cloudbees.com/foss/index.cb" target="_blank">Cloudbees FOSS Program</a>)</div>
<div style="text-align: justify;">
<br /></div>
<h2 style="text-align: justify;">
Roadmap</h2>
<div style="text-align: justify;">
We still have a couple of items left to complete before calling it a release, namely the Documentation.</div>
<div style="text-align: justify;">
As such we decided to bump the next release version number to 2.0.0.FINAL and updated <a href="http://code.google.com/p/sipservlets/issues/list?can=2&q=Roadmap%3DDate+OR+Roadmap%3DIssue+OR+Roadmap%3DFix&sort=priority+MSS&groupby=MSS&colspec=Summary+Type+Status&x=roadmap&y=MSS&mode=grid&cells=tiles" target="_blank">the roadmap</a> accordingly </div>
<div style="text-align: justify;">
<br /></div>
<h2 style="text-align: justify;">
Special Thanks</h2>
<div style="text-align: justify;">
<img alt="TeleStax logo" height="60" src="http://telestax.files.wordpress.com/2011/05/telestax_logo_small.png" width="200" /> <img height="50" src="http://solaiemes.com/png/logo_inferior.png" width="200" /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
I would like to thank the usual suspects that work on this ie :</div>
<div style="text-align: justify;">
<br />
<ul>
<li>myself for helping here and there at the end and mostly in the beginning by refactoring MSS on being independent of any containers, ie MSS could plug into other containers such as Jetty, Resin, Glassfish (if there is enough interest or contributors ready to contribute either container integration)</li>
<li><a href="http://vladimirralev.blogspot.fr/" target="_blank">Vladimir Ralev</a> who did the initial chunk of work for integrating into 7.0.2 and having a proof of concept </li>
<li>But most importantly a <span style="font-size: large;"><b>HUGE</b></span> Thanks to <b>Jose Maria Recio</b>, Co-Founder of <a href="http://solaiemes.com/" target="_blank">Solaiemes</a> whose products help carriers to keep their role relevant, allowing them to build alternatives to over-the-top offers using enablers as Joyn / RCS-e and RCS as a Platform. He highly earned his stripes to be on the <a href="http://www.mobicents.org/acknowledgements.html" target="_blank">Mobicents Hall of Fame</a> along with other companies like Twilio, Cisco, Avaya, OKI, Free Mobile and many others...</li>
</ul>
</div>
Anonymoushttp://www.blogger.com/profile/03020856645147141247noreply@blogger.com0tag:blogger.com,1999:blog-449022347945889835.post-79584255828419857692012-05-13T21:04:00.002+02:002012-05-17T21:14:27.379+02:00Slow or no wifi fix for Ubuntu 12.04After upgrading to Ubuntu 12.04, my wifi stopped working, ie network manager was showing my laptop as connected to my home wifi network but I couldn't connect to internet for some reason, ping and DNS resolving didn't work neither apparently.<br />
After looking around <a href="http://www.unixmen.com/resolve-slow-connexion-when-using-wifi-in-ubuntu-1104-natty-narwhal/" target="_blank">I found something useful</a> that I had to tweak for my system to get it work, so simply taking their solution 2 and tweaking it to look like :<br />
<pre style="background-attachment: initial; background-clip: initial; background-color: #fafafa; background-image: initial; background-origin: initial; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; color: #444444; font-family: 'Courier New', Courier, monospace; font-size: 12px; line-height: 18px; margin-bottom: 15px; margin-top: 15px; padding-bottom: 10px; padding-left: 10px; padding-right: 10px; padding-top: 10px; white-space: pre-wrap;"><strong>sudo rmmod -f iwlwifi</strong>
<strong>sudo modprobe iwlwifi 11n_disable=1</strong></pre>
If you notice that the wifi speed improved, then make the change permanent :<br />
<pre style="background-attachment: initial; background-clip: initial; background-color: #fafafa; background-image: initial; background-origin: initial; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; color: #444444; font-family: 'Courier New', Courier, monospace; font-size: 12px; line-height: 18px; margin-bottom: 15px; margin-top: 15px; padding-bottom: 10px; padding-left: 10px; padding-right: 10px; padding-top: 10px; white-space: pre-wrap;"><strong>gksudo gedit /etc/modprobe.d/iwlwifi-disable11n.conf</strong></pre>
and add this line to the file:<br />
<pre style="background-attachment: initial; background-clip: initial; background-color: #fafafa; background-image: initial; background-origin: initial; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; color: #444444; font-family: 'Courier New', Courier, monospace; font-size: 12px; line-height: 18px; margin-bottom: 15px; margin-top: 15px; padding-bottom: 10px; padding-left: 10px; padding-right: 10px; padding-top: 10px; white-space: pre-wrap;"><strong>options iwlwifi 11n_disable=1</strong></pre>
save and quit.<br />
<br />
If you're on battery, turning off power management could help as well<br />
<pre style="background-attachment: initial; background-clip: initial; background-color: #fafafa; background-image: initial; background-origin: initial; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; margin-bottom: 15px; margin-top: 15px; padding-bottom: 10px; padding-left: 10px; padding-right: 10px; padding-top: 10px;">sudo iwconfig wlan0 power off</pre>Anonymoushttp://www.blogger.com/profile/03020856645147141247noreply@blogger.com6tag:blogger.com,1999:blog-449022347945889835.post-78145229955105796012012-03-05T17:36:00.001+01:002012-03-05T17:45:24.072+01:00Mobile World Congress 2012 Write up<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGGkTzdZ42CK_OCCeOq2iK67BTCGzQYdHMPpYFdW8tSxufylGnXnNX1gZFKRc4Z4Q5ij_6OSctk0zUe8irZfx53FGT4cKNFVeGANnw7kKqRV_bZyv7eq0_j_wJlzrvHRK0wZEyCLKL5I1v/s1600/IMG_5883.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGGkTzdZ42CK_OCCeOq2iK67BTCGzQYdHMPpYFdW8tSxufylGnXnNX1gZFKRc4Z4Q5ij_6OSctk0zUe8irZfx53FGT4cKNFVeGANnw7kKqRV_bZyv7eq0_j_wJlzrvHRK0wZEyCLKL5I1v/s400/IMG_5883.JPG" width="400" /></a></div>
<div style="text-align: justify;">
Just came back from Mobile World Congress 2012 in Barcelona and it was hectic. I actually didn't saw any of the shows or announcements apart from Joyn, the commercial name for RCS-e, as I was fully booked in advance with meetings for all days which was made it so good for me, <a href="http://telestax.com/" target="_blank">TeleStax</a> and the <a href="http://www.mobicents.org/" target="_blank">Mobicents Community</a>. If you want a good write up you can read <a href="http://www.alanquayle.com/blog/2012/03/mwc-2012-summary-the-trials-an.html" target="_blank">Alan Quayle's blog post about it</a> where he mentions that one of the companies to watch out there is <a href="http://solaiemes.com/" target="_blank">Solaiemes</a>.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Solaiemes which I was pleased to meet face to face and see live demos from their products based on Mobicents and is also an active Mobicents contributor, contributing AS7 integration to Mobicents SIP Servlets. You can read <a href="http://blog.solaiemes.com/2012/03/mwc-2012-joyn-is-taking-off-our-views.html" target="_blank">their views on Joyn on their blog</a>.</div>
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgk-HLSgH6sgd1g8vcR5rfz9OG7Vl1-KbZ0ODfI1cYgrhNm3hA-bsTtAVRsVg7sMThisLay2XYbYvpxLdETScCuD32yeaSAdRFEnxY94N_OaDE9Xk-bFXoEC3RoZd6RWDCG_hH3hWmhUIgb/s1600/P1010722.JPG" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgk-HLSgH6sgd1g8vcR5rfz9OG7Vl1-KbZ0ODfI1cYgrhNm3hA-bsTtAVRsVg7sMThisLay2XYbYvpxLdETScCuD32yeaSAdRFEnxY94N_OaDE9Xk-bFXoEC3RoZd6RWDCG_hH3hWmhUIgb/s320/P1010722.JPG" width="240" /></a></div>
<div style="text-align: justify;">
But first things first, I would like to <b>THANK </b>our partner <a href="http://www.atesnetworks.com/" target="_blank">ATES Networks</a> who following on our <a href="http://www.sbwire.com/press-releases/sbwire-127266.htm" target="_blank">recent joint press release</a> invited us, TeleStax to join and copresent at the event with them. They were equally full of meetings where they showcased there awesome selfcare demo who lighted the eyes of many telco operators. </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Their booth was not very far away from OpenCloud, which gave me the chance to meet first time face to face with their CTO David Ferry and JAIN SLEE specification lead and discuss together TeleStax commitment to continue helping evolve both JAIN SLEE and SIP Servlets standards and sharing our views on each standard as well as a coming surprise from them ;-)</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOkz6Hrb-DXhu8yG8936jLpZtpigA4r071kcsripqvVYgkgDr_rAJwkU4bfemclIpuhRbx34Z0aGLQMxy_5MyqYqyVAh9TptAo1Tt2LiwoqtkmQgEjiJdvvp-3OgqOZ4kRcTJos6q_URBZ/s1600/P1010723.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOkz6Hrb-DXhu8yG8936jLpZtpigA4r071kcsripqvVYgkgDr_rAJwkU4bfemclIpuhRbx34Z0aGLQMxy_5MyqYqyVAh9TptAo1Tt2LiwoqtkmQgEjiJdvvp-3OgqOZ4kRcTJos6q_URBZ/s320/P1010723.JPG" width="320" /></a><span style="text-align: justify;">I had also the chance to meet our community, notably Solaiemes which I mentioned above, with Aayush Bhatangar from </span><a href="http://www.rancoretech.com/" style="text-align: justify;" target="_blank">Rancore Technologies</a><span style="text-align: justify;"> which built </span><a href="http://www.redhat.com/summit/rancore/index.html" style="text-align: justify;" target="_blank">their SDP for 4G Networks on Mobicents</a><span style="text-align: justify;">, </span><a href="http://www.iskratel.com/en/Pages/index.aspx" style="text-align: justify;" target="_blank">Iskratel</a><span style="text-align: justify;"> who based their VoIP VAS on Mobicents, <a href="http://www.elitcluster.com/?page_id=68" target="_blank">ElitCluster</a> who chose to use Mobicents for their </span>Open source Intelligent Network/SDP/BSS for Effortel, a Belgium MNVE, <a href="http://www.peoplefone.ch/en/" target="_blank">PeopleFone</a> a Swiss based VoIP Provider offering their services based on Mobicents in 5 different countries, <a href="http://www.hsenid.com/" target="_blank">hSenid Mobile</a> whose flagship product mChoice® SDP is based on Mobicents. I had the chance to see video conferencing demos of two video conferencing servers, one from Sergio Garcia Murillo with <a href="http://www.medooze.com/products/mcu.aspx" target="_blank">Medooze</a> and their open source <a href="http://sourceforge.net/projects/mcumediaserver/" target="_blank">MCU Media Server</a> and <a href="http://www.naevatec.com/naeva/" target="_blank">Naeva Tec</a> with <a href="http://www.kurento.com/" target="_blank">Kurento</a> both fronted by Mobicents SIP Servlets. I also met with Maarten Ectors, Head of Cloud and Disruptive Innovation in Europe at Nokia Siemens Networks and influent blogger at the <a href="http://telruptive.com/">http://telruptive.com</a> blog and chat about the next plans for <a href="http://www.restcomm.org/" target="_blank">RestComm</a>, our Telco 2.0 SaaS</div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="" style="clear: both;">
I wish I had the time to meet all the people and companies present there using/interesting in Mobicents that I couldn't meet because I was full. If I missed you feel free to ping me offline once again to meet at another telco event.</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtGcrakm-jM7uOpgKOXbQLjEJV8BQpLhROfhqp2rP_60eMQXwre2rMqHA9nEOx2R5oDLL_AmS9rn2Qqmy4_idX5lFIg4yETvi-auamR6zHQ0nd-oHUN3efWvKEOw1oR8cdaqeZduQDPxIr/s1600/IMG_5914.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtGcrakm-jM7uOpgKOXbQLjEJV8BQpLhROfhqp2rP_60eMQXwre2rMqHA9nEOx2R5oDLL_AmS9rn2Qqmy4_idX5lFIg4yETvi-auamR6zHQ0nd-oHUN3efWvKEOw1oR8cdaqeZduQDPxIr/s400/IMG_5914.JPG" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">SnapDragon from HTC completely made from HTC phones</td></tr>
</tbody></table>
<div class="" style="clear: both;">
<br /></div>
<div class="" style="clear: both;">
I had the time on friday before leaving to make a quick jump at the beautiful Sagrada Familia started in <span style="background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19px;"> </span>1882 and still under construction with an anticipated completion date of 2026 which is probably the best piece of architecture I ever saw as you can witness below</div>
<div class="" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTwSdrHoxHm0AzK70ZItn37stkcm3CpNCinibPMvtdOzu183bTOmvUg6J9gvnzog1XRVPFhNlXLz8KxDe297PoOWEXLXrVsR-bYQiAcxKe0KZHwYWbR95gJ0nsilyNv0Q_TwmZEES5UuXv/s1600/P1010747.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTwSdrHoxHm0AzK70ZItn37stkcm3CpNCinibPMvtdOzu183bTOmvUg6J9gvnzog1XRVPFhNlXLz8KxDe297PoOWEXLXrVsR-bYQiAcxKe0KZHwYWbR95gJ0nsilyNv0Q_TwmZEES5UuXv/s640/P1010747.JPG" width="480" /></a></div>
<div class="" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
<br /></div>Anonymoushttp://www.blogger.com/profile/03020856645147141247noreply@blogger.com0tag:blogger.com,1999:blog-449022347945889835.post-78742656116904665772011-12-16T21:27:00.000+01:002011-12-21T22:06:03.521+01:00The Mobicents Annual Summit 2011 Experience<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaIEKfzfMOT2Ywe8zLLjWJdN_XdPlQUUfS7taF7ESv5KzshaOLvP9DKfcbe7y5-C5GJZM1H_wWQ9rfPyXfRSPWS5YecdwrgupBMNfVDhrHsXdtK23JQ9rUsc3uG1dMn6E0Hc1yksPqeyK2/s1600/photo.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaIEKfzfMOT2Ywe8zLLjWJdN_XdPlQUUfS7taF7ESv5KzshaOLvP9DKfcbe7y5-C5GJZM1H_wWQ9rfPyXfRSPWS5YecdwrgupBMNfVDhrHsXdtK23JQ9rUsc3uG1dMn6E0Hc1yksPqeyK2/s320/photo.JPG" width="240" /></a><br />
<div style="text-align: justify;">
It's been this time of the year again where <a href="http://www.mobicents.org/" target="_blank">Mobicents</a> core team met all together and face to face with our beloved Community and damn that was great ! Kudos to <a href="http://olegkulikov.blogspot.com/" target="_blank">Oleg</a> for organizing and being the perfect host putting up all nighters to make sure everyone would get safely to the hotel with luggage and all.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
You can find the full agenda that was covered during our 3 days meet up on <a href="http://amitbhayani.blogspot.com/2011/12/annual-mobicents-conference-2011-sochi.html" target="_blank">Amit's Blog</a> where he will also link the presentations as they are put online by everyone.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
The Big News was the official announcement done by Rob Cardwell (JBCP Product Manager, RedHat) that Red Hat is sunsetting JBCP and Mobicents over the next year. This kicked off the first talk by Ivelin about Transitioning Mobicents leadership to <a href="http://www.telestax.com/" target="_blank">TeleStax, Inc.</a> which is offering a transition path and already providing Enterprise Professional Services (namely, Development and Production Support, Training and Consulting) for Mobicents to customers around the world. </div>
<div style="text-align: justify;">
TeleStax, Inc. founders are Mobicents old timers that have been building Mobicents since its inception back in 2003. More information can be found in <a href="https://docs.google.com/presentation/d/1UTf1xzZtAaRjXFr6118X2idk5qSzSHVX5traPbOMW0s/edit" target="_blank">Mobicents Transition to TeleStax</a></div>
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0_s26k1SJFoQaun-kofd-Q_Z-Q76crbqZ3wnAGtr4Hy8KJM3Qz-ErdhbzGNz3memYs2rprh3jVtes-8XmKsYsnT92blqT5ftgkvdOv7lOUNRVeIdQo3qSj_zyHVYIaL4WO9CKh9bu4hf9/s1600/avistarlogo.gif" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="177" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0_s26k1SJFoQaun-kofd-Q_Z-Q76crbqZ3wnAGtr4Hy8KJM3Qz-ErdhbzGNz3memYs2rprh3jVtes-8XmKsYsnT92blqT5ftgkvdOv7lOUNRVeIdQo3qSj_zyHVYIaL4WO9CKh9bu4hf9/s200/avistarlogo.gif" width="200" /></a></div>
The first day of the Summit was exclusively talks done by the community and it was to me probably the best day for me as it gave us an opportunity to see where and how Mobicents was used and hear great quotes like Nick fro<span style="background-color: white;"><span style="font-family: Arial, 'Helvetica Neue', sans-serif; font-size: 15px; line-height: 19px; text-align: left;">m <a href="http://www.codeminders.com/" target="_blank">CodeMinders</a> commissioned by <a href="http://www.avistar.com/" target="_blank">Avistar Communications</a> </span></span>saying "we are using Mobicents Sip Servlets to all extent possible even to some extent that's not possible :-)"<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlwrKFkcoTH6Mo2Z3e6KdVGvU_Umj6Z8xRw-yVuG9yhgkL09GqAH1_PynHgxg6zFDuyUgc9U3l8sptpofdQUjUOk1Mmdmte4ETDJL0KCoNy58M8BLZVKIJaqKZ7QSHO-pjEAXjX4DWuo4N/s1600/logo.gif" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlwrKFkcoTH6Mo2Z3e6KdVGvU_Umj6Z8xRw-yVuG9yhgkL09GqAH1_PynHgxg6zFDuyUgc9U3l8sptpofdQUjUOk1Mmdmte4ETDJL0KCoNy58M8BLZVKIJaqKZ7QSHO-pjEAXjX4DWuo4N/s1600/logo.gif" /></a><br />
or Vilius from<span style="background-color: white;"><span style="font-family: Arial, 'Helvetica Neue', sans-serif; font-size: 15px; line-height: 19px; text-align: left;"> <a href="http://www.elitnet.lt/" target="_blank">Elitnet</a> </span></span>mentioning that "after 1 year in production, it shocks ISV - SLEE did not fail as expected :), still up and running"<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhz_umSN_y5WTrInjv-OFQ_DvyTMZgz_spC0fgeZWUQeiIP4C3bvzfa7MLI2iatfnhw0EYzHFRSpsvC9O7jijAggRiXhlAlN6-qpfp8GHh_yekxbtMO71-SUKgYaybSZgafHe1QlxYl_MkC/s1600/twilio+%25281%2529.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="53" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhz_umSN_y5WTrInjv-OFQ_DvyTMZgz_spC0fgeZWUQeiIP4C3bvzfa7MLI2iatfnhw0EYzHFRSpsvC9O7jijAggRiXhlAlN6-qpfp8GHh_yekxbtMO71-SUKgYaybSZgafHe1QlxYl_MkC/s200/twilio+%25281%2529.png" width="200" /></a><br />
Jonas Borjesson from <a href="http://www.twilio.com/" target="_blank">Twilio</a> offered us a treat before Christmas by doing a presentation with a <b>live demo</b> of the <a href="https://docs.google.com/open?id=0B3Z3Uhj-XHcDNGQ1OTE2MjktOTMwYS00YzVhLTg1ZWQtNDQwOTdjYzI1OTc0" target="_blank">Twilio Client</a> and knowing that Mobicents Sip Servlets is powering some technology at one of the hottest Telco 2.0 SaaS made me feel pretty good :-) ! Jonas, being one of the HotSip developer back in 2006, and then worked at Oracle on their SIP Servlets container provided a lot of great feedback during our sessions.<br />
<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijR9E13lVAB9SNfOEAgnpA4P4j6piVb3q42aAbCY9OMP6bMyKKIcug4o4TdkUD7Ox_fZ8ZxZ-dEoyQmUfm9gKt8gVxEuJUDDkpFc7OGryo82jPzo_awPGEfI_t3BwVe1yUH2KZz4b3NJdV/s1600/logo-top.gif" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="55" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijR9E13lVAB9SNfOEAgnpA4P4j6piVb3q42aAbCY9OMP6bMyKKIcug4o4TdkUD7Ox_fZ8ZxZ-dEoyQmUfm9gKt8gVxEuJUDDkpFc7OGryo82jPzo_awPGEfI_t3BwVe1yUH2KZz4b3NJdV/s200/logo-top.gif" width="200" /></a><span style="background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; line-height: 18px;"> </span>Jason Goecke from<span style="background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; line-height: 18px;"> <a href="http://www.voxeo.com/" target="_blank">Voxeo Labs</a></span> gave us a nice overview of their offerings, about<span style="background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; line-height: 18px;"> <a href="https://www.tropo.com/home.jsp" target="_blank">Tropo</a>, </span>the other one of the hottest Telco 2.0 SaaS out there :-) and their latest baby<span style="background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; line-height: 18px;"> <a href="http://voxeolabs.com/rayo/" target="_blank">Rayo</a>. </span>We layed out the ground for a potential collaboration around<span style="background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; line-height: 18px;"> <a href="http://voxeolabs.com/moho/" target="_blank">Moho </a> </span>and future work on SIP Servlets 2.0 specification.<br />
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitGnQ1v9NiLbbfCz25SynI4VB3x5-uSW3bPk2EYjNRti2DH9FPXV8aGwiHS_GAVaRxvlmRrFSImkj85DfnPkPLVCgM1pRltcmuVKm1jV9z187UfuYkJ5bqZ7OAKhbiqeFI-H86KJT_o3Wn/s1600/logo_tagline.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="41" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitGnQ1v9NiLbbfCz25SynI4VB3x5-uSW3bPk2EYjNRti2DH9FPXV8aGwiHS_GAVaRxvlmRrFSImkj85DfnPkPLVCgM1pRltcmuVKm1jV9z187UfuYkJ5bqZ7OAKhbiqeFI-H86KJT_o3Wn/s200/logo_tagline.jpg" width="200" /></a><span style="background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; line-height: 18px;"> </span>Silvano Girardi Jr presented<span style="background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; line-height: 18px;"> <a href="http://www.inphonex.com/" target="_blank">Inphonex</a> </span>and how they are currently migrating their infrastructure from Weblogic to Mobicents Sip Servlets. We also had a surprise birthday party ready for him ;-)</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Unfortunately the french team from <a href="http://manaty.net/sites/manaty.fr/" target="_blank">Manaty</a> couldn't get their visa on time, so I performed their <a href="https://docs.google.com/open?id=0B3Z3Uhj-XHcDZjc5Y2RhYzYtODQ4Ny00OWU1LTgxOTUtMDRiNjhlNzgyOThm" target="_blank">presentation</a> on behalf of them.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
The next day, I went on stage to introduce how Mobicents Sip Servlets is moving towards the cloud to be able to be used as a PaaS and being renamed <a href="https://docs.google.com/presentation/d/1I8WBFMiyEq1h8HFygLgFWw8i63ZellkoY7YkEfmMNW8/edit" target="_blank">TelScale</a> and moving to a new <a href="http://code.google.com/p/telscale/" target="_blank">home</a> with git as a source code repository. We then moved to the HA Topics and had a great live discussion following on the <a href="https://docs.google.com/presentation/d/1d3ZMEbtu6yWXSKq0CzAZFxCDtIhx8jVfTmOozkUQDas/edit" target="_blank">Container Independent HA Framework</a> and Converged Load Balancer presentations on what we needed and wanted to support in terms of replication with great input from the community to let us know what they needed. </div>
<div style="text-align: justify;">
That was followed by Georges Vagenas, one of our most active Mobicents contributors (and official Summit video recorder person :-)), presenting his great work on <a href="https://docs.google.com/presentation/d/1ixHV8GsSiUYkynYy2r8IzU69HMC_LKaWdj0ufSrh4tw/edit" target="_blank">CDI Telco Framework and Arquillian integration with Mobicents</a>.</div>
<div style="text-align: justify;">
Unfortunately, Thomas Quintana couldn't be present with us because of a last moment emergency but thanks to the great conferencing technology out there, he presented remotely his great work on <a href="https://docs.google.com/open?id=0B3Z3Uhj-XHcDZjY5MGIwNWMtYjE5Yy00M2JjLWI0OGQtOTBjNWFhNGJiZTk2" target="_blank">RestComm</a>, our Twilio like private Telco 2.0 SaaS powered by Mobicents that is <a href="http://telruptive.com/2011/12/10/mobicents-restcomm-is-to-twilio-what-eucalyptus-is-to-amazon/" target="_blank">already picking up interest</a> even though still in ALPHA stage.</div>
<div style="text-align: justify;">
I also had a talk scheduled on SNMP and Monitoring that I couldn't go over because of lack of time. I will let my other fellow Mobicents folks to talk about their presentations and impressions in their respective blogs.</div>
<br />
Last Day was kept for fun stuff where the team visited the mountains and saw Vladimir Putin's guest house and had a nervous breakdown in the bus after risking our lives to see what was supposed to be a great waterfall :-) During all this time, Nick from Codeminders was able to be the best tour guide ever (even without knowing the place), we got to see Sochi downtown and walked on the shore of blacksea as well to finish the trip by a taste of the local treat<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBtbpSfi0aAI0rrRUajJqq0zYR8geQEkU8tD2r-Uwf4ZBzt6BHacOMvFd_7TQ8EL_b3c2vqs3QZ9Du4pD5YJAx75RNRxGfk3n_iwIcf3p1Hb0yq2jBG1amebQ_DJYjxN4UXonZOsjksCvh/s1600/381790_10150437639929654_652224653_8298388_1963617862_n.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBtbpSfi0aAI0rrRUajJqq0zYR8geQEkU8tD2r-Uwf4ZBzt6BHacOMvFd_7TQ8EL_b3c2vqs3QZ9Du4pD5YJAx75RNRxGfk3n_iwIcf3p1Hb0yq2jBG1amebQ_DJYjxN4UXonZOsjksCvh/s320/381790_10150437639929654_652224653_8298388_1963617862_n.jpg" width="240" /></a></div>Anonymoushttp://www.blogger.com/profile/03020856645147141247noreply@blogger.com1Lamballe, France48.468637 -2.51732248.384413 -2.6752505 48.552861 -2.3593935tag:blogger.com,1999:blog-449022347945889835.post-41028615348475440272011-09-14T18:25:00.003+02:002011-11-04T11:35:58.025+01:00Mobicents Face To Face 2011 Meeting open to community<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIsX_dhb-WH9RvDxWM9PaMTZgdcq6SQJS3st-R4X-2bE8_Rxgkr_GMqQ-n6qZ7Vp8kATCMMU5ONN3THiCt8O36brw7PCGlXcLV0ItL8jSebcngNHmu-hqM2jQ2IvR5kCCCGHsL_CtznWgI/s1600/sochi_vuoristo_talvi_sharp405.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="276" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIsX_dhb-WH9RvDxWM9PaMTZgdcq6SQJS3st-R4X-2bE8_Rxgkr_GMqQ-n6qZ7Vp8kATCMMU5ONN3THiCt8O36brw7PCGlXcLV0ItL8jSebcngNHmu-hqM2jQ2IvR5kCCCGHsL_CtznWgI/s400/sochi_vuoristo_talvi_sharp405.jpg" width="400" /></a></div>
<span style="font-family: inherit;"><span style="background-color: white; text-align: left;"><br /></span></span><br />
<div style="text-align: justify;">
<span style="font-family: inherit;"><span style="background-color: white; text-align: left;">In December (4th to 8th included) the Mobicents team will be gathered for its 5th face to face team meeting in Sochi, Russia, where the </span><span style="background-color: white; line-height: 19px;">XXII Olympic Winter Games will be held</span><span style="background-color: white; text-align: left;">. No need to tell that I am very excited to meet my colleagues again, our customers and community !</span></span></div>
<div style="text-align: justify;">
<span style="background-color: white; text-align: left;"><span style="font-family: inherit;">That's right you read well, building <a href="http://jeanderuelle.blogspot.com/2010/10/mobicents-face-to-face-meeting-2010-in.html">on the success of last year</a> in opening up the meeting to community we are doing it again this year !</span></span></div>
<div style="text-align: justify;">
<span style="background-color: white; text-align: left;"><span style="font-family: inherit;"><br /></span></span></div>
<div style="text-align: justify;">
<span style="background-color: white; text-align: left;"><a href="http://ivelinivanov.blogspot.com/2011/11/annual-mobicents-community-summit-sochi.html">Check the contents of the meeting</a> </span>and feel free to provide your input on what you would like to see <span style="background-color: white; text-align: left;">(the contents for meetings/gatherings during the night shall not be disclosed :-) what happens in Sochi stays in Sochi to paraphrase a famous quote)</span><br />
<div style="text-align: left;">
<br /></div>
</div>
<div>
<span style="text-align: -webkit-auto;">For those of you that want to join us there and get more insight on Mobicents, our move toward the cloud, influence the roadmap, discuss the future of the platform, do some hackfest, etc..., feel free to ping us to get more information on the hotel, details etc (you will have to pay for your trip and hotel though as we can't sponsor the whole community :-)). Also you will more than likely need a visa so make sure to apply early, (the tour agency can send a</span> voucher which is mandatory for getting visa so feel free to ask us)<span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; text-align: -webkit-auto;">.</span><br />
<span style="color: #222222; font-family: arial, sans-serif; font-size: x-small;"><br /></span><br />
Looking forward to see all of you there !</div>
<br />Anonymoushttp://www.blogger.com/profile/03020856645147141247noreply@blogger.com0tag:blogger.com,1999:blog-449022347945889835.post-10379305287927334202011-05-11T14:46:00.000+02:002011-05-11T14:46:40.433+02:00Back from JBoss World and JUDCon 2011 and it was awesome !<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbd51tjzlKz3xh4mPQg1_X6YQPY3BNx6zlb0_2DiQWrKyMcSHeJ3Bjxqrn-Tie2Aej18jVdpvVrCpNeTv57AAvHjSXI-3Av-EWSKrP7wotoz9GwJxvhyphenhyphen9AwaLX9WYHd3BIeIoEMEvexyCy/s1600/IMG_2933.JPG" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbd51tjzlKz3xh4mPQg1_X6YQPY3BNx6zlb0_2DiQWrKyMcSHeJ3Bjxqrn-Tie2Aej18jVdpvVrCpNeTv57AAvHjSXI-3Av-EWSKrP7wotoz9GwJxvhyphenhyphen9AwaLX9WYHd3BIeIoEMEvexyCy/s320/IMG_2933.JPG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">/me tattooed at the JBoss World Party</td></tr>
</tbody></table><span class="Apple-style-span" style="color: #4c4c4c; font-family: inherit; line-height: 17px;">So I finally get to write on <a href="http://www.jboss.org/events/JUDCon" style="color: #431609;">JUDCon</a> and <a href="http://www.redhat.com/summit/" style="color: #431609;">JBoss World/Red Hat Summit</a> from last week that took place in Boston.</span><span class="Apple-style-span" style="color: #4c4c4c; line-height: 17px;"> And what a breathtaking week it was. So much innovation going on and new ideas that I wished I wouldn't need to sleep and clone myself to work on so many things and integrate Mobicents everywhere...</span><br />
<span class="Apple-style-span" style="color: #4c4c4c;"><span class="Apple-style-span" style="font-family: inherit; line-height: 17px;"><br />
</span></span><br />
<span class="Apple-style-span" style="color: #4c4c4c; font-family: inherit; line-height: 17px; white-space: pre-wrap;"></span><br />
<div style="background-color: transparent;"><span class="Apple-style-span" style="font-family: inherit;"><span class="Apple-style-span" style="line-height: normal;"><span class="Apple-style-span" style="color: #4c4c4c; line-height: 17px; white-space: normal;">JUDCon kicked off at the World Trade Centre in Boston with around 200 people attending making it the biggest JUDCon so far, with three tracks of some of the coolest and bleeding edge community tech showcasing JBoss AS7, Infinispan, Arquillian (where I was <a href="http://goo.gl/gUtVC">crown a noble for my contributions</a> last year), Hibernate, etc. Regarding Mobicents, We had the pleasure of having our <a href="http://slidesha.re/lIywTE">first presentation</a> </span><span class="Apple-style-span" style="line-height: 17px; white-space: normal;"><span class="Apple-style-span" style="color: #444444;">"</span></span></span><span class="Apple-style-span" style="line-height: 16px; white-space: pre-line;"><span class="Apple-style-span" style="color: #444444;">Tuning and development with SIP Servlets on Mobicents</span></span><span class="Apple-style-span" style="line-height: normal;"><span class="Apple-style-span" style="line-height: 17px; white-space: normal;"><span class="Apple-style-span" style="color: #444444;">"</span></span><span class="Apple-style-span" style="color: #4c4c4c; line-height: 17px; white-space: normal;"> for a JBoss event done by a great contributor and customer of ours </span></span><span class="Apple-style-span" style="color: #444444;">: Naoki Nishihara from <a href="http://www.oki.com/">OKI</a>. Naoki did a deep dive on how to tune the JVM to accommodate the needs of Telco applications and the SIP Protocol with Mobicents and covered Rapid Application Development and SIP Servlets integration with Spring and CDI which was followed by an interesting QA session. We are in the works to planify a webinar for the community that couldn't attend JUDCon.</span></span><br />
<span class="Apple-style-span" style="color: #454545; font-family: 'Lucida Grande', Geneva, Verdana, Arial, sans-serif; font-size: x-small;"><span class="Apple-style-span" style="line-height: 16px;"><br />
</span></span><br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixEQDawbfKsDVHZC_FCYWrxf1OpnFTE4sQzuv1uMg9lWmGvyL3VTggyPikPDm_yT1DEC7tA2Rr5Q8nAtsx364iYczjfP5yHx0__oEXiCUiuQjI5ojVg1wXxclyZJWXX67QnZa_IV5oeDPY/s1600/IMG_2923.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixEQDawbfKsDVHZC_FCYWrxf1OpnFTE4sQzuv1uMg9lWmGvyL3VTggyPikPDm_yT1DEC7tA2Rr5Q8nAtsx364iYczjfP5yHx0__oEXiCUiuQjI5ojVg1wXxclyZJWXX67QnZa_IV5oeDPY/s400/IMG_2923.JPG" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Thanks Naoki for the Great JUDCon presentation</td></tr>
</tbody></table><br />
<div style="background-color: transparent; line-height: normal;"><span class="Apple-style-span" style="font-family: inherit;"><span class="Apple-style-span" style="color: #444444;"><span id="internal-source-marker_0.9121140805073082" style="background-color: transparent; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Then the JBoss keynote event happened where </span></span><span class="Apple-style-span" style="color: #444444; line-height: 19px;">Enterprise Application Platform 6, </span><span class="Apple-style-span" style="color: #444444; line-height: 19px;"></span><span class="Apple-style-span" style="color: #444444; line-height: 19px;"><span class="Apple-style-span" style="color: #4c4c4c; line-height: 17px;"><a href="http://www.jboss.com/edg6-early-access" style="color: #431609;">JBoss Enterprise Data Grid platform</a></span></span><span class="Apple-style-span" style="color: #444444; line-height: 19px;">, JBoss developer certification were announced </span><span class="Apple-style-span" style="color: #444444;"><span style="background-color: transparent; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">with an incredible live and interactive demo using JBoss cutting edge technologies which was really awesome. As I don't want to spoil the surprise you can see the replay here </span><span style="background-color: transparent; font-style: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"><a href="http://www.ustream.tv/recorded/14457992">http://www.ustream.tv/recorded/14457992</a></span></span></span><br />
</div><div style="background-color: transparent; line-height: normal;"><span class="Apple-style-span" style="color: #444444; font-family: inherit;"><br />
</span></div><div style="background-color: transparent;"><span class="Apple-style-span" style="color: #444444; font-family: inherit;">Then the Red Hat keynote started and I was delighted to see Rancore Technologies, one of your core contributor and most active community member, win the <a href="http://www.redhat.com/summit/rancore/index.html">Red Hat Innovation Award</a> for their <span class="Apple-style-span" style="line-height: 19px;">Service Delivery Platform that </span><span class="Apple-style-span" style="line-height: 19px;">is going to be part of one of the largest 4G LTE/IMS deployments in the world - and in the world's biggest telecom market – India. Rancore's SDP is designed to be suitable for mission critical 4G deployments, where high throughput and low latency are desired</span></span></div><div style="background-color: transparent; line-height: normal;"><span class="Apple-style-span" style="color: #444444; font-family: inherit;"><br />
</span><br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><img border="0" height="325" src="http://openshift.redhat.com/app/images/PaaS.png" style="margin-left: auto; margin-right: auto;" width="400" /></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Because Shift Happens !</td></tr>
</tbody></table><div class="separator" style="clear: both; text-align: center;"><a href="http://openshift.redhat.com/app/images/PaaS.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><span class="Apple-style-span" style="font-family: inherit;"></span></a></div><span class="Apple-style-span" style="color: #444444; font-family: inherit;">The other big news was Red Hat entering the cloud market with our Private Cloud IaaS offering <a href="http://www.redhat.com/solutions/cloud/cloudforms/">CloudForms</a> and with our PaaS offering <a href="http://www.redhat.com/solutions/cloud/openshift/">OpenShift</a>. As we are already working on enabling <a href="http://www.mobicents.org/incubator/cloud/intro.html">Mobicents in the Cloud</a>, you can expect to see better Mobicents integration there in the near future. </span><br />
<span class="Apple-style-span" style="color: #444444;"><br />
</span><br />
<span class="Apple-style-span" style="color: #444444;"><span class="Apple-style-span" style="font-family: inherit;">I also got to meet and party with Mobicents community members that I met face to face for the first time and my JBoss colleagues which was definitely great. I also met with some customers which I cannot really talk about here but I was definitely an awesome event for all JBoss, Red Hat and Mobicents and especially our community !</span></span></div></div>Anonymoushttp://www.blogger.com/profile/03020856645147141247noreply@blogger.com1tag:blogger.com,1999:blog-449022347945889835.post-37153871531392603732011-04-07T12:22:00.000+02:002011-04-07T12:22:19.851+02:00Meet Mobicents at JUDCon 2011This year I will have the pleasure to copresent at JUDCon 2011 (May 2-3, 2011 in Boston) this talk <span class="Apple-style-span" style="color: #545353; font-family: 'Lucida Sans', 'Lucida Sans Unicode', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif; font-size: 15px; line-height: 22px;"><a href="http://www.jboss.org/events/JUDCon/day2track3.html#230PM">Tuning and development with SIP Servlet on Mobicents/JBoss Communications Platform</a></span> with Naoki Nishihara (which I'm eager to meet for the first time), who has been contributing to Mobicents since 2009 and is now part of the core team. He works at Oki Electric Industry Co., Ltd and is leading the <a href="http://www.mobicents.org/mss-ssf.html">Spring Sip Servlets Framework effort on the Mobicents community</a>.<br />
<br />
I will stay around for JBoss World as well so if you're attending either event or will be in the area get in touch with us via <a href="http://twitter.com/mobicents">Twitter</a>, IRC (on Freenode channel #mobicents), or email (jean dot deruelle at gmail dot com) and I'll buy you a beer while you tell me about what you are doing on top of Mobicents and the new features you want in the next version of Mobicents ;-)<br />
<br />
I hope to see you there<br />
JeanAnonymoushttp://www.blogger.com/profile/03020856645147141247noreply@blogger.com0tag:blogger.com,1999:blog-449022347945889835.post-89716187161483484302011-02-08T17:07:00.002+01:002011-02-09T17:16:40.114+01:00Mobicents first hand experience FOSDEM, it was awesome !Hi all,<br /><br />Just got back from <a href="http://www.fosdem.org/2011/">FOSDEM 2011</a> located in Brussels which is one, if not THE biggest open source event in Europe. It's the first time I went there and I was really impressed and had a really great time !<div><br /></div><div>Fosdem 2011 had 201 hours of presentations, squeezed in 2days (~20 physical hours), that's at least 10 parallel tracks for over 300 speakers IIRC<br /><br /><br /><div class="separator" style="clear: both; text-align: left;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGqyCLbwFZl3Sapg2bw3j3BajvfJihyphenhyphenjxz-CeWNfZ5IKAx_6Z7tTf-825369TXQFigrxyIDGGyHm4uKCH8CM3t49Wd7WSng0ar5qe5BaFChjC1CeuCAwit8eiq2492dU8sOW0l2wTaH2ti/s1600/photo.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGqyCLbwFZl3Sapg2bw3j3BajvfJihyphenhyphenjxz-CeWNfZ5IKAx_6Z7tTf-825369TXQFigrxyIDGGyHm4uKCH8CM3t49Wd7WSng0ar5qe5BaFChjC1CeuCAwit8eiq2492dU8sOW0l2wTaH2ti/s320/photo.JPG" width="320" /></a>I finally met with, after around 8 years of knowing him virtually, <b>Emil Ivov</b> the <b>project founder and leader of <a href="http://sip-communicator.org/">Sip Communicator</a> (soon to be Jitsi)</b> and it didn't really felt like we met for the first time which is a strange feeling, it was more like meeting a good old friend after a long time :-) Thanks for the invitation to your team meeting and for the awesome belgium beers, Emil !</div><div class="separator" style="clear: both; text-align: left;">It as a blast to meet in flesh and blood with old and new Mobicents users such as<b> <a href="http://www.crocodile-rcs.com/">Crocodile RCS</a></b> which is always great to see the innovative ways on how Mobicents is being used or is going to be used. I had a lot of private interesting talks with some other private companies I can't mention publicly here but looking forward to our common future ;-)</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both;">I also had the chance to meet some of the great leaders behind other open source projects that were eager to learn more about Mobicents as well like <span class="Apple-style-span" style="font-family: inherit;">Daniel-Constantin Mierla, </span><span class="Apple-style-span" style="line-height: 15px;"><span class="Apple-style-span" style="font-family: inherit;"><b>Co-Founder and Core Developer </b><span class="at" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-style: inherit; font-weight: normal !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">at </span><b><a href="http://www.kamailio.org/">Kamailio</a> ( formerly OpenSER) </b>and <b>Russell Bryant, </b></span></span><span class="Apple-style-span" style="font-family: inherit;"><span class="Apple-style-span" style="font-family: inherit; line-height: 15px;"><b style="line-height: 15px;">Engineering Manager at <a href="http://www.digium.com/en/">Digium</a>, Inc</b><span class="Apple-style-span" style="line-height: 15px;"> </span>who </span></span>managed to conduct a great Open Source Telephony track which was full pretty much all day (see the <a href="http://www.fosdem.org/2011/schedule/track/open_source_telephony_devroom">schedule</a>)<span class="Apple-style-span" style="font-family: inherit;"><span class="Apple-style-span" style="line-height: 15px;"> where I presented<a href="http://www.slideshare.net/jean.deruelle/mobicents-20-the-java-open-source-communications-platformfosdem-2011-jean-deruelle"> Mobicents 2.0, The Java Open Source Communications Platform</a> (click on the link for the slides)</span></span></div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">So Thanks to all for a great and fruitful event !</div><div class="separator" style="clear: both; text-align: left;">Jean</div></div>Anonymoushttp://www.blogger.com/profile/03020856645147141247noreply@blogger.com3tag:blogger.com,1999:blog-449022347945889835.post-13645940070746558022010-10-07T11:42:00.000+02:002010-10-07T11:42:48.019+02:00Mobicents Face to Face Meeting 2010 in AntalyaHowdy !<br />
<br />
Just got back from our Mobicents Team meeting in Antalya - Turkey and it was fantastic !<br />
First of all, big thanks to <a href="http://emmartins.blogspot.com/2010/10/mobicents-team-meeting-2010-antalya.html">Eduardo Martins</a> for organizing the event in this fabulous 5 star resort hotel :<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqlwqgjRFfRq3ztwhq4GOeZngvQLlejsrJFeSjwaGDz52fOoH97M_2h1Ts1ohhku3s4BOLvFfJBpdEO3V-0zYiRuQV0Bc4QOG68BQocBmtXYWOwLE_fOSAxSUQZ3VcwEaHLuWV4lXGSkJh/s1600/C:%5Cfakepath%5CIMG_0506.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqlwqgjRFfRq3ztwhq4GOeZngvQLlejsrJFeSjwaGDz52fOoH97M_2h1Ts1ohhku3s4BOLvFfJBpdEO3V-0zYiRuQV0Bc4QOG68BQocBmtXYWOwLE_fOSAxSUQZ3VcwEaHLuWV4lXGSkJh/s400/C:%5Cfakepath%5CIMG_0506.JPG" width="400" /></a></div><br />
Cherry on the cake, first time ever we got all team members present (thanks to Tom Wells for doing the 1,5 day on a plane trip back and forth from Brisbane);<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBJl0EPa1Y-BDGtEiUxa4VdNCuh0qGZIdiNiKeDjhlqE_bHjSIb3UL1iPb_J_E-rMARckQLVAknM7kEnYoOOZ-DiTNj5ufd13T8OOTPOzSI3F7maCX8nli_ZJxSPix-xUqri8bSl7rvDYP/s1600/C:%5Cfakepath%5CIMG_3497.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBJl0EPa1Y-BDGtEiUxa4VdNCuh0qGZIdiNiKeDjhlqE_bHjSIb3UL1iPb_J_E-rMARckQLVAknM7kEnYoOOZ-DiTNj5ufd13T8OOTPOzSI3F7maCX8nli_ZJxSPix-xUqri8bSl7rvDYP/s400/C:%5Cfakepath%5CIMG_3497.JPG" width="400" /></a></div><br />
<br />
not only that but it was also the first time, community users and customers were invited and three of them joined us on so short notice, especially as we had a real blast with them, they really have the team spirit :-) mixing loads of fun and hard work !<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgE5hKmoUL28dpNVv0WC2CQaAtRjjk8iVzewXIlEZs_gHOHdZC33Cxj6BWysiliZyHr_SAW6Qpm9G0-wENoNxrbVwEPJ9NgLTO1FIA-3Iii_E3tnYa8xZw6ERx6_V1zkKDE8VvVak0EEEtF/s1600/C:%5Cfakepath%5CP2.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="286" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgE5hKmoUL28dpNVv0WC2CQaAtRjjk8iVzewXIlEZs_gHOHdZC33Cxj6BWysiliZyHr_SAW6Qpm9G0-wENoNxrbVwEPJ9NgLTO1FIA-3Iii_E3tnYa8xZw6ERx6_V1zkKDE8VvVak0EEEtF/s400/C:%5Cfakepath%5CP2.JPG" width="400" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcQ-ruConmSeuRQ-0hTROTdKoUcXssFgFZG0N1IAKDdzF4GKAILh0is79rxm-yoqr-XW9zEkq1DWg5uv8njd6dqm2rYjtS3jqlWfpbvzOf2gnztLAAZUGy2W_rnutmSE8PIVO5VemBF9wo/s1600/C:%5Cfakepath%5CP1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="285" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcQ-ruConmSeuRQ-0hTROTdKoUcXssFgFZG0N1IAKDdzF4GKAILh0is79rxm-yoqr-XW9zEkq1DWg5uv8njd6dqm2rYjtS3jqlWfpbvzOf2gnztLAAZUGy2W_rnutmSE8PIVO5VemBF9wo/s400/C:%5Cfakepath%5CP1.JPG" width="400" /></a></div><br />
<div style="text-align: center;">Having rafting fun with the whole team of chickens, Jianfei and Raziya</div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8cOnthfpteTipuPKduJCgL4SOHgkCf2k29zy-7rWFKAYipANGjmy_DHY2ZnFgSOr7zRjVs8Ztz5piqhb6f_G8br7gnbKfFYJ8do9BInuD1d2YzquJ0K_3QWz-XP1T56Y-ojLv1vtI6YmN/s1600/C:%5Cfakepath%5CIMG_4914.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8cOnthfpteTipuPKduJCgL4SOHgkCf2k29zy-7rWFKAYipANGjmy_DHY2ZnFgSOr7zRjVs8Ztz5piqhb6f_G8br7gnbKfFYJ8do9BInuD1d2YzquJ0K_3QWz-XP1T56Y-ojLv1vtI6YmN/s400/C:%5Cfakepath%5CIMG_4914.JPG" width="400" /></a></div><div style="text-align: center;">Here hard at work on Sip Servlets with Jianfei and Andrew on SIP Servlets</div><br />
Jianfei and Andrew gaves us a great presentations and we had interesting discussions on how they use Mobicents Sip Servlets and how they intend to use more of the Mobicents platform components in the near future. By example, I learned from one of them that they went to <a href="http://www.sipforum.org/content/view/69/186/">SIPit</a> with their product on top of Mobicents Sip Servlets and that it went pretty well !<br />
<br />
Their feedback was so interesting that I completely reworked <a href="http://www.mobicents.org/mss-roadmap.html">Mobicents Sip Servlets' roadmap</a> to accomodate their needs, that's the beauty of open source and great relationships, you have a direct influence on our roadmap (which is your roadmap really :-)) !<br />
<br />
Following that, we went through most of the projects composing Mobicents platform going over for each one, achievements, roadmap, architecture, training, HA, .... There is so many projects and it is moving so fast that it's really amazing even we agreed to stop diversifying for now and consolidate around what we have.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpXN3E_2mAGqZ42_Ly1F4jS6LGhRuVkjUkGzqo_dgeWayWuI1wtueoKS7l3bi_xDgT_maOALNZndU3UVDVDd00pVsu9jNy7AONZdItxA7rxnwC4dp1WiDaV8QnXS0Dwpc91EcUwcQ9ktE1/s1600/C:%5Cfakepath%5CIMG_0499.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpXN3E_2mAGqZ42_Ly1F4jS6LGhRuVkjUkGzqo_dgeWayWuI1wtueoKS7l3bi_xDgT_maOALNZndU3UVDVDd00pVsu9jNy7AONZdItxA7rxnwC4dp1WiDaV8QnXS0Dwpc91EcUwcQ9ktE1/s400/C:%5Cfakepath%5CIMG_0499.JPG" width="400" /></a></div><br />
<br />
I really enjoyed the Diameter training and got a better understanding of the real world use cases, SS7 was an interesting topic as well for me and see how I can integrate it with Mobicents Sip Servlets.<br />
JAIN SLEE team pulled off an amazing amount of work over the last year to achieve 2.x releases and rejuvenate the SLEE spec to make it look more attractive with the new extensions and annotations work.<br />
<br />
<span class="Apple-style-span" style="color: #242424; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; line-height: 20px;"></span><br />
<div>I had 2 talks scheduled on Mobicents Sip Servlets :</div><div><ul style="line-height: 1.4; list-style-image: initial; list-style-position: initial; list-style-type: disc; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.5em; padding-bottom: 0px; padding-left: 2.5em; padding-right: 2.5em; padding-top: 0px;"><li style="border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-color: initial; border-top-style: none; border-top-width: initial; border-width: initial; margin-bottom: 0.25em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-indent: 0px;">First, as I said above on the achievements, challenges and goals/roadmap which you can find <a href="https://docs.google.com/fileview?id=0B3Z3Uhj-XHcDYWUxYmQxYWEtODhiYi00NGNiLTk5NjEtYmZjMjRiZDg0OTU5&hl=en">here</a>. Basically this was the stability and HA year for Mobicents Sip Servlets and JAIN SIP (Thanks to Ranga for its everlasting help), we improved the performance a lot, be it standalone or HA and completely refactored our HA layers (JAIN SIP HA, MSS HA, Converged Load Balancer, ...)</li>
<li style="border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-color: rgba(128, 128, 128, 0.496094); border-top-style: none; border-top-width: 1px; border-width: initial; margin-bottom: 0.25em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-indent: 0px;">Second, on the <a href="https://docs.google.com/leaf?id=0B3Z3Uhj-XHcDNTAyOTc5MTAtNmUxMi00NDZhLWJlNTMtNjg3NjQ0MjA0NTZi&hl=en">Sip Servlets review</a> which was about the architecture of SIP Servlets but also <a href="https://jain-sip.dev.java.net/">JAIN SIP Stack</a>, and our <a href="http://jeanderuelle.blogspot.com/2010/08/introducing-jain-sip-ha-or-how-you-can.html">JAIN SIP HA</a> layer</li>
</ul></div><br />
One thing I want to reiterate is that the community around Mobicents is really awesome with customers and community users now joining us to the meeting, I'm pretty sure with more planning we can increase that number for the next meeting, please ping me if you want to be part of it next year.<br />
<br />
With a <a href="http://sourceforge.net/projects/mobicents/files/Mobicents%20Sip%20Servlets/">lots of downloads</a>, <a href="http://www.mobicents.org/acknowledgements.html">contributions</a> from various users and companies around the world (you can become one too !), let's all make Mobicents the best Communications Platform in the world !<br />
<br />
Feel free to ping me if you want to contribute either with great ideas, bug fixing, new examples, fixing documentation, ...<br />
<br />
Jean<br />
<br />
Much fun down here :<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPOEHxD4IUdet8XfdmOXfeZL9WeaiWstsDO2e33HA6teztdrKgmDxiqhyphenhyphen8jPpxJAc9jxmrjR7jw1jNFmB_3hdHuZ72dAzJ1f4AhULtA5EWeL8rPkfctw1cimg8pVxK_03ciih03MjDPfjQ/s1600/C:%5Cfakepath%5CIMG_0537.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPOEHxD4IUdet8XfdmOXfeZL9WeaiWstsDO2e33HA6teztdrKgmDxiqhyphenhyphen8jPpxJAc9jxmrjR7jw1jNFmB_3hdHuZ72dAzJ1f4AhULtA5EWeL8rPkfctw1cimg8pVxK_03ciih03MjDPfjQ/s400/C:%5Cfakepath%5CIMG_0537.JPG" width="400" /></a></div><div style="text-align: center;">Shopping for the family with bartek... </div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1uNkKxqesP36ZXvtX76Gh1Pa4v_9XFzZANfOFMivLrO-EOuBBSYndAtDfjD34DEA22wa8oc6P3277a0dAhOaAU-7Bkn8GNTWS6I5WSJNaF8ftvTFSozho5WTlTf96eGm368ycMGmGa0G-/s1600/C:%5Cfakepath%5CIMG_0522.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1uNkKxqesP36ZXvtX76Gh1Pa4v_9XFzZANfOFMivLrO-EOuBBSYndAtDfjD34DEA22wa8oc6P3277a0dAhOaAU-7Bkn8GNTWS6I5WSJNaF8ftvTFSozho5WTlTf96eGm368ycMGmGa0G-/s400/C:%5Cfakepath%5CIMG_0522.JPG" width="400" /></a></div><div style="text-align: center;">Sea swimming at noon between the meetings</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjY-Ljxle98_dBDK0ZAmJgCS2CakOF9q1wzc6VpF49P_3S9NznLvpEEgSlcxY52nbzxKpZzuuYeeWIbYuJbh7sdGvpeNQSvQL2dqyPb5xyCSM4VFf59GZs397RYYP7zU82M2JvniDDu9D-t/s1600/C:%5Cfakepath%5CIMG_0490.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjY-Ljxle98_dBDK0ZAmJgCS2CakOF9q1wzc6VpF49P_3S9NznLvpEEgSlcxY52nbzxKpZzuuYeeWIbYuJbh7sdGvpeNQSvQL2dqyPb5xyCSM4VFf59GZs397RYYP7zU82M2JvniDDu9D-t/s400/C:%5Cfakepath%5CIMG_0490.JPG" width="400" /></a></div><div class="separator" style="clear: both; text-align: center;">Bowling nights</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhUFwiC2Z09W1QPqqUvH4wcF5rLRGjNJplbkPuwakBI0IvX5Rzm_1ePZC3qscFGQko3n8e2S2NpYbTGD2piM41nIjDY5J9K5lLfqHvcN65bK_pBsESnYN0wKhBJAjcFvIGADs8e1g3yU3h/s1600/C:%5Cfakepath%5CIMG_2824.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhUFwiC2Z09W1QPqqUvH4wcF5rLRGjNJplbkPuwakBI0IvX5Rzm_1ePZC3qscFGQko3n8e2S2NpYbTGD2piM41nIjDY5J9K5lLfqHvcN65bK_pBsESnYN0wKhBJAjcFvIGADs8e1g3yU3h/s400/C:%5Cfakepath%5CIMG_2824.JPG" width="400" /></a></div><div class="separator" style="clear: both; text-align: center;">Drinking and chill out time</div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div style="text-align: center;"><br />
</div>Anonymoushttp://www.blogger.com/profile/03020856645147141247noreply@blogger.com5tag:blogger.com,1999:blog-449022347945889835.post-40116119649217831232010-09-14T22:23:00.001+02:002010-09-14T22:24:54.728+02:00Mobicents consultants needed in US and EuropeHi all,<br /><br />I'm looking for consultants, freelancers in the US or Europe for Mobicents.<br />Ideally the profile would be to already know or use or contribute to Mobicents, have good knowledge about SIP (JAIN SIP and NIST SIP Stack is a plus) and know SIP Servlets, High Availability/Failover/ Load Balancing (about SIP and ideally HTTP as well).<br />JAIN SLEE, Media and Telco protocols knowledge is a plus.<br />Good English level required and be ready to travel.<br /><br />If you want more information or apply ping me on jean.deruelle@gmail.com<br /><br />Looking forward to talk to you<br />JeanAnonymoushttp://www.blogger.com/profile/03020856645147141247noreply@blogger.com2tag:blogger.com,1999:blog-449022347945889835.post-8698449760592419932010-08-10T19:01:00.000+02:002010-08-10T19:01:57.582+02:00Introducing JAIN SIP HA... or how you can replicate and failover your JAIN SIP application with no changes to your code.<div style="background-color: white; color: black; counter-reset: __goog_page__ 0; font-family: Verdana; font-size: 10pt; line-height: normal; margin-bottom: 6px; margin-left: 6px; margin-right: 6px; margin-top: 6px; min-height: 1100px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: georgia, serif;"><span class="Apple-style-span" style="font-size: small;"><b><u><i>History</i></u></b></span><b> : (you can skip to the next section if you're not very fond of history :-))</b></span></div><b><br />
</b><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: georgia, serif;">In <span class="Apple-style-span" style="font-size: small;"><a href="http://www.mobicents.org/">Mobicents</a>, we use the great <a href="https://jain-sip.dev.java.net/">Open Source NIST SIP Stack</a> (which is incidentally the Reference Implementation of the JAIN SIP specification as well) on both Mobicents Sip Servlets and Mobicents JAIN SLEE Resource Adaptor, when we started to work on High Availability we started replicating the full dialog to be able to fail over SIP Calls when one node in the cluster died. First, this was not very efficient since a lot the data structure could be recreated upon failover instead of replicating most of the data within the dialog. Then, for re-INVITE the dialog was not found since it was injected back into the stack later by the application layer (in this case Mobicents) instead of checking if the dialog id was present into the stack or replicated cache during the message processing done by the stack. We first choose this solution because we didn't want to introduce any external dependencies into the NIST SIP Stack for people not interested in HA and minimize code changed in the NIST SIP Stack. Since we hit the above mentioned issues we decided it was time to create our <a href="http://www.mobicents.org/incubator/jain-sip-ha/intro.html" id="ne-d" title="own extension to the NIST SIP Stack allowing HA and failover">own extension to the NIST SIP Stack allowing HA and failover</a> in a non intrusive way (i.e. without any code change in your application, everything is done under the cover transparently by configuration) so that it benefits not only the Mobicents Community but the whole NIST SIP community. Ok enough history, let's get our hands dirty and see how it works, shall we ?</span></span></div><span class="Apple-style-span" style="font-size: small;"><br />
</span><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: georgia, serif;"><span class="Apple-style-span" style="font-size: small;"><b><u><i>How does it work ?</i></u></b></span></span></div><span class="Apple-style-span" style="font-size: small;"><br />
</span><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: georgia, serif;"><span class="Apple-style-span" style="font-size: small;">It currently supports only established dialog replication & failover. So the replication occurs only when the dialog goes to CONFIRMED state. There is also a mode where everytime the dialog application data (data set by the application on the dialog <span class="Apple-style-span" style="font-family: Georgia;">u</span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: Georgia;">sed to link the call state of this dialog to other state, SIP or otherwise in the system. For example this method could be used by a B2BUA to link the dialogs of the ingress and egress sides</span></span><span class="Apple-style-span" style="font-family: Georgia;">) is updated, it replicates the changes. </span>There is some other modes that can be added like early dialog replication and transaction replication but we didn't see the value in that and will be implemented only on a strong use case (one could be handling 911 calls where one doesn't want emergency call setup to fail at all) because it will have a lot of overhead and will decrease the performance a lot.</span></span></div><span class="Apple-style-span" style="font-size: small;"><br />
</span><ol style="margin-bottom: 0px; margin-top: 0px;"><li style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: georgia, serif;"><b>UAS mode</b></span></span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: georgia, serif;">So if a node fails after the dialog goes to CONFIRMED, when a subsequent request will hit another node, the <a href="http://www.mobicents.org/incubator/jain-sip-ha/intro.html" id="clhc" title="Mobicents NIST SIP HA Stack">Mobicents NIST SIP HA Stack</a> will check first if it has the dialog locally and if not, it will check the cache, get the dialog data from the cache, recreate the dialog and add it to the local stack and handle the subsequent request without any problem<br />
</span></span></li>
<li style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: georgia, serif;"><b>UAC mode</b></span></span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: georgia, serif;">In UAC mode, it needs a bit more work and modifications at the application code level actually. So I lied but it was to get you interested ;-)</span></span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: georgia, serif;">So if a node fails after the dialog goes to CONFIRMED, and an external event makes the failover node to create a subsequent request on the dialog that was originally present on the node that crashed. You actually need to know the Dialog Id of the node to get it from the local stack through<br />
</span></span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: 'courier new';">((ClusteredSipStack)sipProvider.getSipStack()).getDialog(dialogId);<br />
</span></span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: georgia, serif;">the <a href="http://www.mobicents.org/incubator/jain-sip-ha/intro.html" id="qsti" title="Mobicents NIST SIP HA Stack">Mobicents NIST SIP HA Stack</a> will check first if it has the dialog locally and if not, it will check the cache, get the dialog data from the cache, recreate the dialog and add it to the local stack and return it. Then you will be able to create the subsequent request and proceed normally. Please not that you can cache the dialogIds in the same JBoss Cache instance used by the <span class="Apple-style-span" style="font-family: georgia, serif;"><span class="Apple-style-span" style="font-size: small;">Mobicents NIST SIP HA Stack. To access it just use :</span></span></span></span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: 'courier new';">((MobicentsSipCache)((ClusteredSipStack)sipProvider.getSipStack()).getSipCache()).getMobicentsCache().getJBossCache()<br />
</span></span></li>
</ol><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: georgia, serif;"><span class="Apple-style-span" style="font-size: small;">Please note that our <a href="http://www.mobicents.org/incubator/jain-sip-ha/intro.html" id="gsev" title="NIST SIP HA layer">NIST SIP HA layer</a> is based on JBoss technologies (<a href="http://jboss.org/jbosscache" id="sltk" title="JBoss Cache">JBoss Cache</a>, <a href="http://www.jgroups.org/" id="bqev" title="JGroups">JGroups</a> and <a href="http://www.mobicents.org/incubator/cluster/intro.html" id="hlgs" title="Mobicents Cluster framework">Mobicents Cluster framework</a>) but has an abstract layer so that it can be extended to use other technology such as infinispan, terracota or whatever fits your architecture.</span></span></div><span class="Apple-style-span" style="font-size: small;"><br />
</span><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: georgia, serif;"><span class="Apple-style-span" style="font-size: small;"><b><i><u>No code change in my application ? You gotta be kiddin' me ?</u></i></b></span></span></div><span class="Apple-style-span" style="font-size: small;"><b><i><u><br />
</u></i></b></span><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: georgia, serif;"><span class="Apple-style-span" style="font-size: small;">That's right, as seen above everything is handled automagically by the Mobicents NIST SIP HA layer the only thing needed is a bit more configuration and adding libraries to your application classpath. This presuppose the configuration of the stack is not hard coded in the application but externalized in a properties file or some other way.</span></span></div><span class="Apple-style-span" style="font-size: small;"><br />
</span><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: georgia, serif;"><span class="Apple-style-span" style="font-size: small;">But I lied a bit, there is a code change needed, you have to tell your application to use the Mobicents NIST SIP HA Stack (which is just an extension of the regular NIST SIP Stack) :</span></span></div><span class="Apple-style-span" style="font-size: small;"><br />
</span><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: 'Courier New';">sipFactory.setPathName("org.mobicents.ha");</span></span></div><span class="Apple-style-span" style="font-size: small;"><br />
</span><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: georgia, serif;"><span class="Apple-style-span" style="font-size: small;">But this can be avoided if the path name is looked up from the configuration properties passed to the application as said above.</span></span></div><span class="Apple-style-span" style="font-size: small;"><br />
</span><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: georgia, serif;"><span class="Apple-style-span" style="font-size: small;">So if you want to use it, you basically need to set up 2 configuration properties :</span></span></div><span class="Apple-style-span" style="font-size: small;"><br />
</span><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><b><span class="Apple-style-span" style="font-family: 'Courier New';">#STACK PATH NAME</span></b></span></div><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><b><span class="Apple-style-span" style="font-family: 'Courier New';">javax.sip.stack.PATH_NAME=org.mobicents.ha</span></b></span></div><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><b><span class="Apple-style-span" style="font-family: 'Courier New';"># whether or not the cache should be standalone or looked up from the JBoss AS if the jain sip stack is running in a JBoss container</span></b></span></div><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><b><span class="Apple-style-span" style="font-family: 'Courier New';">org.mobicents.ha.javax.sip.cache.MobicentsSipCache.standalone=true</span></b></span></div><span class="Apple-style-span" style="font-size: small;"><b><br />
</b></span><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><b><span class="Apple-style-span" style="font-family: 'Courier New';">The rest of the properties are optional :</span></b></span></div><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><b><span class="Apple-style-span" style="font-family: 'Courier New';">#org.mobicents.ha.javax.sip.cache.MobicentsSipCache.cacheName=standard-session-cache</span></b></span></div><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><b><span class="Apple-style-span" style="font-family: 'Courier New';"># path to the configuration file of jboss cache, defaults to META-INF/cache-configuration.xml</span></b></span></div><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><b><span class="Apple-style-span" style="font-family: 'Courier New';">#org.mobicents.ha.javax.sip.JBOSS_CACHE_CONFIG_PATH=META-INF/cache-configuration.xml</span></b></span></div><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><b><span class="Apple-style-span" style="font-family: 'Courier New';"># Replication strategy one of ConfirmedDialog or ConfirmedDialogNoApplicationData, defaults to the latter</span></b></span></div><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><b><span class="Apple-style-span" style="font-family: 'Courier New';">#org.mobicents.ha.javax.sip.REPLICATION_STRATEGY=ConfirmedDialogNoApplicationData</span></b></span></div><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><b><span class="Apple-style-span" style="font-family: 'Courier New';">#the class name of the class responsible for replicating the dialog etc, this allows to plug your own replication implementation (such as one based on Terracota), defaults to JBossCache 3</span></b></span></div><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><b><span class="Apple-style-span" style="font-family: 'Courier New';">#org.mobicents.ha.javax.sip.CACHE_CLASS_NAME=org.mobicents.ha.javax.sip.cache.ManagedMobicentsSipCache</span></b></span></div><span class="Apple-style-span" style="font-size: small;"><br />
</span><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: georgia, serif;"><span class="Apple-style-span" style="font-size: small;">The libraries needed to be added to your classpath are the following :</span></span></div><span class="Apple-style-span" style="font-size: small;"><br />
</span><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: georgia, serif;"><a href="http://repository.jboss.com/maven2/javax/transaction/jta/1.1/jta-1.1.jar" id="fvzy" title="http://repository.jboss.com/maven2/javax/transaction/jta/1.1/jta-1.1.jar">http://repository.jboss.com/maven2/javax/transaction/jta/1.1/jta-1.1.jar</a></span></span></div><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: georgia, serif;"><span class="Apple-style-span" style="font-size: small;"><a href="http://repository.jboss.com/maven2/jboss/jboss-serialization/1.0.3.GA/jboss-serialization-1.0.3.GA.jar" id="g-cl" title="http://repository.jboss.com/maven2/jboss/jboss-serialization/1.0.3.GA/jboss-serialization-1.0.3.GA.jar">http://repository.jboss.com/maven2/jboss/jboss-serialization/1.0.3.GA/jboss-serialization-1.0.3.GA.jar</a></span></span></div><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: georgia, serif;"><span class="Apple-style-span" style="font-size: small;"><a href="http://repository.jboss.com/maven2/jgroups/jgroups/2.6.7.GA/jgroups-2.6.7.GA.jar" id="r4wh" title="http://repository.jboss.com/maven2/jgroups/jgroups/2.6.7.GA/jgroups-2.6.7.GA.jar">http://repository.jboss.com/maven2/jgroups/jgroups/2.6.7.GA/jgroups-2.6.7.GA.jar</a></span></span></div><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: georgia, serif;"><span class="Apple-style-span" style="font-size: small;"><a href="http://repository.jboss.com/maven2/org/jboss/cache/jbosscache-core/3.1.0.GA/jbosscache-core-3.1.0.GA.jar" id="cvhh" title="http://repository.jboss.com/maven2/org/jboss/cache/jbosscache-core/3.1.0.GA/jbosscache-core-3.1.0.GA.jar">http://repository.jboss.com/maven2/org/jboss/cache/jbosscache-core/3.1.0.GA/jbosscache-core-3.1.0.GA.jar</a></span></span></div><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: georgia, serif;"><span class="Apple-style-span" style="font-size: small;"><a href="http://repository.jboss.com/maven2/org/jboss/cluster/jboss-ha-server-api/1.1.0.GA/jboss-ha-server-api-1.1.0.GA.jar" id="cst3" title="http://repository.jboss.com/maven2/org/jboss/cluster/jboss-ha-server-api/1.1.0.GA/jboss-ha-server-api-1.1.0.GA.jar">http://repository.jboss.com/maven2/org/jboss/cluster/jboss-ha-server-api/1.1.0.GA/jboss-ha-server-api-1.1.0.GA.jar</a></span></span></div><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: georgia, serif;"><span class="Apple-style-span" style="font-size: small;"><a href="http://repository.jboss.com/maven2/org/jboss/cluster/jboss-ha-server-cache-jbc/2.0.0.GA/jboss-ha-server-cache-jbc-2.0.0.GA.jar" id="aesg" title="http://repository.jboss.com/maven2/org/jboss/cluster/jboss-ha-server-cache-jbc/2.0.0.GA/jboss-ha-server-cache-jbc-2.0.0.GA.jar">http://repository.jboss.com/maven2/org/jboss/cluster/jboss-ha-server-cache-jbc/2.0.0.GA/jboss-ha-server-cache-jbc-2.0.0.GA.jar</a></span></span></div><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: georgia, serif;"><span class="Apple-style-span" style="font-size: small;"><a href="http://repository.jboss.com/maven2/org/jboss/cluster/jboss-ha-server-cache-spi/2.0.0.GA/jboss-ha-server-cache-spi-2.0.0.GA.jar" id="uyvq" title="http://repository.jboss.com/maven2/org/jboss/cluster/jboss-ha-server-cache-spi/2.0.0.GA/jboss-ha-server-cache-spi-2.0.0.GA.jar">http://repository.jboss.com/maven2/org/jboss/cluster/jboss-ha-server-cache-spi/2.0.0.GA/jboss-ha-server-cache-spi-2.0.0.GA.jar</a></span></span></div><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: georgia, serif;"><span class="Apple-style-span" style="font-size: small;"><a href="http://repository.jboss.com/maven2/org/jboss/javaee/jboss-transaction-api/1.0.1.GA/jboss-transaction-api-1.0.1.GA.jar" id="qtk2" title="http://repository.jboss.com/maven2/org/jboss/javaee/jboss-transaction-api/1.0.1.GA/jboss-transaction-api-1.0.1.GA.jar">http://repository.jboss.com/maven2/org/jboss/javaee/jboss-transaction-api/1.0.1.GA/jboss-transaction-api-1.0.1.GA.jar</a></span></span></div><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: georgia, serif;"><span class="Apple-style-span" style="font-size: small;"><a href="http://repository.jboss.com/maven2/org/jboss/jboss-common-core/2.2.10.GA/jboss-common-core-2.2.10.GA.jar" id="afho" title="http://repository.jboss.com/maven2/org/jboss/jboss-common-core/2.2.10.GA/jboss-common-core-2.2.10.GA.jar">http://repository.jboss.com/maven2/org/jboss/jboss-common-core/2.2.10.GA/jboss-common-core-2.2.10.GA.jar</a></span></span></div><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: georgia, serif;"><span class="Apple-style-span" style="font-size: small;"><a href="http://repository.jboss.com/maven2/org/jboss/logging/jboss-logging-spi/2.0.5.GA/jboss-logging-spi-2.0.5.GA.jar" id="i2hk" title="http://repository.jboss.com/maven2/org/jboss/logging/jboss-logging-spi/2.0.5.GA/jboss-logging-spi-2.0.5.GA.jar">http://repository.jboss.com/maven2/org/jboss/logging/jboss-logging-spi/2.0.5.GA/jboss-logging-spi-2.0.5.GA.jar</a></span></span></div><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: georgia, serif;"><span class="Apple-style-span" style="font-size: small;"><a href="http://repository.jboss.com/maven2/org/jboss/metadata/jboss-metadata/1.0.0.CR5/jboss-metadata-1.0.0.CR5.jar" id="s8l_" title="http://repository.jboss.com/maven2/org/jboss/metadata/jboss-metadata/1.0.0.CR5/jboss-metadata-1.0.0.CR5.jar">http://repository.jboss.com/maven2/org/jboss/metadata/jboss-metadata/1.0.0.CR5/jboss-metadata-1.0.0.CR5.jar</a></span></span></div><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: georgia, serif;"><span class="Apple-style-span" style="font-size: small;"><a href="https://repository.jboss.org/nexus/content/groups/public/org/mobicents/cluster/cache/1.6/cache-1.6.jar" id="nu95" title="https://repository.jboss.org/nexus/content/groups/public/org/mobicents/cluster/cache/1.6/cache-1.6.jar">https://repository.jboss.org/nexus/content/groups/public/org/mobicents/cluster/cache/1.6/cache-1.6.jar</a></span></span></div><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: georgia, serif;"><span class="Apple-style-span" style="font-size: small;"><a href="https://repository.jboss.org/nexus/content/groups/public/org/mobicents/ha/javax/sip/mobicents-jain-sip-ha-core/0.11/mobicents-jain-sip-ha-core-0.11.jar" id="olnl" title="https://repository.jboss.org/nexus/content/groups/public/org/mobicents/ha/javax/sip/mobicents-jain-sip-ha-core/0.11/mobicents-jain-sip-ha-core-0.11.jar">https://repository.jboss.org/nexus/content/groups/public/org/mobicents/ha/javax/sip/mobicents-jain-sip-ha-core/0.11/mobicents-jain-sip-ha-core-0.11.jar</a></span></span></div><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: georgia, serif;"><span class="Apple-style-span" style="font-size: small;"><a href="https://repository.jboss.org/nexus/content/groups/public/org/mobicents/ha/javax/sip/mobicents-jain-sip-jboss5/0.11/mobicents-jain-sip-jboss5-0.11.jar" id="wdln" title="https://repository.jboss.org/nexus/content/groups/public/org/mobicents/ha/javax/sip/mobicents-jain-sip-jboss5/0.11/mobicents-jain-sip-jboss5-0.11.jar">https://repository.jboss.org/nexus/content/groups/public/org/mobicents/ha/javax/sip/mobicents-jain-sip-jboss5/0.11/mobicents-jain-sip-jboss5-0.11.jar</a></span></span></div><span class="Apple-style-span" style="font-size: small;"><br />
</span><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: Georgia;">or the following dependencies if you use Maven</span></span></div><span class="Apple-style-span" style="font-size: small;"><br />
</span><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: 'Courier New';"><dependency></span></span></div><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: 'Courier New';"><groupId</span></span><span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;">></span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: 'Courier New';">org.mobicents.ha.javax.sip</span></span><span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"><</span><span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;">/groupId</span><span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;">></span></div><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: 'Courier New';"><artifactId</span></span><span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;">></span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: 'Courier New';">mobicents-jain-sip-ha-core</span></span><span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"><</span><span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;">/artifactId</span><span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;">></span></div><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: 'Courier New';"><version</span></span><span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;">></span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: 'Courier New';">0.11</span></span><span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"><</span><span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;">/version</span><span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;">></span></div><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: 'Courier New';"></dependency</span></span><span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;">></span></div><span class="Apple-style-span" style="font-size: small;"><br />
</span><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: 'Courier New';"><dependency</span></span><span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;">></span></div><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: 'Courier New';"><groupId</span></span><span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;">></span><span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;">org.mobicents.ha.javax.sip</span><span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"><</span><span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;">/groupId</span><span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;">></span></div><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: 'Courier New';"><artifactId</span></span><span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;">></span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: 'Courier New';">mobicents-jain-sip-jboss5</span></span><span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"><</span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: 'Courier New';">/artifactId</span></span><span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;">></span></div><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: 'Courier New';"><version</span></span><span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;">></span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: 'Courier New';">0.11</span></span><span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"><</span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: 'Courier New';">/version</span></span><span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;">></span></div><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: 'Courier New';"></dependency</span></span><span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;">></span></div><span class="Apple-style-span" style="font-size: small;"><br />
</span><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: 'Courier New';"><dependency</span></span><span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;">></span></div><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: 'Courier New';"><groupId</span></span><span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;">></span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: 'Courier New';">org.mobicents.cluster</span></span><span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"><</span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: 'Courier New';">/groupId</span></span><span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;">></span></div><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: 'Courier New';"><artifactId</span></span><span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;">></span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: 'Courier New';">cache</span></span><span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"><</span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: 'Courier New';">/artifactId</span></span><span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;">></span></div><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: 'Courier New';"><version</span></span><span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;">></span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: 'Courier New';">1.6</span></span><span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"><</span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: 'Courier New';">/version</span></span><span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;">></span></div><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: 'Courier New';"></dependency</span></span><span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;">></span></div><span class="Apple-style-span" style="font-size: small;"><br />
</span><span class="Apple-style-span" style="font-size: small;"><br />
</span><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: Georgia;">There is quite a few jboss libraries that shouldn't be needed in reality, this is because <span class="Apple-style-span" style="font-family: georgia, serif;"><span class="Apple-style-span" style="font-size: small;">mobicents-jain-sip-jboss5 have an option to integrate directly with the JBoss AS5 Cache Manager.</span></span></span></span></div><span class="Apple-style-span" style="font-size: small;"><br />
</span><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: georgia, serif;"><span class="Apple-style-span" style="font-size: small;">You will need to include the jboss cache configuration file <span class="Apple-style-span" style="font-family: georgia, serif;"><span class="Apple-style-span" style="font-size: small;">cache-configuration.xml </span></span>in a META-INF folder as well. And that's it !</span></span></div><span class="Apple-style-span" style="font-size: small;"><br />
</span><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: georgia, serif;"><span class="Apple-style-span" style="font-size: small;"><b><u><i>Where can I find an example to play with it that I check it out and start to play with it?</i></u></b></span></span></div><span class="Apple-style-span" style="font-size: small;"><br />
</span><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: Georgia;">We developped a sample application for you to try and have fun with in a form of a maven project that includes a junit test case showcasing the HA and <span class="Apple-style-span" style="font-family: georgia;"><span class="Apple-style-span" style="font-size: small;">Dialog </span></span>failover.</span></span></div><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: Georgia;"><span class="Apple-style-span" style="font-size: small;">You have 2 choices here : </span></span></div><span class="Apple-style-span" style="font-size: small;"><br />
</span><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: Georgia;"><span class="Apple-style-span" style="font-size: small;">It's available directly on github at <a href="http://github.com/deruelle/nist-sip-ha-test">http://github.com/deruelle/nist-sip-ha-test</a></span></span></div><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: Georgia;">or as a packaged download here <a href="http://mobicents.googlecode.com/files/nist-sip-ha-test.zip" id="njyd" title="http://mobicents.googlecode.com/files/nist-sip-ha-test.zip">http://mobicents.googlecode.com/files/nist-sip-ha-test.zip</a></span></span><br />
<span class="Apple-style-span" style="font-size: small;"><br />
</span><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: Georgia;">To run it just do mvn test and this will be it.</span></span></div><span class="Apple-style-span" style="font-size: small;"><br />
</span><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: Georgia;">This test aims to test Mobicents NIST SIP HA Dialog failover recovery in UAS mode.</span></span></div><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: Georgia;"> * There is Shootist on port 5060 that acts as a UAC and shoots at a stateless proxy on port 5050 (scaled down version of a balancer)</span></span></div><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: Georgia;"> * There is Balancer which is a very simple stateless proxy that proxies the requests from the UAC to the first UAS node (Shootme) on port 5070 that will reply with 180 Ringing and 200 OK</span></span></div><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: Georgia;"> * The dialog state is updated to CONFIRMED and triggers the replication to JBoss Cache</span></span></div><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: Georgia;"> * on ACK, the first UAS node stops itself.</span></span></div><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: Georgia;"> * The UAC sends a BYE that the stateless proxy forwards to the second UAS node (shootme_</span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: Georgia;">recovery)</span></span><span class="Apple-style-span" style="font-family: Georgia;"> on port 5080</span></span></div><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: Georgia;"> * </span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: Georgia;">Shootme recovery on BYE gets the dialog from the cache and recreates the dialog locally based</span></span></span></div><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: Georgia;"> * Shootme recovery handles the BYE and sends OK to BYE without any issue.</span></span></div><span class="Apple-style-span" style="font-size: small;"><br />
</span><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: georgia, serif;"><span class="Apple-style-span" style="font-size: small;"><b><u><i>That's very cool, if I want to go further but where can I find a cheap and powerful SIP Load Balancer for my cluster to balance my SIP load and ensure failover ?</i></u></b></span></span></div><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-size: small;"><br />
</span><span class="Apple-style-span" style="font-family: Georgia;">That's easy, Mobicents provides such a <a href="http://www.mobicents.org/incubator/sip-balancer/intro.html" id="q9df" title="SIP Load Balancer">SIP Load Balancer</a></span></span><div style="margin-bottom: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: Georgia;">The binary for it is available here </span><span class="Apple-style-span" style="font-family: Georgia;"><a href="https://repository.jboss.org/nexus/content/groups/public/org/mobicents/tools/sip-balancer-jar/1.0.1/sip-balancer-jar-1.0.1.jar" id="glux" title="https://repository.jboss.org/nexus/content/groups/public/org/mobicents/tools/sip-balancer-jar/1.0.1/sip-balancer-jar-1.0.1.jar">https://repository.jboss.org/nexus/content/groups/public/org/mobicents/tools/sip-balancer-jar/1.0.1/sip-balancer-jar-1.0.1.jar</a> </span></span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: georgia;">and <a href="http://www.mobicents.org/user_guides/sip-balancer/index.html" id="dcv8" title="read the user guide">read the user guide</a> </span></span></div><div style="margin-bottom: 0px; margin-top: 0px;"><br />
You will need to add 2 new properties to your stack so that the load balancers is pinged automatically by the NIST SIP HA Stack when a stack starts up or dies :</div><br />
<div style="margin-bottom: 0px; margin-top: 0px;"><b><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: 'Courier New';"># implementation used to ping the Mobicents SIP Load Balancer</span></span></b></div><div style="margin-bottom: 0px; margin-top: 0px;"><b><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: 'Courier New';">org.mobicents.ha.javax.sip.LoadBalancerHeartBeatingServiceClassName=org.mobicents.ha.javax.sip.LoadBalancerHeartBeatingServiceImpl</span></span></b></div><div style="margin-bottom: 0px; margin-top: 0px;"><b><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: 'Courier New';"># the IP Address of the Mobicents SIP Load Balancer to send keepalives to</span></span></b></div><div style="margin-bottom: 0px; margin-top: 0px;"><b><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: 'Courier New';">org.mobicents.ha.javax.sip.BALANCERS=127.0.0.1 </span></span></b></div></div>Anonymoushttp://www.blogger.com/profile/03020856645147141247noreply@blogger.com9tag:blogger.com,1999:blog-449022347945889835.post-8812073011158013452010-06-29T21:18:00.006+02:002010-06-29T22:01:17.726+02:00Mobicents meets the Community at JUDCon and JBoss World !Hi all,<div><br /></div><div>I just got back from Boston where I attended <a href="http://www.jboss.org/events/JUDCon.html">JUDCon, the free JBoss Users & Developers Conference</a> and spoke there about Mobicents. Since the attendance was pretty new to Telco and Communications 2.0 features, the talk was not a technical one but rather showcasing multiple demos, notably the <a href="http://pilhuhn.blogspot.com/2009/09/jopr-talking.html">Jopr is talking</a> demo and examples on how you can improve your applications with Mobicents by adding Voice, Video, Presence, IM, SMS, data to enrich the user experience, processes within your company, the customer relationship etc... I went over the Mobicents projects - SIP Servlets, JAIN SLEE, Media Server, SIP Presence Service and Diameter and how they were used in the different demos showcased at the beginning of the presentation</div><div><br /></div><div><b><a href="https://www.jboss.org/dms/judcon/presentations/JUDCon2010_MobicentsReloaded.pdf">Here are the slides of the pres</a></b><b><a href="https://www.jboss.org/dms/judcon/presentations/JUDCon2010_MobicentsReloaded.pdf">entation</a></b></div><div><br /></div><div>The presentation was pretty well received and there was a long Q&A at the end with most of the people from the audience pretty interested asking questions and thinking on how they could apply it to their businesses. It was one of my best audiences ever !</div><div><br /></div><div>I will try to record the presentation and upload it for those of you who couldn't attend.</div><div><br /></div><div>I attended a few presentations during JUDCon and all talks and speakers were top notch quality and very interesting, definitely a conference you want to attend if you're a JBoss user or developper.</div><div><br /></div><div><br /></div><div><br /></div><div>Later that day happened the JUDCon Hackfest where I got a chance to hack on a <a href="https://jira.jboss.org/browse/ARQ-189">Tomcat container for Arquillian</a></div><div><br /></div><div><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDku5oCK0MC_FWhSsjMKS8onRtEfwK-6anjeXjlw9WN92Vy6f0uUtXZ3PQGlj1IMuho7bBIbdburlELhNYiy912Nzx0OGt10iYs5hxIy4ZAMIFVcAdibzz1A67wYUFTnADZqKkwZvzZiPH/s400/IMG_4427.JPG" style="cursor:pointer; cursor:hand;width: 400px; height: 267px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5488282663233990226" /></div><div><br /></div><div>This work will be used as a basis for refactoring our Mobicents SIP Servlets testsuite based on Arquillian and ShrinkWrap and expose it as a way to test SIP Servlets applications in a single Junit test. So JUDCon was definitely a great conference for me and Mobicents as a whole !</div><div><br /></div><div>Next was <a href="http://www.redhat.com/promo/summit/2010/">JBoss World</a></div><div><br /></div><div>There I got to meet multiple <a href="http://www.redhat.com/solutions/telco/communications_platform/">JBoss Communications Platform (JBCP</a> - which is the product derived from Mobicents) and Mobicents users.<br /><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEio3a0nThGnz6t8dDAVx9zr3Y0w1P7l6liPipVSfhxYq1e1R1mUABB0RcAnpgvcUyhYHIS2JTeqpke0SvUJ8lM45ffiHCIz6rB9lQNLsJPp_cIVaula_Slg45mLgYjxm7ZAsweBoqPID9IG/s1600/P1020117.JPG"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEio3a0nThGnz6t8dDAVx9zr3Y0w1P7l6liPipVSfhxYq1e1R1mUABB0RcAnpgvcUyhYHIS2JTeqpke0SvUJ8lM45ffiHCIz6rB9lQNLsJPp_cIVaula_Slg45mLgYjxm7ZAsweBoqPID9IG/s400/P1020117.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5488285226003942450" /></a> Notably OKI Japan with whom we had interesting talks and led to<a href="http://mobicents-sip-servlets.blogspot.com/2010/06/oki-contributes-their-ssf-framework-to.html"> the announcement of their Spring Sip Servlets Framework - SSF contribution to Mobicents and their official joining as a Mobicents contributor</a></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div>I had interesting talks with our friends at <a href="http://www.angel.com/">Angel.com</a> and got to see them at the great JBoss party </div><div><br /></div><div><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTPsLmcnC6ghW9zDskrOBGqei5gto4mL3LlQL_4Pl31RCSS64zo6EqwayQBoMk0-aUm2CHdcKDlVx_1qhkrlYzgWL3_fL3YOuhwhsAr62o46gOYlvcDdX51RajrSxgacFSzfnzfu0mBKP7/s1600/IMG_4244.JPG"><img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTPsLmcnC6ghW9zDskrOBGqei5gto4mL3LlQL_4Pl31RCSS64zo6EqwayQBoMk0-aUm2CHdcKDlVx_1qhkrlYzgWL3_fL3YOuhwhsAr62o46gOYlvcDdX51RajrSxgacFSzfnzfu0mBKP7/s400/IMG_4244.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5488287358369953922" /></a><br /></div><div><br /></div><div>For me and Mobicents, both JUDCon and JBoss World were definitely awesome, when working from home all year long I can't express how priceless it is to meet the community in flesh and blood.</div><div><br /></div><div>See ya all next year !</div>Anonymoushttp://www.blogger.com/profile/03020856645147141247noreply@blogger.com2tag:blogger.com,1999:blog-449022347945889835.post-46315439681029381992010-04-01T08:55:00.009+02:002010-04-01T10:29:51.351+02:00Mobicents to enter Brain to Brain Communications MarketHi all,<br /><br />With the natural evolution of mobile networks towards LTE, 4G networks and the likes, soon we will be in this beautiful world of all IP Communications. We figured that even though Cell Phones were kind of cool, what would be the next step to communicate effortlessly. <br /><br />Based on some research done throughout the world and recently some breakthrough on <a href="http://www.sciencedaily.com/releases/2009/10/091006102637.htm">Brain to Brain Communications</a>, we thought it was time to prepare our next move and prepare people to communicate and act with the digital world in a different way and call each other effortlessly by using brain to brain communications applied to telecommunications.<br /><br />Since Brain to Brain Communication is cuurently using electrodes, a computer and an Internet connection. Replacing the electrodes and computer by a little Brain-Computer Interfacing (BCI) device (that would look like a bluetooth earplug) that will be used for capturing brain signals and translating them into bits and will send those bits over the wire through a new protocol called Mobicents Brain's Fool Protocol (MBFP) just like a 4G cellphone would do. The Mobicents server will act as a gateway and convert MBFP to SIP so that you can call your buddies.<br /><br />The possibilities are limitless again and will mostly depend on the device capabilities (that will evolve over time as science gets better knowledge of the brain) that could stream video or what your buddies see directly into your brain, or Text Message you, or send SMS... <br /><br />If you're scared about the government tapping your brain or hackers unleashing viruses, trojan and the likes, security will be a big concern and taken care of very seriously but we can't promise anything, no software is bug free...<br /><br />This won't be limited to Brain to Brain actually, one could easily create Business to Consumer (B2C) type of applications where you wouldn't need TV or 3D TV anymore : video streamed directly into your brain with all the sound, smells, pain, joy etc, what an awesome experience... <br />Where games would be a real brain control world experience, not motion controlled anymore...<br />Where you could record your life literally and not only share pictures and videos with your friends through facebook but real life memories with emotions through the new LifeRecorded social network<br /><br />The good thing also would be for disabled people not being able to speak, this way they could communicate much easier and for the blind people to actually see since the device could be tied to a camera that would stream the live feed in their brain...<br /><br />And again this technology will be open source for your greatest pleasure<br /><br />As they say the brain is the limit...Anonymoushttp://www.blogger.com/profile/03020856645147141247noreply@blogger.com5tag:blogger.com,1999:blog-449022347945889835.post-69396375226819752972010-03-09T11:09:00.006+01:002010-05-12T11:21:37.876+02:00Installing SIPp 3.1 on Ubuntu 9.04Open a command line terminal<br /><pre class="console"><br />$ sudo apt-get install ncurses-dev<br />$ sudo apt-get install build-essential<br /><br />#Grab sipp 3.1 from sourceforge.net <br />$ wget -m -nd http://downloads.sourceforge.net/project/sipp/sipp/3.1/sipp.3.1.src.tar.gz<br /><br />#extract it locally<br />$ tar -xzf sipp.3.1.src.tar.gz<br />$ cd sipp.svn<br /></pre><br /><br />Open ./sipp.svn/scenario.hpp and add this line<br /><br />#include <limits.h><br /><br />after<br /><br />#include <sys/socket.h><br /><br />save the file, and in the terminal do <br /><pre class="console"><br />$make<br /></pre><br /><br />You're done ;-)<br /><br /><span style="font-weight:bold;">UPDATE</span> : The latest unstable snapshot available from http://sipp.sourceforge.net/snapshots/sipp.2009-07-29.tar.gz does not have this problem and does not throw *segmentation fault* as sipp 3.1 does now on my ubuntu 10.04Anonymoushttp://www.blogger.com/profile/03020856645147141247noreply@blogger.com25tag:blogger.com,1999:blog-449022347945889835.post-1060130470615544482010-01-05T08:16:00.003+01:002010-01-05T08:44:29.982+01:00New JBCP version is out : Happy New Year !!<div>Happy new year to all!</div><div><br /></div>To celebrate the already started but still new year, the Mobicents team (special kudos to the QA and productization team) brings to our customers a little present, the commercially supported flavor of Mobicents called <a href="http://www.jboss.com/products/platforms/communications/" style="color: rgb(102, 102, 153); ">JBoss Communications Platform</a> is now available in its 1.2.2 version on the<a href="https://www.redhat.com/wapps/sso/jboss/login.html?redirect=http://support.redhat.com/jbossnetwork"> JBoss Customer Support Portal</a>, the release notes are <a href="http://www.redhat.com/docs/en-US/JBoss_Communications_Platform/index.html">here</a> so go check it out !<div><br /></div><div>I'll end this post by thanking my fellows on the Mobicents core team for the hard work to bring you the best Open Source Communications platform and our striving and ever growing community that is helping us out by using it, reporting bugs, contributing fixes and features,... wishing you all the best for the year to come and happy ne</div>Anonymoushttp://www.blogger.com/profile/03020856645147141247noreply@blogger.com0tag:blogger.com,1999:blog-449022347945889835.post-44527106843502483622009-09-16T11:37:00.006+02:002009-09-16T14:52:51.649+02:00Mobicents ALL 1.2.1.GA has been released !!<blockquote></blockquote>It's with intense pleasure that I forward here the <a href="http://groups.google.com/group/mobicents-public/browse_frm/thread/8c5b5c56a9901f9d">news of our new aggregated release</a> : Mobicents ALL 1.2.1.GA !<div><br /></div><div>It's truly the most complete all integrated Platform out there (and it's open source !) for building next generation Telco and Convergent Applications. Nothing less nothing more. Usually vendors have one or two of the components we provide, but no one so far is able to offer all that we provide in Mobicents to your great pleasure...</div><div><br /></div><div>Miscellaneous examples are :</div><div><ul><li>Location based services : when ever friends, family is in 2kms range from you, your phone beeps</li><li>SMS based services : Vote for your Favorite Reality TV Show</li><li>IVR (<a href="http://en.wikipedia.org/wiki/Interactive_voice_response">Interactive Voice Response</a>) Based Service : Check your bank account balance through the phone</li><li>Ring Back Tone</li><li>Event Notification by Phone, SMS and IM : get a phone call to set the delivery date of your order or SMS every time your order changed of status (processing, payment confirmed, shipping)</li><li>Conferencing : The Conference is integrated with your calendar and is calling you and the participants when it's time, no hassle on remembering the number to call, pin code, ... See </li><li>IT System Monitoring : every time an alert is sent by the monitoring app, your converged application send an SMS, Instant Message, tweet or calls out the IT System team to take preventive actions (Press 1 to restart the server, press 2 to redeploy the application, or whatever)</li><li>Web Integration for Convergence : Add a small widget so that the customer can be put in contact with the call center (through phone or chat) to help him get more information on the products he wants to buy.</li><li>Banking : Stock Monitoring application that sends an SMS or calls you when the stock price goes over a user defined threshold and let you press the amount of options you want to sell or buy</li><li>Customer Relationship Management : Ability to automatically answer status for support cases or record new leads, integration with leading online CRM providers </li><li>PBX : Enabling businesses to use their managed intranet to help reduce long distance expenses, enjoy the benefits of a single network for voice and data. Example : <a href="http://www.mobicents.org/mss-ipbx.html">Mobicents IPBX</a></li></ul></div><div style="text-align: center;"><span class="Apple-style-span" style="font-size:x-large;"><b>The Sky is the Limit !</b></span></div><div style="text-align: left;"><span class="Apple-style-span" style="font-size:x-large;"><br /></span></div><div>To build all those kind of applications and more, the following components provided in the Mobicents ALL release will do the job and should cover all your needs :</div><div><ul><li><b><a href="http://www.mobicents.org/products_sip_servlets.html">Sip Servlets Container 1.0.GA</a></b> : Aimed at building VoIP (SIP + Media interaction) and Converged Applications (SIP + HTTP/Java EE + Media interaction) with <a href="http://www.mobicents.org/user_guides/sip_servlets/index.html#d0e5172">full HA capabilities</a></li><li><b><a href="http://www.mobicents.org/mms/mms-main.html">Media Server 1.0.3.GA</a></b> : competitive, complete, best-of-breed media gateway functionality featuring highest quality with following features : Announcement, IVR, Conferencing, Packet Relay and supporting all majors audio codecs and can be controlled remotely through MGCP or in VM</li><li><b><a href="http://www.mobicents.org/products_jain_slee.html">JAIN SLEE Container 1.2.6.GA</a></b> : Aimed at Telco and supporting multi protocols architectures in a standard and highly efficient way. Comes with following Resource Adaptors : <i>SIP, SIP11 (JSR240 a.k.a. JAIN SLEE 1.1), Media, MGCP, JCC, XMPP, SMPP, HTTP Client, HTTP Servlet, Asterisk, Text to Speech, Rules, Diameter (Base, Cca, Rf, Ro, Sh-Client and Sh-Server), XCAP Client</i></li><li><b><a href="http://groups.google.com/group/mobicents-public/web/mobicents-diameter">Mobicents Diameter 1.0.1.GA</a></b> : Provides Authentication, Authorization and Accounting capabilities</li><li><b><a href="http://hudson.jboss.org/hudson/job/MobicentsBooks/lastSuccessfulBuild/artifact/sip-presence/index.html">Mobicents SIP Presence Service 1.0.0.BETA5</a></b> : The Mobicents SIP Presence Service provides presence functionalities to SIP-based networks</li><li><b><a href="http://www.mobicents.org/user_guides/sip_servlets/index.html#sslb-MSS_Load_Balancer">Mobicents SIP Load Balancer 1.0.0.BETA7</a></b> : provides Load Balancing and failover SIP capabilites for Mobicents servers in a clustered environment</li></ul></div><div>If you want to get started, <a href="http://sourceforge.net/projects/mobicents/files/Mobicents%20All/1.2.1.GA/mobicents-all-1.2.1.GA-jboss-4.2.3.GA.zip/download">download the binary form SourceForge</a> and <a href="http://groups.google.com/group/mobicents-public/browse_thread/thread/8c5b5c56a9901f9d">read the release notes</a>. We are waiting for your feedback on <a href="http://groups.google.com/group/mobicents-public">mobicents-public google group</a>.</div><div><br /></div><div>Have fun !</div><div><br /></div><div></div>Anonymoushttp://www.blogger.com/profile/03020856645147141247noreply@blogger.com7tag:blogger.com,1999:blog-449022347945889835.post-13191574687448143122009-09-08T17:24:00.016+02:002009-09-09T14:21:29.715+02:00Mobicents/JBCP & JBoss World 2009<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1W4TJVjJSx0eAV_izANOdTs3_MqvSIX3oYFhs3O71LKIcaXlv6hitMVUgSlPKo2EhHd4i7Zve4dliMgCxyyk3oxUsdy-OHWbpn427XY42COrlCra-NrO44hIdHVBzGqZWjoS8zxJL0ofM/s1600-h/IMG_0623.JPG"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1W4TJVjJSx0eAV_izANOdTs3_MqvSIX3oYFhs3O71LKIcaXlv6hitMVUgSlPKo2EhHd4i7Zve4dliMgCxyyk3oxUsdy-OHWbpn427XY42COrlCra-NrO44hIdHVBzGqZWjoS8zxJL0ofM/s400/IMG_0623.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5379122017065592802" /></a><br />I'm back from <a href="http://www.jbossworld.com/">JBoss World 2009</a> that took place in Chicago together with the RH summit and the event was again awesome this year !<br />First I have to admit that the weather in Chicago was perfect and it helped raise this city as one of the best I've been so far in the US : very good public transportation, great architecture, LOTS of cultural events, plenty of parks, beaches on the lakes, ...<br /><br /><div><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCAufzdJHcWC6GekGe_1F0_DWAGx5R6sni-ZPCNzcR9M7IBx4JkTX63fQW-aLMdYA2oXEVHH8YfhOQwzjwJ5AjphyphenhyphenohKPJ9wDL35_WmKTG63TG7WWAw0nI7MzBSGrYfks6_08zelasb4Jh/s1600-h/IMG_0724.JPG"><img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCAufzdJHcWC6GekGe_1F0_DWAGx5R6sni-ZPCNzcR9M7IBx4JkTX63fQW-aLMdYA2oXEVHH8YfhOQwzjwJ5AjphyphenhyphenohKPJ9wDL35_WmKTG63TG7WWAw0nI7MzBSGrYfks6_08zelasb4Jh/s400/IMG_0724.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5379127847756609634" /></a>Tuesday was kind of pre-Jboss World day, it was mainly registration and partner pavillion opening. Me & Vladimir were tending the booth with other JBoss people and checking the partners out.<br />We got to meet and finally put a face on a lot of JBoss colleagues and people from our community (I won't cite any company names, but they will recognize themselves :-) ) getting at the same time great feedback on Mobicents/JBCP and evangelizing.<br /><br />On the next day, we had a great keynote from our CEO, Jim Whitehurst, here is a phrase I thought I'd never hear in a CEO's keynote : "if we all had to walk around naked, we'd all spend more time at the gym" which seems to define the open-source spirit pretty well to me :-)<br /><br />Wednesday, I attended Bela Ban's talk on Large clusters which was really interesting and I would recommend everyone interested in HA to check it out.I got to talk to the <a href="http://www.jboss.org/jopr">Jopr</a> (JBoss ON is the corresponding product) team and we got this idea of integrating Mobicents to send text messages or call phones with DTMF recognition whenever there is some alerts in the cluster so that the IT monitoring team using Jopr can take some action whenever there is a problem. A proof of concept should be available soon :-)<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUB3lz7NOFC2YYNY9TVlcVSZNx3EHLx4gwTJkO_RVKyQIg_a1YNJpleHY-CR1LnE_zhI_7hncuXLcb6P5525CKRBAy1uY8IDX4nWRgrtNGXcMOimYDAyS613XaNLVA11SSAI6L4B26qibW/s1600-h/IMG_0735.JPG"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUB3lz7NOFC2YYNY9TVlcVSZNx3EHLx4gwTJkO_RVKyQIg_a1YNJpleHY-CR1LnE_zhI_7hncuXLcb6P5525CKRBAy1uY8IDX4nWRgrtNGXcMOimYDAyS613XaNLVA11SSAI6L4B26qibW/s400/IMG_0735.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5379126792321315538" /></a>Then Vladimir had it's BOF on Rapid VoIP Development Environment - SIP Servlets 1.1 (JSR-289), SEAM Telco Framework, Ruby on Rails, Eclipse VoIP Tooling<br />Unfortunately, we were competing against another BOF about Seam & JSR-299 containing all the JBoss Rock stars : Dan Allen, Pete Muir, Gavin King, Emmanuel Bernard, Max Rydahl Andersen and special guests; so the attendance was a bit lower than we expected but the feedback from the audience was great and had so much interesting questions that we finally got kicked out of the room :-)<br /><br />Thursday, I went to see the new JBoss project <a href="http://www.jboss.org/gatein">GateIn</a> that has been announced which is the ExoPlatform/JBoss Portal joint project. Definitely Interesting stuff, their booth was packed all day long and the project and UI are very slick. Those guys were definitely interested in Mobicents as well to be able to send SMS from the portal or click to dial kind of portlet, ... so a another proof of concept should see the light soon here as well.<br /><br />In the afternoon, I went to see the Web Beans and HornetQ (JBoss Messaging renamed) presentations which were both of great quality. <div><br /><br />Finally, we went to the Museum of Science and Industry party sponsored by IBM which was a lot of fun and then did a bit of pub crawling, on which I won't reveal the dirty details :-)<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQfk1DuznaSX7_f5XmXR3rgYFXS0ArxJYDpDaN8IPU-Ww-omnstAqmhbarl1HhpjPI8oX1dzdxMNlZMyhbFXTvtgmXISfXDpY8uJEFI5HXM617idsK_lVUDpOZcm8LvSlH0qWguVaYAzLp/s1600-h/IMG_0759.JPG"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 300px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQfk1DuznaSX7_f5XmXR3rgYFXS0ArxJYDpDaN8IPU-Ww-omnstAqmhbarl1HhpjPI8oX1dzdxMNlZMyhbFXTvtgmXISfXDpY8uJEFI5HXM617idsK_lVUDpOZcm8LvSlH0qWguVaYAzLp/s400/IMG_0759.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5379170495216609858" /></a>The last day was actually half a day and I attended to Bob's Mc Wirther presentation on <a href="http://torquebox.org/">TorqueBox</a> which was the best one I attended too.<br /><br />My session was among the last ones which was not very convenient because a lot of people already left the conference (1/3 to half I would say) but the attendance to the session was still pretty good (around 30 people in the room) and the presentation was very well received with a lot of feedback and exchange with the audience once again.<br /><br />To wrap up on JBoss World, I would say that this was a rather good success for Mobicents/JBCP, it was very well received with a lot of people baffled by the platform and how it grew up in a year.<br /><br />I uploaded my <a href="http://mobicents.googlecode.com/files/JBCP%20-%20Jean%20Deruelle%20-%20JBoss%20World%202009%20.pdf">presentation here</a><br /><br />So Thanks for coming and for coming at us, talk to us we love that, meeting the community in person and we will make sure that next year will be even better :-)</div><div><br /></div><div><b>Update</b> : For more pictures from chicago, see here : <a href="http://picasaweb.google.com/jean.deruelle/Chicago2009#">http://picasaweb.google.com/jean.deruelle/Chicago2009#</a></div><div><br /></div><div><b>Update 2</b> : <a href="http://www.redhat.com/promo/summit/2009/downloads/#jbw">List of all JBoss World presentations</a> and <a href="http://bit.ly/3v9aY3">videos</a></div></div>Anonymoushttp://www.blogger.com/profile/03020856645147141247noreply@blogger.com2tag:blogger.com,1999:blog-449022347945889835.post-44103579309219871422009-09-03T06:47:00.006+02:002009-09-03T07:25:01.408+02:00Mobicents 2009 Team Meeting in BrnoHello fellas,<div><br /></div><div>Last week was a big event for the Mobicents guys as we all got together in this beautiful city of Brno located in Czech Republic. </div><div>Everybody on the team gave an overview of what we did over the last year and the roadmaps ahead for the next year and I have to tell you that this is stunning how much has been achieved in a one year timeframe under the Red Hat :<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvLtQLT00AGQwMAyIMk5a73Of0SjcjsTGcly1fCf8rsfx4mCzPxib-o5A_qKvJVCc8wWNwQdlCLs1jro8GtzkNOrC0gYCH0qb8ZpC8G-xBDzyhV0hZdUnUjZWXtedlxZ399eJuxyODd1Nm/s1600-h/img_1260.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvLtQLT00AGQwMAyIMk5a73Of0SjcjsTGcly1fCf8rsfx4mCzPxib-o5A_qKvJVCc8wWNwQdlCLs1jro8GtzkNOrC0gYCH0qb8ZpC8G-xBDzyhV0hZdUnUjZWXtedlxZ399eJuxyODd1Nm/s400/img_1260.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5377107733877732994" /></a><br /></div><div><ul><li>Mobicents Sip Servlets, Media Server, Diameter reaching 1.0 GA</li><li>JAIN SLEE 1.1 Certification</li><li>Frameworks : <a href="http://groups.google.com/group/mobicents-public/web/seam-telco-framework-for-sip-servlets">Seam Telco Framework</a>, JRuby Integration with <a href="http://torquebox.org/">TorqueBox</a>, <a href="http://echarts.org/ECharts-for-SIP-Servlets/What-is-ECharts-for-SIP-Servlets.html">ECharts For Sip Servlets</a></li><li>Eclipse tooling with Sip Servlets and JAIN SLEE Plugins</li><li>Sip Presence Service</li><li><a href="http://groups.google.com/group/imsoss">Initative by the Community to build IMS components on top of Mobicents</a></li></ul></div><div>I'm really amazed to see at which pace is growing the Mobicents Platform and the community around it that is helping us out in an incredible number of ways from testing out the projects, interoperability to contributing code, ... that proves the value of open source, collaboration and sharing which are the core values of Red Hat and JBoss.</div><div>All of this to say "<b>Thank You</b>" to our beloved Mobicents Community.</div><div><br /></div><div>I had 2 talks scheduled on Mobicents Sip Servlets :</div><div><ul><li>First, as I said above on the achievements, challenges and goals/roadmap which you can find <a href="http://groups.google.com/group/mobicents-public/web/Mobicents%20Sip%20Servlets%20Brno%202009.pdf">here</a></li><li>Second, on the <a href="http://mobicents-public.googlegroups.com/web/HA+-+Load+Balancers+Brno+2009.pdf">HA plans and challenges</a> not only for Sip Servlets but for JAIN SLEE as well so that we have a common architecture and frameworks for both our containers to ensure consistency and lower code duplication as much as possible.</li></ul><div>As we move forward, we plan to continue investing and contributing to the <a href="https://jain-sip.dev.java.net/">NIST SIP Stack Reference Implementation of JAIN SIP Specification</a> which is at the core of our projects (kudos to Ranga for being of great help whenever we need him). Those contributions will be mainly targeted at performance improvements, bug fixes, new features (lazy parsing, NIO, ...) and HA support.</div><div><br /></div><div>It was great to understand what the other team members and other Mobicents projects have been up to and see their roadmaps and last but not the least, we got to have some fun to chill out a bit of the hard work of the day</div><div><br /></div><div><br /></div></div>so here is a part of the Mobicents team after work waiting to get into the action to go clubbing :<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh23LOKg6uYIe4IYcrEBDqfRuzhBfl-Ex92QOKxEgDyvoCrHqIuy4aIa2-lgjLR08B1Y5Rw8VCaOwfTMsPeuSkiwcvMVqXf1b2i143L3DxLhiCTDZjkSgUGK6rM7bfkuYEGLZZ9fcLX7tDp/s1600-h/IMG_0561.JPG"></a><div><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh23LOKg6uYIe4IYcrEBDqfRuzhBfl-Ex92QOKxEgDyvoCrHqIuy4aIa2-lgjLR08B1Y5Rw8VCaOwfTMsPeuSkiwcvMVqXf1b2i143L3DxLhiCTDZjkSgUGK6rM7bfkuYEGLZZ9fcLX7tDp/s1600-h/IMG_0561.JPG"><img style="text-align: left;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 300px; " src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh23LOKg6uYIe4IYcrEBDqfRuzhBfl-Ex92QOKxEgDyvoCrHqIuy4aIa2-lgjLR08B1Y5Rw8VCaOwfTMsPeuSkiwcvMVqXf1b2i143L3DxLhiCTDZjkSgUGK6rM7bfkuYEGLZZ9fcLX7tDp/s400/IMG_0561.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5377105269825381378" /></a>Silas and Eduardo showing the Mobicents Team winning the Beer Contest : </div><div><br /></div><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijXr2PHTp5SLbtwTDlFu1uBnXmNsLx39iHoVfuMlsPdUAxpGFm_J9ZU-VOgCfCSmxgNYuitKTMl_gmU17kUHRkzt2PH5-Ol2uEPWvWBMWE7rEcUgqmJMdVh7oQGeZKLS0qmuYNCJY7HTwp/s1600-h/img_1531.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijXr2PHTp5SLbtwTDlFu1uBnXmNsLx39iHoVfuMlsPdUAxpGFm_J9ZU-VOgCfCSmxgNYuitKTMl_gmU17kUHRkzt2PH5-Ol2uEPWvWBMWE7rEcUgqmJMdVh7oQGeZKLS0qmuYNCJY7HTwp/s400/img_1531.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5377105935993218738" /></a><div>The Mobicents Team being teached by the local czech girls where the good places are in town</div><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQhGTM5W23T6FBTayt_Jp_8TMD3iOtkbgOCUooFL6FyuG9xAWn7EsL6UrM26lR5Q8WXB_q-H6cZVReW8lgOOuCJTIOw5WQ0PQXOoJIJGKzMfbEe307IsCh8cO8fbaOJ3VJnBmW386BuLkp/s1600-h/IMG_2397.JPG"></a><div><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQhGTM5W23T6FBTayt_Jp_8TMD3iOtkbgOCUooFL6FyuG9xAWn7EsL6UrM26lR5Q8WXB_q-H6cZVReW8lgOOuCJTIOw5WQ0PQXOoJIJGKzMfbEe307IsCh8cO8fbaOJ3VJnBmW386BuLkp/s1600-h/IMG_2397.JPG"><img style="text-align: left;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 300px; height: 400px; " src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQhGTM5W23T6FBTayt_Jp_8TMD3iOtkbgOCUooFL6FyuG9xAWn7EsL6UrM26lR5Q8WXB_q-H6cZVReW8lgOOuCJTIOw5WQ0PQXOoJIJGKzMfbEe307IsCh8cO8fbaOJ3VJnBmW386BuLkp/s400/IMG_2397.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5377106623622766898" /></a>So Cheers guys !</div><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiewk1NRPDXPezhfWBaQcI8Hw0UafSGqS5xri1S9yXezglDgzyri1eGEcA6QBcnPegcHFiJSORzzHes4L_DJKHJWXEV2Nm3FlcvbDDacBbxTEzheoE5CzufWAApw4U7P9oyfEp1HrtLNvHj/s1600-h/img_1335.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiewk1NRPDXPezhfWBaQcI8Hw0UafSGqS5xri1S9yXezglDgzyri1eGEcA6QBcnPegcHFiJSORzzHes4L_DJKHJWXEV2Nm3FlcvbDDacBbxTEzheoE5CzufWAApw4U7P9oyfEp1HrtLNvHj/s400/img_1335.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5377107407654514514" /></a>Anonymoushttp://www.blogger.com/profile/03020856645147141247noreply@blogger.com0tag:blogger.com,1999:blog-449022347945889835.post-61083705427650507592009-07-21T10:18:00.005+02:002009-07-21T11:33:36.070+02:00Enable Flash on Google Chrome Linux Dev BuildHey,<br /><br />Looks like the <a href="http://dev.chromium.org/getting-involved/dev-channel">google chrome dev build on linux </a> don't come with flash enabled by default. This has been preventing you from using it on linux ? Here is a little 3 commands process that get you the google chrome plays flash on ubuntu (on most of the flash enabled site) :<br /><br /><pre class="console"><br />sudo mkdir -p /opt/google/chrome/plugins<br />sudo cp /usr/lib/flashplugin-installer/libflashplayer.so /opt/google/chrome/plugins/<br />/opt/google/chrome/google-chrome --enable-plugins<br /></pre><br /><br />Feel free to comment if you have more hacks to enable other plugins on google chrome linux dev builds, I'll update the post :-)Anonymoushttp://www.blogger.com/profile/03020856645147141247noreply@blogger.com9tag:blogger.com,1999:blog-449022347945889835.post-72739662569837292492009-07-17T10:53:00.006+02:002009-07-17T11:58:07.990+02:00Mobicents/JBCP at JBoss World 2009<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAmSYoIqm152ZqvK2xhDk1KHjAJEfTQiTR5lIXXDe3JpzcGy808KJYTIvqnFCNlf9KauCqbnpJpBDX3cv_fAajWYX3s4jTOuKROQhR1mZw7kz3MHliXudB263fjo6wm5To4G_aXHkVSMGh/s1600-h/jbw_header.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 604px; height: 147px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAmSYoIqm152ZqvK2xhDk1KHjAJEfTQiTR5lIXXDe3JpzcGy808KJYTIvqnFCNlf9KauCqbnpJpBDX3cv_fAajWYX3s4jTOuKROQhR1mZw7kz3MHliXudB263fjo6wm5To4G_aXHkVSMGh/s400/jbw_header.png" alt="" id="BLOGGER_PHOTO_ID_5359366084637906770" border="0" /></a><br /><br />It's this time of the year again where all of JBoss is regrouping together to present you the latest and greatest and for the first time, the event is even co-located with the Red Hat Summit for an even more incredible event since with the same pass you get access to both conferences !<br /><br />For those of you that are interesting to check what <a href="http://www.mobicents.org/">Mobicents </a>/ <a href="http://www.jboss.com/products/platforms/communications/">JBoss Communications Platform</a> is up to, we have two dedicated sessions this year :<br /><br />First Valdimir Ralev will be presenting, on September 2nd at 5:45 PM, in its BOF session <a href="http://www.jbossworld.com/agenda/tracks/">Rapid VoIP development - SIP Servlets 1.1, Seam Telco Framework, JRuby on Rails, Eclipse VoIP tooling</a>, you can gather more information on <a href="http://vladimirralev.blogspot.com/2009/07/join-us-at-jbossworld-2009-in-chicago.html">his blog post</a> as well<br /><br />For my part, I'll present, on September 4th at 11:00 AM, <span style="font-size:100%;"><a href="http://www.jbossworld.com/agenda/tracks/">Writing Telco 2.0 applications with JBoss Communications Platform based on Mobicents</a><br />(</span><span style="font-style: italic; font-weight: bold;">What's next track</span><span style="font-size:100%;">) which will be an overview of </span>the main JBCP components - JSLEE 1.1 container (JSR 240), Media Server (JSR 309), SIP Servlets 1.1 container (JSR 289), Diameter Server and SIP Presence Service and will also show real world examples how telecoms leverage JBCP for innovative converged Telco 2.0 applications and blow you away with a converged Web/Telco 2.0 demo !<br /><br />So make sure to regirster ASAP, the early bird registration ends today, <a href="http://www.redhat.com/promo/summit/2009/register/?sc_cid=70160000000Hs3iAAC">Early bird registration extended until 17th.</a><br /><br />Also upon user/developper demand, we could meet altogether for a Mobicents special or setup a Boot Camp there or just have a beer and talk all night so don't hesitate to ask for it !<br /><br />Looking forward to meet you there !Anonymoushttp://www.blogger.com/profile/03020856645147141247noreply@blogger.com0tag:blogger.com,1999:blog-449022347945889835.post-4800269528134960062009-06-02T14:08:00.010+02:002009-06-26T09:12:39.935+02:00Git Cheat Sheet or My Reminder against git headachesOk since I'm a git noob and I'm working on the move from <a href="http://oddthesis.org/">JBoss Rails</a> to the new <a href="http://torquebox.org/">Torquebox</a>. I need to hack the Telco part of Torquebox so that any JRuby app located in Mobicents Sip Servlets on JBoss 5 can setup and handle SIP calls. Since the torquebox repo is git based and I'm usually dealing with svn or cvs, and I messed up quite some times already with git (even after checking out <a href="http://git.or.cz/course/svn.html">the famous git svn crash course</a>), I'll use this post to be a placeholder for the thing I usually do so that me an git get along very well.<br /><br />First things first, the repo is already created on git hub so I'll just check it out using :<br /><br /><pre class="console"><br />$ git clone git://github.com/torquebox/torquebox.git<br /></pre><br /><br />Since Torquebox is using a notion of submodules :<br /><br />I need to checkout the underlying submodules, this is achieved by doing :<br /><br /><pre class="console"><br />$ cd torquebox<br />$ git submodule init<br />$ git submodule update<br /></pre><br /><br />Since the master branch is locked up, I use for each module the following command to be able to push my changes to the master branch :<br /><br /><pre class="console"><br />$ git remote add central git@github.com:torquebox/torquebox.git<br />$ cd torquebox-core<br />$ git remote add central git@github.com:torquebox/torquebox-core.git<br /># and so on for each submodule<br /></pre><br /><br />Then I hack away and do my changes in the various torquebox project. When I'm ok with my changes, I use the following to commit :<br /><br /><pre class="console"><br />$ git commit -a<br /></pre><br /><br />If there is files or directories that needs to be added to the commit, I usually do :<br /><br /><pre class="console"><br />$ git add 'filename'<br /># example : git add src/main/java/org/torquebox/ruby/enterprise/sip/sip_environment_builder.rb<br /></pre><br /><br />This will commit things only locally, then I need to push everything to the central repo located on github, this is done by doing :<br /><br /><pre class="console"><br />$ git push central master<br /></pre><br /><br />Sometimes I get into a <a href="http://hasno.info/2008/6/30/git-lost-found-and-no-branch">no-branch strange state</a> (don't ask me why :-)) and I end up in no branch at all, you can check on which branch you are by doing :<br /><br /><pre class="console"><br />$ git branch -a<br /></pre><br /><br />The following command can be useful too :<br /><br /><pre class="console"><br />$ git status<br /></pre><br /><br />so when I'm on no branch, to recover, I use the following commands sequence :<br /><br /><pre class="console"><br /># going back on master branch<br />$ git checkout master<br /><br /># checking the lost commits on the no branch<br />$ git fsck --lost-found<br /><br /># the previous command will out put something like<br /># dangling tree a628672f320e4e311a59ce4bcd879125500141ff<br /># dangling commit 69ade48b3183ffc7a4e09cf87a1d0e5cedaa39bc<br /># to merge the last commit into the master branch I just switched to<br />$ git merge 69ade48b3183ffc7a4e09cf87a1d0e5cedaa39bc<br /><br />#then I can push to github again<br />$ git push central master.<br /></pre><br /><br />I'll update this blog post once in a while on my path to non newbiness to git.<br />Please comment to make me understand things a bit further or advice me on some good eclipse plugin that would avoid me such pain...<br /><br />Back to git now<br /><br />Update : Ranga gave a link with a few more tips <a href="http://sipx-wiki.calivia.com/index.php/Mirroring_sipXecs_subversion_repository_with_git#Making_and_committing_changes">http://sipx-wiki.calivia.com/index.php/Mirroring_sipXecs_subversion_repository_with_git#Making_and_committing_changes</a><br /><br />Update 2 : very nice and thorough visual tutorial <a href="http://www.ralfebert.de/blog/tools/visual_git_tutorial_1/">http://www.ralfebert.de/blog/tools/visual_git_tutorial_1/</a>Anonymoushttp://www.blogger.com/profile/03020856645147141247noreply@blogger.com4tag:blogger.com,1999:blog-449022347945889835.post-41027327497061926032009-04-03T17:10:00.014+02:002009-06-10T10:09:59.151+02:00JRuby VoIP app on JBoss 5 reloaded - Look Ma ! My pure JRuby app can now receive phone calls !Following on the previous blog (<a href="http://jeanderuelle.blogspot.com/2009/03/my-jruby-rails-app-on-jboss-can-make.html">My JRuby-Rails app on JBoss and Mobicents can make Phone calls !</a>), we took things a step further in the JRuby Telco integration with JBoss 5 and <a href="http://www.mobicents.org/products_sip_servlets.html">Mobicents Sip Servlets</a>.<br /><br />We thought this was a hassle to have to create a multi language jruby-java application for pure rubyists to be able to calls in their application, so we decided to remove the Java part altogether and allow the application to be <span style="font-weight:bold;">a pure Ruby application handling VoIP</span> to benefit from runtime modification (without having to redeploy anything) to cut development time drastically and in addition to that have all the benefits (<span style="font-weight:bold;">Media support, Diameter support, STUN, advanced monitoring, clustering, failover, ...</span>) of <a href="http://www.mobicents.org/products_sip_servlets.html">Mobicents Sip Servlets</a> for free :-)<br /><br /><span style="font-style:italic;">Note that this application will be bundled with our next 0.9 release that should be out very soon.</span><br /><br />So let's go through a quick walk-through on how to do that in redoing the same application as in the previous blog post but this time <span style="font-weight:bold;">pure</span> Ruby :<br /><br /><br />The code source of the application is available <a href="http://code.google.com/p/mobicents/source/browse/trunk/servers/sip-servlets/sip-servlets-examples/pure-jruby-telco/">here</a>.<br />For the hackers that want to create it themselves here are the steps :<br /><br />So let's create the application skeleton :<br /><pre class="console">$ jruby -S rails pure-jruby-telco -d mysql</pre><br />Go into the “pure-jruby-telco" directory, then modify the config/database.yml.<br />Adjust the adapter name, and instead of ‘mysql’ put ‘jdbcmysql’. You might also want to delete the lines starting with “socket:” or set it to tmp dir.<br /><br />Here’s a simple example for the development environment:<br /><pre name="code" class="properties">development:<br />adapter: jdbcmysql<br />encoding: utf8<br />database: pure-jruby-telco_development<br />pool: 5<br />username: root<br />password:<br />socket: /tmp/mysqld.sock<br /></pre><br />Also edit the config/environment.rb to specify the gem dependency we have on the jdbcmysql adapter (this step is mandatory for freezing the dependencies in your app later on)<br /><br /><pre name="code" class="properties"><br />Rails::Initializer.run do |config|<br />...<br />config.gem "activerecord-jdbcmysql-adapter", :version => '0.9', :lib => 'active_record/connection_adapters/jdbcmysql_adapter'<br />...<br />end<br /></pre><br />Now, it’s time to create our database:<br /><br /><pre class="console"><br />$ jruby -S rake db:create:all<br /></pre><br />The next step is to create some minimal scaffolding to create the complaint system<br /><br /><pre class="console">$ jruby script/generate scaffold Complaint customer_name:string company:string complaint:text sip_uri:string<br /><br />$ jruby -S rake db:migrate<br /></pre><br />now, we will add the logic to make the phone call once a complaint has been created, to do that edit app/controllers/complaints_controller.rb and the create function should look like this :<br /><br /><pre name="code" class="ruby"><br />def create<br /> @complaint = Complaint.new(params[:complaint])<br /><br /> respond_to do |format|<br /> if @complaint.save<br /> # get the sip factory from the servlet context<br /> @sip_factory = $servlet_context.get_attribute('javax.servlet.sip.SipFactory')<br /> # create a new sip application session<br /> @app_session = request.env['java.servlet_request'].get_session().get_application_session();<br /> # create a new sip servlet request to start a call to the sip phone with from header equals to "sip:my_jruby_app_rocks@mobicents.org" and the to header equals to the sip_uri from the complaint<br /> @sip_request = @sip_factory.create_request(@app_session, 'INVITE', 'sip:my_jruby_app_rocks@mobicents.org', @complaint.sip_uri);<br /> # actually sending the request out to the sip phone<br /> @sip_request.send();<br /><br /> flash[:notice] = 'Complaint was successfully created.'<br /> format.html { redirect_to(@complaint) }<br /> format.xml { render :xml => @complaint, :status => :created, :location => @complaint }<br /> else<br /> format.html { render :action => "new" }<br /> format.xml { render :xml => @complaint.errors, :status => :unprocessable_entity }<br /> end<br />end<br /></pre><br /><br />Ok we are done with the web part that make phone calls, let's make the app able to handle phone calls, create a sip directory : <br /><pre class="console">mkdir app/sip </pre><br /><br />This directory will contain our sip controllers to handle SIP messages, so let's create such a controller, by adding a sip_handler.rb file, to the app/sip directory, containing the following code :<br /><br /><pre name="code" class="ruby"><br /># Note that the class extend a JBoss provided sip controller called JBoss::Sip::SipBaseHandler<br /># that mimic the Java Sip Servlet class the ruby way<br />class SipHandler < JBoss::Sip::SipBaseHandler<br /> # Handle INVITE request to setup a call by answering 200 OK<br /> def do_invite(request) <br /> request.create_response(200).send<br /> end<br /> # Handle BYE request to tear down a call by answering 200 OK<br /> def do_bye(request) <br /> request.create_response(200).send<br /> end<br /> # Handle REGISTER request so that a SIP Phone can register with the application by answering 200 OK<br /> def do_register(request) <br /> request.create_response(200).send<br /> end<br /> # Handle a successful response to an application initiated INVITE to set up a call (when a new complaint is filed throught the web part) by send an acknowledgment<br /> def do_success_response(response)<br /> response.create_ack.send<br /> end<br />end<br /></pre><br /><br />Please read the comments in the above code, they should be insightful on what's going on.<br />Ok that's it the app can now receive phone calls and handle the signaling part :-)<br /><br />Let's prepare the application for deployment to the Mobicents Sip Servlets on top of JBoss 5 app server.<br /><br />Now let's freeze the rails version and the associated gems dependencies we are using into our application so that if rails or a dependency is upgraded in the system, our application will always use the version we freezed and not the newly upgraded version of rails from the system. Note: this is highly recommended for production env and really is a best practice (google freeze rails for more information)<br /><span style="font-weight: bold;">Note that freezing is mandatory if you wish to deploy your application to JBoss 5 with the jboss-rails plugin.</span><br /><br />It is a 2 steps process, first freeze rails then the dependencies (in our case the jdbcmysql adapter)<br />Here is the command to freeze your rails application :<br /><pre class="console">$ jruby -S rake rails:freeze:gems</pre>Here is the command<br /><pre class="console">$ jruby -S rake gems:unpack:dependencies</pre>You can verify that it worked by issuing this command<br /><pre class="console">$ jruby -S rake gems<br /></pre>That will produce the following output :<br /><pre class="console"><br /> - [F] activerecord-jdbcmysql-adapter = 0.9<br /> - [F] activerecord-jdbc-adapter = 0.9<br /> - [F] jdbc-mysql = 5.0.4<br /><br />I = Installed<br />F = Frozen<br />R = Framework (loaded before rails starts)<br /></pre><br /><br />Let's add jboss-rails-support to the application so that it can be deployed and run on JBoss 5 and even start JBoss 5 from the commandline, grab the <a href="http://repo.oddthesis.org/maven2/SNAPSHOTS/org/jboss/rails/jboss-rails/1.0.0.Beta6-SNAPSHOT/jboss-rails-1.0.0.Beta6-20090402.160710-2-support.zip">following zip </a> and extract it to the vendor/plugins directory of our application.<br /><br />Now grab <a href="http://hudson.jboss.org/hudson/job/MobicentsSipServletsRelease/314/artifact/mss-0.9-SNAPSHOT-jboss-5.0.1.GA-0904091535-TECH-PREVIEW.zip">Mobicents Sip Servlets latest binary snapshot</a> and extract it to any location that suits you and set JBOSS_HOME env variable to it.<br /><br />Then in JBOSS_HOME/server/default/deploy create a file called pure-jruby-telco.yml containing :<br /><pre name="code" class="properties"><br />--- <br />application: <br /> RAILS_ENV: development<br /> RAILS_ROOT: /home/deruelle/workspaces/mobicents-sip-servlets/sip-servlets-examples/pure-jruby-telco<br />web: <br /> context: /jruby-telco<br />sip:<br /> appname: PureJRubyTelcoApplication<br /> rubycontroller: SipHandler<br /></pre><br /><br />change the RAILS_ROOT in it to the location of your application.<br /><br />Then let's roll and fire up the server, from the root directory of the application do <br /><pre class="console">$ rake jboss:as:run<br /></pre><br /><br />When the server has started go to the <a href="http://localhost:8080/sip-servlets-management">Mobicents Sip Servlets management console</a> and for INVITE and REGISTER select PureJRubyTelcoApplication in the select box then click 'Save'. This will instruct the Mobicents Sip Servlets container to route INVITE and REGISTER requests to our JRuby application.<br /><br />You're ready to test the application. Starts your favorite Sip Phone (wengo phone, linphone, ekiga, sip communicator, ...) and configure it to register to 127.0.0.1:5080 then go to <a href="http://localhost:8080/jruby-demo-sip-servlet-1.0-SNAPSHOT/complaints">http://localhost:8080/pure-jruby-telco/complaints</a><br /><br />Create a new complaint and make sure that in the sip uri field you put the address of the sip phone as shown here<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJjBR71yZU9siJFYA6Lkfi9uAflo9DfTwuSJ8wJg9rWX_VeH4b90ryhWESoQqI_0lmsde-elILBhsV7fzQ6lwEcJ07Z-g9NrEbZ3nRE9HS_TBJt-G63w2CWnnSil0e741MoQYeJvHAOi2-/s1600-h/Screenshot-10.png"><img style="cursor: pointer; width: 320px; height: 200px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJjBR71yZU9siJFYA6Lkfi9uAflo9DfTwuSJ8wJg9rWX_VeH4b90ryhWESoQqI_0lmsde-elILBhsV7fzQ6lwEcJ07Z-g9NrEbZ3nRE9HS_TBJt-G63w2CWnnSil0e741MoQYeJvHAOi2-/s320/Screenshot-10.png" alt="" id="BLOGGER_PHOTO_ID_5311933078281259378" border="0" /></a><br /><br />Now enjoy your first JRuby Rails Sip-Servlets application making a call to your sip phone.<br />Note that with some more coding and a VoIP provider such as <a href="http://callwithus.com/">http://www.callwithus.com</a>, it could call real land-line phones or cell phones.<br /><br />This application doesn't play any media yet so you hangup the phone whenever you like.<br />You can also call the application in dialing sip:pure-jruby-telco@127.0.0.1:5080 :-)Anonymoushttp://www.blogger.com/profile/03020856645147141247noreply@blogger.com7tag:blogger.com,1999:blog-449022347945889835.post-6202754537546080992009-03-11T20:24:00.030+01:002009-06-10T10:06:28.878+02:00My JRuby-Rails app on JBoss and Mobicents can make Phone calls !Following on the previous blog, I'll describe the steps to create a multi language JRuby-Rails application that utilize the power of the <a href="http://jcp.org/en/jsr/detail?id=289">Sip Servlets 1.1 specification</a> to make phone calls.<br /><br />It will be bundled as a war and will be deployed on top of <a href="http://www.mobicents.org/products_sip_servlets.html">Mobicents Sip Servlets</a>.<br /><br />So the application will allow one to file complaints and every time a complaint is filed, a confirmation call is made to your phone saying that is has been taken into account and has been routed to a sales representative.<br /><br />You can <a href="http://snapshots.jboss.org/maven2/org/mobicents/servlet/sip/example/jruby-demo-sip-servlet/1.0-SNAPSHOT/jruby-demo-sip-servlet-1.0-20090312.080848-2.war">download the prebuilt application</a>, if you're not interested in build it yourself and just want to test things out.<br />Note also that the source code for this app is <a href="http://code.google.com/p/mobicents/source/browse/trunk/servers/sip-servlets/sip-servlets-examples/jruby-sips-demo/">available here</a><br />In any case, make sure you have JRuby correctly setup as explained in my previous post<br /><br />Deploy the war to your favorite <a href="http://www.mobicents.org/products_sip_servlets.html">Mobicents Sip Servlets container</a>. Currently only the current trunk (0.9-SNAPSHOT) is able to work correctly with a JRuby/Rails - Sip Servlets app, you can find the <a href="http://hudson.jboss.org/hudson/view/Mobicents/job/MobicentsSipServletsRelease/293/artifact/mss-0.9-SNAPSHOT-jboss-4.2.3.GA-0903111539.zip/">corresping binary snapshots of the trunk on our hudson job</a><br /><br />Copy the war into your $JBOSS_HOME/server/default/deploy directory($JBOSS_HOME points to the location where you extracted Mobicents Sip Servlets zip) and then starts the jboss container as usual with<br /><pre class="console">$ sh $JBOSS_HOME/bin/run.sh</pre>When started, go to <a href="http://localhost:8080/sip-servlets-management">http://localhost:8080/sip-servlets-management</a> and remove all configured applications in clicking on all the Delete buttons then click on Save.<br /><br />You're ready to test the application. Starts your favorite Sip Phone (wengo phone, linphone, ekiga, sip communicator, ...) then go to <a href="http://localhost:8080/jruby-demo-sip-servlet-1.0-SNAPSHOT/complaints">http://localhost:8080/jruby-demo-sip-servlet-1.0-SNAPSHOT/complaints</a><br /><br />Create a new complaint and make sure that in the sip uri field you put the address of the sip phone as shown here<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJjBR71yZU9siJFYA6Lkfi9uAflo9DfTwuSJ8wJg9rWX_VeH4b90ryhWESoQqI_0lmsde-elILBhsV7fzQ6lwEcJ07Z-g9NrEbZ3nRE9HS_TBJt-G63w2CWnnSil0e741MoQYeJvHAOi2-/s1600-h/Screenshot-10.png"><img style="cursor: pointer; width: 320px; height: 200px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJjBR71yZU9siJFYA6Lkfi9uAflo9DfTwuSJ8wJg9rWX_VeH4b90ryhWESoQqI_0lmsde-elILBhsV7fzQ6lwEcJ07Z-g9NrEbZ3nRE9HS_TBJt-G63w2CWnnSil0e741MoQYeJvHAOi2-/s320/Screenshot-10.png" alt="" id="BLOGGER_PHOTO_ID_5311933078281259378" border="0" /></a><br /><br />Now enjoy your first JRuby Rails Sip-Servlets application making a call to your sip phone.<br />Note that with some hacking and a VoIP provider such as <a href="http://callwithus.com/">http://www.callwithus.com</a>, it could call real land-line phones or cell phones.<br /><br />The next step now is to integrate with the <a href="http://oddthesis.org/theses/jboss-rails">JBoss Rails Deployer</a> and add to it the ability to recognize those converged telco applications, so that you don't need to recreate the war everytime you change the rails part of the app and benefit from the rails features of live modification and also of the JBoss enterprise features in your Rails application !<br /><br />Also if you want to help us and contribute check our <a href="http://www.jboss.org/community/docs/DOC-13401#Mobicents">Google Summer of Code project ideas for Mobicents</a><br /><br />For the hackers that want to create it themselves here are the steps :<br />(Note that the prebuilt application is integrated with <a href="http://hudson.qa.jboss.com/hudson/job/MobicentsBooks/lastSuccessfulBuild/artifact/media/index.html">Mobicents Media Server</a> and as such has the media features of playing the audio but we will not see that below, it will just showcase the call setup.)<br /><br />So let's create the application skeleton :<br /><pre class="console">$ jruby -S rails jruby-sips-demo -d mysql</pre><br />Go into the “jruby-sips-demo” directory, then modify the config/database.yml.<br />Adjust the adapter name, and instead of ‘mysql’ put ‘jdbcmysql’. You might also want to delete the lines starting with “socket:” or set it to tmp dir.<br /><br />Here’s a simple example for the development environment:<br /><pre name="code" class="properties">development:<br />adapter: jdbcmysql<br />encoding: utf8<br />database: blog_development<br />pool: 5<br />username: root<br />password:<br />socket: /tmp/mysqld.sock<br /></pre><br />Also edit the config/environment.rb to specify the gem dependency we have on the jdbcmysql adapter (this step is mandatory for freezing the dependencies in your app later on)<br /><br /><pre name="code" class="properties">Rails::Initializer.run do |config|<br />...<br />config.gem "activerecord-jdbcmysql-adapter", :version => '0.9', :lib => 'active_record/connection_adapters/jdbcmysql_adapter'<br />...<br />end<br /></pre><br />Now, it’s time to create our database:<br /><br /><pre class="console">$ jruby -S rake db:create:all<br /></pre><br />The next step is to create some minimal scaffolding to create the complaint system<br /><br /><pre class="console">$ jruby script/generate scaffold Complaint customer_name:string company:string complaint:text sip_uri:string<br /><br />$ jruby -S rake db:migrate<br /></pre><br />now, we will add the logic to make the phone call once a complaint has been created, to do that edit app/controllers/complaints_controller.rb and the create function should look like this :<br /><br /><pre name="code" class="ruby"><br />def create<br /> @complaint = Complaint.new(params[:complaint])<br /><br /> respond_to do |format|<br /> if @complaint.save<br /> # get the sip factory from the servlet context<br /> @sip_factory = $servlet_context.get_attribute('javax.servlet.sip.SipFactory')<br /> # create a new sip application session<br /> @app_session = request.env['java.servlet_request'].get_session().get_application_session();<br /> # create a new sip servlet request to start a call to the sip phone with from header equals to "sip:my_jruby_app_rocks@mobicents.org" and the to header equals to the sip_uri from the complaint<br /> @sip_request = @sip_factory.create_request(@app_session, 'INVITE', 'sip:my_jruby_app_rocks@mobicents.org', @complaint.sip_uri);<br /> # actually sending the request out to the sip phone<br /> @sip_request.send();<br /><br /> flash[:notice] = 'Complaint was successfully created.'<br /> format.html { redirect_to(@complaint) }<br /> format.xml { render :xml => @complaint, :status => :created, :location => @complaint }<br /> else<br /> format.html { render :action => "new" }<br /> format.xml { render :xml => @complaint.errors, :status => :unprocessable_entity }<br /> end<br />end<br /></pre>Ok we are done with the rails, let's create the war so that we can deploy it on a Java EE compliant container such as JBoss, for that we need to install <a href="http://wiki.jruby.org/wiki/Warbler">Warbler</a> :<br /><pre class="console">$ jruby -S gem install -y jruby-openssl warbler<br /></pre>and set it up for our application with :<br /><pre class="console">$ jruby -S warble config<br /></pre>Using jdbcmysql adapter, don't forget to uncomment this line in config/warble.rb:<br /><pre name="code" class="ruby">config.gems += ["activerecord-jdbcmysql-adapter"]<br /></pre>Create the .war :<br /><pre class="console">$ jruby -S warble war<br /></pre>Ok we are done with the rails app, now we need to create the java Sip Servlets code that will handle SIP related requests and responses and package it with the war.<br /><br />So let's create the directory structure for the java classes :<br /><pre class="console">$ mkdir -p src/main/java/org/mobicents/servlet/sip/demo/jruby<br />mkdir -p src/main/sipapp/WEB-INF<br /></pre>Now let's add the Sip Servlet class that will handle the SIP calls in src/main/java/org/mobicents/servlet/sip/demo/jruby :<br /><pre name="code" class="java"><br /><br />public class JRubySipServlet extends SipServlet {<br /><br /> @Override<br /> protected void doSuccessResponse(SipServletResponse resp) throws ServletException, IOException {<br /> //acknowledge that the call is accepted by the phone<br /> if (resp.getStatus() == SipServletResponse.SC_OK) {<br /> SipServletRequest ack = resp.createAck();<br /> ack.send();<br /> }<br /> }<br /><br /> @Override<br /> protected void doBye(SipServletRequest request) throws ServletException, IOException {<br /> //respond to the hangup request<br /> SipServletResponse ok = request.createResponse(SipServletResponse.SC_OK);<br /> ok.send();<br /> }<br />}<br /></pre><br />Now let's create the sip.xml deployment descriptor in src/main/sipapp/WEB-INF :<br /><pre name="code" class="xml"><br /><?xml version="1.0" encoding="UTF-8"?><br /><sip-app><br /><app-name>org.mobicents.servlet.sip.demo.jruby.JRubySipServletApplication</app-name><br /> <br /> <servlet><br /> <servlet-name>JRubySipServlet</servlet-name><br /> <display-name>JRubySipServlet</display-name><br /> <description>JRuby SIP servlet</description><br /> <servlet-class><br /> org.mobicents.servlet.sip.demo.jruby.JRubySipServlet<br /> </servlet-class><br /> <load-on-startup>1</load-on-startup><br /> </servlet><br /></sip-app><br /></pre><br />Now let's create the web.xml deployment descriptor in src/main/sipapp/web.xml so that the application uses the development database<br /><br /><pre name="code" class="xml"><br /><web-app><br /><context-param><br /><param-name>rails.env</param-name><br /><param-value><span style="font-weight: bold;">development</span></param-value><br /></context-param><br /><br /><context-param><br /><param-name>public.root</param-name><br /><param-value>/</param-value><br /></context-param><br /><br /><context-param><br /><param-name>jruby.max.runtimes</param-name><br /><param-value>1</param-value><br /></context-param><br /><br /><filter><br /><filter-name>RackFilter</filter-name><br /><filter-class>org.jruby.rack.RackFilter</filter-class><br /></filter><br /><filter-mapping><br /><filter-name>RackFilter</filter-name><br /><url-pattern>/*</url-pattern><br /></filter-mapping><br /><br /><listener><br /><listener-class>org.jruby.rack.rails.RailsServletContextListener</listener-class><br /></listener><br /></web-app><br /></pre><br />Now let's tie everything together by creating a maven pom.xml to bundle the jruby app and the sip servlets code together in a single war so create the pom.xml at the root of your project<br /><pre name="code" class="xml"><br /><project xmlns="http://maven.apache.org/POM/4.0.0" xsi="http://www.w3.org/2001/XMLSchema-instance" schemalocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><br /><modelversion>4.0.0</modelversion><br /><parent><br /><groupid>org.mobicents.servlet.sip.example</groupid><br /><artifactid>sip-servlets-examples-parent</artifactid><br /><version>1.2</version><br /><relativepath>../pom.xml</relativepath><br /></parent><br /><groupid>org.mobicents.servlet.sip.example</groupid><br /><artifactid>jruby-demo-sip-servlet</artifactid><br /><packaging>war</packaging><br /><version>1.0-SNAPSHOT</version><br /><name>JRuby Sip Servlet Demo Application</name><br /><url>http://www.mobicents.org/jruby-sip-servlets.html</url><br /><br /><build><br /><plugins><br /><plugin><br /><artifactid>maven-compiler-plugin</artifactid><br /><configuration><br /><source>1.5</source><br /><target>1.5</target><br /></configuration><br /></plugin><br /><plugin><br /><artifactid>maven-war-plugin</artifactid><br /><configuration><br /><warsourcedirectory><br />${basedir}/src/main/sipapp<br /></warsourcedirectory><br /><webresources><br /><resource><br /> <directory>tmp/war</directory><br /> <excludes><br /> <exclude>**/web.xml</exclude><br /> </excludes><br /></resource><br /><resource><br /> <directory>log</directory><br /> <!-- override the destination directory for this resource --><br /> <targetpath>WEB-INF/log</targetpath><br /></resource><br /></webresources><br /></configuration><br /></plugin><br /></plugins><br /></build><br /></project><br /></pre><br />Create the converged jruby sip servlets war with<br /><pre class="console">$ mvn clean install<br /></pre>Anonymoushttp://www.blogger.com/profile/03020856645147141247noreply@blogger.com6tag:blogger.com,1999:blog-449022347945889835.post-62387335982020284562009-02-18T10:50:00.010+01:002009-06-10T10:15:02.507+02:00Simple Steps to Deploy a JRuby Rails application on JBoss 5As part of the scheduled 0.9 version of Mobicents Sip Servlets, one of our tasks is to add telco features to JRuby on Rails applications so that it becomes quite easy to create click 2 dial or ipbx kind of apps in Rails.<br /><br /><a href="http://adhearsion.com/" target="_blank" class="postlink">Adhearsion</a>, a framework written in Ruby by Jay Philips, allows <a href="http://www.rubyonrails.org/" target="_blank" class="postlink">Rails</a> applications to control various functions in <a href="http://www.asterisk.org/" target="_blank" class="postlink">Asterisk</a> servers. <br /><br />Our goal here is a bit different we would like to enable current Rails application to leverage the Sip Servlets specification and be able to handle all the best parts of it. Not sure yet if we will try to integrate into <a href="http://kenai.com/projects/jruby-rack/pages/Home">JRuby-Rack</a> or create a similar adapter for the Sip Servlets Specification... so stay tuned !<br /><br />As I'm still a newbie on all the ruby world, feel free to comment to help us out or chime in with ideas on how to achieve this goal...<br /><br />So since I'm a (J)Ruby-Rails-newbie, I started where all people start at the <a href="http://www.ruby-lang.org/en/">ruby home</a> and documentation with their excellent tutorials. If you're a newbie as well please familiarize yourself with ruby before going farther. As my grandma said : "Learn to walk before you run!"<br /><br />So after I felt like I grasped the basics of ruby I went on to play with the famous new kid in town that is getting all the hype these days (or is it already old fashionned and Scala, Haskell and such is getting the hype now ?) : <a href="http://rubyonrails.org/download">Ruby on Rails</a>. Same thing here, I followed their simple tutorial that gets you started and off I went with my first rails app. Then I wanted to get a bit farther and started with their <a href="http://guides.rubyonrails.org/getting_started_with_rails.html">blogging application tutorial</a>.<br /><br />I decided that this was enough for now and that I'll dig deeper as I go and since my objective was JRuby on Rails, I will retry to create the blogging app on <a href="http://jruby.codehaus.org/">JRuby</a>.<br />So first <a href="http://dist.codehaus.org/jruby/">download the JRuby version 1.1.6</a> and installed it in my home directory on my linux box under java/jruby-1.1.6. Set the JRUBY_HOME environment variable to the location where you installed it and add the JRUBY_HOME/bin directory to your PATH variable so that all commands are available from the command line. On linux this would be adding this to your ~/.bashrc file :<br /><br /><pre class="console">$ export JRUBY_HOME=/path/to/your/jruby/installation<br />$ export PATH=$PATH:$JRUBY_HOME/bin</pre><br /><br />You can test it out from the command line to issue the version by typing this<br /><pre class="console">$ jruby -v</pre><br />This will give the following output :<br /><pre class="console">jruby 1.1.6 (ruby 1.8.6 patchlevel 114) (2008-12-17 rev 8388) [i386-java]</pre>Ok let's install Rails now :<br /><pre class="console">$ jruby -S gem install rails</pre>This will produce the following output :<br /><pre class="console">JRuby limited openssl loaded. gem install jruby-openssl for full support.<br />http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL<br />Successfully installed activesupport-2.2.2<br />Successfully installed activerecord-2.2.2<br />Successfully installed actionpack-2.2.2<br />Successfully installed actionmailer-2.2.2<br />Successfully installed activeresource-2.2.2<br />Successfully installed rails-2.2.2<br />6 gems installed<br />Installing ri documentation for activesupport-2.2.2...<br />Installing ri documentation for activerecord-2.2.2...<br />Installing ri documentation for actionpack-2.2.2...<br />Installing ri documentation for actionmailer-2.2.2...<br />Installing ri documentation for activeresource-2.2.2...<br />Installing RDoc documentation for activesupport-2.2.2...<br />Installing RDoc documentation for activerecord-2.2.2...<br />Installing RDoc documentation for actionpack-2.2.2...<br />Installing RDoc documentation for actionmailer-2.2.2...<br />Installing RDoc documentation for activeresource-2.2.2...<br /></pre><br />Since JRuby doesn't support SQLite, we will use mySQL as the database (I assume it is already installed on your machine) so we install the jdbc mysql adapter for activerecord (if you don't know what activerecord, check the Rails documentation).<br /><pre class="console">$ jruby -S gem install activerecord-jdbcmysql-adapter</pre>This will produce the following output :<br /><pre class="console">JRuby limited openssl loaded. gem install jruby-openssl for full support.<br />http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL<br />Successfully installed activerecord-jdbc-adapter-0.9<br />Successfully installed jdbc-mysql-5.0.4<br />Successfully installed activerecord-jdbcmysql-adapter-0.9<br />3 gems installed<br />Installing ri documentation for activerecord-jdbc-adapter-0.9...<br />Installing ri documentation for jdbc-mysql-5.0.4...<br />Installing ri documentation for activerecord-jdbcmysql-adapter-0.9...<br />Installing RDoc documentation for activerecord-jdbc-adapter-0.9...<br />Installing RDoc documentation for jdbc-mysql-5.0.4...<br />Installing RDoc documentation for activerecord-jdbcmysql-adapter-0.9...<br /></pre>Let's create the blog application backed by mySQL now :<br /><pre class="console">$ jruby -S rails blog -d mysql</pre>Go into the “blog” directory, then modify the config/database.yml.<br />Adjust the adapter name, and instead of ‘mysql’ put ‘jdbcmysql’. You might also want to delete the lines starting with “socket:” or set it to tmp dir. <p>Here’s a simple example for the development environment:</p><pre name="code" class="properties">development:<br />adapter: jdbcmysql<br />encoding: utf8<br />database: blog_development<br />pool: 5<br />username: root<br />password:<br />socket: /tmp/mysqld.sock<br /></pre>Also edit the config/environment.rb to specify the gem dependency we have on the jdbcmysql adapter (this step is mandatory for freezing the dependencies in your app later on)<code></code><br /><pre name="code" class="ruby">Rails::Initializer.run do |config| <br />...<br />config.gem "activerecord-jdbcmysql-adapter", :version => '0.9', :lib => 'active_record/connection_adapters/jdbcmysql_adapter'<br />...<br />end</pre><br />Now, it’s time to create our database:<br /><pre class="console">$ jruby -S rake db:create:all</pre>The next step is to create some minimal scaffolding so that you could actually play with some dynamic functionality and database access:<br /><pre class="console">$ jruby script/generate scaffold Post name:string title:string content:text</pre>We need to update the database after that:<br /><pre class="console">$ jruby -S rake db:migrate<br /></pre>Let's the application now :<br /><pre class="console">$ jruby script/server<br /></pre>and go to http://localhost:3000/posts<br /><br />Now let's freeze the rails version and the associated gems dependencies we are using into our application so that if rails or a dependency is upgraded in the system, our application will always use the version we freezed and not the newly upgraded version of rails from the system. Note: this is highly recommended for production env and really is a best practice (google freeze rails for more information)<br /><span style="font-weight: bold;">Note that freezing is mandatory if you wish to deploy your application to JBoss 5 with the jboss-rails plugin.</span><br /><br />It is a 2 steps process, first freeze rails then the dependencies (in our case the jdbcmysql adapter)<br />Here is the command to freeze your rails application :<br /><pre class="console">$ jruby -S rake rails:freeze:gems</pre>Here is the command<br /><pre class="console">$ jruby -S rake gems:unpack:dependencies</pre>You can verify that it worked by issuing this command<br /><pre class="console">$ jruby -S rake gems<br /></pre>That will produce the following output :<br /><pre class="console"> - [F] activerecord-jdbcmysql-adapter = 0.9<br /> - [F] activerecord-jdbc-adapter = 0.9<br /> - [F] jdbc-mysql = 5.0.4<br /><br />I = Installed<br />F = Frozen<br />R = Framework (loaded before rails starts)<br /></pre><br />Ok now I can restart the app and play with again (nothing will have changed but if you modify your rails installation to a newer version the app will keep using the version you froze with it).<br /><br />Let's deploy our application to JBoss 5 now :<br />First <a href="http://www.jboss.org/jbossas/downloads/">grab a JBoss AS 5.0.0.GA zip</a> and unzip to the location of your choice then set the JBOSS_HOME env variable to it<br /><br />Now let's get the jboss-rails plugin from the all too famous Bob Mc<a href="http://github.com/bobmcwhirter"></a>Whirter's github repo by issuing the following command (don't forget to move to another directory than your blog application) :<br /><pre class="console">$ git clone git://github.com/bobmcwhirter/jboss-rails.git</pre>from the newly created jboss-rails directory (note that JDK6 is needed for it to compile) :<br /><pre class="console">$ mvn clean install</pre>copy the content of the target/jboss-rails.deployer directory to JBOSS_HOME/server/default/deployers/jboss-rails.deployers.<br />Congratulations, We just installed the jboss-rails deployer into our jboss installation. Now let's tell the jboss deployers that we want to deploy a rails application by creating a blog-rails.yml file into JBOSS_HOME/server/default/deploy directory as <a href="http://oddthesis.org/theses/jboss-rails/projects/jboss-rails/pages/x-rails-yml">explained by Bob</a> that contain the following :<br /><pre name="code" class="properties">application:<br /> RAILS_ROOT: /home/deruelle/ruby/rails/blog<br /> RAILS_ENV: development<br />web:<br /> context: /blog<br /> host: *</pre>ok we are all set up now, you can start your JBoss 5 application server :<br /><pre class="console">$ cd JBOSS_HOME/bin<br />$ sh run.sh</pre>and go to http://localhost:8080/blog/posts, there you go your JRuby-rails application working in jboss without the need to create a war and we are able to modify it at runtime, isn't that great !<br /><br />Thanks Bob for you thesis, plugin and help !<br /><br />Feel free to comment and let me know how well it worked for you !Anonymoushttp://www.blogger.com/profile/03020856645147141247noreply@blogger.com1tag:blogger.com,1999:blog-449022347945889835.post-80100885522143773132009-01-23T11:36:00.008+01:002009-01-23T16:10:23.862+01:00Hacking the JBoss 5 deployers to load Sip Servlets ApplicationsAfter a great Christmas break, I came fully restored and since JBoss 5.0.0.GA was released on the fifth of December 2008, so out for about a month. Since the JBoss 5 features a great new shiny architecture :<br /><ul><li>Check <a href="http://java.dzone.com/articles/a-look-inside-jboss-microconta">Ales' introduction to JBoss MicroContainer</a>, the component framework that transparently binds AS modules.</li><li>Also See <a href="http://www.infoq.com/news/2008/06/jboss-as5-rc1">Dimitris discussing the overhaul done to make AS agnostic to any particular component model.</a></li><li>A great real-world use case is Bob's work over at <a href="http://oddthesis.org,/" target="_blank">http://oddthesis.org,</a> where he details the steps he took to add Rails support to AS and get all sorts of enterprise features (eg. clustering) for free in the process.</li></ul>So I decided it was a really good time to make Mobicents Sip Servlets able to work on JBoss 5. So I took a look at a very <a href="http://www.jboss.org/feeds/post/deployers_in_jboss_microcontainer">good blog post from <b>Bob McWhirter</b></a> to get a first understanding of how the JBoss 5 deployers worked together to deploy a .war archive and came up with a similar design to extend the existing deployers so that JBoss 5 is now able to deploy Sip Servlets and Converged HTTP/Sip Servlets applications :<br /><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6EsyXLblB5gl8tGQkQ-ItZw6hGytsVvcZ5pWjIru04Gv-21fS-EQBAs6lpgJ_FBYCVqdrmXFud0CoRsrgydx64QxtVB0OR7z0g9XIFnOTDZ7RosL__zM8xJ84WRTP_eUaE7RTe0XPPAF_/s1600-h/MSSSipAppJB5Loading.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 320px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6EsyXLblB5gl8tGQkQ-ItZw6hGytsVvcZ5pWjIru04Gv-21fS-EQBAs6lpgJ_FBYCVqdrmXFud0CoRsrgydx64QxtVB0OR7z0g9XIFnOTDZ7RosL__zM8xJ84WRTP_eUaE7RTe0XPPAF_/s320/MSSSipAppJB5Loading.jpg" alt="" id="BLOGGER_PHOTO_ID_5294436519382827762" border="0" /></a><br />So I hacked away and about a week later, Mobicents Sip Servlets was passing the Sip Servlets 1.1 TCK on top of JBoss 5, in addition to Tomcat 6.0.14 and JBoss 4.2.3 !<br />You can get <a href="http://hudson.jboss.org/hudson/job/MobicentsSipServletsRelease/">the nightly snapshots binaries on our hudson job</a> if you want to try it out and give us some feedback on <a href="http://groups.google.com/group/mobicents-public/">mobicents-public google groups</a><br /><br />It allowed us to refactor a bit Mobicents Sip Servlets to be more modular on plugging to various containers (such as Tomcat and JBoss) so it is just a matter of maven profiles now to build Mobicents Sip Servlets on top of Tomcat or various major versions of JBoss. With even more refactoring, I'm sure we could succeed to run Mobicents Sip Servlets on top of Jetty or why not Glassfish, but that's another story ;-)<br /><br />This gives us a very great foundation to experiment on top of JBoss 5, such as Building converged telco applications integrated with JRuby by example so stay tuned for more in the coming months ! :-)<br /><br />You can find more details here on what currently happens in the design diagram above when loading a sip servlets application :<br /><br /><span style="font-weight: bold; font-style: italic;">Note : I copied most of the content of Bob McWhirter's blog post and adapted it to show how the sip.xml and annotations are parsed and injected and combined with the other existing MetaData :</span><br /><br />"<span style="font-weight: bold; font-style: italic;"></span>JBoss MicroContainer look in WEB-INF/ for meta-data descriptors, such as <strong>sip.xml, web.xml</strong> and <strong>jboss-web.xml</strong>. This is where true deployment of components starts. Deployment runs through a series of stages, with deployers setup to match particular files and stages, doing the right things at the right time. <p>One of the earliest stages is the <strong>PARSE</strong> stage. A deployer can be bound to this stage to be given an early chance to match, parse, and act upon any meta-data file. For normal WAR deployment, the <strong>WebAppParsingDeployer</strong> does exactly that. There’s a nice hierarchy of classes to make parsing XML descriptors such as web.xml super simple.<br /></p><p>For our Sip Servlets case we are using SipAppParsingDeployer to parse the sip.xml descriptor and create the corresponding hierarchy of JAXB classes and reusing some of the existing web.xml ones when it is possible (ie when the sip_app.xsd reuses some javaee types from the web_app_2_5.xsd). It is indeed super simple :-)<br /></p> <p>The <strong>WebAppParsingDeployer</strong> is the bridge from a web.xml file sitting on the filesystem or in an archive to the <strong>MetaData</strong> deployment bits. The parser reads web.xml, and produces a <strong>WebMetaData</strong> object associated with the deployment. The <strong>WebMetaData</strong> is simply a nice object-tree representing anything you can denote in web.xml.</p><p>Same thing here in our case, we use a SipAppParsingDeployer. The parser reads sip.xml, and produces a <strong>SipMetaData</strong> object associated with the deployment. The <strong>SipMetaData</strong> is simply a nice object-tree representing anything you can denote in sip.xml.</p> <p>We also might have a jboss-web.xml meta-data in our WAR, and that is parsed (during the <strong>PARSE</strong> stage) in our case by the <span style="font-weight: bold;">JBossConvergedSipAppParsingDeployer</span> (instead of <strong>JBossWebAppParsingDeployer</strong>). This deployer, like the previous, reads the jboss-web XML file and creates, in this case, a <strong>JBossConvergedSipMetaData<span style="font-weight: normal;"> (instead of</span> JBossWebMetaData)</strong> object. It is also gathering the previous MetaData (SipMetaData and WebMetaData) and merged them with itself.<br /></p> <p>Once we’ve parsed these .xml files, the container has enough information to build up the classpath for the component. Some of these deployers have also thrown off or modified some <strong>ClassLoadingMetaData</strong>, which describe paths that should be added to the classpath.</p> <p>As the container enters the <strong>CLASSLOADER</strong> stage of deployment, other magic occurs to actually set up the classpath.</p><p>After that, There is annotations parsing through <b>ConvergedSipAnnotationMetaDataDeployer </b>that produces <span style="font-weight: bold;">SipMetaData</span> and <span style="font-weight: bold;">WebMetaData</span> also but based on the annotations instead of the xml descriptors this time<br /></p> <p>In the end, it’s the <span style="font-weight: bold;">JBossConvergedSipMetaData</span> (instead of <strong>JBossWebMetaData</strong>) that drives the ultimate deployment, but what if we don’t have a jboss-web.xml? That’s where the <span style="font-weight: bold;">MergedJBossConvergedMetaDataDeployer</span> (instead of <strong>MergedJBossWebMetaDataDeployer</strong>) comes in. It looks for <strong>SipMetadata (parsed from the sip.xml and the annotation based one), WebMetaData</strong><strong>(parsed from the web.xml and the annotation based one)</strong>, and a <strong>JBossWebMetaData</strong> if one has been parsed, and merges everything into a singular JbossConvergedSipMetaData (instead of <strong>JBossWebMetaData</strong>).</p><p>I’m a little fuzzy on the ins and outs of the <strong>CLASSLOADER</strong> stage at this point, but magic occurs there.</p> <p>And our app still isn’t deployed yet. But we’re getting there.</p> <p>Finally, we enter the REAL stage of deployment, which fittingly-enough, is where the actual deployment occurs. Hooray!</p> <p>Our <span style="font-weight: bold;">TomcatConvergedDeployer (instead of</span> <strong>TomcatDeployer</strong>) that is sip servlets aware is hanging out there, waiting for <strong>JBossWebMetaData</strong> objects to appear. When it sees one, it checks if the application is a sip servlets application (by checking if a sip.xml descriptor or Sip Servlets annotations are present), if it is not it deploy as a standard web app otheriwse it goes to work setting up information for our extended Tomcat (that is sip servlets aware) to deploy a sip-app. It configures everything in Tomcat from the information other deployers figured out from sip.xml, web.xml, jboss-web.xml and annotations and embodied in the MetaData by creating a <span style="font-weight: bold;">TomcatConvergedDeployment (instead of TomcatDeployment for a standard webapp)</span>.</p><p>This <span style="font-weight: bold;">TomcatConvergedDeployment</span> also sets up the private jndi for the webapp and binds the needed objects to it (like SipFactory, TimerService and SipSessionsUtils). It also set the InjectionContainer, <span style="font-weight: bold;">TomcatConvergedSipInjectionContainer(instead of TomcatInjectionContainer)</span> so that needed objects can be injected into annotated attributes of the archive.<br /></p><p></p><p>It jams it into Tomcat, hits the big red “go” button, and port 5080 is serving you sip-app (and port 8080 also if this is a HTTP/SipServlets converged application).</p> <p>Finally. :-)</p><p>Jean<br /></p>Anonymoushttp://www.blogger.com/profile/03020856645147141247noreply@blogger.com6