<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CkcFR3Y5eip7ImA9WhRVGUo.&quot;"><id>tag:blogger.com,1999:blog-449022347945889835</id><updated>2012-01-19T11:46:56.822+01:00</updated><category term="telestax" /><category term="consultants" /><category term="HA" /><category term="judcon" /><category term="Failover" /><category term="redhat summit" /><category term="jbossworld" /><category term="Release" /><category term="jain slee" /><category term="jbcp" /><category term="mobicents" /><category term="Clustering" /><category term="SIP" /><category term="community" /><category term="sip presence" /><category term="sip servlets" /><category term="summit" /><category term="media server" /><category term="diameter" /><title>My new life @ home</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://jeanderuelle.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://jeanderuelle.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Jean Deruelle</name><uri>https://profiles.google.com/104586518034799783278</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-07bIFrlcUWw/AAAAAAAAAAI/AAAAAAAAAAA/IMD0m6paSEI/s512-c/photo.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>32</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/MyNewLifeHome" /><feedburner:info uri="mynewlifehome" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;C0ICQns5eSp7ImA9WhRXFU0.&quot;"><id>tag:blogger.com,1999:blog-449022347945889835.post-7874265611690466577</id><published>2011-12-16T21:27:00.000+01:00</published><updated>2011-12-21T22:06:03.521+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-21T22:06:03.521+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="community" /><category scheme="http://www.blogger.com/atom/ns#" term="summit" /><category scheme="http://www.blogger.com/atom/ns#" term="telestax" /><category scheme="http://www.blogger.com/atom/ns#" term="mobicents" /><title>The Mobicents Annual Summit 2011 Experience</title><content type="html">&lt;a href="http://3.bp.blogspot.com/-MFmkqGE0zjU/TupUwLTkrPI/AAAAAAAAooM/tepN2oZChR8/s1600/photo.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/-MFmkqGE0zjU/TupUwLTkrPI/AAAAAAAAooM/tepN2oZChR8/s320/photo.JPG" width="240" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
It's been this time of the year again where &lt;a href="http://www.mobicents.org/" target="_blank"&gt;Mobicents&lt;/a&gt; core team met all together and face to face with our beloved Community and damn that was great ! Kudos to &lt;a href="http://olegkulikov.blogspot.com/" target="_blank"&gt;Oleg&lt;/a&gt;&amp;nbsp;for organizing and being the perfect host putting up all nighters to make sure everyone would get safely to the hotel with&amp;nbsp;luggage&amp;nbsp;and all.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
You can find the full agenda that was covered during our 3 days meet up on &lt;a href="http://amitbhayani.blogspot.com/2011/12/annual-mobicents-conference-2011-sochi.html" target="_blank"&gt;Amit's Blog&lt;/a&gt;&amp;nbsp;where he will also link the presentations as they are put online by everyone.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
The Big News was the official announcement done by Rob Cardwell&amp;nbsp;(JBCP Product Manager, RedHat)&amp;nbsp;that Red Hat is sunsetting JBCP and Mobicents &amp;nbsp;over the next year.&amp;nbsp;This kicked off the first talk by Ivelin about Transitioning Mobicents leadership to&amp;nbsp;&lt;a href="http://www.telestax.com/" target="_blank"&gt;TeleStax, Inc.&lt;/a&gt;&amp;nbsp;which is offering a transition path and already providing Enterprise Professional Services (namely, Development and Production Support, Training and Consulting)&amp;nbsp;for Mobicents to customers around the world.&amp;nbsp;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
TeleStax, Inc. founders are Mobicents old timers that have been building Mobicents since its inception back in 2003. More information can be found in &lt;a href="https://docs.google.com/presentation/d/1UTf1xzZtAaRjXFr6118X2idk5qSzSHVX5traPbOMW0s/edit" target="_blank"&gt;Mobicents Transition to TeleStax&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-IlaBuHAD9dI/Tupi-hwT82I/AAAAAAAAoos/Ax5hDFxWQ6o/s1600/avistarlogo.gif" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="177" src="http://3.bp.blogspot.com/-IlaBuHAD9dI/Tupi-hwT82I/AAAAAAAAoos/Ax5hDFxWQ6o/s200/avistarlogo.gif" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;
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&lt;span style="background-color: white;"&gt;&lt;span style="font-family: Arial, 'Helvetica Neue', sans-serif; font-size: 15px; line-height: 19px; text-align: left;"&gt;m &lt;a href="http://www.codeminders.com/" target="_blank"&gt;CodeMinders&lt;/a&gt; commissioned by &lt;a href="http://www.avistar.com/" target="_blank"&gt;Avistar Communications&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;saying "we are using Mobicents Sip Servlets to all extent possible even to some extent that's not possible :-)"&lt;br /&gt;
&lt;a href="http://4.bp.blogspot.com/-lDQp39w4GJw/TupjJEc2ooI/AAAAAAAAoo0/WKHP8m8WdHM/s1600/logo.gif" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-lDQp39w4GJw/TupjJEc2ooI/AAAAAAAAoo0/WKHP8m8WdHM/s1600/logo.gif" /&gt;&lt;/a&gt;&lt;br /&gt;
or Vilius from&lt;span style="background-color: white;"&gt;&lt;span style="font-family: Arial, 'Helvetica Neue', sans-serif; font-size: 15px; line-height: 19px; text-align: left;"&gt;&amp;nbsp;&lt;a href="http://www.elitnet.lt/" target="_blank"&gt;Elitnet&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;mentioning that "after 1 year in production, it shocks ISV - SLEE did not fail as expected :), still up and running"&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://1.bp.blogspot.com/-EeIhl8FXoP4/TupfLS4ymII/AAAAAAAAooU/gjWPRGrX9zU/s1600/twilio+%25281%2529.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="53" src="http://1.bp.blogspot.com/-EeIhl8FXoP4/TupfLS4ymII/AAAAAAAAooU/gjWPRGrX9zU/s200/twilio+%25281%2529.png" width="200" /&gt;&lt;/a&gt;&lt;br /&gt;
Jonas Borjesson&amp;nbsp;from &lt;a href="http://www.twilio.com/" target="_blank"&gt;Twilio&lt;/a&gt;&amp;nbsp;offered us a treat before Christmas by doing a presentation with a &lt;b&gt;live demo&lt;/b&gt; of the &lt;a href="https://docs.google.com/open?id=0B3Z3Uhj-XHcDNGQ1OTE2MjktOTMwYS00YzVhLTg1ZWQtNDQwOTdjYzI1OTc0" target="_blank"&gt;Twilio Client&lt;/a&gt;&amp;nbsp;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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://4.bp.blogspot.com/-vYaknYSLm7M/Tupfl1g0vLI/AAAAAAAAooc/TlNSWQCuD-w/s1600/logo-top.gif" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="55" src="http://4.bp.blogspot.com/-vYaknYSLm7M/Tupfl1g0vLI/AAAAAAAAooc/TlNSWQCuD-w/s200/logo-top.gif" width="200" /&gt;&lt;/a&gt;&lt;span style="background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; line-height: 18px;"&gt;&amp;nbsp;&lt;/span&gt;Jason Goecke from&lt;span style="background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; line-height: 18px;"&gt;&amp;nbsp;&lt;a href="http://www.voxeo.com/" target="_blank"&gt;Voxeo Labs&lt;/a&gt;&lt;/span&gt; gave us a nice overview of their offerings, about&lt;span style="background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; line-height: 18px;"&gt;&amp;nbsp;&lt;a href="https://www.tropo.com/home.jsp" target="_blank"&gt;Tropo&lt;/a&gt;,&amp;nbsp;&lt;/span&gt;the other one of the hottest Telco 2.0 SaaS out there :-) and their latest baby&lt;span style="background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; line-height: 18px;"&gt;&amp;nbsp;&lt;a href="http://voxeolabs.com/rayo/" target="_blank"&gt;Rayo&lt;/a&gt;.&amp;nbsp;&lt;/span&gt;We layed out the ground for a potential collaboration around&lt;span style="background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; line-height: 18px;"&gt;&amp;nbsp;&lt;a href="http://voxeolabs.com/moho/" target="_blank"&gt;Moho&amp;nbsp;&lt;/a&gt;&amp;nbsp;&lt;/span&gt;and future work on SIP Servlets 2.0 specification.&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
&lt;a href="http://4.bp.blogspot.com/-4_tibq3t4vs/TuphF_paAcI/AAAAAAAAook/z8QZfm8_L4w/s1600/logo_tagline.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="41" src="http://4.bp.blogspot.com/-4_tibq3t4vs/TuphF_paAcI/AAAAAAAAook/z8QZfm8_L4w/s200/logo_tagline.jpg" width="200" /&gt;&lt;/a&gt;&lt;span style="background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; line-height: 18px;"&gt;&amp;nbsp;&lt;/span&gt;Silvano Girardi Jr presented&lt;span style="background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; line-height: 18px;"&gt;&amp;nbsp;&lt;a href="http://www.inphonex.com/" target="_blank"&gt;Inphonex&lt;/a&gt;&amp;nbsp;&lt;/span&gt;and how they are currently migrating their infrastructure from Weblogic to Mobicents Sip Servlets. We also had a surprise birthday party ready for him ;-)&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Unfortunately the french team from &lt;a href="http://manaty.net/sites/manaty.fr/" target="_blank"&gt;Manaty&lt;/a&gt; couldn't get their visa on time, so I performed their &lt;a href="https://docs.google.com/open?id=0B3Z3Uhj-XHcDZjc5Y2RhYzYtODQ4Ny00OWU1LTgxOTUtMDRiNjhlNzgyOThm" target="_blank"&gt;presentation&lt;/a&gt;&amp;nbsp;on behalf of them.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
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&amp;nbsp;&lt;a href="https://docs.google.com/presentation/d/1I8WBFMiyEq1h8HFygLgFWw8i63ZellkoY7YkEfmMNW8/edit" target="_blank"&gt;TelScale&lt;/a&gt;&amp;nbsp;and moving to a new&amp;nbsp;&lt;a href="http://code.google.com/p/telscale/" target="_blank"&gt;home&lt;/a&gt;&amp;nbsp;with git as a source code repository. We then moved to the HA Topics and had a great live discussion following on the &lt;a href="https://docs.google.com/presentation/d/1d3ZMEbtu6yWXSKq0CzAZFxCDtIhx8jVfTmOozkUQDas/edit" target="_blank"&gt;Container Independent HA Framework&lt;/a&gt;&amp;nbsp;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.&amp;nbsp;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
That was followed by Georges Vagenas, one of our most active Mobicents contributors (and official Summit video recorder person :-)), presenting his great work on&amp;nbsp;&lt;a href="https://docs.google.com/presentation/d/1ixHV8GsSiUYkynYy2r8IzU69HMC_LKaWdj0ufSrh4tw/edit" target="_blank"&gt;CDI Telco Framework and Arquillian integration with Mobicents&lt;/a&gt;.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
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 &lt;a href="https://docs.google.com/open?id=0B3Z3Uhj-XHcDZjY5MGIwNWMtYjE5Yy00M2JjLWI0OGQtOTBjNWFhNGJiZTk2" target="_blank"&gt;RestComm&lt;/a&gt;, our Twilio like private Telco 2.0 SaaS powered by Mobicents that is &lt;a href="http://telruptive.com/2011/12/10/mobicents-restcomm-is-to-twilio-what-eucalyptus-is-to-amazon/" target="_blank"&gt;already picking up interest&lt;/a&gt;&amp;nbsp;even though still in ALPHA stage.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
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.&lt;/div&gt;
&lt;br /&gt;
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&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-pW5cJ00YhJk/TupUDc1hMcI/AAAAAAAAooE/h4x0cPjOyyo/s1600/381790_10150437639929654_652224653_8298388_1963617862_n.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-pW5cJ00YhJk/TupUDc1hMcI/AAAAAAAAooE/h4x0cPjOyyo/s320/381790_10150437639929654_652224653_8298388_1963617862_n.jpg" width="240" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/449022347945889835-7874265611690466577?l=jeanderuelle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/baFbxEVl2wyzYh1ndQuvJzXHGLs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/baFbxEVl2wyzYh1ndQuvJzXHGLs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/baFbxEVl2wyzYh1ndQuvJzXHGLs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/baFbxEVl2wyzYh1ndQuvJzXHGLs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MyNewLifeHome/~4/PiWKQmfLMDk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jeanderuelle.blogspot.com/feeds/7874265611690466577/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://jeanderuelle.blogspot.com/2011/12/mobicents-annual-summit-2011-experience.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/7874265611690466577?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/7874265611690466577?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyNewLifeHome/~3/PiWKQmfLMDk/mobicents-annual-summit-2011-experience.html" title="The Mobicents Annual Summit 2011 Experience" /><author><name>Jean Deruelle</name><uri>https://profiles.google.com/104586518034799783278</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-07bIFrlcUWw/AAAAAAAAAAI/AAAAAAAAAAA/IMD0m6paSEI/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-MFmkqGE0zjU/TupUwLTkrPI/AAAAAAAAooM/tepN2oZChR8/s72-c/photo.JPG" height="72" width="72" /><thr:total>0</thr:total><georss:featurename>Lamballe, France</georss:featurename><georss:point>48.468637 -2.517322</georss:point><georss:box>48.384413 -2.6752505 48.552861 -2.3593935</georss:box><feedburner:origLink>http://jeanderuelle.blogspot.com/2011/12/mobicents-annual-summit-2011-experience.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE4BSX45fSp7ImA9WhRTFE0.&quot;"><id>tag:blogger.com,1999:blog-449022347945889835.post-4102861534847544027</id><published>2011-09-14T18:25:00.003+02:00</published><updated>2011-11-04T11:35:58.025+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-04T11:35:58.025+01:00</app:edited><title>Mobicents Face To Face 2011 Meeting open to community</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-bzRynVbmO8c/TnCoBasIb4I/AAAAAAAAoho/58wXnCXyGAg/s1600/sochi_vuoristo_talvi_sharp405.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="276" src="http://4.bp.blogspot.com/-bzRynVbmO8c/TnCoBasIb4I/AAAAAAAAoho/58wXnCXyGAg/s400/sochi_vuoristo_talvi_sharp405.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style="font-family: inherit;"&gt;&lt;span style="background-color: white; text-align: left;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: inherit;"&gt;&lt;span style="background-color: white; text-align: left;"&gt;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&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: white; line-height: 19px;"&gt;XXII Olympic Winter Games will be held&lt;/span&gt;&lt;span style="background-color: white; text-align: left;"&gt;.&amp;nbsp;No need to tell that I am very excited to meet my colleagues again, our customers and community !&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="background-color: white; text-align: left;"&gt;&lt;span style="font-family: inherit;"&gt;That's right you read well, building &lt;a href="http://jeanderuelle.blogspot.com/2010/10/mobicents-face-to-face-meeting-2010-in.html"&gt;on the success of last year&lt;/a&gt; in opening up the meeting to community we are doing it again this year !&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="background-color: white; text-align: left;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="background-color: white; text-align: left;"&gt;&lt;a href="http://ivelinivanov.blogspot.com/2011/11/annual-mobicents-community-summit-sochi.html"&gt;Check the contents of the meeting&lt;/a&gt;&amp;nbsp;&lt;/span&gt;and feel free to provide your input on what you would like to see&amp;nbsp;&lt;span style="background-color: white; text-align: left;"&gt;(the contents for meetings/gatherings during the night shall not be disclosed :-) what happens in Sochi stays in Sochi to paraphrase a famous quote)&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style="text-align: -webkit-auto;"&gt;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&lt;/span&gt; voucher which is mandatory for getting visa so feel free to ask us)&lt;span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; text-align: -webkit-auto;"&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #222222; font-family: arial, sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
Looking forward to see all of you there !&lt;/div&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/449022347945889835-4102861534847544027?l=jeanderuelle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Qi8jYwZmUeq9aLz4x1nbxrUP5os/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Qi8jYwZmUeq9aLz4x1nbxrUP5os/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Qi8jYwZmUeq9aLz4x1nbxrUP5os/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Qi8jYwZmUeq9aLz4x1nbxrUP5os/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MyNewLifeHome/~4/cw2zXqL4K98" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jeanderuelle.blogspot.com/feeds/4102861534847544027/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://jeanderuelle.blogspot.com/2011/09/mobicents-face-to-face-2011-meeting.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/4102861534847544027?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/4102861534847544027?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyNewLifeHome/~3/cw2zXqL4K98/mobicents-face-to-face-2011-meeting.html" title="Mobicents Face To Face 2011 Meeting open to community" /><author><name>Jean Deruelle</name><uri>https://profiles.google.com/104586518034799783278</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-07bIFrlcUWw/AAAAAAAAAAI/AAAAAAAAAAA/IMD0m6paSEI/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-bzRynVbmO8c/TnCoBasIb4I/AAAAAAAAoho/58wXnCXyGAg/s72-c/sochi_vuoristo_talvi_sharp405.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://jeanderuelle.blogspot.com/2011/09/mobicents-face-to-face-2011-meeting.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkcEQXo4eyp7ImA9WhZWEUw.&quot;"><id>tag:blogger.com,1999:blog-449022347945889835.post-1037930528792733420</id><published>2011-05-11T14:46:00.000+02:00</published><updated>2011-05-11T14:46:40.433+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-11T14:46:40.433+02:00</app:edited><title>Back from JBoss World and JUDCon 2011 and it was awesome !</title><content type="html">&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-jqV6tEKizNI/Tcp-oKo88AI/AAAAAAAAoS8/eKWubN_Zzwc/s1600/IMG_2933.JPG" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="240" src="http://1.bp.blogspot.com/-jqV6tEKizNI/Tcp-oKo88AI/AAAAAAAAoS8/eKWubN_Zzwc/s320/IMG_2933.JPG" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;/me tattooed at the JBoss World Party&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;span class="Apple-style-span" style="color: #4c4c4c; font-family: inherit; line-height: 17px;"&gt;So I finally get to write on&amp;nbsp;&lt;a href="http://www.jboss.org/events/JUDCon" style="color: #431609;"&gt;JUDCon&lt;/a&gt;&amp;nbsp;and&amp;nbsp;&lt;a href="http://www.redhat.com/summit/" style="color: #431609;"&gt;JBoss World/Red Hat Summit&lt;/a&gt;&amp;nbsp;from last week that took place in Boston.&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #4c4c4c; line-height: 17px;"&gt;&amp;nbsp;And what a breathtaking week it was. &amp;nbsp;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...&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #4c4c4c;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit; line-height: 17px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #4c4c4c; font-family: inherit; line-height: 17px; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="line-height: normal;"&gt;&lt;span class="Apple-style-span" style="color: #4c4c4c; line-height: 17px; white-space: normal;"&gt;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 &lt;a href="http://goo.gl/gUtVC"&gt;crown a noble for my contributions&lt;/a&gt; last year), Hibernate, etc. Regarding Mobicents, We had the pleasure of having our &lt;a href="http://slidesha.re/lIywTE"&gt;first presentation&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 17px; white-space: normal;"&gt;&lt;span class="Apple-style-span" style="color: #444444;"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 16px; white-space: pre-line;"&gt;&lt;span class="Apple-style-span" style="color: #444444;"&gt;Tuning and development with SIP Servlets on Mobicents&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: normal;"&gt;&lt;span class="Apple-style-span" style="line-height: 17px; white-space: normal;"&gt;&lt;span class="Apple-style-span" style="color: #444444;"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #4c4c4c; line-height: 17px; white-space: normal;"&gt; for a JBoss event done by a great contributor and customer of ours&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #444444;"&gt;: Naoki Nishihara from &lt;a href="http://www.oki.com/"&gt;OKI&lt;/a&gt;. 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.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #454545; font-family: 'Lucida Grande', Geneva, Verdana, Arial, sans-serif; font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="line-height: 16px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-XNmfIX_Cskw/Tcp_O9Jt_lI/AAAAAAAAoTA/1TOm-d1rEBM/s1600/IMG_2923.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="300" src="http://1.bp.blogspot.com/-XNmfIX_Cskw/Tcp_O9Jt_lI/AAAAAAAAoTA/1TOm-d1rEBM/s400/IMG_2923.JPG" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Thanks Naoki for the Great JUDCon presentation&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;div style="background-color: transparent; line-height: normal;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: #444444;"&gt;&lt;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;"&gt;Then the JBoss keynote event happened where&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #444444; line-height: 19px;"&gt;Enterprise Application Platform 6,&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #444444; line-height: 19px;"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #444444; line-height: 19px;"&gt;&lt;span class="Apple-style-span" style="color: #4c4c4c; line-height: 17px;"&gt;&lt;a href="http://www.jboss.com/edg6-early-access" style="color: #431609;"&gt;JBoss Enterprise Data Grid platform&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #444444; line-height: 19px;"&gt;, JBoss developer certification were announced&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #444444;"&gt;&lt;span style="background-color: transparent; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;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 &lt;/span&gt;&lt;span style="background-color: transparent; font-style: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;a href="http://www.ustream.tv/recorded/14457992"&gt;http://www.ustream.tv/recorded/14457992&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="background-color: transparent; line-height: normal;"&gt;&lt;span class="Apple-style-span" style="color: #444444; font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="color: #444444; font-family: inherit;"&gt;Then the Red Hat keynote started and I was&amp;nbsp;delighted&amp;nbsp;to see Rancore Technologies, one of your core contributor and most active community member, win the &lt;a href="http://www.redhat.com/summit/rancore/index.html"&gt;Red Hat Innovation Award&lt;/a&gt;&amp;nbsp;for their&amp;nbsp;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;Service Delivery Platform that&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;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&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent; line-height: normal;"&gt;&lt;span class="Apple-style-span" style="color: #444444; font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;img border="0" height="325" src="http://openshift.redhat.com/app/images/PaaS.png" style="margin-left: auto; margin-right: auto;" width="400" /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Because Shift Happens !&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://openshift.redhat.com/app/images/PaaS.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="color: #444444; font-family: inherit;"&gt;The other big news was Red Hat entering the cloud market with our Private Cloud IaaS offering &lt;a href="http://www.redhat.com/solutions/cloud/cloudforms/"&gt;CloudForms&lt;/a&gt; and with our PaaS offering &lt;a href="http://www.redhat.com/solutions/cloud/openshift/"&gt;OpenShift&lt;/a&gt;. As we are already working on enabling&amp;nbsp;&lt;a href="http://www.mobicents.org/incubator/cloud/intro.html"&gt;Mobicents in the Cloud&lt;/a&gt;, you can expect to see better Mobicents integration there in the near future.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #444444;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #444444;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;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 !&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/449022347945889835-1037930528792733420?l=jeanderuelle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/R8OuQ0mdhYjRdtrPzRkHC2xmzWU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/R8OuQ0mdhYjRdtrPzRkHC2xmzWU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/R8OuQ0mdhYjRdtrPzRkHC2xmzWU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/R8OuQ0mdhYjRdtrPzRkHC2xmzWU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MyNewLifeHome/~4/ihh84npOdyU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jeanderuelle.blogspot.com/feeds/1037930528792733420/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://jeanderuelle.blogspot.com/2011/05/back-from-jboss-world-and-judcon-2011.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/1037930528792733420?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/1037930528792733420?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyNewLifeHome/~3/ihh84npOdyU/back-from-jboss-world-and-judcon-2011.html" title="Back from JBoss World and JUDCon 2011 and it was awesome !" /><author><name>Jean Deruelle</name><uri>https://profiles.google.com/104586518034799783278</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-07bIFrlcUWw/AAAAAAAAAAI/AAAAAAAAAAA/IMD0m6paSEI/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-jqV6tEKizNI/Tcp-oKo88AI/AAAAAAAAoS8/eKWubN_Zzwc/s72-c/IMG_2933.JPG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://jeanderuelle.blogspot.com/2011/05/back-from-jboss-world-and-judcon-2011.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0AHSHY-eSp7ImA9WhZREUo.&quot;"><id>tag:blogger.com,1999:blog-449022347945889835.post-3715387153139260373</id><published>2011-04-07T12:22:00.000+02:00</published><updated>2011-04-07T12:22:19.851+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-07T12:22:19.851+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="sip servlets" /><category scheme="http://www.blogger.com/atom/ns#" term="judcon" /><category scheme="http://www.blogger.com/atom/ns#" term="jbossworld" /><category scheme="http://www.blogger.com/atom/ns#" term="mobicents" /><title>Meet Mobicents at JUDCon 2011</title><content type="html">This year I will have the pleasure to copresent at JUDCon 2011&amp;nbsp;(May 2-3, 2011 in Boston)&amp;nbsp;this&amp;nbsp;talk&amp;nbsp;&lt;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;"&gt;&lt;a href="http://www.jboss.org/events/JUDCon/day2track3.html#230PM"&gt;Tuning and development with SIP Servlet on Mobicents/JBoss Communications Platform&lt;/a&gt;&lt;/span&gt;&amp;nbsp;with&amp;nbsp;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 &lt;a href="http://www.mobicents.org/mss-ssf.html"&gt;Spring Sip Servlets Framework effort on the Mobicents community&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
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 &lt;a href="http://twitter.com/mobicents"&gt;Twitter&lt;/a&gt;, 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 &amp;nbsp;features you want in the next version of Mobicents ;-)&lt;br /&gt;
&lt;br /&gt;
I hope to see you there&lt;br /&gt;
Jean&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/449022347945889835-3715387153139260373?l=jeanderuelle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/9jnMD8iZ3HbGkBvl5WulYkM-M1Q/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9jnMD8iZ3HbGkBvl5WulYkM-M1Q/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/9jnMD8iZ3HbGkBvl5WulYkM-M1Q/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9jnMD8iZ3HbGkBvl5WulYkM-M1Q/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MyNewLifeHome/~4/tV3WiY1QKQA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jeanderuelle.blogspot.com/feeds/3715387153139260373/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://jeanderuelle.blogspot.com/2011/04/meet-mobicents-at-judcon-2011.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/3715387153139260373?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/3715387153139260373?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyNewLifeHome/~3/tV3WiY1QKQA/meet-mobicents-at-judcon-2011.html" title="Meet Mobicents at JUDCon 2011" /><author><name>Jean Deruelle</name><uri>https://profiles.google.com/104586518034799783278</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-07bIFrlcUWw/AAAAAAAAAAI/AAAAAAAAAAA/IMD0m6paSEI/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://jeanderuelle.blogspot.com/2011/04/meet-mobicents-at-judcon-2011.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUEQX86fCp7ImA9Wx9UEks.&quot;"><id>tag:blogger.com,1999:blog-449022347945889835.post-8971618716148348430</id><published>2011-02-08T17:07:00.002+01:00</published><updated>2011-02-09T17:16:40.114+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-09T17:16:40.114+01:00</app:edited><title>Mobicents first hand experience FOSDEM, it was awesome !</title><content type="html">Hi all,&lt;br /&gt;&lt;br /&gt;Just got back from &lt;a href="http://www.fosdem.org/2011/"&gt;FOSDEM 2011&lt;/a&gt; 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 !&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;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&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://4.bp.blogspot.com/_Vn7yjSRlJ4U/TVFM4k1dTRI/AAAAAAAAnh8/mQJ6fsfK3uE/s1600/photo.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://4.bp.blogspot.com/_Vn7yjSRlJ4U/TVFM4k1dTRI/AAAAAAAAnh8/mQJ6fsfK3uE/s320/photo.JPG" width="320" /&gt;&lt;/a&gt;I finally met with, after around 8 years of knowing him virtually, &lt;b&gt;Emil Ivov&lt;/b&gt; the &lt;b&gt;project founder and leader of &lt;a href="http://sip-communicator.org/"&gt;Sip Communicator&lt;/a&gt; (soon to be Jitsi)&lt;/b&gt; 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 !&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;It as a blast to meet in flesh and blood with old and new Mobicents users such as&lt;b&gt; &lt;a href="http://www.crocodile-rcs.com/"&gt;Crocodile RCS&lt;/a&gt;&lt;/b&gt; 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  ;-)&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both;"&gt;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 &lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Daniel-Constantin Mierla, &lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 15px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;b&gt;Co-Founder and Core Developer &lt;/b&gt;&lt;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;"&gt;at &lt;/span&gt;&lt;b&gt;&lt;a href="http://www.kamailio.org/"&gt;Kamailio&lt;/a&gt; ( formerly OpenSER) &lt;/b&gt;and &lt;b&gt;Russell Bryant, &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit; line-height: 15px;"&gt;&lt;b style="line-height: 15px;"&gt;Engineering Manager at &lt;a href="http://www.digium.com/en/"&gt;Digium&lt;/a&gt;, Inc&lt;/b&gt;&lt;span class="Apple-style-span" style="line-height: 15px;"&gt; &lt;/span&gt;who &lt;/span&gt;&lt;/span&gt;managed to conduct a great Open Source Telephony track which was full pretty much all day (see the &lt;a href="http://www.fosdem.org/2011/schedule/track/open_source_telephony_devroom"&gt;schedule&lt;/a&gt;)&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="line-height: 15px;"&gt; where I presented&lt;a href="http://www.slideshare.net/jean.deruelle/mobicents-20-the-java-open-source-communications-platformfosdem-2011-jean-deruelle"&gt; Mobicents 2.0, The Java Open Source Communications Platform&lt;/a&gt; (click on the link for the slides)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;So Thanks to all for a great and fruitful event !&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Jean&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/449022347945889835-8971618716148348430?l=jeanderuelle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/CbL8F3o1X02DFWVaA0sL97NwSpU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CbL8F3o1X02DFWVaA0sL97NwSpU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/CbL8F3o1X02DFWVaA0sL97NwSpU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CbL8F3o1X02DFWVaA0sL97NwSpU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MyNewLifeHome/~4/vGLpMwUSq3I" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jeanderuelle.blogspot.com/feeds/8971618716148348430/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://jeanderuelle.blogspot.com/2011/02/mobicents-first-hand-experience-fosdem.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/8971618716148348430?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/8971618716148348430?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyNewLifeHome/~3/vGLpMwUSq3I/mobicents-first-hand-experience-fosdem.html" title="Mobicents first hand experience FOSDEM, it was awesome !" /><author><name>Jean Deruelle</name><uri>https://profiles.google.com/104586518034799783278</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-07bIFrlcUWw/AAAAAAAAAAI/AAAAAAAAAAA/IMD0m6paSEI/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_Vn7yjSRlJ4U/TVFM4k1dTRI/AAAAAAAAnh8/mQJ6fsfK3uE/s72-c/photo.JPG" height="72" width="72" /><thr:total>3</thr:total><feedburner:origLink>http://jeanderuelle.blogspot.com/2011/02/mobicents-first-hand-experience-fosdem.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkICSX46cSp7ImA9Wx5VFEk.&quot;"><id>tag:blogger.com,1999:blog-449022347945889835.post-1364594007074655802</id><published>2010-10-07T11:42:00.000+02:00</published><updated>2010-10-07T11:42:48.019+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-07T11:42:48.019+02:00</app:edited><title>Mobicents Face to Face Meeting 2010 in Antalya</title><content type="html">Howdy !&lt;br /&gt;
&lt;br /&gt;
Just got back from our Mobicents Team meeting in Antalya - Turkey and it was fantastic !&lt;br /&gt;
First of all, big thanks to &lt;a href="http://emmartins.blogspot.com/2010/10/mobicents-team-meeting-2010-antalya.html"&gt;Eduardo Martins&lt;/a&gt;&amp;nbsp;for organizing the event in this fabulous 5 star resort hotel :&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_Vn7yjSRlJ4U/TK2HEDa_zUI/AAAAAAAAndg/joKXHAT8BzQ/s1600/C:%5Cfakepath%5CIMG_0506.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://2.bp.blogspot.com/_Vn7yjSRlJ4U/TK2HEDa_zUI/AAAAAAAAndg/joKXHAT8BzQ/s400/C:%5Cfakepath%5CIMG_0506.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Cherry on the cake, first time ever we got all team members present (thanks to Tom Wells for doing the 1,5 day &amp;nbsp;on a plane trip back and forth from Brisbane);&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_Vn7yjSRlJ4U/TK2IFWkEdFI/AAAAAAAAndk/7CQ9hDZM-DY/s1600/C:%5Cfakepath%5CIMG_3497.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="266" src="http://1.bp.blogspot.com/_Vn7yjSRlJ4U/TK2IFWkEdFI/AAAAAAAAndk/7CQ9hDZM-DY/s400/C:%5Cfakepath%5CIMG_3497.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
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 !&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_Vn7yjSRlJ4U/TK2SxJhhNiI/AAAAAAAAnd0/tSFYTx1AlW0/s1600/C:%5Cfakepath%5CP2.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="286" src="http://1.bp.blogspot.com/_Vn7yjSRlJ4U/TK2SxJhhNiI/AAAAAAAAnd0/tSFYTx1AlW0/s400/C:%5Cfakepath%5CP2.JPG" width="400" /&gt;&lt;/a&gt;&lt;a href="http://1.bp.blogspot.com/_Vn7yjSRlJ4U/TK2Shuy1jTI/AAAAAAAAndw/RTx_qfrlWMM/s1600/C:%5Cfakepath%5CP1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="285" src="http://1.bp.blogspot.com/_Vn7yjSRlJ4U/TK2Shuy1jTI/AAAAAAAAndw/RTx_qfrlWMM/s400/C:%5Cfakepath%5CP1.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: center;"&gt;Having rafting fun with the whole team of chickens, Jianfei and Raziya&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_Vn7yjSRlJ4U/TK2IZJIPM5I/AAAAAAAAndo/ghDL2aFpAqE/s1600/C:%5Cfakepath%5CIMG_4914.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://2.bp.blogspot.com/_Vn7yjSRlJ4U/TK2IZJIPM5I/AAAAAAAAndo/ghDL2aFpAqE/s400/C:%5Cfakepath%5CIMG_4914.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;Here hard at work on Sip Servlets with Jianfei and Andrew on SIP Servlets&lt;/div&gt;&lt;br /&gt;
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 &lt;a href="http://www.sipforum.org/content/view/69/186/"&gt;SIPit&lt;/a&gt;&amp;nbsp;with their product on top of Mobicents Sip Servlets and that it went pretty well !&lt;br /&gt;
&lt;br /&gt;
Their feedback was so interesting that I completely reworked &lt;a href="http://www.mobicents.org/mss-roadmap.html"&gt;Mobicents Sip Servlets' roadmap&lt;/a&gt; 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 :-)) !&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_Vn7yjSRlJ4U/TK2Mcazh3LI/AAAAAAAAnds/cMfuI2EYcLI/s1600/C:%5Cfakepath%5CIMG_0499.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://4.bp.blogspot.com/_Vn7yjSRlJ4U/TK2Mcazh3LI/AAAAAAAAnds/cMfuI2EYcLI/s400/C:%5Cfakepath%5CIMG_0499.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #242424; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; line-height: 20px;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;I had 2 talks scheduled on Mobicents Sip Servlets :&lt;/div&gt;&lt;div&gt;&lt;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;"&gt;&lt;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;"&gt;First, as I said above on the achievements, challenges and goals/roadmap which you can find&amp;nbsp;&lt;a href="https://docs.google.com/fileview?id=0B3Z3Uhj-XHcDYWUxYmQxYWEtODhiYi00NGNiLTk5NjEtYmZjMjRiZDg0OTU5&amp;amp;hl=en"&gt;here&lt;/a&gt;. 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, ...)&lt;/li&gt;
&lt;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;"&gt;Second, on the&amp;nbsp;&lt;a href="https://docs.google.com/leaf?id=0B3Z3Uhj-XHcDNTAyOTc5MTAtNmUxMi00NDZhLWJlNTMtNjg3NjQ0MjA0NTZi&amp;amp;hl=en"&gt;Sip Servlets review&lt;/a&gt; which was about the architecture of SIP Servlets but also &lt;a href="https://jain-sip.dev.java.net/"&gt;JAIN SIP Stack&lt;/a&gt;, and our &lt;a href="http://jeanderuelle.blogspot.com/2010/08/introducing-jain-sip-ha-or-how-you-can.html"&gt;JAIN SIP HA&lt;/a&gt; layer&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
With a &lt;a href="http://sourceforge.net/projects/mobicents/files/Mobicents%20Sip%20Servlets/"&gt;lots of downloads&lt;/a&gt;, &lt;a href="http://www.mobicents.org/acknowledgements.html"&gt;contributions&lt;/a&gt;&amp;nbsp;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 !&lt;br /&gt;
&lt;br /&gt;
Feel free to ping me if you want to contribute either with great ideas, bug fixing, new examples, fixing documentation, ...&lt;br /&gt;
&lt;br /&gt;
Jean&lt;br /&gt;
&lt;br /&gt;
Much fun down here :&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_Vn7yjSRlJ4U/TK2UuDiFAtI/AAAAAAAAnd4/b5INYvEgC-4/s1600/C:%5Cfakepath%5CIMG_0537.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://4.bp.blogspot.com/_Vn7yjSRlJ4U/TK2UuDiFAtI/AAAAAAAAnd4/b5INYvEgC-4/s400/C:%5Cfakepath%5CIMG_0537.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;Shopping for the family with bartek...&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_Vn7yjSRlJ4U/TK2VCGN9tkI/AAAAAAAAnd8/7VMzZsg3mOk/s1600/C:%5Cfakepath%5CIMG_0522.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://3.bp.blogspot.com/_Vn7yjSRlJ4U/TK2VCGN9tkI/AAAAAAAAnd8/7VMzZsg3mOk/s400/C:%5Cfakepath%5CIMG_0522.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;Sea swimming at noon between the meetings&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_Vn7yjSRlJ4U/TK2VU5wfM5I/AAAAAAAAneA/Mz7iKtYN0gg/s1600/C:%5Cfakepath%5CIMG_0490.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://4.bp.blogspot.com/_Vn7yjSRlJ4U/TK2VU5wfM5I/AAAAAAAAneA/Mz7iKtYN0gg/s400/C:%5Cfakepath%5CIMG_0490.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;Bowling nights&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_Vn7yjSRlJ4U/TK2V_oBcTXI/AAAAAAAAneE/zqxkb13eB1g/s1600/C:%5Cfakepath%5CIMG_2824.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://1.bp.blogspot.com/_Vn7yjSRlJ4U/TK2V_oBcTXI/AAAAAAAAneE/zqxkb13eB1g/s400/C:%5Cfakepath%5CIMG_2824.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;Drinking and chill out time&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/449022347945889835-1364594007074655802?l=jeanderuelle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/5D-CMjDTtob6E_uPJq6y6SAoUc0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5D-CMjDTtob6E_uPJq6y6SAoUc0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/5D-CMjDTtob6E_uPJq6y6SAoUc0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5D-CMjDTtob6E_uPJq6y6SAoUc0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MyNewLifeHome/~4/m-FgLsYY6Gk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jeanderuelle.blogspot.com/feeds/1364594007074655802/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://jeanderuelle.blogspot.com/2010/10/mobicents-face-to-face-meeting-2010-in.html#comment-form" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/1364594007074655802?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/1364594007074655802?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyNewLifeHome/~3/m-FgLsYY6Gk/mobicents-face-to-face-meeting-2010-in.html" title="Mobicents Face to Face Meeting 2010 in Antalya" /><author><name>Jean Deruelle</name><uri>https://profiles.google.com/104586518034799783278</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-07bIFrlcUWw/AAAAAAAAAAI/AAAAAAAAAAA/IMD0m6paSEI/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_Vn7yjSRlJ4U/TK2HEDa_zUI/AAAAAAAAndg/joKXHAT8BzQ/s72-c/C:%5Cfakepath%5CIMG_0506.JPG" height="72" width="72" /><thr:total>5</thr:total><feedburner:origLink>http://jeanderuelle.blogspot.com/2010/10/mobicents-face-to-face-meeting-2010-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D08NRXk5cCp7ImA9Wx5XFEQ.&quot;"><id>tag:blogger.com,1999:blog-449022347945889835.post-4011611964921783123</id><published>2010-09-14T22:23:00.001+02:00</published><updated>2010-09-14T22:24:54.728+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-14T22:24:54.728+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="sip servlets" /><category scheme="http://www.blogger.com/atom/ns#" term="SIP" /><category scheme="http://www.blogger.com/atom/ns#" term="consultants" /><category scheme="http://www.blogger.com/atom/ns#" term="HA" /><category scheme="http://www.blogger.com/atom/ns#" term="mobicents" /><title>Mobicents consultants needed in US and Europe</title><content type="html">Hi all,&lt;br /&gt;&lt;br /&gt;I'm looking for consultants, freelancers in the US or Europe for Mobicents.&lt;br /&gt;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).&lt;br /&gt;JAIN SLEE, Media and Telco protocols knowledge is a plus.&lt;br /&gt;Good English level required and be ready to travel.&lt;br /&gt;&lt;br /&gt;If you want more information or apply ping me on jean.deruelle@gmail.com&lt;br /&gt;&lt;br /&gt;Looking forward to talk to you&lt;br /&gt;Jean&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/449022347945889835-4011611964921783123?l=jeanderuelle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/DY2aLdUFcrZSkG6P25jN7Q7smPY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/DY2aLdUFcrZSkG6P25jN7Q7smPY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/DY2aLdUFcrZSkG6P25jN7Q7smPY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/DY2aLdUFcrZSkG6P25jN7Q7smPY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MyNewLifeHome/~4/i1vLDFkbeD8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jeanderuelle.blogspot.com/feeds/4011611964921783123/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://jeanderuelle.blogspot.com/2010/09/mobicents-consultants-needed-in-us-and.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/4011611964921783123?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/4011611964921783123?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyNewLifeHome/~3/i1vLDFkbeD8/mobicents-consultants-needed-in-us-and.html" title="Mobicents consultants needed in US and Europe" /><author><name>Jean Deruelle</name><uri>https://profiles.google.com/104586518034799783278</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-07bIFrlcUWw/AAAAAAAAAAI/AAAAAAAAAAA/IMD0m6paSEI/s512-c/photo.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://jeanderuelle.blogspot.com/2010/09/mobicents-consultants-needed-in-us-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0AFRnszeip7ImA9Wx5SFEg.&quot;"><id>tag:blogger.com,1999:blog-449022347945889835.post-869844976059241993</id><published>2010-08-10T19:01:00.000+02:00</published><updated>2010-08-10T19:01:57.582+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-10T19:01:57.582+02:00</app:edited><title>Introducing JAIN SIP HA... or how you can replicate and failover your JAIN SIP application with no changes to your code.</title><content type="html">&lt;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;"&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: georgia, serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;&lt;u&gt;&lt;i&gt;History&lt;/i&gt;&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&amp;nbsp;: (you can skip to the next section if you're not very fond of history :-))&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: georgia, serif;"&gt;In&amp;nbsp;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;a href="http://www.mobicents.org/"&gt;Mobicents&lt;/a&gt;, we use the great&amp;nbsp;&lt;a href="https://jain-sip.dev.java.net/"&gt;Open Source NIST SIP Stack&lt;/a&gt;&amp;nbsp;(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&amp;nbsp;&lt;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"&gt;own extension to the NIST SIP Stack allowing HA and failover&lt;/a&gt;&amp;nbsp;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 ?&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: georgia, serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;&lt;u&gt;&lt;i&gt;How does it work ?&lt;/i&gt;&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: georgia, serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;It currently supports only established dialog replication &amp;amp; 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&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: Georgia;"&gt;u&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia;"&gt;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&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia;"&gt;) is updated, it replicates the changes.&amp;nbsp;&lt;/span&gt;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.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;ol style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;li style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: georgia, serif;"&gt;&lt;b&gt;UAS mode&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: georgia, serif;"&gt;So if a node fails after the dialog goes to CONFIRMED, when a subsequent request will hit another node, the&amp;nbsp;&lt;a href="http://www.mobicents.org/incubator/jain-sip-ha/intro.html" id="clhc" title="Mobicents NIST SIP HA Stack"&gt;Mobicents NIST SIP HA Stack&lt;/a&gt;&amp;nbsp;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&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: georgia, serif;"&gt;&lt;b&gt;UAC mode&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: georgia, serif;"&gt;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 ;-)&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: georgia, serif;"&gt;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&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;((ClusteredSipStack)sipProvider.getSipStack()).getDialog(dialogId);&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: georgia, serif;"&gt;the&amp;nbsp;&lt;a href="http://www.mobicents.org/incubator/jain-sip-ha/intro.html" id="qsti" title="Mobicents NIST SIP HA Stack"&gt;Mobicents NIST SIP HA Stack&lt;/a&gt;&amp;nbsp;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&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: georgia, serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Mobicents NIST SIP HA Stack. To access it just use :&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;((MobicentsSipCache)((ClusteredSipStack)sipProvider.getSipStack()).getSipCache()).getMobicentsCache().getJBossCache()&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: georgia, serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Please note that our&amp;nbsp;&lt;a href="http://www.mobicents.org/incubator/jain-sip-ha/intro.html" id="gsev" title="NIST SIP HA layer"&gt;NIST SIP HA layer&lt;/a&gt;&amp;nbsp;is based on JBoss technologies (&lt;a href="http://jboss.org/jbosscache" id="sltk" title="JBoss Cache"&gt;JBoss Cache&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www.jgroups.org/" id="bqev" title="JGroups"&gt;JGroups&lt;/a&gt;&amp;nbsp;and&amp;nbsp;&lt;a href="http://www.mobicents.org/incubator/cluster/intro.html" id="hlgs" title="Mobicents Cluster framework"&gt;Mobicents Cluster framework&lt;/a&gt;) but has an abstract layer so that it can be extended to use other technology such as infinispan, terracota or whatever fits your architecture.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: georgia, serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;No code change in my application ? You gotta be kiddin' me ?&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;br /&gt;
&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: georgia, serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;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.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: georgia, serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;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) :&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;sipFactory.setPathName("org.mobicents.ha");&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: georgia, serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;But this can be avoided if the path name is looked up from the configuration properties passed to the application as said above.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: georgia, serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;So if you want to use it, you basically need to set up 2 configuration properties :&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;#STACK PATH NAME&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;javax.sip.stack.PATH_NAME=org.mobicents.ha&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;# 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&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;org.mobicents.ha.javax.sip.cache.MobicentsSipCache.standalone=true&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/span&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;The rest of the properties are optional :&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;#org.mobicents.ha.javax.sip.cache.MobicentsSipCache.cacheName=standard-session-cache&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;# path to the configuration file of jboss cache, defaults to META-INF/cache-configuration.xml&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;#org.mobicents.ha.javax.sip.JBOSS_CACHE_CONFIG_PATH=META-INF/cache-configuration.xml&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;# Replication strategy one of ConfirmedDialog or ConfirmedDialogNoApplicationData, defaults to the latter&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;#org.mobicents.ha.javax.sip.REPLICATION_STRATEGY=ConfirmedDialogNoApplicationData&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;#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&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;#org.mobicents.ha.javax.sip.CACHE_CLASS_NAME=org.mobicents.ha.javax.sip.cache.ManagedMobicentsSipCache&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: georgia, serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;The libraries needed to be added to your classpath are the following :&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: georgia, serif;"&gt;&lt;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"&gt;http://repository.jboss.com/maven2/javax/transaction/jta/1.1/jta-1.1.jar&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: georgia, serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;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"&gt;http://repository.jboss.com/maven2/jboss/jboss-serialization/1.0.3.GA/jboss-serialization-1.0.3.GA.jar&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: georgia, serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;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"&gt;http://repository.jboss.com/maven2/jgroups/jgroups/2.6.7.GA/jgroups-2.6.7.GA.jar&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: georgia, serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;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"&gt;http://repository.jboss.com/maven2/org/jboss/cache/jbosscache-core/3.1.0.GA/jbosscache-core-3.1.0.GA.jar&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: georgia, serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;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"&gt;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&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: georgia, serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;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"&gt;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&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: georgia, serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;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"&gt;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&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: georgia, serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;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"&gt;http://repository.jboss.com/maven2/org/jboss/javaee/jboss-transaction-api/1.0.1.GA/jboss-transaction-api-1.0.1.GA.jar&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: georgia, serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;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"&gt;http://repository.jboss.com/maven2/org/jboss/jboss-common-core/2.2.10.GA/jboss-common-core-2.2.10.GA.jar&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: georgia, serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;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"&gt;http://repository.jboss.com/maven2/org/jboss/logging/jboss-logging-spi/2.0.5.GA/jboss-logging-spi-2.0.5.GA.jar&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: georgia, serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;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"&gt;http://repository.jboss.com/maven2/org/jboss/metadata/jboss-metadata/1.0.0.CR5/jboss-metadata-1.0.0.CR5.jar&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: georgia, serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;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"&gt;https://repository.jboss.org/nexus/content/groups/public/org/mobicents/cluster/cache/1.6/cache-1.6.jar&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: georgia, serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;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"&gt;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&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: georgia, serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;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"&gt;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&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia;"&gt;or the following dependencies if you use Maven&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;&amp;lt;dependency&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;&amp;lt;groupId&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"&gt;&amp;gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;org.mobicents.ha.javax.sip&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"&gt;&amp;lt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"&gt;/groupId&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;&amp;lt;artifactId&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"&gt;&amp;gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;mobicents-jain-sip-ha-core&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"&gt;&amp;lt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"&gt;/artifactId&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;&amp;lt;version&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"&gt;&amp;gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;0.11&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"&gt;&amp;lt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"&gt;/version&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;&amp;lt;/dependency&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;&amp;lt;dependency&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;&amp;lt;groupId&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"&gt;&amp;gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"&gt;org.mobicents.ha.javax.sip&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"&gt;&amp;lt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"&gt;/groupId&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;&amp;lt;artifactId&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"&gt;&amp;gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;mobicents-jain-sip-jboss5&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"&gt;&amp;lt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;/artifactId&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;&amp;lt;version&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"&gt;&amp;gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;0.11&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"&gt;&amp;lt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;/version&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;&amp;lt;/dependency&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;&amp;lt;dependency&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;&amp;lt;groupId&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"&gt;&amp;gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;org.mobicents.cluster&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"&gt;&amp;lt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;/groupId&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;&amp;lt;artifactId&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"&gt;&amp;gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;cache&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"&gt;&amp;lt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;/artifactId&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;&amp;lt;version&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"&gt;&amp;gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;1.6&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"&gt;&amp;lt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;/version&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;&amp;lt;/dependency&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: medium;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia;"&gt;There is quite a few jboss libraries that shouldn't be needed in reality, this is because&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: georgia, serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;mobicents-jain-sip-jboss5 have an option to integrate directly with the JBoss AS5 Cache Manager.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: georgia, serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;You will need to include the jboss cache configuration file&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: georgia, serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;cache-configuration.xml&amp;nbsp;&lt;/span&gt;&lt;/span&gt;in a META-INF folder as well. And that's it !&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: georgia, serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;&lt;u&gt;&lt;i&gt;Where can I find an example to play with it that I check it out and start to play with it?&lt;/i&gt;&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia;"&gt;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&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: georgia;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Dialog&amp;nbsp;&lt;/span&gt;&lt;/span&gt;failover.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;You have 2 choices here :&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;It's available directly on github at&amp;nbsp;&lt;a href="http://github.com/deruelle/nist-sip-ha-test"&gt;http://github.com/deruelle/nist-sip-ha-test&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia;"&gt;or as a packaged download here&amp;nbsp;&lt;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"&gt;http://mobicents.googlecode.com/files/nist-sip-ha-test.zip&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia;"&gt;To run it just do mvn test and this will be it.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia;"&gt;This test aims to test Mobicents NIST SIP HA Dialog failover recovery in UAS mode.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia;"&gt;&amp;nbsp;* 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)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia;"&gt;&amp;nbsp;* 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&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia;"&gt;&amp;nbsp;* The dialog state is updated to CONFIRMED and triggers the replication to JBoss Cache&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia;"&gt;&amp;nbsp;* on ACK, the first UAS node stops itself.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia;"&gt;&amp;nbsp;* The UAC sends a BYE that the stateless proxy forwards to the second UAS node (shootme_&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia;"&gt;recovery)&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia;"&gt;&amp;nbsp;on port 5080&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia;"&gt;&amp;nbsp;*&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia;"&gt;Shootme recovery on BYE gets the dialog from the cache and recreates the dialog locally based&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia;"&gt;&amp;nbsp;* Shootme recovery handles the BYE and sends OK to BYE without any issue.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: georgia, serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;&lt;u&gt;&lt;i&gt;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 ?&lt;/i&gt;&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia;"&gt;That's easy, Mobicents provides such a&amp;nbsp;&lt;a href="http://www.mobicents.org/incubator/sip-balancer/intro.html" id="q9df" title="SIP Load Balancer"&gt;SIP Load Balancer&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia;"&gt;The binary for it is available here&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia;"&gt;&lt;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"&gt;https://repository.jboss.org/nexus/content/groups/public/org/mobicents/tools/sip-balancer-jar/1.0.1/sip-balancer-jar-1.0.1.jar&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: georgia;"&gt;and&amp;nbsp;&lt;a href="http://www.mobicents.org/user_guides/sip-balancer/index.html" id="dcv8" title="read the user guide"&gt;read the user guide&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
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 :&lt;/div&gt;&lt;br /&gt;
&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;# implementation used to ping the Mobicents SIP Load Balancer&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;org.mobicents.ha.javax.sip.LoadBalancerHeartBeatingServiceClassName=org.mobicents.ha.javax.sip.LoadBalancerHeartBeatingServiceImpl&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;# the IP Address of the Mobicents SIP Load Balancer to send keepalives to&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-top: 0px;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;org.mobicents.ha.javax.sip.BALANCERS=127.0.0.1&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/449022347945889835-869844976059241993?l=jeanderuelle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/AFyb114uoqmkRCDUZYEFncIMGFU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AFyb114uoqmkRCDUZYEFncIMGFU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/AFyb114uoqmkRCDUZYEFncIMGFU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AFyb114uoqmkRCDUZYEFncIMGFU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MyNewLifeHome/~4/xtuRLe3jYlA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jeanderuelle.blogspot.com/feeds/869844976059241993/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://jeanderuelle.blogspot.com/2010/08/introducing-jain-sip-ha-or-how-you-can.html#comment-form" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/869844976059241993?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/869844976059241993?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyNewLifeHome/~3/xtuRLe3jYlA/introducing-jain-sip-ha-or-how-you-can.html" title="Introducing JAIN SIP HA... or how you can replicate and failover your JAIN SIP application with no changes to your code." /><author><name>Jean Deruelle</name><uri>https://profiles.google.com/104586518034799783278</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-07bIFrlcUWw/AAAAAAAAAAI/AAAAAAAAAAA/IMD0m6paSEI/s512-c/photo.jpg" /></author><thr:total>5</thr:total><feedburner:origLink>http://jeanderuelle.blogspot.com/2010/08/introducing-jain-sip-ha-or-how-you-can.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0EDRnk5fip7ImA9WxFUGEk.&quot;"><id>tag:blogger.com,1999:blog-449022347945889835.post-881207301115801345</id><published>2010-06-29T21:18:00.006+02:00</published><updated>2010-06-29T22:01:17.726+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-29T22:01:17.726+02:00</app:edited><title>Mobicents meets the Community at JUDCon and JBoss World !</title><content type="html">Hi all,&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I just got back from Boston where I attended &lt;a href="http://www.jboss.org/events/JUDCon.html"&gt;JUDCon, the free JBoss Users &amp;amp; Developers Conference&lt;/a&gt; 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 &lt;a href="http://pilhuhn.blogspot.com/2009/09/jopr-talking.html"&gt;Jopr is talking&lt;/a&gt; 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&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;a href="https://www.jboss.org/dms/judcon/presentations/JUDCon2010_MobicentsReloaded.pdf"&gt;Here are the slides of the pres&lt;/a&gt;&lt;/b&gt;&lt;b&gt;&lt;a href="https://www.jboss.org/dms/judcon/presentations/JUDCon2010_MobicentsReloaded.pdf"&gt;entation&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The presentation was pretty well received and there was a long Q&amp;amp;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 !&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I will try to record the presentation and upload it for those of you who couldn't attend.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;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.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Later that day happened the JUDCon Hackfest where I got a chance to hack on a &lt;a href="https://jira.jboss.org/browse/ARQ-189"&gt;Tomcat container for Arquillian&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://1.bp.blogspot.com/_Vn7yjSRlJ4U/TCpMAQj_LlI/AAAAAAAAm-M/1tjvOUDC3qA/s400/IMG_4427.JPG" style="cursor:pointer; cursor:hand;width: 400px; height: 267px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5488282663233990226" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;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 !&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Next was &lt;a href="http://www.redhat.com/promo/summit/2010/"&gt;JBoss World&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There I got to meet multiple &lt;a href="http://www.redhat.com/solutions/telco/communications_platform/"&gt;JBoss Communications Platform (JBCP&lt;/a&gt; - which is the product derived from Mobicents) and Mobicents users.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Vn7yjSRlJ4U/TCpOVbn9TDI/AAAAAAAAm-U/BwbLXO8f-kE/s1600/P1020117.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_Vn7yjSRlJ4U/TCpOVbn9TDI/AAAAAAAAm-U/BwbLXO8f-kE/s400/P1020117.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5488285226003942450" /&gt;&lt;/a&gt; Notably OKI Japan with whom we had interesting talks and led to&lt;a href="http://mobicents-sip-servlets.blogspot.com/2010/06/oki-contributes-their-ssf-framework-to.html"&gt; the announcement of their Spring Sip Servlets Framework - SSF contribution to Mobicents and their official joining as a Mobicents contributor&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I had interesting talks with our friends at &lt;a href="http://www.angel.com/"&gt;Angel.com&lt;/a&gt; and got to see them at the great JBoss party &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Vn7yjSRlJ4U/TCpQRjToeII/AAAAAAAAm-c/-1W6hfNSwvc/s1600/IMG_4244.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_Vn7yjSRlJ4U/TCpQRjToeII/AAAAAAAAm-c/-1W6hfNSwvc/s400/IMG_4244.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5488287358369953922" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;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.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;See ya all next year !&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/449022347945889835-881207301115801345?l=jeanderuelle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/xZFOaN9ovO23SLh5Wn_gAU5rJds/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xZFOaN9ovO23SLh5Wn_gAU5rJds/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/xZFOaN9ovO23SLh5Wn_gAU5rJds/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xZFOaN9ovO23SLh5Wn_gAU5rJds/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MyNewLifeHome/~4/n66k64JuQqw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jeanderuelle.blogspot.com/feeds/881207301115801345/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://jeanderuelle.blogspot.com/2010/06/mobicents-meets-community-at-judcon-and.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/881207301115801345?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/881207301115801345?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyNewLifeHome/~3/n66k64JuQqw/mobicents-meets-community-at-judcon-and.html" title="Mobicents meets the Community at JUDCon and JBoss World !" /><author><name>Jean Deruelle</name><uri>https://profiles.google.com/104586518034799783278</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-07bIFrlcUWw/AAAAAAAAAAI/AAAAAAAAAAA/IMD0m6paSEI/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_Vn7yjSRlJ4U/TCpMAQj_LlI/AAAAAAAAm-M/1tjvOUDC3qA/s72-c/IMG_4427.JPG" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://jeanderuelle.blogspot.com/2010/06/mobicents-meets-community-at-judcon-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkINQH0-eSp7ImA9WxFTEUw.&quot;"><id>tag:blogger.com,1999:blog-449022347945889835.post-4631543968102938199</id><published>2010-04-01T08:55:00.009+02:00</published><updated>2010-04-01T10:29:51.351+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-01T10:29:51.351+02:00</app:edited><title>Mobicents to enter Brain to Brain Communications Market</title><content type="html">Hi all,&lt;br /&gt;&lt;br /&gt;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. &lt;br /&gt;&lt;br /&gt;Based on some research done throughout the world and recently some breakthrough on &lt;a href="http://www.sciencedaily.com/releases/2009/10/091006102637.htm"&gt;Brain to Brain Communications&lt;/a&gt;, 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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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... &lt;br /&gt;&lt;br /&gt;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...&lt;br /&gt;&lt;br /&gt;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... &lt;br /&gt;Where games would be a real brain control world experience, not motion controlled anymore...&lt;br /&gt;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&lt;br /&gt;&lt;br /&gt;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...&lt;br /&gt;&lt;br /&gt;And again this technology will be open source for your greatest pleasure&lt;br /&gt;&lt;br /&gt;As they say the brain is the limit...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/449022347945889835-4631543968102938199?l=jeanderuelle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/0ITYrQM6T0h_0pS0rFCF3IRrF2c/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0ITYrQM6T0h_0pS0rFCF3IRrF2c/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/0ITYrQM6T0h_0pS0rFCF3IRrF2c/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0ITYrQM6T0h_0pS0rFCF3IRrF2c/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MyNewLifeHome/~4/RPUIb0gTpDc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jeanderuelle.blogspot.com/feeds/4631543968102938199/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://jeanderuelle.blogspot.com/2010/04/mobicents-to-enter-brain-to-brain.html#comment-form" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/4631543968102938199?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/4631543968102938199?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyNewLifeHome/~3/RPUIb0gTpDc/mobicents-to-enter-brain-to-brain.html" title="Mobicents to enter Brain to Brain Communications Market" /><author><name>Jean Deruelle</name><uri>https://profiles.google.com/104586518034799783278</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-07bIFrlcUWw/AAAAAAAAAAI/AAAAAAAAAAA/IMD0m6paSEI/s512-c/photo.jpg" /></author><thr:total>5</thr:total><feedburner:origLink>http://jeanderuelle.blogspot.com/2010/04/mobicents-to-enter-brain-to-brain.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEcNRnY8fip7ImA9WxFQFkg.&quot;"><id>tag:blogger.com,1999:blog-449022347945889835.post-6939637522681975297</id><published>2010-03-09T11:09:00.006+01:00</published><updated>2010-05-12T11:21:37.876+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-12T11:21:37.876+02:00</app:edited><title>Installing SIPp 3.1 on Ubuntu 9.04</title><content type="html">Open a command line terminal&lt;br /&gt;&lt;pre class="console"&gt;&lt;br /&gt;$ sudo apt-get install ncurses-dev&lt;br /&gt;$ sudo apt-get install build-essential&lt;br /&gt;&lt;br /&gt;#Grab sipp 3.1 from sourceforge.net &lt;br /&gt;$ wget -m -nd http://downloads.sourceforge.net/project/sipp/sipp/3.1/sipp.3.1.src.tar.gz&lt;br /&gt;&lt;br /&gt;#extract it locally&lt;br /&gt;$ tar -xzf sipp.3.1.src.tar.gz&lt;br /&gt;$ cd sipp.svn&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Open ./sipp.svn/scenario.hpp and add this line&lt;br /&gt;&lt;br /&gt;#include &amp;lt;limits.h&amp;gt;&lt;br /&gt;&lt;br /&gt;after&lt;br /&gt;&lt;br /&gt;#include &amp;lt;sys/socket.h&amp;gt;&lt;br /&gt;&lt;br /&gt;save the file, and in the terminal do &lt;br /&gt;&lt;pre class="console"&gt;&lt;br /&gt;$make&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;You're done ;-)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;UPDATE&lt;/span&gt; : 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.04&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/449022347945889835-6939637522681975297?l=jeanderuelle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/QI769JQgLpmhtTqYAQfHnZLj1bM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QI769JQgLpmhtTqYAQfHnZLj1bM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/QI769JQgLpmhtTqYAQfHnZLj1bM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QI769JQgLpmhtTqYAQfHnZLj1bM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MyNewLifeHome/~4/jYntHU-1WaU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jeanderuelle.blogspot.com/feeds/6939637522681975297/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://jeanderuelle.blogspot.com/2010/03/installing-sipp-31-on-ubuntu-904.html#comment-form" title="21 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/6939637522681975297?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/6939637522681975297?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyNewLifeHome/~3/jYntHU-1WaU/installing-sipp-31-on-ubuntu-904.html" title="Installing SIPp 3.1 on Ubuntu 9.04" /><author><name>Jean Deruelle</name><uri>https://profiles.google.com/104586518034799783278</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-07bIFrlcUWw/AAAAAAAAAAI/AAAAAAAAAAA/IMD0m6paSEI/s512-c/photo.jpg" /></author><thr:total>21</thr:total><feedburner:origLink>http://jeanderuelle.blogspot.com/2010/03/installing-sipp-31-on-ubuntu-904.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUMCSHczeip7ImA9WxBRFko.&quot;"><id>tag:blogger.com,1999:blog-449022347945889835.post-106013047061554448</id><published>2010-01-05T08:16:00.003+01:00</published><updated>2010-01-05T08:44:29.982+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-05T08:44:29.982+01:00</app:edited><title>New JBCP version is out : Happy New Year !!</title><content type="html">&lt;div&gt;Happy new year to all!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;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 &lt;a href="http://www.jboss.com/products/platforms/communications/" style="color: rgb(102, 102, 153); "&gt;JBoss Communications Platform&lt;/a&gt; is now available in its 1.2.2 version on the&lt;a href="https://www.redhat.com/wapps/sso/jboss/login.html?redirect=http://support.redhat.com/jbossnetwork"&gt; JBoss Customer Support Portal&lt;/a&gt;, the release notes are &lt;a href="http://www.redhat.com/docs/en-US/JBoss_Communications_Platform/index.html"&gt;here&lt;/a&gt; so go check it out !&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;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&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/449022347945889835-106013047061554448?l=jeanderuelle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/WFbexxBIo91pUP0CTCNZPIYk894/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WFbexxBIo91pUP0CTCNZPIYk894/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/WFbexxBIo91pUP0CTCNZPIYk894/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WFbexxBIo91pUP0CTCNZPIYk894/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MyNewLifeHome/~4/cfmvvsdwgFc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jeanderuelle.blogspot.com/feeds/106013047061554448/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://jeanderuelle.blogspot.com/2010/01/new-jbcp-version-is-out-happy-new-year.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/106013047061554448?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/106013047061554448?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyNewLifeHome/~3/cfmvvsdwgFc/new-jbcp-version-is-out-happy-new-year.html" title="New JBCP version is out : Happy New Year !!" /><author><name>Jean Deruelle</name><uri>https://profiles.google.com/104586518034799783278</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-07bIFrlcUWw/AAAAAAAAAAI/AAAAAAAAAAA/IMD0m6paSEI/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://jeanderuelle.blogspot.com/2010/01/new-jbcp-version-is-out-happy-new-year.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0IDQHg_cSp7ImA9WxNQEU0.&quot;"><id>tag:blogger.com,1999:blog-449022347945889835.post-4452710684350248362</id><published>2009-09-16T11:37:00.006+02:00</published><updated>2009-09-16T14:52:51.649+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-16T14:52:51.649+02:00</app:edited><title>Mobicents ALL 1.2.1.GA has been released !!</title><content type="html">&lt;blockquote&gt;&lt;/blockquote&gt;It's with intense pleasure that I forward here the &lt;a href="http://groups.google.com/group/mobicents-public/browse_frm/thread/8c5b5c56a9901f9d"&gt;news of our new aggregated release&lt;/a&gt; : Mobicents ALL 1.2.1.GA !&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;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...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Miscellaneous examples are :&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Location based services : when ever friends, family is in 2kms range from you, your phone beeps&lt;/li&gt;&lt;li&gt;SMS based services : Vote for your Favorite Reality TV Show&lt;/li&gt;&lt;li&gt;IVR (&lt;a href="http://en.wikipedia.org/wiki/Interactive_voice_response"&gt;Interactive Voice Response&lt;/a&gt;) Based Service : Check your bank account balance through the phone&lt;/li&gt;&lt;li&gt;Ring Back Tone&lt;/li&gt;&lt;li&gt;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)&lt;/li&gt;&lt;li&gt;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 &lt;/li&gt;&lt;li&gt;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)&lt;/li&gt;&lt;li&gt;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.&lt;/li&gt;&lt;li&gt;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&lt;/li&gt;&lt;li&gt;Customer Relationship Management : Ability to automatically answer status for support cases or record new leads, integration with leading online CRM providers &lt;/li&gt;&lt;li&gt;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 : &lt;a href="http://www.mobicents.org/mss-ipbx.html"&gt;Mobicents IPBX&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-large;"&gt;&lt;b&gt;The Sky is the Limit !&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;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 :&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://www.mobicents.org/products_sip_servlets.html"&gt;Sip Servlets Container 1.0.GA&lt;/a&gt;&lt;/b&gt; : Aimed at building VoIP (SIP + Media interaction) and Converged Applications (SIP + HTTP/Java EE + Media interaction) with &lt;a href="http://www.mobicents.org/user_guides/sip_servlets/index.html#d0e5172"&gt;full HA capabilities&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://www.mobicents.org/mms/mms-main.html"&gt;Media Server 1.0.3.GA&lt;/a&gt;&lt;/b&gt; : 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&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://www.mobicents.org/products_jain_slee.html"&gt;JAIN SLEE Container 1.2.6.GA&lt;/a&gt;&lt;/b&gt; : Aimed at Telco and supporting multi protocols architectures in a standard and highly efficient way. Comes with following Resource Adaptors : &lt;i&gt;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&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://groups.google.com/group/mobicents-public/web/mobicents-diameter"&gt;Mobicents Diameter 1.0.1.GA&lt;/a&gt;&lt;/b&gt; : Provides Authentication, Authorization and Accounting capabilities&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://hudson.jboss.org/hudson/job/MobicentsBooks/lastSuccessfulBuild/artifact/sip-presence/index.html"&gt;Mobicents SIP Presence Service 1.0.0.BETA5&lt;/a&gt;&lt;/b&gt; : The Mobicents SIP Presence Service provides presence functionalities to SIP-based networks&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://www.mobicents.org/user_guides/sip_servlets/index.html#sslb-MSS_Load_Balancer"&gt;Mobicents SIP Load Balancer 1.0.0.BETA7&lt;/a&gt;&lt;/b&gt; : provides Load Balancing and failover SIP capabilites for Mobicents servers in a clustered environment&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;If you want to get started, &lt;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"&gt;download the binary form SourceForge&lt;/a&gt; and &lt;a href="http://groups.google.com/group/mobicents-public/browse_thread/thread/8c5b5c56a9901f9d"&gt;read the release notes&lt;/a&gt;. We are waiting for your feedback on &lt;a href="http://groups.google.com/group/mobicents-public"&gt;mobicents-public google group&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Have fun !&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/449022347945889835-4452710684350248362?l=jeanderuelle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/6mY1vQy5JqHtexW9oup-1pxGIRg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6mY1vQy5JqHtexW9oup-1pxGIRg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/6mY1vQy5JqHtexW9oup-1pxGIRg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6mY1vQy5JqHtexW9oup-1pxGIRg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MyNewLifeHome/~4/L0s66afNURk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jeanderuelle.blogspot.com/feeds/4452710684350248362/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://jeanderuelle.blogspot.com/2009/09/mobicents-all-121ga-has-been-released.html#comment-form" title="6 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/4452710684350248362?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/4452710684350248362?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyNewLifeHome/~3/L0s66afNURk/mobicents-all-121ga-has-been-released.html" title="Mobicents ALL 1.2.1.GA has been released !!" /><author><name>Jean Deruelle</name><uri>https://profiles.google.com/104586518034799783278</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-07bIFrlcUWw/AAAAAAAAAAI/AAAAAAAAAAA/IMD0m6paSEI/s512-c/photo.jpg" /></author><thr:total>6</thr:total><feedburner:origLink>http://jeanderuelle.blogspot.com/2009/09/mobicents-all-121ga-has-been-released.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak8MSHk6fSp7ImA9WxNRFEQ.&quot;"><id>tag:blogger.com,1999:blog-449022347945889835.post-1319157468744814312</id><published>2009-09-08T17:24:00.016+02:00</published><updated>2009-09-09T14:21:29.715+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-09T14:21:29.715+02:00</app:edited><title>Mobicents/JBCP &amp; JBoss World 2009</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Vn7yjSRlJ4U/SqZ6-YatZ-I/AAAAAAAAD0k/MHDnVt9Tm3E/s1600-h/IMG_0623.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_Vn7yjSRlJ4U/SqZ6-YatZ-I/AAAAAAAAD0k/MHDnVt9Tm3E/s400/IMG_0623.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5379122017065592802" /&gt;&lt;/a&gt;&lt;br /&gt;I'm back from &lt;a href="http://www.jbossworld.com/"&gt;JBoss World 2009&lt;/a&gt; that took place in Chicago together with the RH summit and the event was again awesome this year !&lt;br /&gt;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, ...&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Vn7yjSRlJ4U/SqaARxbxuGI/AAAAAAAAD00/Eh8f6vy1UEc/s1600-h/IMG_0724.JPG"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_Vn7yjSRlJ4U/SqaARxbxuGI/AAAAAAAAD00/Eh8f6vy1UEc/s400/IMG_0724.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5379127847756609634" /&gt;&lt;/a&gt;Tuesday was kind of pre-Jboss World day, it was mainly registration and partner pavillion opening. Me &amp;amp; Vladimir were tending the booth with other JBoss people and checking the partners out.&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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 :-)&lt;br /&gt;&lt;br /&gt;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 &lt;a href="http://www.jboss.org/jopr"&gt;Jopr&lt;/a&gt; (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 :-)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Vn7yjSRlJ4U/SqZ_UVoZMtI/AAAAAAAAD0s/xCzS_Vt8rR4/s1600-h/IMG_0735.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_Vn7yjSRlJ4U/SqZ_UVoZMtI/AAAAAAAAD0s/xCzS_Vt8rR4/s400/IMG_0735.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5379126792321315538" /&gt;&lt;/a&gt;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&lt;br /&gt;Unfortunately, we were competing against another BOF about Seam &amp;amp; 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 :-)&lt;br /&gt;&lt;br /&gt;Thursday, I went to see the new JBoss project &lt;a href="http://www.jboss.org/gatein"&gt;GateIn&lt;/a&gt; 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.&lt;br /&gt;&lt;br /&gt;In the afternoon, I went to see the Web Beans and HornetQ (JBoss Messaging renamed) presentations which were both of great quality. &lt;div&gt;&lt;br /&gt;&lt;br /&gt;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 :-)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Vn7yjSRlJ4U/SqanELml6kI/AAAAAAAAD08/8E00iZ3_yXM/s1600-h/IMG_0759.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 300px; height: 400px;" src="http://2.bp.blogspot.com/_Vn7yjSRlJ4U/SqanELml6kI/AAAAAAAAD08/8E00iZ3_yXM/s400/IMG_0759.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5379170495216609858" /&gt;&lt;/a&gt;The last day was actually half a day and I attended to Bob's Mc Wirther presentation on &lt;a href="http://torquebox.org/"&gt;TorqueBox&lt;/a&gt; which was the best one I attended too.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;I uploaded my &lt;a href="http://mobicents.googlecode.com/files/JBCP%20-%20Jean%20Deruelle%20-%20JBoss%20World%202009%20.pdf"&gt;presentation here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;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 :-)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Update&lt;/b&gt; : For more pictures from chicago, see here  : &lt;a href="http://picasaweb.google.com/jean.deruelle/Chicago2009#"&gt;http://picasaweb.google.com/jean.deruelle/Chicago2009#&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Update 2&lt;/b&gt; : &lt;a href="http://www.redhat.com/promo/summit/2009/downloads/#jbw"&gt;List of all JBoss World presentations&lt;/a&gt; and &lt;a href="http://bit.ly/3v9aY3"&gt;videos&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/449022347945889835-1319157468744814312?l=jeanderuelle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/qCtBPxQSft2tmdyG3H7h2s3FxOQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qCtBPxQSft2tmdyG3H7h2s3FxOQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/qCtBPxQSft2tmdyG3H7h2s3FxOQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qCtBPxQSft2tmdyG3H7h2s3FxOQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MyNewLifeHome/~4/A_m3WOR65xE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jeanderuelle.blogspot.com/feeds/1319157468744814312/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://jeanderuelle.blogspot.com/2009/09/mobicentsjbcp-jboss-world-2009.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/1319157468744814312?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/1319157468744814312?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyNewLifeHome/~3/A_m3WOR65xE/mobicentsjbcp-jboss-world-2009.html" title="Mobicents/JBCP &amp; JBoss World 2009" /><author><name>Jean Deruelle</name><uri>https://profiles.google.com/104586518034799783278</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-07bIFrlcUWw/AAAAAAAAAAI/AAAAAAAAAAA/IMD0m6paSEI/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_Vn7yjSRlJ4U/SqZ6-YatZ-I/AAAAAAAAD0k/MHDnVt9Tm3E/s72-c/IMG_0623.JPG" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://jeanderuelle.blogspot.com/2009/09/mobicentsjbcp-jboss-world-2009.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0IEQHo7cCp7ImA9WxNSGUg.&quot;"><id>tag:blogger.com,1999:blog-449022347945889835.post-4410357930921987142</id><published>2009-09-03T06:47:00.006+02:00</published><updated>2009-09-03T07:25:01.408+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-03T07:25:01.408+02:00</app:edited><title>Mobicents 2009 Team Meeting in Brno</title><content type="html">Hello fellas,&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;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. &lt;/div&gt;&lt;div&gt;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 :&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Vn7yjSRlJ4U/Sp9S_qzJtoI/AAAAAAAAD0c/XaIMqlZz56w/s1600-h/img_1260.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_Vn7yjSRlJ4U/Sp9S_qzJtoI/AAAAAAAAD0c/XaIMqlZz56w/s400/img_1260.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5377107733877732994" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Mobicents Sip Servlets, Media Server, Diameter reaching 1.0 GA&lt;/li&gt;&lt;li&gt;JAIN SLEE 1.1 Certification&lt;/li&gt;&lt;li&gt;Frameworks : &lt;a href="http://groups.google.com/group/mobicents-public/web/seam-telco-framework-for-sip-servlets"&gt;Seam Telco Framework&lt;/a&gt;, JRuby Integration with &lt;a href="http://torquebox.org/"&gt;TorqueBox&lt;/a&gt;, &lt;a href="http://echarts.org/ECharts-for-SIP-Servlets/What-is-ECharts-for-SIP-Servlets.html"&gt;ECharts For Sip Servlets&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Eclipse tooling with Sip Servlets and JAIN SLEE Plugins&lt;/li&gt;&lt;li&gt;Sip Presence Service&lt;/li&gt;&lt;li&gt;&lt;a href="http://groups.google.com/group/imsoss"&gt;Initative by the Community to build IMS components on top of Mobicents&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;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.&lt;/div&gt;&lt;div&gt;All of this to say "&lt;b&gt;Thank You&lt;/b&gt;" to our beloved Mobicents Community.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I had 2 talks scheduled on Mobicents Sip Servlets :&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;First, as I said above on the achievements, challenges and goals/roadmap which you can find &lt;a href="http://groups.google.com/group/mobicents-public/web/Mobicents%20Sip%20Servlets%20Brno%202009.pdf"&gt;here&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Second, on the &lt;a href="http://mobicents-public.googlegroups.com/web/HA+-+Load+Balancers+Brno+2009.pdf"&gt;HA plans and challenges&lt;/a&gt; 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.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;As we move forward, we plan to continue investing and contributing to the &lt;a href="https://jain-sip.dev.java.net/"&gt;NIST SIP Stack Reference Implementation of JAIN SIP Specification&lt;/a&gt; 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.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;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&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;so here is a part of the Mobicents team after work waiting to get into the action to go clubbing :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Vn7yjSRlJ4U/Sp9QwPfSpAI/AAAAAAAADz8/dZIqoGEGu28/s1600-h/IMG_0561.JPG"&gt;&lt;/a&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Vn7yjSRlJ4U/Sp9QwPfSpAI/AAAAAAAADz8/dZIqoGEGu28/s1600-h/IMG_0561.JPG"&gt;&lt;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="http://4.bp.blogspot.com/_Vn7yjSRlJ4U/Sp9QwPfSpAI/AAAAAAAADz8/dZIqoGEGu28/s400/IMG_0561.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5377105269825381378" /&gt;&lt;/a&gt;Silas and Eduardo showing the Mobicents Team winning the Beer Contest : &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Vn7yjSRlJ4U/Sp9RXBKFJrI/AAAAAAAAD0E/xV6rR_btgdM/s1600-h/img_1531.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_Vn7yjSRlJ4U/Sp9RXBKFJrI/AAAAAAAAD0E/xV6rR_btgdM/s400/img_1531.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5377105935993218738" /&gt;&lt;/a&gt;&lt;div&gt;The Mobicents Team being teached by the local czech girls where the good places are in town&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Vn7yjSRlJ4U/Sp9R_CxvYTI/AAAAAAAAD0M/Qv4E3nj_3-E/s1600-h/IMG_2397.JPG"&gt;&lt;/a&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Vn7yjSRlJ4U/Sp9R_CxvYTI/AAAAAAAAD0M/Qv4E3nj_3-E/s1600-h/IMG_2397.JPG"&gt;&lt;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="http://1.bp.blogspot.com/_Vn7yjSRlJ4U/Sp9R_CxvYTI/AAAAAAAAD0M/Qv4E3nj_3-E/s400/IMG_2397.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5377106623622766898" /&gt;&lt;/a&gt;So Cheers guys !&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Vn7yjSRlJ4U/Sp9Ssrheb1I/AAAAAAAAD0U/ipFlxK15Ji4/s1600-h/img_1335.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_Vn7yjSRlJ4U/Sp9Ssrheb1I/AAAAAAAAD0U/ipFlxK15Ji4/s400/img_1335.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5377107407654514514" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/449022347945889835-4410357930921987142?l=jeanderuelle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/rCsDGYm2Thqr8mV6FxYJqhds-Fs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/rCsDGYm2Thqr8mV6FxYJqhds-Fs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/rCsDGYm2Thqr8mV6FxYJqhds-Fs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/rCsDGYm2Thqr8mV6FxYJqhds-Fs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MyNewLifeHome/~4/OcwAklx2iH0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jeanderuelle.blogspot.com/feeds/4410357930921987142/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://jeanderuelle.blogspot.com/2009/09/mobicents-2009-team-meeting-in-brno.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/4410357930921987142?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/4410357930921987142?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyNewLifeHome/~3/OcwAklx2iH0/mobicents-2009-team-meeting-in-brno.html" title="Mobicents 2009 Team Meeting in Brno" /><author><name>Jean Deruelle</name><uri>https://profiles.google.com/104586518034799783278</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-07bIFrlcUWw/AAAAAAAAAAI/AAAAAAAAAAA/IMD0m6paSEI/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_Vn7yjSRlJ4U/Sp9S_qzJtoI/AAAAAAAAD0c/XaIMqlZz56w/s72-c/img_1260.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://jeanderuelle.blogspot.com/2009/09/mobicents-2009-team-meeting-in-brno.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak8FR348eCp7ImA9WxJbEUs.&quot;"><id>tag:blogger.com,1999:blog-449022347945889835.post-6108370542765050759</id><published>2009-07-21T10:18:00.005+02:00</published><updated>2009-07-21T11:33:36.070+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-21T11:33:36.070+02:00</app:edited><title>Enable Flash on Google Chrome Linux Dev Build</title><content type="html">Hey,&lt;br /&gt;&lt;br /&gt;Looks like the &lt;a href="http://dev.chromium.org/getting-involved/dev-channel"&gt;google chrome dev build on linux &lt;/a&gt; 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) :&lt;br /&gt;&lt;br /&gt;&lt;pre class="console"&gt;&lt;br /&gt;sudo mkdir -p /opt/google/chrome/plugins&lt;br /&gt;sudo cp /usr/lib/flashplugin-installer/libflashplayer.so /opt/google/chrome/plugins/&lt;br /&gt;/opt/google/chrome/google-chrome --enable-plugins&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Feel free to comment if you have more hacks to enable other plugins on google chrome linux dev builds, I'll update the post :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/449022347945889835-6108370542765050759?l=jeanderuelle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/99tzs4DCjRjzsn6VLbXUvRjro1I/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/99tzs4DCjRjzsn6VLbXUvRjro1I/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/99tzs4DCjRjzsn6VLbXUvRjro1I/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/99tzs4DCjRjzsn6VLbXUvRjro1I/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MyNewLifeHome/~4/g8xpSJcWIlU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jeanderuelle.blogspot.com/feeds/6108370542765050759/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://jeanderuelle.blogspot.com/2009/07/enable-flash-on-google-chrome-linux-dev.html#comment-form" title="6 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/6108370542765050759?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/6108370542765050759?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyNewLifeHome/~3/g8xpSJcWIlU/enable-flash-on-google-chrome-linux-dev.html" title="Enable Flash on Google Chrome Linux Dev Build" /><author><name>Jean Deruelle</name><uri>https://profiles.google.com/104586518034799783278</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-07bIFrlcUWw/AAAAAAAAAAI/AAAAAAAAAAA/IMD0m6paSEI/s512-c/photo.jpg" /></author><thr:total>6</thr:total><feedburner:origLink>http://jeanderuelle.blogspot.com/2009/07/enable-flash-on-google-chrome-linux-dev.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEMRncyeCp7ImA9WxJUGE8.&quot;"><id>tag:blogger.com,1999:blog-449022347945889835.post-7273966256983729249</id><published>2009-07-17T10:53:00.006+02:00</published><updated>2009-07-17T11:58:07.990+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-17T11:58:07.990+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="sip servlets" /><category scheme="http://www.blogger.com/atom/ns#" term="jain slee" /><category scheme="http://www.blogger.com/atom/ns#" term="media server" /><category scheme="http://www.blogger.com/atom/ns#" term="diameter" /><category scheme="http://www.blogger.com/atom/ns#" term="jbossworld" /><category scheme="http://www.blogger.com/atom/ns#" term="sip presence" /><category scheme="http://www.blogger.com/atom/ns#" term="redhat summit" /><category scheme="http://www.blogger.com/atom/ns#" term="mobicents" /><category scheme="http://www.blogger.com/atom/ns#" term="jbcp" /><title>Mobicents/JBCP at JBoss World 2009</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Vn7yjSRlJ4U/SmBLDxAeV1I/AAAAAAAADxE/QbxpLCAIbuw/s1600-h/jbw_header.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 604px; height: 147px;" src="http://4.bp.blogspot.com/_Vn7yjSRlJ4U/SmBLDxAeV1I/AAAAAAAADxE/QbxpLCAIbuw/s400/jbw_header.png" alt="" id="BLOGGER_PHOTO_ID_5359366084637906770" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;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 !&lt;br /&gt;&lt;br /&gt;For those of you that are interesting to check what &lt;a href="http://www.mobicents.org/"&gt;Mobicents &lt;/a&gt;/ &lt;a href="http://www.jboss.com/products/platforms/communications/"&gt;JBoss Communications Platform&lt;/a&gt; is up to, we have two dedicated sessions this year :&lt;br /&gt;&lt;br /&gt;First Valdimir Ralev will be presenting, on September 2nd at 5:45 PM, in its BOF session &lt;a href="http://www.jbossworld.com/agenda/tracks/"&gt;Rapid VoIP development - SIP Servlets 1.1, Seam Telco Framework, JRuby on Rails, Eclipse VoIP tooling&lt;/a&gt;, you can gather more information on &lt;a href="http://vladimirralev.blogspot.com/2009/07/join-us-at-jbossworld-2009-in-chicago.html"&gt;his blog post&lt;/a&gt; as well&lt;br /&gt;&lt;br /&gt;For my part, I'll present, on September 4th at 11:00 AM, &lt;span style="font-size:100%;"&gt;&lt;a href="http://www.jbossworld.com/agenda/tracks/"&gt;Writing Telco 2.0 applications with JBoss Communications Platform based on Mobicents&lt;/a&gt;&lt;br /&gt;(&lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;What's next track&lt;/span&gt;&lt;span style="font-size:100%;"&gt;) which will be an overview of &lt;/span&gt;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 !&lt;br /&gt;&lt;br /&gt;So make sure to regirster ASAP, the early bird registration ends today, &lt;a href="http://www.redhat.com/promo/summit/2009/register/?sc_cid=70160000000Hs3iAAC"&gt;Early bird registration extended until 17th.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;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 !&lt;br /&gt;&lt;br /&gt;Looking forward to meet you there !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/449022347945889835-7273966256983729249?l=jeanderuelle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/iusXzXrIpzCjJaBv8rPjSEMKDo8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/iusXzXrIpzCjJaBv8rPjSEMKDo8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/iusXzXrIpzCjJaBv8rPjSEMKDo8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/iusXzXrIpzCjJaBv8rPjSEMKDo8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MyNewLifeHome/~4/oX1laSCJ7iU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jeanderuelle.blogspot.com/feeds/7273966256983729249/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://jeanderuelle.blogspot.com/2009/07/mobicentsjbcp-at-jboss-world-2009.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/7273966256983729249?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/7273966256983729249?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyNewLifeHome/~3/oX1laSCJ7iU/mobicentsjbcp-at-jboss-world-2009.html" title="Mobicents/JBCP at JBoss World 2009" /><author><name>Jean Deruelle</name><uri>https://profiles.google.com/104586518034799783278</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-07bIFrlcUWw/AAAAAAAAAAI/AAAAAAAAAAA/IMD0m6paSEI/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_Vn7yjSRlJ4U/SmBLDxAeV1I/AAAAAAAADxE/QbxpLCAIbuw/s72-c/jbw_header.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://jeanderuelle.blogspot.com/2009/07/mobicentsjbcp-at-jboss-world-2009.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkQBSHc4fSp7ImA9WxJVEE0.&quot;"><id>tag:blogger.com,1999:blog-449022347945889835.post-480026952813496006</id><published>2009-06-02T14:08:00.010+02:00</published><updated>2009-06-26T09:12:39.935+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-26T09:12:39.935+02:00</app:edited><title>Git Cheat Sheet or My Reminder against git headaches</title><content type="html">Ok since I'm a git noob and I'm working on the move from &lt;a href="http://oddthesis.org/"&gt;JBoss Rails&lt;/a&gt; to the new &lt;a href="http://torquebox.org/"&gt;Torquebox&lt;/a&gt;. 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 &lt;a href="http://git.or.cz/course/svn.html"&gt;the famous git svn crash course&lt;/a&gt;), I'll use this post to be a placeholder for the thing I usually do so that me an git get along very well.&lt;br /&gt;&lt;br /&gt;First things first, the repo is already created on git hub so I'll just check it out using :&lt;br /&gt;&lt;br /&gt;&lt;pre class="console"&gt;&lt;br /&gt;$ git clone git://github.com/torquebox/torquebox.git&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Since Torquebox is using a notion of submodules :&lt;br /&gt;&lt;br /&gt;I need to checkout the underlying submodules, this is achieved by doing :&lt;br /&gt;&lt;br /&gt;&lt;pre class="console"&gt;&lt;br /&gt;$ cd torquebox&lt;br /&gt;$ git submodule init&lt;br /&gt;$ git submodule update&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;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 :&lt;br /&gt;&lt;br /&gt;&lt;pre class="console"&gt;&lt;br /&gt;$ git remote add central git@github.com:torquebox/torquebox.git&lt;br /&gt;$ cd torquebox-core&lt;br /&gt;$ git remote add central git@github.com:torquebox/torquebox-core.git&lt;br /&gt;# and so on for each submodule&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;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 :&lt;br /&gt;&lt;br /&gt;&lt;pre class="console"&gt;&lt;br /&gt;$ git commit -a&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;If there is files or directories that needs to be added to the commit, I usually do :&lt;br /&gt;&lt;br /&gt;&lt;pre class="console"&gt;&lt;br /&gt;$ git add 'filename'&lt;br /&gt;# example : git add src/main/java/org/torquebox/ruby/enterprise/sip/sip_environment_builder.rb&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This will commit things only locally, then I need to push everything to the central repo located on github, this is done by doing :&lt;br /&gt;&lt;br /&gt;&lt;pre class="console"&gt;&lt;br /&gt;$ git push central master&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Sometimes I get into a &lt;a href="http://hasno.info/2008/6/30/git-lost-found-and-no-branch"&gt;no-branch strange state&lt;/a&gt; (don't ask me why :-)) and I end up in no branch at all, you can check on which branch you are by doing :&lt;br /&gt;&lt;br /&gt;&lt;pre class="console"&gt;&lt;br /&gt;$ git branch -a&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The following command can be useful too :&lt;br /&gt;&lt;br /&gt;&lt;pre class="console"&gt;&lt;br /&gt;$ git status&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;so when I'm on no branch, to recover, I use the following commands sequence :&lt;br /&gt;&lt;br /&gt;&lt;pre class="console"&gt;&lt;br /&gt;# going back on master branch&lt;br /&gt;$ git checkout master&lt;br /&gt;&lt;br /&gt;# checking the lost commits on the no branch&lt;br /&gt;$ git fsck --lost-found&lt;br /&gt;&lt;br /&gt;# the previous command will out put something like&lt;br /&gt;# dangling tree a628672f320e4e311a59ce4bcd879125500141ff&lt;br /&gt;# dangling commit 69ade48b3183ffc7a4e09cf87a1d0e5cedaa39bc&lt;br /&gt;# to merge the last commit into the master branch I just switched to&lt;br /&gt;$ git merge 69ade48b3183ffc7a4e09cf87a1d0e5cedaa39bc&lt;br /&gt;&lt;br /&gt;#then I can push to github again&lt;br /&gt;$ git push central master.&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;I'll update this blog post once in a while on my path to non newbiness to git.&lt;br /&gt;Please comment to make me understand things a bit further or advice me on some good eclipse plugin that would avoid me such pain...&lt;br /&gt;&lt;br /&gt;Back to git now&lt;br /&gt;&lt;br /&gt;Update : Ranga gave a link with a few more tips &lt;a href="http://sipx-wiki.calivia.com/index.php/Mirroring_sipXecs_subversion_repository_with_git#Making_and_committing_changes"&gt;http://sipx-wiki.calivia.com/index.php/Mirroring_sipXecs_subversion_repository_with_git#Making_and_committing_changes&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Update 2 : very nice and thorough visual tutorial &lt;a href="http://www.ralfebert.de/blog/tools/visual_git_tutorial_1/"&gt;http://www.ralfebert.de/blog/tools/visual_git_tutorial_1/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/449022347945889835-480026952813496006?l=jeanderuelle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ADLSTVdvmV7g1IUxvFI41ucc9T4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ADLSTVdvmV7g1IUxvFI41ucc9T4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ADLSTVdvmV7g1IUxvFI41ucc9T4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ADLSTVdvmV7g1IUxvFI41ucc9T4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MyNewLifeHome/~4/IeOb_Vdhp40" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jeanderuelle.blogspot.com/feeds/480026952813496006/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://jeanderuelle.blogspot.com/2009/06/git-cheat-sheet.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/480026952813496006?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/480026952813496006?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyNewLifeHome/~3/IeOb_Vdhp40/git-cheat-sheet.html" title="Git Cheat Sheet or My Reminder against git headaches" /><author><name>Jean Deruelle</name><uri>https://profiles.google.com/104586518034799783278</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-07bIFrlcUWw/AAAAAAAAAAI/AAAAAAAAAAA/IMD0m6paSEI/s512-c/photo.jpg" /></author><thr:total>4</thr:total><feedburner:origLink>http://jeanderuelle.blogspot.com/2009/06/git-cheat-sheet.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0QNSH8-eSp7ImA9WxJXFk8.&quot;"><id>tag:blogger.com,1999:blog-449022347945889835.post-4102732749706192603</id><published>2009-04-03T17:10:00.014+02:00</published><updated>2009-06-10T10:09:59.151+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-10T10:09:59.151+02:00</app:edited><title>JRuby VoIP app on JBoss 5 reloaded - Look Ma ! My pure JRuby app can now receive phone calls !</title><content type="html">Following on the previous blog (&lt;a href="http://jeanderuelle.blogspot.com/2009/03/my-jruby-rails-app-on-jboss-can-make.html"&gt;My JRuby-Rails app on JBoss and Mobicents can make Phone calls !&lt;/a&gt;), we took things a step further in the JRuby Telco integration with JBoss 5 and &lt;a href="http://www.mobicents.org/products_sip_servlets.html"&gt;Mobicents Sip Servlets&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;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 &lt;span style="font-weight:bold;"&gt;a pure Ruby application handling VoIP&lt;/span&gt; to benefit from runtime modification (without having to redeploy anything) to cut development time drastically and in addition to that have all the benefits (&lt;span style="font-weight:bold;"&gt;Media support, Diameter support, STUN, advanced monitoring, clustering, failover, ...&lt;/span&gt;) of &lt;a href="http://www.mobicents.org/products_sip_servlets.html"&gt;Mobicents Sip Servlets&lt;/a&gt; for free :-)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Note that this application will be bundled with our next 0.9 release that should be out very soon.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;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 &lt;span style="font-weight:bold;"&gt;pure&lt;/span&gt; Ruby :&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The code source of the application is available &lt;a href="http://code.google.com/p/mobicents/source/browse/trunk/servers/sip-servlets/sip-servlets-examples/pure-jruby-telco/"&gt;here&lt;/a&gt;.&lt;br /&gt;For the hackers that want to create it themselves here are the steps :&lt;br /&gt;&lt;br /&gt;So let's create the application skeleton :&lt;br /&gt;&lt;pre class="console"&gt;$ jruby -S rails pure-jruby-telco -d mysql&lt;/pre&gt;&lt;br /&gt;Go into the “pure-jruby-telco" directory, then modify the config/database.yml.&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Here’s a simple example for the development environment:&lt;br /&gt;&lt;pre name="code" class="properties"&gt;development:&lt;br /&gt;adapter: jdbcmysql&lt;br /&gt;encoding: utf8&lt;br /&gt;database: pure-jruby-telco_development&lt;br /&gt;pool: 5&lt;br /&gt;username: root&lt;br /&gt;password:&lt;br /&gt;socket: /tmp/mysqld.sock&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;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)&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="properties"&gt;&lt;br /&gt;Rails::Initializer.run do |config|&lt;br /&gt;...&lt;br /&gt;config.gem "activerecord-jdbcmysql-adapter", :version =&gt; '0.9', :lib =&gt; 'active_record/connection_adapters/jdbcmysql_adapter'&lt;br /&gt;...&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Now, it’s time to create our database:&lt;br /&gt;&lt;br /&gt;&lt;pre class="console"&gt;&lt;br /&gt;$ jruby -S rake db:create:all&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The next step is to create some minimal scaffolding to create the complaint system&lt;br /&gt;&lt;br /&gt;&lt;pre class="console"&gt;$ jruby script/generate scaffold Complaint customer_name:string company:string complaint:text sip_uri:string&lt;br /&gt;&lt;br /&gt;$ jruby -S rake db:migrate&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;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 :&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="ruby"&gt;&lt;br /&gt;def create&lt;br /&gt;  @complaint = Complaint.new(params[:complaint])&lt;br /&gt;&lt;br /&gt;  respond_to do |format|&lt;br /&gt;  if @complaint.save&lt;br /&gt;    # get the sip factory from the servlet context&lt;br /&gt;    @sip_factory = $servlet_context.get_attribute('javax.servlet.sip.SipFactory')&lt;br /&gt;    # create a new sip application session&lt;br /&gt;    @app_session = request.env['java.servlet_request'].get_session().get_application_session();&lt;br /&gt;    # 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&lt;br /&gt;    @sip_request = @sip_factory.create_request(@app_session, 'INVITE', 'sip:my_jruby_app_rocks@mobicents.org', @complaint.sip_uri);&lt;br /&gt;    # actually sending the request out to the sip phone&lt;br /&gt;    @sip_request.send();&lt;br /&gt;&lt;br /&gt;    flash[:notice] = 'Complaint was successfully created.'&lt;br /&gt;    format.html { redirect_to(@complaint) }&lt;br /&gt;    format.xml  { render :xml =&gt; @complaint, :status =&gt; :created, :location =&gt; @complaint }&lt;br /&gt;  else&lt;br /&gt;    format.html { render :action =&gt; "new" }&lt;br /&gt;    format.xml  { render :xml =&gt; @complaint.errors, :status =&gt; :unprocessable_entity }&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;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 : &lt;br /&gt;&lt;pre class="console"&gt;mkdir app/sip &lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;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 :&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="ruby"&gt;&lt;br /&gt;# Note that the class extend a JBoss provided sip controller called JBoss::Sip::SipBaseHandler&lt;br /&gt;# that mimic the Java Sip Servlet class the ruby way&lt;br /&gt;class SipHandler &lt; JBoss::Sip::SipBaseHandler&lt;br /&gt;  # Handle INVITE request to setup a call by answering 200 OK&lt;br /&gt;  def do_invite(request)  &lt;br /&gt;    request.create_response(200).send&lt;br /&gt;  end&lt;br /&gt;  # Handle BYE request to tear down a call by answering 200 OK&lt;br /&gt;  def do_bye(request)  &lt;br /&gt;    request.create_response(200).send&lt;br /&gt;  end&lt;br /&gt;  # Handle REGISTER request so that a SIP Phone can register with the application by answering 200 OK&lt;br /&gt;  def do_register(request)  &lt;br /&gt;    request.create_response(200).send&lt;br /&gt;  end&lt;br /&gt;  # 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&lt;br /&gt;  def do_success_response(response)&lt;br /&gt;    response.create_ack.send&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Please read the comments in the above code, they should be insightful on what's going on.&lt;br /&gt;Ok that's it the app can now receive phone calls and handle the signaling part :-)&lt;br /&gt;&lt;br /&gt;Let's prepare the application for deployment to the Mobicents Sip Servlets on top of JBoss 5 app server.&lt;br /&gt;&lt;br /&gt;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)&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Note that freezing is mandatory if you wish to deploy your application to JBoss 5 with the jboss-rails plugin.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It is a 2 steps process, first freeze rails then the dependencies (in our case the jdbcmysql adapter)&lt;br /&gt;Here is the command to freeze your rails application :&lt;br /&gt;&lt;pre class="console"&gt;$ jruby -S rake rails:freeze:gems&lt;/pre&gt;Here is the command&lt;br /&gt;&lt;pre class="console"&gt;$ jruby -S rake gems:unpack:dependencies&lt;/pre&gt;You can verify that it worked by issuing this command&lt;br /&gt;&lt;pre class="console"&gt;$ jruby -S rake gems&lt;br /&gt;&lt;/pre&gt;That will produce the following output :&lt;br /&gt;&lt;pre class="console"&gt;&lt;br /&gt;   - [F] activerecord-jdbcmysql-adapter = 0.9&lt;br /&gt;   - [F] activerecord-jdbc-adapter = 0.9&lt;br /&gt;   - [F] jdbc-mysql = 5.0.4&lt;br /&gt;&lt;br /&gt;I = Installed&lt;br /&gt;F = Frozen&lt;br /&gt;R = Framework (loaded before rails starts)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;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 &lt;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"&gt;following zip &lt;/a&gt; and extract it to the vendor/plugins directory of our application.&lt;br /&gt;&lt;br /&gt;Now grab &lt;a href="http://hudson.jboss.org/hudson/job/MobicentsSipServletsRelease/314/artifact/mss-0.9-SNAPSHOT-jboss-5.0.1.GA-0904091535-TECH-PREVIEW.zip"&gt;Mobicents Sip Servlets latest binary snapshot&lt;/a&gt; and extract it to any location that suits you and set JBOSS_HOME env variable to it.&lt;br /&gt;&lt;br /&gt;Then in JBOSS_HOME/server/default/deploy create a file called pure-jruby-telco.yml containing :&lt;br /&gt;&lt;pre name="code" class="properties"&gt;&lt;br /&gt;--- &lt;br /&gt;application: &lt;br /&gt;  RAILS_ENV: development&lt;br /&gt;  RAILS_ROOT: /home/deruelle/workspaces/mobicents-sip-servlets/sip-servlets-examples/pure-jruby-telco&lt;br /&gt;web: &lt;br /&gt;  context: /jruby-telco&lt;br /&gt;sip:&lt;br /&gt;  appname: PureJRubyTelcoApplication&lt;br /&gt;  rubycontroller: SipHandler&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;change the RAILS_ROOT in it to the location of your application.&lt;br /&gt;&lt;br /&gt;Then let's roll and fire up the server, from the root directory of the application do &lt;br /&gt;&lt;pre class="console"&gt;$ rake jboss:as:run&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;When the server has started go to the &lt;a href="http://localhost:8080/sip-servlets-management"&gt;Mobicents Sip Servlets management console&lt;/a&gt; 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.&lt;br /&gt;&lt;br /&gt;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 &lt;a href="http://localhost:8080/jruby-demo-sip-servlet-1.0-SNAPSHOT/complaints"&gt;http://localhost:8080/pure-jruby-telco/complaints&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Create a new complaint and make sure that in the sip uri field you put the address of the sip phone as shown here&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Vn7yjSRlJ4U/SbfG_amaCXI/AAAAAAAADEA/ZGVECWfgbK4/s1600-h/Screenshot-10.png"&gt;&lt;img style="cursor: pointer; width: 320px; height: 200px;" src="http://1.bp.blogspot.com/_Vn7yjSRlJ4U/SbfG_amaCXI/AAAAAAAADEA/ZGVECWfgbK4/s320/Screenshot-10.png" alt="" id="BLOGGER_PHOTO_ID_5311933078281259378" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now enjoy your first JRuby Rails Sip-Servlets application making a call to your sip phone.&lt;br /&gt;Note that with some more coding and a VoIP provider such as &lt;a href="http://callwithus.com/"&gt;http://www.callwithus.com&lt;/a&gt;, it could call real land-line phones or cell phones.&lt;br /&gt;&lt;br /&gt;This application doesn't play any media yet so you hangup the phone whenever you like.&lt;br /&gt;You can also call the application in dialing sip:pure-jruby-telco@127.0.0.1:5080 :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/449022347945889835-4102732749706192603?l=jeanderuelle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/oLE5X6QrZSx5qSS8Rsk8SnwJxGU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oLE5X6QrZSx5qSS8Rsk8SnwJxGU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/oLE5X6QrZSx5qSS8Rsk8SnwJxGU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oLE5X6QrZSx5qSS8Rsk8SnwJxGU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MyNewLifeHome/~4/z1tjI-VwrAE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jeanderuelle.blogspot.com/feeds/4102732749706192603/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://jeanderuelle.blogspot.com/2009/04/jruby-voip-app-on-jboss-5-reloaded-look.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/4102732749706192603?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/4102732749706192603?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyNewLifeHome/~3/z1tjI-VwrAE/jruby-voip-app-on-jboss-5-reloaded-look.html" title="JRuby VoIP app on JBoss 5 reloaded - Look Ma ! My pure JRuby app can now receive phone calls !" /><author><name>Jean Deruelle</name><uri>https://profiles.google.com/104586518034799783278</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-07bIFrlcUWw/AAAAAAAAAAI/AAAAAAAAAAA/IMD0m6paSEI/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_Vn7yjSRlJ4U/SbfG_amaCXI/AAAAAAAADEA/ZGVECWfgbK4/s72-c/Screenshot-10.png" height="72" width="72" /><thr:total>3</thr:total><feedburner:origLink>http://jeanderuelle.blogspot.com/2009/04/jruby-voip-app-on-jboss-5-reloaded-look.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0YMSXY8cCp7ImA9WxJXFk8.&quot;"><id>tag:blogger.com,1999:blog-449022347945889835.post-620275453754608099</id><published>2009-03-11T20:24:00.030+01:00</published><updated>2009-06-10T10:06:28.878+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-10T10:06:28.878+02:00</app:edited><title>My JRuby-Rails app on JBoss and Mobicents can make Phone calls !</title><content type="html">Following on the previous blog, I'll describe the steps to create a multi language JRuby-Rails application that utilize the power of the &lt;a href="http://jcp.org/en/jsr/detail?id=289"&gt;Sip Servlets 1.1 specification&lt;/a&gt; to make phone calls.&lt;br /&gt;&lt;br /&gt;It will be bundled as a war and will be deployed on top of &lt;a href="http://www.mobicents.org/products_sip_servlets.html"&gt;Mobicents Sip Servlets&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;You can &lt;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"&gt;download the prebuilt application&lt;/a&gt;, if you're not interested in build it yourself and just want to test things out.&lt;br /&gt;Note also that the source code for this app is &lt;a href="http://code.google.com/p/mobicents/source/browse/trunk/servers/sip-servlets/sip-servlets-examples/jruby-sips-demo/"&gt;available here&lt;/a&gt;&lt;br /&gt;In any case, make sure you have JRuby correctly setup as explained in my previous post&lt;br /&gt;&lt;br /&gt;Deploy the war to your favorite &lt;a href="http://www.mobicents.org/products_sip_servlets.html"&gt;Mobicents Sip Servlets container&lt;/a&gt;. Currently only the current trunk (0.9-SNAPSHOT) is able to work correctly with a JRuby/Rails - Sip Servlets app, you can find the &lt;a href="http://hudson.jboss.org/hudson/view/Mobicents/job/MobicentsSipServletsRelease/293/artifact/mss-0.9-SNAPSHOT-jboss-4.2.3.GA-0903111539.zip/"&gt;corresping binary snapshots of the trunk on our hudson job&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;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&lt;br /&gt;&lt;pre class="console"&gt;$ sh $JBOSS_HOME/bin/run.sh&lt;/pre&gt;When started, go to &lt;a href="http://localhost:8080/sip-servlets-management"&gt;http://localhost:8080/sip-servlets-management&lt;/a&gt; and remove all configured applications in clicking on all the Delete buttons then click on Save.&lt;br /&gt;&lt;br /&gt;You're ready to test the application. Starts your favorite Sip Phone (wengo phone, linphone, ekiga, sip communicator, ...) then go to &lt;a href="http://localhost:8080/jruby-demo-sip-servlet-1.0-SNAPSHOT/complaints"&gt;http://localhost:8080/jruby-demo-sip-servlet-1.0-SNAPSHOT/complaints&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Create a new complaint and make sure that in the sip uri field you put the address of the sip phone as shown here&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Vn7yjSRlJ4U/SbfG_amaCXI/AAAAAAAADEA/ZGVECWfgbK4/s1600-h/Screenshot-10.png"&gt;&lt;img style="cursor: pointer; width: 320px; height: 200px;" src="http://1.bp.blogspot.com/_Vn7yjSRlJ4U/SbfG_amaCXI/AAAAAAAADEA/ZGVECWfgbK4/s320/Screenshot-10.png" alt="" id="BLOGGER_PHOTO_ID_5311933078281259378" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now enjoy your first JRuby Rails Sip-Servlets application making a call to your sip phone.&lt;br /&gt;Note that with some hacking and a VoIP provider such as &lt;a href="http://callwithus.com/"&gt;http://www.callwithus.com&lt;/a&gt;, it could call real land-line phones or cell phones.&lt;br /&gt;&lt;br /&gt;The next step now is to integrate with the &lt;a href="http://oddthesis.org/theses/jboss-rails"&gt;JBoss Rails Deployer&lt;/a&gt; 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 !&lt;br /&gt;&lt;br /&gt;Also if you want to help us and contribute check our &lt;a href="http://www.jboss.org/community/docs/DOC-13401#Mobicents"&gt;Google Summer of Code project ideas for Mobicents&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For the hackers that want to create it themselves here are the steps :&lt;br /&gt;(Note that the prebuilt application is integrated with &lt;a href="http://hudson.qa.jboss.com/hudson/job/MobicentsBooks/lastSuccessfulBuild/artifact/media/index.html"&gt;Mobicents Media Server&lt;/a&gt; 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.)&lt;br /&gt;&lt;br /&gt;So let's create the application skeleton :&lt;br /&gt;&lt;pre class="console"&gt;$ jruby -S rails jruby-sips-demo -d mysql&lt;/pre&gt;&lt;br /&gt;Go into the “jruby-sips-demo” directory, then modify the config/database.yml.&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Here’s a simple example for the development environment:&lt;br /&gt;&lt;pre name="code" class="properties"&gt;development:&lt;br /&gt;adapter: jdbcmysql&lt;br /&gt;encoding: utf8&lt;br /&gt;database: blog_development&lt;br /&gt;pool: 5&lt;br /&gt;username: root&lt;br /&gt;password:&lt;br /&gt;socket: /tmp/mysqld.sock&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;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)&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="properties"&gt;Rails::Initializer.run do |config|&lt;br /&gt;...&lt;br /&gt;config.gem "activerecord-jdbcmysql-adapter", :version =&gt; '0.9', :lib =&gt; 'active_record/connection_adapters/jdbcmysql_adapter'&lt;br /&gt;...&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Now, it’s time to create our database:&lt;br /&gt;&lt;br /&gt;&lt;pre class="console"&gt;$ jruby -S rake db:create:all&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The next step is to create some minimal scaffolding to create the complaint system&lt;br /&gt;&lt;br /&gt;&lt;pre class="console"&gt;$ jruby script/generate scaffold Complaint customer_name:string company:string complaint:text sip_uri:string&lt;br /&gt;&lt;br /&gt;$ jruby -S rake db:migrate&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;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 :&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="ruby"&gt;&lt;br /&gt;def create&lt;br /&gt;  @complaint = Complaint.new(params[:complaint])&lt;br /&gt;&lt;br /&gt;  respond_to do |format|&lt;br /&gt;  if @complaint.save&lt;br /&gt;    # get the sip factory from the servlet context&lt;br /&gt;    @sip_factory = $servlet_context.get_attribute('javax.servlet.sip.SipFactory')&lt;br /&gt;    # create a new sip application session&lt;br /&gt;    @app_session = request.env['java.servlet_request'].get_session().get_application_session();&lt;br /&gt;    # 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&lt;br /&gt;    @sip_request = @sip_factory.create_request(@app_session, 'INVITE', 'sip:my_jruby_app_rocks@mobicents.org', @complaint.sip_uri);&lt;br /&gt;    # actually sending the request out to the sip phone&lt;br /&gt;    @sip_request.send();&lt;br /&gt;&lt;br /&gt;    flash[:notice] = 'Complaint was successfully created.'&lt;br /&gt;    format.html { redirect_to(@complaint) }&lt;br /&gt;    format.xml  { render :xml =&gt; @complaint, :status =&gt; :created, :location =&gt; @complaint }&lt;br /&gt;  else&lt;br /&gt;    format.html { render :action =&gt; "new" }&lt;br /&gt;    format.xml  { render :xml =&gt; @complaint.errors, :status =&gt; :unprocessable_entity }&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;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 &lt;a href="http://wiki.jruby.org/wiki/Warbler"&gt;Warbler&lt;/a&gt; :&lt;br /&gt;&lt;pre class="console"&gt;$ jruby -S gem install -y jruby-openssl warbler&lt;br /&gt;&lt;/pre&gt;and set it up for our application with :&lt;br /&gt;&lt;pre class="console"&gt;$ jruby -S warble config&lt;br /&gt;&lt;/pre&gt;Using jdbcmysql adapter, don't forget to uncomment this line in config/warble.rb:&lt;br /&gt;&lt;pre name="code" class="ruby"&gt;config.gems += ["activerecord-jdbcmysql-adapter"]&lt;br /&gt;&lt;/pre&gt;Create the .war  :&lt;br /&gt;&lt;pre class="console"&gt;$ jruby -S warble war&lt;br /&gt;&lt;/pre&gt;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.&lt;br /&gt;&lt;br /&gt;So let's create the directory structure for the java classes :&lt;br /&gt;&lt;pre class="console"&gt;$ mkdir -p src/main/java/org/mobicents/servlet/sip/demo/jruby&lt;br /&gt;mkdir -p src/main/sipapp/WEB-INF&lt;br /&gt;&lt;/pre&gt;Now let's add the Sip Servlet class that will handle the SIP calls in src/main/java/org/mobicents/servlet/sip/demo/jruby :&lt;br /&gt;&lt;pre name="code" class="java"&gt;&lt;br /&gt;&lt;br /&gt;public class JRubySipServlet extends SipServlet {&lt;br /&gt;&lt;br /&gt;  @Override&lt;br /&gt;  protected void doSuccessResponse(SipServletResponse resp) throws ServletException, IOException {&lt;br /&gt;    //acknowledge that the call is accepted by the phone&lt;br /&gt;    if (resp.getStatus() == SipServletResponse.SC_OK) {&lt;br /&gt;      SipServletRequest ack = resp.createAck();&lt;br /&gt;      ack.send();&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  @Override&lt;br /&gt;  protected void doBye(SipServletRequest request) throws ServletException, IOException   {&lt;br /&gt;  //respond to the hangup request&lt;br /&gt;  SipServletResponse ok = request.createResponse(SipServletResponse.SC_OK);&lt;br /&gt;  ok.send();&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Now let's create the sip.xml deployment descriptor in src/main/sipapp/WEB-INF :&lt;br /&gt;&lt;pre name="code" class="xml"&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&amp;lt;sip-app&amp;gt;&lt;br /&gt;&amp;lt;app-name&amp;gt;org.mobicents.servlet.sip.demo.jruby.JRubySipServletApplication&amp;lt;/app-name&amp;gt;&lt;br /&gt; &lt;br /&gt;   &amp;lt;servlet&amp;gt;&lt;br /&gt;       &amp;lt;servlet-name&amp;gt;JRubySipServlet&amp;lt;/servlet-name&amp;gt;&lt;br /&gt;       &amp;lt;display-name&amp;gt;JRubySipServlet&amp;lt;/display-name&amp;gt;&lt;br /&gt;       &amp;lt;description&amp;gt;JRuby SIP servlet&amp;lt;/description&amp;gt;&lt;br /&gt;       &amp;lt;servlet-class&amp;gt;&lt;br /&gt;           org.mobicents.servlet.sip.demo.jruby.JRubySipServlet&lt;br /&gt;       &amp;lt;/servlet-class&amp;gt;&lt;br /&gt;       &amp;lt;load-on-startup&amp;gt;1&amp;lt;/load-on-startup&amp;gt;&lt;br /&gt;   &amp;lt;/servlet&amp;gt;&lt;br /&gt;&amp;lt;/sip-app&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Now let's create the web.xml deployment descriptor in src/main/sipapp/web.xml so that the application uses the development database&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="xml"&gt;&lt;br /&gt;&amp;lt;web-app&amp;gt;&lt;br /&gt;&amp;lt;context-param&amp;gt;&lt;br /&gt;&amp;lt;param-name&amp;gt;rails.env&amp;lt;/param-name&amp;gt;&lt;br /&gt;&amp;lt;param-value&amp;gt;&lt;span style="font-weight: bold;"&gt;development&lt;/span&gt;&amp;lt;/param-value&amp;gt;&lt;br /&gt;&amp;lt;/context-param&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;context-param&amp;gt;&lt;br /&gt;&amp;lt;param-name&amp;gt;public.root&amp;lt;/param-name&amp;gt;&lt;br /&gt;&amp;lt;param-value&amp;gt;/&amp;lt;/param-value&amp;gt;&lt;br /&gt;&amp;lt;/context-param&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;context-param&amp;gt;&lt;br /&gt;&amp;lt;param-name&amp;gt;jruby.max.runtimes&amp;lt;/param-name&amp;gt;&lt;br /&gt;&amp;lt;param-value&amp;gt;1&amp;lt;/param-value&amp;gt;&lt;br /&gt;&amp;lt;/context-param&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;filter&amp;gt;&lt;br /&gt;&amp;lt;filter-name&amp;gt;RackFilter&amp;lt;/filter-name&amp;gt;&lt;br /&gt;&amp;lt;filter-class&amp;gt;org.jruby.rack.RackFilter&amp;lt;/filter-class&amp;gt;&lt;br /&gt;&amp;lt;/filter&amp;gt;&lt;br /&gt;&amp;lt;filter-mapping&amp;gt;&lt;br /&gt;&amp;lt;filter-name&amp;gt;RackFilter&amp;lt;/filter-name&amp;gt;&lt;br /&gt;&amp;lt;url-pattern&amp;gt;/*&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;&amp;lt;/filter-mapping&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;listener&amp;gt;&lt;br /&gt;&amp;lt;listener-class&amp;gt;org.jruby.rack.rails.RailsServletContextListener&amp;lt;/listener-class&amp;gt;&lt;br /&gt;&amp;lt;/listener&amp;gt;&lt;br /&gt;&amp;lt;/web-app&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;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&lt;br /&gt;&lt;pre name="code" class="xml"&gt;&lt;br /&gt;&amp;lt;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"&amp;gt;&lt;br /&gt;&amp;lt;modelversion&amp;gt;4.0.0&amp;lt;/modelversion&amp;gt;&lt;br /&gt;&amp;lt;parent&amp;gt;&lt;br /&gt;&amp;lt;groupid&amp;gt;org.mobicents.servlet.sip.example&amp;lt;/groupid&amp;gt;&lt;br /&gt;&amp;lt;artifactid&amp;gt;sip-servlets-examples-parent&amp;lt;/artifactid&amp;gt;&lt;br /&gt;&amp;lt;version&amp;gt;1.2&amp;lt;/version&amp;gt;&lt;br /&gt;&amp;lt;relativepath&amp;gt;../pom.xml&amp;lt;/relativepath&amp;gt;&lt;br /&gt;&amp;lt;/parent&amp;gt;&lt;br /&gt;&amp;lt;groupid&amp;gt;org.mobicents.servlet.sip.example&amp;lt;/groupid&amp;gt;&lt;br /&gt;&amp;lt;artifactid&amp;gt;jruby-demo-sip-servlet&amp;lt;/artifactid&amp;gt;&lt;br /&gt;&amp;lt;packaging&amp;gt;war&amp;lt;/packaging&amp;gt;&lt;br /&gt;&amp;lt;version&amp;gt;1.0-SNAPSHOT&amp;lt;/version&amp;gt;&lt;br /&gt;&amp;lt;name&amp;gt;JRuby Sip Servlet Demo Application&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;lt;url&amp;gt;http://www.mobicents.org/jruby-sip-servlets.html&amp;lt;/url&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;build&amp;gt;&lt;br /&gt;&amp;lt;plugins&amp;gt;&lt;br /&gt;&amp;lt;plugin&amp;gt;&lt;br /&gt;&amp;lt;artifactid&amp;gt;maven-compiler-plugin&amp;lt;/artifactid&amp;gt;&lt;br /&gt;&amp;lt;configuration&amp;gt;&lt;br /&gt;&amp;lt;source&amp;gt;1.5&amp;lt;/source&amp;gt;&lt;br /&gt;&amp;lt;target&amp;gt;1.5&amp;lt;/target&amp;gt;&lt;br /&gt;&amp;lt;/configuration&amp;gt;&lt;br /&gt;&amp;lt;/plugin&amp;gt;&lt;br /&gt;&amp;lt;plugin&amp;gt;&lt;br /&gt;&amp;lt;artifactid&amp;gt;maven-war-plugin&amp;lt;/artifactid&amp;gt;&lt;br /&gt;&amp;lt;configuration&amp;gt;&lt;br /&gt;&amp;lt;warsourcedirectory&amp;gt;&lt;br /&gt;${basedir}/src/main/sipapp&lt;br /&gt;&amp;lt;/warsourcedirectory&amp;gt;&lt;br /&gt;&amp;lt;webresources&amp;gt;&lt;br /&gt;&amp;lt;resource&amp;gt;&lt;br /&gt;     &amp;lt;directory&amp;gt;tmp/war&amp;lt;/directory&amp;gt;&lt;br /&gt; &amp;lt;excludes&amp;gt;&lt;br /&gt;       &amp;lt;exclude&amp;gt;**/web.xml&amp;lt;/exclude&amp;gt;&lt;br /&gt; &amp;lt;/excludes&amp;gt;&lt;br /&gt;&amp;lt;/resource&amp;gt;&lt;br /&gt;&amp;lt;resource&amp;gt;&lt;br /&gt;     &amp;lt;directory&amp;gt;log&amp;lt;/directory&amp;gt;&lt;br /&gt;     &amp;lt;!-- override the destination directory for this resource --&amp;gt;&lt;br /&gt;     &amp;lt;targetpath&amp;gt;WEB-INF/log&amp;lt;/targetpath&amp;gt;&lt;br /&gt;&amp;lt;/resource&amp;gt;&lt;br /&gt;&amp;lt;/webresources&amp;gt;&lt;br /&gt;&amp;lt;/configuration&amp;gt;&lt;br /&gt;&amp;lt;/plugin&amp;gt;&lt;br /&gt;&amp;lt;/plugins&amp;gt;&lt;br /&gt;&amp;lt;/build&amp;gt;&lt;br /&gt;&amp;lt;/project&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Create the converged jruby sip servlets war with&lt;br /&gt;&lt;pre class="console"&gt;$ mvn clean install&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/449022347945889835-620275453754608099?l=jeanderuelle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Rfy_BaLFPkSTHfYbFxDcADOlZUE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Rfy_BaLFPkSTHfYbFxDcADOlZUE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Rfy_BaLFPkSTHfYbFxDcADOlZUE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Rfy_BaLFPkSTHfYbFxDcADOlZUE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MyNewLifeHome/~4/sICnuYaxAwg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jeanderuelle.blogspot.com/feeds/620275453754608099/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://jeanderuelle.blogspot.com/2009/03/my-jruby-rails-app-on-jboss-can-make.html#comment-form" title="6 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/620275453754608099?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/620275453754608099?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyNewLifeHome/~3/sICnuYaxAwg/my-jruby-rails-app-on-jboss-can-make.html" title="My JRuby-Rails app on JBoss and Mobicents can make Phone calls !" /><author><name>Jean Deruelle</name><uri>https://profiles.google.com/104586518034799783278</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-07bIFrlcUWw/AAAAAAAAAAI/AAAAAAAAAAA/IMD0m6paSEI/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_Vn7yjSRlJ4U/SbfG_amaCXI/AAAAAAAADEA/ZGVECWfgbK4/s72-c/Screenshot-10.png" height="72" width="72" /><thr:total>6</thr:total><feedburner:origLink>http://jeanderuelle.blogspot.com/2009/03/my-jruby-rails-app-on-jboss-can-make.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0AEQ3s7fyp7ImA9WxJXFk8.&quot;"><id>tag:blogger.com,1999:blog-449022347945889835.post-6238733598202028456</id><published>2009-02-18T10:50:00.010+01:00</published><updated>2009-06-10T10:15:02.507+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-10T10:15:02.507+02:00</app:edited><title>Simple Steps to Deploy a JRuby Rails application on JBoss 5</title><content type="html">As 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.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://adhearsion.com/" target="_blank" class="postlink"&gt;Adhearsion&lt;/a&gt;, a framework written in Ruby by Jay Philips, allows &lt;a href="http://www.rubyonrails.org/" target="_blank" class="postlink"&gt;Rails&lt;/a&gt; applications to control various functions in &lt;a href="http://www.asterisk.org/" target="_blank" class="postlink"&gt;Asterisk&lt;/a&gt; servers. &lt;br /&gt;&lt;br /&gt;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 &lt;a href="http://kenai.com/projects/jruby-rack/pages/Home"&gt;JRuby-Rack&lt;/a&gt; or create a similar adapter for the Sip Servlets Specification... so stay tuned !&lt;br /&gt;&lt;br /&gt;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...&lt;br /&gt;&lt;br /&gt;So since I'm a (J)Ruby-Rails-newbie, I started where all people start at the &lt;a href="http://www.ruby-lang.org/en/"&gt;ruby home&lt;/a&gt; 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!"&lt;br /&gt;&lt;br /&gt;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 ?) : &lt;a href="http://rubyonrails.org/download"&gt;Ruby on Rails&lt;/a&gt;. 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 &lt;a href="http://guides.rubyonrails.org/getting_started_with_rails.html"&gt;blogging application tutorial&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;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 &lt;a href="http://jruby.codehaus.org/"&gt;JRuby&lt;/a&gt;.&lt;br /&gt;So first &lt;a href="http://dist.codehaus.org/jruby/"&gt;download the JRuby version 1.1.6&lt;/a&gt;  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 :&lt;br /&gt;&lt;br /&gt;&lt;pre class="console"&gt;$ export JRUBY_HOME=/path/to/your/jruby/installation&lt;br /&gt;$ export PATH=$PATH:$JRUBY_HOME/bin&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;You can test it out from the command line to issue the version by typing this&lt;br /&gt;&lt;pre class="console"&gt;$ jruby -v&lt;/pre&gt;&lt;br /&gt;This will give the following output :&lt;br /&gt;&lt;pre class="console"&gt;jruby 1.1.6 (ruby 1.8.6 patchlevel 114) (2008-12-17 rev 8388) [i386-java]&lt;/pre&gt;Ok let's install Rails now :&lt;br /&gt;&lt;pre class="console"&gt;$ jruby -S gem install rails&lt;/pre&gt;This will produce the following output :&lt;br /&gt;&lt;pre class="console"&gt;JRuby limited openssl loaded. gem install jruby-openssl for full support.&lt;br /&gt;http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL&lt;br /&gt;Successfully installed activesupport-2.2.2&lt;br /&gt;Successfully installed activerecord-2.2.2&lt;br /&gt;Successfully installed actionpack-2.2.2&lt;br /&gt;Successfully installed actionmailer-2.2.2&lt;br /&gt;Successfully installed activeresource-2.2.2&lt;br /&gt;Successfully installed rails-2.2.2&lt;br /&gt;6 gems installed&lt;br /&gt;Installing ri documentation for activesupport-2.2.2...&lt;br /&gt;Installing ri documentation for activerecord-2.2.2...&lt;br /&gt;Installing ri documentation for actionpack-2.2.2...&lt;br /&gt;Installing ri documentation for actionmailer-2.2.2...&lt;br /&gt;Installing ri documentation for activeresource-2.2.2...&lt;br /&gt;Installing RDoc documentation for activesupport-2.2.2...&lt;br /&gt;Installing RDoc documentation for activerecord-2.2.2...&lt;br /&gt;Installing RDoc documentation for actionpack-2.2.2...&lt;br /&gt;Installing RDoc documentation for actionmailer-2.2.2...&lt;br /&gt;Installing RDoc documentation for activeresource-2.2.2...&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;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).&lt;br /&gt;&lt;pre class="console"&gt;$ jruby -S gem install activerecord-jdbcmysql-adapter&lt;/pre&gt;This will produce the following output :&lt;br /&gt;&lt;pre class="console"&gt;JRuby limited openssl loaded. gem install jruby-openssl for full support.&lt;br /&gt;http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL&lt;br /&gt;Successfully installed activerecord-jdbc-adapter-0.9&lt;br /&gt;Successfully installed jdbc-mysql-5.0.4&lt;br /&gt;Successfully installed activerecord-jdbcmysql-adapter-0.9&lt;br /&gt;3 gems installed&lt;br /&gt;Installing ri documentation for activerecord-jdbc-adapter-0.9...&lt;br /&gt;Installing ri documentation for jdbc-mysql-5.0.4...&lt;br /&gt;Installing ri documentation for activerecord-jdbcmysql-adapter-0.9...&lt;br /&gt;Installing RDoc documentation for activerecord-jdbc-adapter-0.9...&lt;br /&gt;Installing RDoc documentation for jdbc-mysql-5.0.4...&lt;br /&gt;Installing RDoc documentation for activerecord-jdbcmysql-adapter-0.9...&lt;br /&gt;&lt;/pre&gt;Let's create the blog application backed by mySQL now :&lt;br /&gt;&lt;pre class="console"&gt;$ jruby -S rails blog -d mysql&lt;/pre&gt;Go into the “blog” directory, then modify the config/database.yml.&lt;br /&gt;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.  &lt;p&gt;Here’s a simple example for the development environment:&lt;/p&gt;&lt;pre name="code" class="properties"&gt;development:&lt;br /&gt;adapter: jdbcmysql&lt;br /&gt;encoding: utf8&lt;br /&gt;database: blog_development&lt;br /&gt;pool: 5&lt;br /&gt;username: root&lt;br /&gt;password:&lt;br /&gt;socket: /tmp/mysqld.sock&lt;br /&gt;&lt;/pre&gt;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)&lt;code&gt;&lt;/code&gt;&lt;br /&gt;&lt;pre name="code" class="ruby"&gt;Rails::Initializer.run do |config| &lt;br /&gt;...&lt;br /&gt;config.gem "activerecord-jdbcmysql-adapter", :version =&gt; '0.9', :lib =&gt; 'active_record/connection_adapters/jdbcmysql_adapter'&lt;br /&gt;...&lt;br /&gt;end&lt;/pre&gt;&lt;br /&gt;Now, it’s time to create our database:&lt;br /&gt;&lt;pre class="console"&gt;$ jruby -S rake db:create:all&lt;/pre&gt;The next step is to create some minimal scaffolding so that you could actually play with some dynamic functionality and database access:&lt;br /&gt;&lt;pre class="console"&gt;$ jruby script/generate scaffold Post name:string title:string content:text&lt;/pre&gt;We need to update the database after that:&lt;br /&gt;&lt;pre class="console"&gt;$ jruby -S rake db:migrate&lt;br /&gt;&lt;/pre&gt;Let's the application now :&lt;br /&gt;&lt;pre class="console"&gt;$ jruby script/server&lt;br /&gt;&lt;/pre&gt;and go to http://localhost:3000/posts&lt;br /&gt;&lt;br /&gt;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)&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Note that freezing is mandatory if you wish to deploy your application to JBoss 5 with the jboss-rails plugin.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It is a 2 steps process, first freeze rails then the dependencies (in our case the jdbcmysql adapter)&lt;br /&gt;Here is the command to freeze your rails application :&lt;br /&gt;&lt;pre class="console"&gt;$ jruby -S rake rails:freeze:gems&lt;/pre&gt;Here is the command&lt;br /&gt;&lt;pre class="console"&gt;$ jruby -S rake gems:unpack:dependencies&lt;/pre&gt;You can verify that it worked by issuing this command&lt;br /&gt;&lt;pre class="console"&gt;$ jruby -S rake gems&lt;br /&gt;&lt;/pre&gt;That will produce the following output :&lt;br /&gt;&lt;pre class="console"&gt; - [F] activerecord-jdbcmysql-adapter = 0.9&lt;br /&gt;   - [F] activerecord-jdbc-adapter = 0.9&lt;br /&gt;   - [F] jdbc-mysql = 5.0.4&lt;br /&gt;&lt;br /&gt;I = Installed&lt;br /&gt;F = Frozen&lt;br /&gt;R = Framework (loaded before rails starts)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;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).&lt;br /&gt;&lt;br /&gt;Let's deploy our application to JBoss 5 now :&lt;br /&gt;First &lt;a href="http://www.jboss.org/jbossas/downloads/"&gt;grab a JBoss AS 5.0.0.GA zip&lt;/a&gt; and unzip to the location of your choice then set the JBOSS_HOME env variable to it&lt;br /&gt;&lt;br /&gt;Now let's get the jboss-rails plugin from the all too famous Bob Mc&lt;a href="http://github.com/bobmcwhirter"&gt;&lt;/a&gt;Whirter's github repo by issuing the following command (don't forget to move to another directory than your blog application) :&lt;br /&gt;&lt;pre class="console"&gt;$ git clone git://github.com/bobmcwhirter/jboss-rails.git&lt;/pre&gt;from the newly created jboss-rails directory (note that JDK6 is needed for it to compile) :&lt;br /&gt;&lt;pre class="console"&gt;$ mvn clean install&lt;/pre&gt;copy the content of the target/jboss-rails.deployer directory to JBOSS_HOME/server/default/deployers/jboss-rails.deployers.&lt;br /&gt;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 &lt;a href="http://oddthesis.org/theses/jboss-rails/projects/jboss-rails/pages/x-rails-yml"&gt;explained by Bob&lt;/a&gt; that contain the following :&lt;br /&gt;&lt;pre name="code" class="properties"&gt;application:&lt;br /&gt;   RAILS_ROOT: /home/deruelle/ruby/rails/blog&lt;br /&gt;   RAILS_ENV: development&lt;br /&gt;web:&lt;br /&gt;   context: /blog&lt;br /&gt;   host: *&lt;/pre&gt;ok we are all set up now, you can start your JBoss 5 application server :&lt;br /&gt;&lt;pre class="console"&gt;$ cd JBOSS_HOME/bin&lt;br /&gt;$ sh run.sh&lt;/pre&gt;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 !&lt;br /&gt;&lt;br /&gt;Thanks Bob for you thesis, plugin and help !&lt;br /&gt;&lt;br /&gt;Feel free to comment and let me know how well it worked for you !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/449022347945889835-6238733598202028456?l=jeanderuelle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/hp3JtfGyAobGnnoL0Kvz7ILEIh8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hp3JtfGyAobGnnoL0Kvz7ILEIh8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/hp3JtfGyAobGnnoL0Kvz7ILEIh8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hp3JtfGyAobGnnoL0Kvz7ILEIh8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MyNewLifeHome/~4/AGEvRrln9PA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jeanderuelle.blogspot.com/feeds/6238733598202028456/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://jeanderuelle.blogspot.com/2009/02/simple-steps-to-deploy-jruby-rails-app.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/6238733598202028456?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/6238733598202028456?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyNewLifeHome/~3/AGEvRrln9PA/simple-steps-to-deploy-jruby-rails-app.html" title="Simple Steps to Deploy a JRuby Rails application on JBoss 5" /><author><name>Jean Deruelle</name><uri>https://profiles.google.com/104586518034799783278</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-07bIFrlcUWw/AAAAAAAAAAI/AAAAAAAAAAA/IMD0m6paSEI/s512-c/photo.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://jeanderuelle.blogspot.com/2009/02/simple-steps-to-deploy-jruby-rails-app.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMGQnY9eip7ImA9WxVRF08.&quot;"><id>tag:blogger.com,1999:blog-449022347945889835.post-8010088552214377313</id><published>2009-01-23T11:36:00.008+01:00</published><updated>2009-01-23T16:10:23.862+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-23T16:10:23.862+01:00</app:edited><title>Hacking the JBoss 5 deployers to load Sip Servlets Applications</title><content type="html">After 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 :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Check &lt;a href="http://java.dzone.com/articles/a-look-inside-jboss-microconta"&gt;Ales' introduction to JBoss MicroContainer&lt;/a&gt;, the component framework that transparently binds AS modules.&lt;/li&gt;&lt;li&gt;Also See &lt;a href="http://www.infoq.com/news/2008/06/jboss-as5-rc1"&gt;Dimitris discussing the overhaul done to make AS agnostic to any particular component model.&lt;/a&gt;&lt;/li&gt;&lt;li&gt;A great real-world use case is Bob's work over at &lt;a href="http://oddthesis.org,/" target="_blank"&gt;http://oddthesis.org,&lt;/a&gt; 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.&lt;/li&gt;&lt;/ul&gt;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 &lt;a href="http://www.jboss.org/feeds/post/deployers_in_jboss_microcontainer"&gt;good blog post from &lt;b&gt;Bob McWhirter&lt;/b&gt;&lt;/a&gt; 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 :&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Vn7yjSRlJ4U/SXmd9perQvI/AAAAAAAACuQ/8Q8mkQ0fAPs/s1600-h/MSSSipAppJB5Loading.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 320px;" src="http://1.bp.blogspot.com/_Vn7yjSRlJ4U/SXmd9perQvI/AAAAAAAACuQ/8Q8mkQ0fAPs/s320/MSSSipAppJB5Loading.jpg" alt="" id="BLOGGER_PHOTO_ID_5294436519382827762" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;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 !&lt;br /&gt;You can get &lt;a href="http://hudson.jboss.org/hudson/job/MobicentsSipServletsRelease/"&gt;the nightly snapshots binaries on our hudson job&lt;/a&gt; if you want to try it out and give us some feedback on &lt;a href="http://groups.google.com/group/mobicents-public/"&gt;mobicents-public google groups&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;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 ;-)&lt;br /&gt;&lt;br /&gt;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 ! :-)&lt;br /&gt;&lt;br /&gt;You can find more details here on what currently happens in the design diagram above when loading a sip servlets application :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;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 :&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;"&lt;span style="font-weight: bold; font-style: italic;"&gt;&lt;/span&gt;JBoss MicroContainer look in WEB-INF/ for meta-data descriptors, such as &lt;strong&gt;sip.xml, web.xml&lt;/strong&gt; and &lt;strong&gt;jboss-web.xml&lt;/strong&gt;.  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. &lt;p&gt;One of the earliest stages is the &lt;strong&gt;PARSE&lt;/strong&gt; 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 &lt;strong&gt;WebAppParsingDeployer&lt;/strong&gt; does exactly that. There’s a nice hierarchy of classes to make parsing XML descriptors such as web.xml super simple.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;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 :-)&lt;br /&gt;&lt;/p&gt; &lt;p&gt;The &lt;strong&gt;WebAppParsingDeployer&lt;/strong&gt; is the bridge from a web.xml file sitting on the filesystem or in an archive to the &lt;strong&gt;MetaData&lt;/strong&gt; deployment bits. The parser reads web.xml, and produces a &lt;strong&gt;WebMetaData&lt;/strong&gt; object associated with the deployment.  The &lt;strong&gt;WebMetaData&lt;/strong&gt; is simply a nice object-tree representing anything you can denote in web.xml.&lt;/p&gt;&lt;p&gt;Same thing here in our case, we use a SipAppParsingDeployer. The parser reads sip.xml, and produces a &lt;strong&gt;SipMetaData&lt;/strong&gt; object associated with the deployment.  The &lt;strong&gt;SipMetaData&lt;/strong&gt; is simply a nice object-tree representing anything you can denote in sip.xml.&lt;/p&gt; &lt;p&gt;We also might have a jboss-web.xml meta-data in our WAR, and that is parsed (during the &lt;strong&gt;PARSE&lt;/strong&gt; stage) in our case by the &lt;span style="font-weight: bold;"&gt;JBossConvergedSipAppParsingDeployer&lt;/span&gt; (instead of  &lt;strong&gt;JBossWebAppParsingDeployer&lt;/strong&gt;).  This deployer, like the previous, reads the jboss-web XML file and creates, in this case, a &lt;strong&gt;JBossConvergedSipMetaData&lt;span style="font-weight: normal;"&gt; (instead of&lt;/span&gt; JBossWebMetaData)&lt;/strong&gt; object. It is also gathering the previous MetaData (SipMetaData and WebMetaData) and merged them with itself.&lt;br /&gt;&lt;/p&gt; &lt;p&gt;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 &lt;strong&gt;ClassLoadingMetaData&lt;/strong&gt;, which describe paths that should be added to the classpath.&lt;/p&gt; &lt;p&gt;As the container enters the &lt;strong&gt;CLASSLOADER&lt;/strong&gt; stage of deployment, other magic occurs to actually set up the classpath.&lt;/p&gt;&lt;p&gt;After that, There is annotations parsing through &lt;b&gt;ConvergedSipAnnotationMetaDataDeployer &lt;/b&gt;that produces &lt;span style="font-weight: bold;"&gt;SipMetaData&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;WebMetaData&lt;/span&gt; also but based on the annotations instead of the xml descriptors this time&lt;br /&gt;&lt;/p&gt; &lt;p&gt;In the end, it’s the &lt;span style="font-weight: bold;"&gt;JBossConvergedSipMetaData&lt;/span&gt; (instead of &lt;strong&gt;JBossWebMetaData&lt;/strong&gt;) that drives the ultimate deployment, but what if we don’t have a jboss-web.xml?  That’s where the &lt;span style="font-weight: bold;"&gt;MergedJBossConvergedMetaDataDeployer&lt;/span&gt; (instead of  &lt;strong&gt;MergedJBossWebMetaDataDeployer&lt;/strong&gt;) comes in.  It looks for &lt;strong&gt;SipMetadata (parsed from the sip.xml and the annotation based one), WebMetaData&lt;/strong&gt;&lt;strong&gt;(parsed from the web.xml and the annotation based one)&lt;/strong&gt;, and a &lt;strong&gt;JBossWebMetaData&lt;/strong&gt; if one has been parsed, and merges everything into a singular JbossConvergedSipMetaData (instead of &lt;strong&gt;JBossWebMetaData&lt;/strong&gt;).&lt;/p&gt;&lt;p&gt;I’m a little fuzzy on the ins and outs of the &lt;strong&gt;CLASSLOADER&lt;/strong&gt; stage at this point, but magic occurs there.&lt;/p&gt; &lt;p&gt;And our app still isn’t deployed yet.  But we’re getting there.&lt;/p&gt; &lt;p&gt;Finally, we enter the REAL stage of deployment, which fittingly-enough, is where the actual deployment occurs.  Hooray!&lt;/p&gt; &lt;p&gt;Our &lt;span style="font-weight: bold;"&gt;TomcatConvergedDeployer (instead of&lt;/span&gt; &lt;strong&gt;TomcatDeployer&lt;/strong&gt;) that is sip servlets aware is hanging out there, waiting for &lt;strong&gt;JBossWebMetaData&lt;/strong&gt; 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 &lt;span style="font-weight: bold;"&gt;TomcatConvergedDeployment (instead of TomcatDeployment for a standard webapp)&lt;/span&gt;.&lt;/p&gt;&lt;p&gt;This &lt;span style="font-weight: bold;"&gt;TomcatConvergedDeployment&lt;/span&gt; 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, &lt;span style="font-weight: bold;"&gt;TomcatConvergedSipInjectionContainer(instead of TomcatInjectionContainer)&lt;/span&gt; so that needed objects can be injected into annotated attributes of the archive.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;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).&lt;/p&gt; &lt;p&gt;Finally. :-)&lt;/p&gt;&lt;p&gt;Jean&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/449022347945889835-8010088552214377313?l=jeanderuelle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/iF_XOUIkM3WezaYT2z8oMKYjTBc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/iF_XOUIkM3WezaYT2z8oMKYjTBc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/iF_XOUIkM3WezaYT2z8oMKYjTBc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/iF_XOUIkM3WezaYT2z8oMKYjTBc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MyNewLifeHome/~4/aNUjSTNGn10" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jeanderuelle.blogspot.com/feeds/8010088552214377313/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://jeanderuelle.blogspot.com/2009/01/hacking-jboss-5-deployers-to-load-sip.html#comment-form" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/8010088552214377313?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/8010088552214377313?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyNewLifeHome/~3/aNUjSTNGn10/hacking-jboss-5-deployers-to-load-sip.html" title="Hacking the JBoss 5 deployers to load Sip Servlets Applications" /><author><name>Jean Deruelle</name><uri>https://profiles.google.com/104586518034799783278</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-07bIFrlcUWw/AAAAAAAAAAI/AAAAAAAAAAA/IMD0m6paSEI/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_Vn7yjSRlJ4U/SXmd9perQvI/AAAAAAAACuQ/8Q8mkQ0fAPs/s72-c/MSSSipAppJB5Loading.jpg" height="72" width="72" /><thr:total>5</thr:total><feedburner:origLink>http://jeanderuelle.blogspot.com/2009/01/hacking-jboss-5-deployers-to-load-sip.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkMER305eSp7ImA9WxRUFU8.&quot;"><id>tag:blogger.com,1999:blog-449022347945889835.post-7661479313041723295</id><published>2008-11-24T10:11:00.006+01:00</published><updated>2008-11-24T13:06:46.321+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-24T13:06:46.321+01:00</app:edited><title>One year @ JBoss : Mobicents Sip Servlets 0.7 released !!!</title><content type="html">It's been now one year since I joined JBoss, a division of &lt;span style="color: rgb(255, 0, 0);"&gt;Red Hat&lt;/span&gt; and about a month and a half since our &lt;a href="http://jeanderuelle.blogspot.com/2008/09/mobicents-sip-servlets-is-jsr-289-sip.html"&gt;last release&lt;/a&gt; that made Mobicents Sip Servlets the first Open Source container to become Sip Servlets 1.1 (JSR 289) certified.&lt;br /&gt;&lt;br /&gt;So it was due time for another release and we wanted it to be feature packed so here goes the review of &lt;a href="http://groups.google.com/group/mobicents-public/browse_thread/thread/d0c0b3605d9b4e55/"&gt;the latest and greatest of Mobicents Sip Servlets&lt;/a&gt; that you can &lt;a href="https://sourceforge.net/project/showfiles.php?group_id=102670&amp;amp;package_id=262024&amp;amp;release_id=641930"&gt;download here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;First, &lt;a href="http://www.mobicents.org/concurrency.html"&gt;&lt;span style="font-weight: bold;"&gt;Concurrency Control&lt;/span&gt;&lt;/a&gt;. It defines here how a sip servlets application can be accessed concurrently and what would its expected behavior in this case. Although the JSR 289 Expert Group couldn't agree on a concurrency control mechanism for JSR 289 and that feature has been postponed to the next version of the spec, we believe this feature can greatly simplify the life of the Sip Servlets developers. Also in getting more experience on that front and feedback from the community we would like to start to draft a proposal for inclusion in the next revision of the specification.&lt;br /&gt;So Mobicents Sip Servlets supports not one but three concurrency control modes : &lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;None&lt;/span&gt; - is the one defined (or not defined...) by the specification and the developer is reponsible for synchronizing access to shared resources such as SipSession or SipApplicationSession attributes or objects held by those sessions.&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;SipSession&lt;/span&gt; : This mode guarantees  that two or more messages from the same SipSession will never be processed simultaneously. They will be serialized on the SipSession meaning that they will be processed sequentially by the sip servlet in the order of their arrival so you can access SipSession attributes in a safe way.&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;SipApplicationSession&lt;/span&gt; : This mode guarantees that two or more messages from the same SipApplicationSession will never be processed simultaneously so you can access SipApplicationSession attributes and the SipSession attributes in a safe way.&lt;/li&gt;&lt;/ul&gt;Those different concurrency modes for now only take into account SIP messages for serializing access to either the SipSession or SipApplicationSession which means that you have to be careful if you are accessing shared resources in an unmanaged way, for example if you access a SipSession attribute from an unmanaged thread or from EJB this access will not be synchronized. But we are working on it :-)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.mobicents.org/concurrency.html"&gt;&lt;span style="font-weight: bold;"&gt;Congestion Control&lt;/span&gt;&lt;/a&gt; : All the messages that arrives in the Mobicents Sip Servlets container will go, after some initial processing, in a queue to wait for, depending on the chosen concurrency control mode, a free thread or the lock on the session to be released. If this queue gets full the container will start rejecting any new SIP requests (except ACK) with SIP error code 503 until the server catches up. Note that only SIP requests will be rejected, the SIP responses that arrive at a full queue will be stored and processed sooner or later. In the future we will be adding more congestion control mechanisms like memory&lt;span style="font-family:monospace;"&gt; &lt;/span&gt;threshold, CPU threshold, choose between sending 503 or just dropping any new message coming in depending on the load threshold... so stay tuned !&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Enterprise Monitoring and Management Console&lt;/span&gt; through &lt;a href="http://www.mobicents.org/mss-jopr-plugin.html"&gt;Seamless integration into JOPR and Embedded JOPR (JBoss Administration console)&lt;/a&gt;, the JBoss Enterprise management solution : I just blogged about it 3 days ago so for more details see my &lt;a href="http://jeanderuelle.blogspot.com/2008/11/mobicents-sip-servlets-gets-shinny-new.html"&gt;blog post&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Mid Call Failover Support &lt;/span&gt;: We completed our HA capabilities for pure SIP applications so you can now failover to any node in the cluster in the middle of a call for all kind of pure SIP Applications (Proxy, B2BUA, UAC, UAS) ! We will now be working on failover for converged applications and add performance and stability automated test based on &lt;a href="http://www.smartfrog.org/"&gt;smartfrog&lt;/a&gt; so that it becomes final.&lt;br /&gt;&lt;br /&gt;We also have been working on two great new features and wish some community feedback on them so we first introduce them as Technlogy Preview into this 0.7 release :&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;a href="http://www.mobicents.org/mss-seam.html"&gt;JBoss Seam framework is now able to enhance your sip servlets application&lt;/a&gt; &lt;/span&gt;: As Vladimir is currently working on a cool PBX application, he was feeling that this was not enough :-) so he started to dig and hack on how the JBoss Seam framework could be utilized to simplify the Sip Servlets application development and has been very successful, See &lt;a href="http://vladimirralev.blogspot.com/2008/11/jboss-seam-enhances-sip-servlets.html"&gt;his blog post&lt;/a&gt; about it and the public discussion. As we were discussing together the implications of this, we decided to start a &lt;a href="http://code.google.com/p/mobicents/source/browse/trunk/servers/sip-servlets/sip-servlets-seam"&gt;subproject&lt;/a&gt; dedicated to it to rock the sip servlets world and continue our unification task (between Sip Servlets and Http or &lt;a href="http://www.mobicents.org/mobicents-sip-servlets-jslee-intero.html"&gt;Sip Servlets and JSLEE&lt;/a&gt;) the same way Seam has been rocking the http servlets world. So check it out and see how it can improve your Time to Market and development experience all together and don't forget to give us your feedback and what you would like to see improved or implemented.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;a href="http://www.mobicents.org/diameter_event_charging.html"&gt;Diameter support&lt;/a&gt;&lt;/span&gt; : For users of Mobicents Sip Servlets, we wanted them to be able to charge calls that are going through their applications so Alexandre Mendonça who is leading the Diameter project for the Mobicents platform, has tremendously helped us in getting us &lt;a href="http://en.wikipedia.org/wiki/Diameter_%28protocol%29"&gt;Diameter&lt;/a&gt; support and hacked &lt;a href="http://www.mobicents.org/diameter_event_charging.html"&gt;a Sip Servlets Diameter Event Charging application&lt;/a&gt; based on the &lt;a href="http://www.mobicents.org/location_service.html"&gt;Location Service example&lt;/a&gt; that performs call charging at a fixed-rate (event charging), so check it out and give us your feedback. Alex is now planning on getting more of the Diameter protocol implemented and as he go, he will hack Sip Servlets applications that showcase the different possible call flows to help you do Authentication, Authorization and Accounting on top of Mobicents Sip Servlets.&lt;br /&gt;&lt;br /&gt;Also we got 2 new shiny examples, the &lt;a href="http://www.mobicents.org/diameter_event_charging.html"&gt;Diameter Event Charging one&lt;/a&gt; that we just discussed and the &lt;a href="http://www.mobicents.org/conference-demo.html"&gt;Conference Media Server application&lt;/a&gt; built on GWT with server-push updates  to provide desktop-like experience for the user interface. This application is in response to the high demand of the community for Media Conferencing on top Mobicents Sip Servlets and this example will be later  integrated into the PBX application that Vlad is builing.&lt;br /&gt;&lt;br /&gt;Also with all those new features, we moved to the latest version of JBoss AS &lt;a href="http://4.2.3.ga/" target="_blank"&gt;4.2.3.GA&lt;/a&gt; and also comes the usual round of bug fixes and enhancements comprised of an updated Management Console, more SIP Extensions (PRACK, OPTIONS, INFO), and more.&lt;br /&gt;&lt;br /&gt;Check out our &lt;a href="http://www.mobicents.org/roadmap.html"&gt;roadmap&lt;/a&gt; to see what's coming next !&lt;br /&gt;&lt;br /&gt;Feel free to give us your feedback on the &lt;a href="http://groups.google.com/group/mobicents-public/topics"&gt;Mobicents Google Group&lt;/a&gt;&lt;br /&gt;Thanks for using Mobicents Sip Servlets !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/449022347945889835-7661479313041723295?l=jeanderuelle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/AN9m4lwtLlKO23rpkIynlctb0HI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AN9m4lwtLlKO23rpkIynlctb0HI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/AN9m4lwtLlKO23rpkIynlctb0HI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AN9m4lwtLlKO23rpkIynlctb0HI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MyNewLifeHome/~4/yt3FT-wnzpw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jeanderuelle.blogspot.com/feeds/7661479313041723295/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://jeanderuelle.blogspot.com/2008/11/one-year-jboss-mobicents-sip-servlets.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/7661479313041723295?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/7661479313041723295?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyNewLifeHome/~3/yt3FT-wnzpw/one-year-jboss-mobicents-sip-servlets.html" title="One year @ JBoss : Mobicents Sip Servlets 0.7 released !!!" /><author><name>Jean Deruelle</name><uri>https://profiles.google.com/104586518034799783278</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-07bIFrlcUWw/AAAAAAAAAAI/AAAAAAAAAAA/IMD0m6paSEI/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://jeanderuelle.blogspot.com/2008/11/one-year-jboss-mobicents-sip-servlets.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUMCRHg-eSp7ImA9WxRUFU8.&quot;"><id>tag:blogger.com,1999:blog-449022347945889835.post-860849805326745739</id><published>2008-11-21T15:07:00.006+01:00</published><updated>2008-11-24T12:51:05.651+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-24T12:51:05.651+01:00</app:edited><title>Mobicents Sip Servlets gets a shiny new Administration console !</title><content type="html">As some of you might be aware, earlier this year JBoss released &lt;a href="http://www.jboss.org/jopr/"&gt;Jopr&lt;/a&gt;, an enterprise management solution for JBoss middleware projects and other application technologies based on &lt;a href="http://rhq-project.org/"&gt;RHQ&lt;/a&gt;, and &lt;a href="http://www.jboss.org/embjopr/"&gt;Embedded Jopr&lt;/a&gt;, which will become the new JBoss Administration console and is based on Jopr.&lt;br /&gt;&lt;br /&gt;Since the project does provide great extensibility and thanks to the good documentation of the project and its plugin architecture (see &lt;a href="http://pilhuhn.blogspot.com/2008/05/writing-rhq-plugin-part-1.html"&gt;http://pilhuhn.blogspot.com/2008/05/writing-rhq-plugin-part-1.html&lt;/a&gt; and &lt;a href="http://support.rhq-project.org/display/RHQ/RHQ+Plugin+Community"&gt;http://support.rhq-project.org/display/RHQ/RHQ+Plugin+Community&lt;/a&gt;) we decided that it was time for Mobicents Sip Servlets to be seamlessly integrated into those great projects and finally have a way to being administrable into large scale enterprise deployments.&lt;br /&gt;&lt;br /&gt;So we hacked our own plugin. We decided to start simple with &lt;a href="http://support.rhq-project.org/display/RHQ/Writing+Custom+Plugins#WritingCustomPlugins-GettingStartedQuickly"&gt;http://support.rhq-project.org/display/RHQ/Writing+Custom+Plugins#WritingCustomPlugins-GettingStartedQuickly&lt;/a&gt; and provide accessibility to the SipApplicationDispatcher, which is a central piece in the Mobicents Sip Servlets Architecture since it has the responsibility of dispatching the SIP requests and responses (that is gets from the underlying jain-sip stack) to the deployed Sip Servlets applications.&lt;br /&gt;So you can control the &lt;a href="http://www.mobicents.org/concurrency.html"&gt;concurrency and congestion control&lt;/a&gt; of the server through it. This was really a piece of cake and was done and working in an afternoon.&lt;br /&gt;&lt;br /&gt;Excited by the easiness to integrate into jopr, we decided to provide metrics for Sip Sessions and Sip Applications Session available into standard pure SIP Servlets applications or converged Java EE/SIP applications about the same way it is currently done in Jopr for HTTP Sessions. Same thing, it was done real quick and with a result showing seamless integration into jopr. See our &lt;a href="http://www.mobicents.org/mss-jopr-plugin.html"&gt;Mobicents Sip Servlets jopr plugin&lt;/a&gt; that works for both Jopr and Embedded Jopr.&lt;br /&gt;&lt;br /&gt;It took us about 2 days to complete the task 1 day of coding and discovering and one day of polishing and documenting... To try it out just download &lt;a href="https://sourceforge.net/project/showfiles.php?group_id=102670&amp;amp;package_id=262024&amp;amp;release_id=641930"&gt;the latest release of Mobicents Sip Servlets&lt;/a&gt; and drop the &lt;a href="http://mobicents.googlecode.com/files/embedded-jopr.war"&gt;embedded jopr war&lt;/a&gt; that contains our plugin in the server/default/deploy directory and hit &lt;a href="http://localhost:8080/embedded-jopr"&gt;http://localhost:8080/embedded-jopr&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I have only one thing to say, thanks to the JBoss Operations Team for providing such a good project that saved us quite a bit of time to have a full blown enterprise management solution for our project. Keep up the good work, guys !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/449022347945889835-860849805326745739?l=jeanderuelle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/mFxfAg7_1_F4JR5X3HOqGQfb05k/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mFxfAg7_1_F4JR5X3HOqGQfb05k/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/mFxfAg7_1_F4JR5X3HOqGQfb05k/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mFxfAg7_1_F4JR5X3HOqGQfb05k/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MyNewLifeHome/~4/emBllv5g4bs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jeanderuelle.blogspot.com/feeds/860849805326745739/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://jeanderuelle.blogspot.com/2008/11/mobicents-sip-servlets-gets-shinny-new.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/860849805326745739?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/860849805326745739?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyNewLifeHome/~3/emBllv5g4bs/mobicents-sip-servlets-gets-shinny-new.html" title="Mobicents Sip Servlets gets a shiny new Administration console !" /><author><name>Jean Deruelle</name><uri>https://profiles.google.com/104586518034799783278</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-07bIFrlcUWw/AAAAAAAAAAI/AAAAAAAAAAA/IMD0m6paSEI/s512-c/photo.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://jeanderuelle.blogspot.com/2008/11/mobicents-sip-servlets-gets-shinny-new.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C04HQng6fyp7ImA9WxJXFk8.&quot;"><id>tag:blogger.com,1999:blog-449022347945889835.post-2588862161264221081</id><published>2008-10-22T18:36:00.013+02:00</published><updated>2009-06-10T10:18:53.617+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-10T10:18:53.617+02:00</app:edited><title>Jain Sip is working on top of android</title><content type="html">&lt;div style="text-align: justify;"&gt;I had a bit of free time yesterday night and I noticed the first google android powered phone hit the market in USA so I said to myself, what if I tried to port &lt;a href="https://jain-sip-dev.java.net/"&gt;jain sip stack&lt;/a&gt; to android...&lt;br /&gt;Not so much work should be needed since android supports a lot of the JDK 1.5 packages natively. So I tried and believe it or not, no work was actually required to make the jain sip stack work on android, it just runs :-)&lt;br /&gt;Again kudos to Ranga for such a great stack :-) and to Google for having a nice OS where you can really reuse most of your Java applications (pending a rewrite of the UI)&lt;br /&gt;&lt;br /&gt;So here is my proof of concept :&lt;br /&gt;I ported the well known Shootist and Shootme examples from the sip stack to android and &lt;a href="http://mobicents.googlecode.com/files/jain-sip-android.zip"&gt;uploaded a zip here&lt;/a&gt; that you can play with.&lt;br /&gt;&lt;br /&gt;The zip contains shootist and shootme standard examples and shootist and shootme android examples. Unzip in a location that we will call &lt;jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;So first you need to have the android SDK installed and have the android tools on your path (see the &lt;a href="http://code.google.com/android/intro/installing.html"&gt;Android installation instructions&lt;/a&gt; for that)&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;Then you can start the android emulator with the following command:&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;pre class="console"&gt;$ emulator&lt;/pre&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;from &lt;jsip_android_examples&gt;, do the following :&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;pre class="console"&gt;$ cd shootme-android/bin/&lt;/pre&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;and then&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;pre class="console"&gt;$ adb install shootme-android.apk &lt;/pre&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;this install the shootme android example application into the emulator&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;go back to &lt;jsip_android_examples&gt; and do the following :&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;pre class="console"&gt;$ cd shootist-android/bin/&lt;/pre&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;and then&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;pre class="console"&gt;$ adb install shootist-android.apk &lt;/pre&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;this install the shootist android example application into the emulator&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;You can see the applications installed in the emulator by clicking on the gray arrow at the bottom of the android phone screen :&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Vn7yjSRlJ4U/SQCYqnd9I-I/AAAAAAAACfU/mkbFvsPEE4k/s1600-h/android-emu.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_Vn7yjSRlJ4U/SQCYqnd9I-I/AAAAAAAACfU/mkbFvsPEE4k/s320/android-emu.jpg" alt="" id="BLOGGER_PHOTO_ID_5260372222685291490" border="0" /&gt;&lt;/a&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;Ok so much for the installation of the applications into android. Now let's get real and have some fun. Let's try the shootme android application first.&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;on the emulator, go to the menu and select the application called shootme.&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;It says that the jain sip stack has started on 10.0.2.15 (localhost's emulator ip address of android)&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;Since the emulator has its own ip address system we need to setup a UDP redirection from our host's localhost:5070 to the emulated system's localhost:5070 so that teh shootme android application can be pinged from our shootist standard application with the following command&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;pre class="console"&gt;$ adb emu redir add udp:5070:5070&lt;/pre&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;let's start the standard shootist example so that it calls shootme and that a SIP call flow (INVITE-OK-ACK and then BYE-OK) is done between them.&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;go back to &lt;jsip_android_examples&gt; and do the following :&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;pre class="console"&gt;$ cd shootist/dist&lt;/pre&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;and then&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;pre class="console"&gt;$ java -jar shootist.jar&lt;/pre&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;you should now see the messages being exchanged between the shootme android application and the shootist standard application.&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;if the emulator sip messages are not enough, more log is available through the command &lt;pre class="console"&gt;$ adb logcat&lt;/pre&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;now kill the shootist app with Ctrl+C and close the emulator&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;You can also do the reversed example and start first the shootme:&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;Since the emulator has its own ip address system we need to setup a UDP redirection from our host's localhost:5060 to the emulated system's localhost:5060 so that the shootist example application can be pinged back from our shootme standard application with the following command&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;pre class="console"&gt;$ adb emu redir add udp:5060:5060&lt;/pre&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;let's start the standard shootme example so that it waits to be called by the shootist android applicationand that a SIP call flow (INVITE-OK-ACK and then BYE-OK) is done between them.&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;go back to &lt;jsip_android_examples&gt; and do the following :&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;pre class="console"&gt;$ cd shootme/dist&lt;/pre&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;and then&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;pre class="console"&gt;$ java -jar shootme.jar&lt;/pre&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;on the emulator, go to the menu and select the application called shootist.&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;You should now see the messages being exchanged between the shootme android application and the shootist standard application.&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;if the emulator sip messages are not enough, more log is available through the command &lt;pre class="console"&gt;$ adb logcat&lt;/pre&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;br /&gt;Please post comments if you have problems running the examples or if you want to give me some feedback...&lt;br /&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/jsip_android_examples&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/449022347945889835-2588862161264221081?l=jeanderuelle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/fxu9b5JGowtXhIbOtrX1nlZaoDw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fxu9b5JGowtXhIbOtrX1nlZaoDw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/fxu9b5JGowtXhIbOtrX1nlZaoDw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fxu9b5JGowtXhIbOtrX1nlZaoDw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MyNewLifeHome/~4/A4muc3OiUmk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jeanderuelle.blogspot.com/feeds/2588862161264221081/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://jeanderuelle.blogspot.com/2008/10/jain-sip-is-working-on-top-of-android.html#comment-form" title="59 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/2588862161264221081?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/449022347945889835/posts/default/2588862161264221081?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyNewLifeHome/~3/A4muc3OiUmk/jain-sip-is-working-on-top-of-android.html" title="Jain Sip is working on top of android" /><author><name>Jean Deruelle</name><uri>https://profiles.google.com/104586518034799783278</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-07bIFrlcUWw/AAAAAAAAAAI/AAAAAAAAAAA/IMD0m6paSEI/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_Vn7yjSRlJ4U/SQCYqnd9I-I/AAAAAAAACfU/mkbFvsPEE4k/s72-c/android-emu.jpg" height="72" width="72" /><thr:total>59</thr:total><feedburner:origLink>http://jeanderuelle.blogspot.com/2008/10/jain-sip-is-working-on-top-of-android.html</feedburner:origLink></entry></feed>

