<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3691620912972680962</id><updated>2011-11-24T20:47:46.814-08:00</updated><category term='ss7 ussd mobicents jainslee jslee'/><category term='mobicents diameter SLEE media MMS'/><category term='mobicents diameter IMS'/><category term='SNMP jboss SLEE MSS management'/><category term='JSLEE MMS Media Server'/><category term='opensource diameter mobicents'/><category term='JSLEE maven archetype guide tutorial'/><category term='mobicents media server ss7'/><category term='mobicents meeting brno 2009'/><category term='mobicents slee jsr240'/><title type='text'>Bartosz Baranowski - blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://baranowb.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3691620912972680962/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://baranowb.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>baranowb</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://1.bp.blogspot.com/_K4gvy89DzOw/SqF1MtefrtI/AAAAAAAAA9I/yGuWaOTQIzU/s1600-R/gallery-77805673-500x500.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>22</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3691620912972680962.post-300068130628013427</id><published>2011-11-08T08:35:00.000-08:00</published><updated>2011-11-08T08:40:26.311-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SNMP jboss SLEE MSS management'/><title type='text'>SNMP enabled SLEE !!!</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Sometimes ago we had brainstorm session during regular SLEE core chat. Community users shed some light on real use cases and their expectations with regard to management of live system.&lt;/div&gt;&lt;div style="text-align: left;"&gt;It came out that simple JMX is sometimes not enough. Especially for deployment where some existing third party management tool/application is running.&lt;/div&gt;&lt;div style="text-align: left;"&gt;Community users directed us in direction of SNMP. It came out that some of them tried to enable our containers (or even JBoss) to allow SNMP management, without much luck. So we decided to step in.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Sometime ago &lt;a href="http://jeanderuelle.blogspot.com/"&gt;Jean Deruelle&lt;/a&gt; and Tom Hauser made an effort to bring back JBoss SNMP adaptor. Main goal of their work was to:&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;ul&gt;&lt;li&gt;add SNMP V3 support&lt;/li&gt;&lt;li&gt;add MIB files generator&lt;/li&gt;&lt;li&gt;update adaptor code to AS5&lt;/li&gt;&lt;li&gt;update adaptor code to use netsnmp4j library&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Fruit of their work has been embeded in last MSS release, in &lt;a href="http://sourceforge.net/projects/mobicents/files/Mobicents%20Sip%20Servlets/Mobicents%20Sip%20Servlets%201.6.0.FINAL/"&gt;MSS-1.6&lt;/a&gt;. The 1.6 is first SNMP enabled container from Mobicents family. Documentation for binary adaptor included in MSS can be found&amp;nbsp;&lt;a href="https://docs.jboss.org/author/display/MOBICENTS/SNMP+Adaptor"&gt;here&lt;/a&gt;.&lt;/div&gt;&lt;div style="text-align: left;"&gt;Note that this documentation will change in near future.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Source&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;While first draft (Alpha1) of adaptor and MIB generator were fine for test, it turned out that releasing its source code as binary maven artifact proven to be a problem. So we decided to rework it a bit to be more logical in both structure and deploy process.&lt;/div&gt;&lt;div style="text-align: left;"&gt;Current source can be found &lt;a href="http://mobicents.googlecode.com/svn/trunk/tools/snmp-adaptor/"&gt;here&lt;/a&gt;, along with simple example.&lt;/div&gt;&lt;div style="text-align: left;"&gt;Version 2 source can be found &lt;a href="http://mobicents.googlecode.com/svn/trunk/tools/snmp-adaptor-v2/"&gt;here&lt;/a&gt; and &lt;a href="http://mobicents.googlecode.com/svn/trunk/tools/snmp-mibgen-v2/"&gt;here&lt;/a&gt;. (This may change, I will update post if it does. Proposed source is currently attached to &lt;a href="http://code.google.com/p/mobicents/issues/detail?id=1029"&gt;issue&lt;/a&gt;.)&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Basics&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;SNMP is a simple network management protocol(though its defined in ASN.1). In general SNMP is used to monitor network devices in order to perform two things:&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;ul&gt;&lt;li&gt;monitor and set configuration parameters&lt;/li&gt;&lt;li&gt;monitor state of devices in hope(or not) to receive notification about condition which requires administrative actions&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Detailed protocol description can be found &lt;a href="http://en.wikipedia.org/wiki/Simple_Network_Management_Protocol"&gt;here&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;SNMP identifies devices by using something called M.I.B. . In short MIB is a way of organizing resources. MIB has tree like structure, where each root has non-negative index. Resources in MIB &amp;nbsp;are identified by concatenation of indexes which lead to particular node. Example URI looks as follows:&amp;nbsp;&lt;b&gt;1.0.12.4124.66.8365&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;This URI, has a specific name, which is&amp;nbsp;&lt;span style="background-color: white; color: black; font-family: Arial, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 17px;"&gt;object identifiers&amp;nbsp;or , in short the&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: white; color: black; font-family: Arial, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 17px;"&gt;&lt;b&gt;OID.&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="background-color: white; color: black; font-family: Arial, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 17px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="background-color: white; color: black; font-family: Arial, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 17px;"&gt;OIDs are managed by IANA.&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: white; color: black; font-family: Arial, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 17px;"&gt;The IANA OID registry contains a list of registered entities that use OIDs to reference internal structures (e.g. directory attributes). Each entity is assigned an initial referential value (e.g. 1.3.6.1.4.1.2312 for Red Hat, see&lt;/span&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: Arial, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 17px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;a class="external-link" href="http://www.oid-info.com/get/1.3.6.1.4.1.2312" rel="nofollow" style="background-color: white; color: #005e8f; font-family: Arial, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 17px; outline-color: initial; outline-style: none; outline-width: initial; text-decoration: none;"&gt;http://www.oid-info.com/get/1.3.6.1.4.1.2312&lt;/a&gt;&lt;span style="background-color: white; color: black; font-family: Arial, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 17px;"&gt;) and thereafter the internal numbering plan is up to the entity to define (e.g. 1.3.6.1.4.1.2312.100.1.1&amp;nbsp;might refer to the "ActiveThreadCount" attribute of the JBoss Application Sever). This allows for precise referencing of data attributes in a company or other entity.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;This is very important. It means that OIDs, inside of company/entity leaf of MIB are managed solely by that company/entity. In other words, resources from the same company, have the same referential value and rest can be freely assigned - depening on whim of administrator.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;He can for instance decide that following OIDs have :&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: Arial, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 17px;"&gt;RedHat &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : &amp;nbsp; &amp;nbsp; &amp;nbsp;1.3.6.1.4.1.2312&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: Arial, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 17px;"&gt;RedHat US &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : &amp;nbsp; &amp;nbsp; &amp;nbsp;1.3.6.1.4.1.2312.0&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: Arial, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 17px;"&gt;RedHat US Office 4 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: Arial, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 17px;"&gt;1.3.6.1.4.1.2312.0.4&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, FreeSans, sans-serif; font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="line-height: 17px;"&gt;&lt;span class="Apple-style-span" style="background-color: white; font-size: 13px;"&gt;Office 4 JSLEE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="background-color: white; font-size: 13px;"&gt;1.3.6.1.4.1.2312.0.4.1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, FreeSans, sans-serif; font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="line-height: 17px;"&gt;&lt;span class="Apple-style-span" style="background-color: white; font-size: 13px;"&gt;Office 4 JSLEE Server 1 &amp;nbsp; &amp;nbsp; &amp;nbsp;: &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="background-color: white; font-size: 13px;"&gt;1.3.6.1.4.1.2312.0.4.1.1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, FreeSans, sans-serif; font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="line-height: 17px;"&gt;&lt;span class="Apple-style-span" style="background-color: white; font-size: 13px;"&gt;Office 4 JSLEE Server 2 &amp;nbsp; &amp;nbsp; &amp;nbsp;: &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="background-color: white; font-size: 13px;"&gt;1.3.6.1.4.1.2312.0.4.1.2&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, FreeSans, sans-serif; font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="line-height: 17px;"&gt;&lt;span class="Apple-style-span" style="background-color: white; font-size: 13px;"&gt;Office 4 MSS Server 1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="background-color: white; font-size: 13px;"&gt;1.3.6.1.4.1.2312.0.4.2.1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, FreeSans, sans-serif; font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="line-height: 17px;"&gt;&lt;span class="Apple-style-span" style="background-color: white; font-size: 13px;"&gt;Office 4 MSS Server 2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : &amp;nbsp; &amp;nbsp; &amp;nbsp;1.3.6.1.4.1.2312.0.4.2.2&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;SNMP managed attributes are identified by MIB entries. Each MIB entry has type associated to it. For instance, lets go through the "ActiveThreadCount":&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: Arial, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 17px;"&gt;1.3.6.1.4.1.2312 identifies RedHat(OID type)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: Arial, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 17px;"&gt;1.3.6.1.4.1.2312.100 identifies JBoss appliaction server&lt;/span&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: Arial, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 17px;"&gt;(OID type)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: Arial, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 17px;"&gt;1.3.6.1.4.1.2312.100.1 identifies MBean&lt;/span&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: Arial, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 17px;"&gt;(OID type)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: Arial, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 17px;"&gt;1.3.6.1.4.1.2312.100.1.1 identifies MBean property, which can be managed with SNMP(Integer32 type)&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, FreeSans, sans-serif; font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="line-height: 17px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&amp;nbsp;Detailed information about Management Information Base can be found &lt;a href="http://wikipedia.org/wiki/Management_Information_Base"&gt;here&lt;/a&gt;.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;The playground&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;For this exercise I used single Ubuntu machine. It is possible to use windows, however it has to be 32bit. This limitation exists due to SNMP manager does not support 64bit.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Lets advance step by step with proper setup.&lt;/div&gt;&lt;div style="text-align: left;"&gt;First thing that needs to be addressed are the dependencies for SNMP implementation. Since I had desktop version of Ubuntu (10+) , only dependency I had to install was lib-perldev&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;pre style="background-color: white; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em; text-align: -webkit-auto;"&gt;baranowb@port3:~/tmp$ sudo apt-get install libperl-dev&lt;/pre&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Once dependency is there, we can install SNMP program/daemon. Since there is no precompiled package(and version 5.7 seems to be broken) I went for net-snmp v 5.6.1.1. To get it simply download source(unless there is package now or there is package for your OS):&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;pre style="background-color: white; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em; text-align: -webkit-auto;"&gt;baranowb@port3:~/tmp$ wget http://sourceforge.net/projects/net-snmp/files/net-snmp/5.6.1/net-snmp-5.6.1.1.tar.gz&lt;/pre&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Unpack:&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;pre style="background-color: white; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em; text-align: -webkit-auto;"&gt;baranowb@port3:~/tmp$ tar -xvzf net-snmp-5.6.1.1.tar.gz&lt;/pre&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Configure source build:&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;pre style="background-color: white; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em; text-align: -webkit-auto;"&gt;baranowb@port3:~/tmp$ cd net-snmp-5.6.1.1&lt;br /&gt;baranowb@port3:~/tmp/net-snmp-5.6.1.1$ ./configure&lt;/pre&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;This will run configure script. It will scan OS for all dependencies. Once it is done, it will ask few questions, like location, adminitrator contact, log files folder etc.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;To avoid questioning, you can pass answer as invocation arguments like:&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;pre style="background-color: white; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em; text-align: -webkit-auto;"&gt;baranowb@port3:~/tmp/net-snmp-5.6.1.1$ ./configure --with-default-snmp-version="3" --with-sys-contact="alice@mobicents.org" --with-sys-location="DMZ" &lt;br /&gt;--with-logfile="/var/log/snmpd.log" --with-persistent-directory="/var/net-snmp&lt;/pre&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Once script has completed its execution, it should show frame similar to one below:&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;pre style="background-color: white; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em; text-align: -webkit-auto;"&gt;---------------------------------------------------------&lt;br /&gt;            Net-SNMP configuration summary:&lt;br /&gt;---------------------------------------------------------&lt;br /&gt;&lt;br /&gt;  SNMP Versions Supported:    1 2c 3&lt;br /&gt;  Building for:               linux&lt;br /&gt;  Net-SNMP Version:           5.6.1.1&lt;br /&gt;  Network transport support:  Callback Unix Alias TCP UDP IPv4Base SocketBase TCPBase UDPIPv4Base UDPBase&lt;br /&gt;  SNMPv3 Security Modules:     usm&lt;br /&gt;  Agent MIB code:             default_modules =&amp;gt;  snmpv3mibs mibII ucd_snmp notification notification-log-mib target &lt;br /&gt;agent_mibs agentx disman/event disman/schedule utilities host&lt;br /&gt;  MYSQL Trap Logging:         unavailable&lt;br /&gt;  Embedded Perl support:      enabled&lt;br /&gt;  SNMP Perl modules:          building -- embeddable&lt;br /&gt;  SNMP Python modules:        disabled&lt;br /&gt;  Crypto support from:        internal&lt;br /&gt;  Authentication support:     MD5 SHA1&lt;br /&gt;  Encryption support:         DES AES&lt;br /&gt;&lt;br /&gt;---------------------------------------------------------&lt;/pre&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;This indicates that source can be build. To do so, issue following command:&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;pre style="background-color: white; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em; text-align: -webkit-auto;"&gt;baranowb@port3:~/tmp/net-snmp-5.6.1.1$ make&lt;/pre&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Once compilation sequence is done, SNMP binary is ready to be installed:&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;pre style="background-color: white; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em; text-align: -webkit-auto;"&gt;baranowb@port3:~/tmp/net-snmp-5.6.1.1$ sudo make install&lt;/pre&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Now we are almost ready to have SNMP run. Last step before SNMP configuration magic is to expose *.so objects. Either link libraries to proper place, or add &lt;b&gt;/usr/local/lib &lt;/b&gt;&amp;nbsp;to LD_LIBRARY_PATH. However, if you do the latter, remember, that SNMP programs must run with SU privileges(or specific group).&lt;/div&gt;&lt;div style="text-align: left;"&gt;On my machine, dependencies looked as follows:&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;pre style="background-color: white; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em; text-align: -webkit-auto;"&gt;&lt;div style="font-family: 'Times New Roman'; line-height: normal; text-align: left; white-space: normal;"&gt;&lt;div style="font-family: arial; font-size: small; text-align: -webkit-auto;"&gt;baranowb@port3:/usr/local/&lt;wbr&gt;&lt;/wbr&gt;sbin$ ldd snmptrapd&amp;nbsp;&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; text-align: -webkit-auto;"&gt;&lt;span style="white-space: pre-wrap;"&gt; &lt;/span&gt;linux-vdso.so.1 =&amp;gt; &amp;nbsp;(0x00007fffcefe0000)&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; text-align: -webkit-auto;"&gt;&lt;span style="white-space: pre-wrap;"&gt; &lt;/span&gt;libnetsnmptrapd.so.25 =&amp;gt; /usr/local/lib/&lt;wbr&gt;&lt;/wbr&gt;libnetsnmptrapd.so.25 (0x00007f5400fcf000)&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; text-align: -webkit-auto;"&gt;&lt;span style="white-space: pre-wrap;"&gt; &lt;/span&gt;libnetsnmpmibs.so.25 =&amp;gt; /usr/local/lib/libnetsnmpmibs.&lt;wbr&gt;&lt;/wbr&gt;so.25 (0x00007f5400c35000)&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; text-align: -webkit-auto;"&gt;&lt;span style="white-space: pre-wrap;"&gt; &lt;/span&gt;libnetsnmpagent.so.25 =&amp;gt; /usr/local/lib/&lt;wbr&gt;&lt;/wbr&gt;libnetsnmpagent.so.25 (0x00007f54009cf000)&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; text-align: -webkit-auto;"&gt;&lt;span style="white-space: pre-wrap;"&gt; &lt;/span&gt;libnetsnmp.so.25 =&amp;gt; /usr/local/lib/libnetsnmp.so.&lt;wbr&gt;&lt;/wbr&gt;25 (0x00007f54006e7000)&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; text-align: -webkit-auto;"&gt;&lt;span style="white-space: pre-wrap;"&gt; &lt;/span&gt;libperl.so.5.10 =&amp;gt; /usr/lib/libperl.so.5.10 (0x00007f540035f000)&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; text-align: -webkit-auto;"&gt;&lt;span style="white-space: pre-wrap;"&gt; &lt;/span&gt;libdl.so.2 =&amp;gt; /lib/x86_64-linux-gnu/libdl.&lt;wbr&gt;&lt;/wbr&gt;so.2 (0x00007f540015a000)&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; text-align: -webkit-auto;"&gt;&lt;span style="white-space: pre-wrap;"&gt; &lt;/span&gt;libm.so.6 =&amp;gt; /lib/x86_64-linux-gnu/libm.so.&lt;wbr&gt;&lt;/wbr&gt;6 (0x00007f53ffed5000)&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; text-align: -webkit-auto;"&gt;&lt;span style="white-space: pre-wrap;"&gt; &lt;/span&gt;libpthread.so.0 =&amp;gt; /lib/x86_64-linux-gnu/&lt;wbr&gt;&lt;/wbr&gt;libpthread.so.0 (0x00007f53ffcb7000)&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; text-align: -webkit-auto;"&gt;&lt;span style="white-space: pre-wrap;"&gt; &lt;/span&gt;libc.so.6 =&amp;gt; /lib/x86_64-linux-gnu/libc.so.&lt;wbr&gt;&lt;/wbr&gt;6 (0x00007f53ff922000)&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; text-align: -webkit-auto;"&gt;&lt;span style="white-space: pre-wrap;"&gt; &lt;/span&gt;libcrypt.so.1 =&amp;gt; /lib/x86_64-linux-gnu/&lt;wbr&gt;&lt;/wbr&gt;libcrypt.so.1 (0x00007f53ff6e9000)&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; text-align: -webkit-auto;"&gt;&lt;span style="white-space: pre-wrap;"&gt; &lt;/span&gt;/lib64/ld-linux-x86-64.so.2 (0x00007f54011dc000)&lt;/div&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;div style="font-family: arial; font-size: small; text-align: -webkit-auto;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;To verify if everything is properly setup, try following:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: white; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em; text-align: -webkit-auto;"&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;baranowb@port3:/usr/local/&lt;wbr&gt;&lt;/wbr&gt;sbin$ snmptrapd &amp;nbsp;--version&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;NET-SNMP Version: &amp;nbsp;5.6.1.1&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;Web: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;a href="http://www.net-snmp.org/" target="_blank"&gt;http://www.net-snmp.org/&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;Email: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;a href="mailto:net-snmp-coders@lists.sourceforge.net" target="_blank"&gt;net-snmp-coders@lists.&lt;wbr&gt;&lt;/wbr&gt;sourceforge.net&lt;/a&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;Now what we need is JBoss, SLEE, adaptor and some specific setup. To get JBoss go &lt;a href="http://sourceforge.net/projects/jboss/files/JBoss/JBoss-5.1.0.GA/"&gt;here&lt;/a&gt; and download proper version. To get SLEE up and running, follow instructions found&amp;nbsp;&lt;a href="http://docs.jboss.org/mobicents/jain-slee/2.5.0.FINAL/container/user-guide/en-US/html_single/"&gt;here&lt;/a&gt;(or simply download binary release from &lt;a href="http://sourceforge.net/projects/mobicents/files/Mobicents%20JAIN%20SLEE%20Server/"&gt;here&lt;/a&gt;.)&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;br /&gt;Once SLEE is up and you ensure it can run, it's time to brew some notifications from SLEE. By default SLEE emits notifications on following:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;SLEE container state changes&lt;/li&gt;&lt;li&gt;alarm is beeing emited&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Obviously, the first one is useful kind, however lets add some complexity to this exercise and brew some alarm. To emit alarm, I would advise to create simple Service with single SBB, which on ServiceStartedEvent and possibly on ActivityEndEvent(service activity) will raise alarm. In my test I processed only ServiceStartedEvent. My SBB looks as follows:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: js"&gt;package test;&lt;br /&gt;import javax.slee.*;&lt;br /&gt;import org.mobicents.slee.SbbContextExt;&lt;br /&gt;public abstract class AlarmExampleSbb implements javax.slee.Sbb {&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;public void onServiceStartedEvent(ServiceStartedEvent event, ActivityContextInterface aci) {&lt;br /&gt;  sbbContext.getTracer(getClass().getSimpleName()).warning("Service activated, now rising alarm.");&lt;br /&gt;  this.sbbContext.getAlarmFacility().raiseAlarm("ImportantAlarm", ""+this.sbbContext.getSbb(), AlarmLevel.INDETERMINATE, "Im just alarming, cause I've been started", new IllegalSelectorException());&lt;br /&gt; }&lt;br /&gt;public void setSbbContext(SbbContext context) {&lt;br /&gt;  sbbContext = (SbbContextExt) context;&lt;br /&gt; }&lt;br /&gt;public void unsetSbbContext() {&lt;br /&gt;  this.sbbContext = null;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;public void sbbCreate() throws javax.slee.CreateException {}&lt;br /&gt; public void sbbPostCreate() throws javax.slee.CreateException {}&lt;br /&gt; public void sbbActivate() {}&lt;br /&gt; public void sbbPassivate() {}&lt;br /&gt; public void sbbRemove() {}&lt;br /&gt; public void sbbLoad() {}&lt;br /&gt; public void sbbStore() {}&lt;br /&gt; public void sbbExceptionThrown(Exception exception, Object event, ActivityContextInterface activity) {}&lt;br /&gt; public void sbbRolledBack(RolledBackContext context) {}&lt;br /&gt;private SbbContextExt sbbContext; // This SBB's SbbContext&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The SBB descriptor is very simple, it looks as follows:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: js"&gt;&lt;sbb-jar&gt;&lt;br /&gt;    &lt;sbb&gt;&lt;br /&gt;        &lt;sbb-name&gt;SNMPTest&lt;/sbb-name&gt;&lt;br /&gt;        &lt;sbb-vendor&gt;org.mobicents&lt;/sbb-vendor&gt;&lt;br /&gt;        &lt;sbb-version&gt;1.0&lt;/sbb-version&gt;&lt;br /&gt;     &lt;br /&gt;        &lt;sbb-classes&gt;&lt;br /&gt;            &lt;sbb-abstract-class reentrant="True"&gt;&lt;br /&gt;                &lt;sbb-abstract-class-name&gt;test.AlarmExampleSbb&lt;/sbb-abstract-class-name&gt;&lt;br /&gt;            &lt;/sbb-abstract-class&gt;&lt;br /&gt;        &lt;/sbb-classes&gt;&lt;br /&gt;        &lt;br /&gt;        &lt;event event-direction="Receive" initial-event="True"&gt;&lt;br /&gt;      &lt;event-name&gt;ServiceStartedEvent&lt;/event-name&gt;&lt;br /&gt;    &lt;event-type-ref&gt;&lt;br /&gt;        &lt;event-type-name&gt;&lt;br /&gt;   javax.slee.serviceactivity.ServiceStartedEvent&lt;br /&gt;        &lt;/event-type-name&gt;&lt;br /&gt;        &lt;event-type-vendor&gt;javax.slee&lt;/event-type-vendor&gt;&lt;br /&gt;        &lt;event-type-version&gt;1.1&lt;/event-type-version&gt;&lt;br /&gt;    &lt;/event-type-ref&gt;&lt;br /&gt;      &lt;initial-event-select variable="ActivityContext"&gt;&lt;br /&gt; &lt;/initial-event-select&gt;&lt;/event&gt;&lt;br /&gt;&lt;br /&gt;    &lt;/sbb&gt;&lt;br /&gt;&lt;/sbb-jar&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;However to kickstart everything as fast as possible, you could simply edit one of existing examples, like &lt;b&gt;sip-uas&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&amp;nbsp;SNMP and MIB magic&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;Above concludes steps on SLEE side, atleast for simple setup. Now SNMP adaptor has to be configured. For this I did not use current trunk, nor I did use binary version. This is because trunk version had some errors(fixed already) in poms . On top of that there have been some MSS modifications in configuration files. Which rendered that source a bit useless outside MSS. After sometime I just decided to go highway and hack around/fix that.&lt;br /&gt;&lt;br /&gt;Reason against binary version available from jboss wiki is that it.... was wrong, for some reason it had bad version linked(should be fixed shortly).&lt;br /&gt;&lt;br /&gt;Ok, to get it running, simply download source from our repository(links at the beginning of this article) or get it from patches. This source is pure JBoss SNMP adaptor, it has no setup ready for SLEE. This is our task now, to bring this up to speed.&lt;br /&gt;&lt;br /&gt;For sake of beeing complete, in step by step setup, I will explain how to modify this source to enable SLEE. In general case, you would use preset that we have for SLEE. I will write simple article about setup in following days.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now, first thing we need to do, is to identify resources we want to expose, resources that can be exposed to SNMP management. In JSLEE we have few sets of MBeans present for management purposes.&lt;br /&gt;That is:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;javax.slee.management.* &amp;nbsp;- all standard MBeans&lt;/li&gt;&lt;li&gt;org.mobicents &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;- mobicents specific MBeans&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Now, we need to identify one weakness in SNMP - it allows to manage configuration, that is access and set value of MBean attributes. It does not allow to invoke methods like "clearAlarms(String type);". So by default, without some hack, we will be able to manage limited subset of SLEE configuration. However it should be enough for a jump start.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;First thing that has to be done before we can create config files for adaptor is to come up with MIB scheme.&lt;/div&gt;&lt;div&gt;Obviously we should reuse RedHat referential value: "&lt;span class="Apple-style-span" style="background-color: white; font-family: Arial, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 17px;"&gt;&lt;b&gt;1.3.6.1.4.1.2312".&lt;/b&gt;&amp;nbsp; Our MIBs will start with this prefix. For sake of simplicity, lets assume we dont have to divide MIB to provide distinction between countries, offices, buildings etc. In other word we have flat MIB space. Now lets assume following:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: Arial, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 17px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, FreeSans, sans-serif; font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="line-height: 17px;"&gt;.1.3.6.1.4.1.2312.101 - identifies Mobicents/JBCP&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, FreeSans, sans-serif; font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="line-height: 17px;"&gt;.1.3.6.1.4.1.2312.101.1 - indentifies server 1&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, FreeSans, sans-serif; font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="line-height: 17px;"&gt;.1.3.6.1.4.1.2312.101.1.100 - identifies MBeans from javax.slee.management group&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, FreeSans, sans-serif; font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="line-height: 17px;"&gt;.1.3.6.1.4.1.2312.101.1.200 - identifies MBeans from org.mobicents group&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, FreeSans, sans-serif; font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="line-height: 17px;"&gt;.1.3.6.1.4.1.2312.101.1.300 - identifies MBeans specific for deployed application(if ever used)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Having above in mind, we can create 'attributes.xml' which suits our needs - that is to expose SLEE information. Lets assume we are good with Alarm and Platform information. So, lets define the file:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: js"&gt;&lt;attribute-mappings&gt;&lt;br /&gt;   &lt;br /&gt;   &lt;mbean definition-name="sleeManagement" name="javax.slee.management:name=SleeManagement" oid-prefix=".1.3.6.1.4.1.2312.101.1.100.1"&gt;&lt;br /&gt;      &lt;attribute max-access="read-only" mode="r" name="State" oid=".1" snmp-type="OCTETSTRING"&gt;&lt;br /&gt;      &lt;attribute max-access="read-only" mode="r" name="SleeName" oid=".2" snmp-type="OCTETSTRING"&gt;&lt;br /&gt;      &lt;attribute max-access="read-only" mode="r" name="SleeVendor" oid=".3" snmp-type="OCTETSTRING"&gt;&lt;br /&gt;      &lt;attribute max-access="read-only" mode="r" name="SleeVersion" oid=".4" snmp-type="OCTETSTRING"&gt;&lt;br /&gt;      &lt;attribute max-access="read-only" mode="r" name="Subsystems" oid=".5.1" table="true"&gt;&lt;br /&gt;   &lt;/attribute&gt;&lt;/attribute&gt;&lt;/attribute&gt;&lt;/attribute&gt;&lt;/attribute&gt;&lt;/mbean&gt;&lt;br /&gt;   &lt;br /&gt;   &lt;mbean definition-name="alarmManagement" name="javax.slee.management:name=Alarm" oid-prefix=".1.3.6.1.4.1.2312.101.1.100.2"&gt;&lt;br /&gt;      &lt;attribute max-access="read-only" mode="r" name="Alarms" oid=".1" table="true"&gt;&lt;br /&gt;   &lt;/attribute&gt;&lt;/mbean&gt;&lt;br /&gt;&lt;br /&gt;&lt;/attribute-mappings&gt;&lt;br /&gt;&lt;/pre&gt;Now lets examine the file. We have definition of two MBeans. Each &lt;i&gt;mbean &lt;/i&gt;entry has following:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;name - this attribute identifies MBean, it has to map to specific MBean or set(in case name contains wildcards)&lt;/li&gt;&lt;li&gt;oid-prefix - the OID assocaited with this MBean or MBean set&lt;/li&gt;&lt;li&gt;definition-name - human readable name. It can be used to avoid using &lt;i&gt;oid-prefix&lt;/i&gt;&amp;nbsp;in command line queries&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Each &lt;i&gt;mbean &lt;/i&gt;element has child elements of type &lt;i&gt;attribute&lt;/i&gt;. Child has following type of atrributes:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;name - name of MBean attribute. It maps directly to getter/setter - follow java bean attributes pattern.&lt;/li&gt;&lt;li&gt;oid - oid suffix which will be appended to &lt;i&gt;oid-prefix&lt;/i&gt;. In case of array/collection types, indended value has to be appended with '&lt;i&gt;.1'&lt;/i&gt;. For instance &lt;i&gt;SleeState&lt;/i&gt; can have oid='.1', but&amp;nbsp;&lt;i&gt;Subsystems&lt;/i&gt; will have oid='.5.1'.&amp;nbsp;&lt;/li&gt;&lt;li&gt;mode and max-access (reduntant, I know, this should be cleared in next source iteration) - determine type of attribute access mode=[ro|rw] and max-access=[read-only, read-write]&lt;/li&gt;&lt;li&gt;snmp-type - indicates type of attribute, check ASN.1 types( OCTET STRING, BIT STRING, etc...)&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Above code snippet defines two MBeans as MIB accessible resources. For &lt;i&gt;SleeManagement &lt;/i&gt;MBean it resrves OID='.1.3.6.1.4.1.2312.101.1.100.1' and for &lt;i&gt;Alarm&amp;nbsp;&lt;/i&gt;&amp;nbsp;it reserves OID='.1.3.6.1.4.1.2312.101.1.100.2'. There is nothing special about this setup, so lets move to notifications.&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;i&gt;One very important limitation, is that notification can be mapped only to resource already existing in MIB. In short, there has to be definition of resource in 'attributes.xml' in order to have definition of notification.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Lets assume we want to receive SNMP trap/info for all SLEE basic notifications. So we want to map notification from &lt;i&gt;SleeManagement&lt;/i&gt; and &lt;i&gt;Alarm &lt;/i&gt;MBeans. This can be achieved with following:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;pre class="brush: js"&gt;&lt;notification-map-list&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;   &lt;br /&gt;  &lt;br /&gt;  &lt;mapping enterprise=".1.3.6.1.4.1.2312.101.1.100.1" generic="6" name="sleeManagement" notification-type="javax.slee.management.sleestatechange" security-name="TEST" specific="10"&gt;&lt;br /&gt;    &lt;var-bind-list wrapper-class="org.mobicents.slee.tools.snmp.SleeStateNotificationWrapperSupport"&gt;&lt;br /&gt;     &lt;var-bind oid="1.3.6.1.4.1.2312.101.1.100.1.101" tag="n:oldState" type="OCTET STRING"&gt;&lt;br /&gt;       &lt;var-bind oid="1.3.6.1.4.1.2312.101.1.100.1.102" tag="n:newState" type="OCTET STRING"&gt;&lt;br /&gt;    &lt;/var-bind&gt;&lt;/var-bind&gt;&lt;/var-bind-list&gt;               &lt;br /&gt;  &lt;/mapping&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;       &lt;br /&gt;  &lt;mapping enterprise=".1.3.6.1.4.1.2312.101.1.100.2" generic="6" inform="true" name="alarmManagement" notification-type="javax.slee.management.alarm.*" security-name="TEST" specific="11"&gt;&lt;br /&gt;    &lt;var-bind-list wrapper-class="org.mobicents.slee.tools.snmp.AlarmNotificationWrapperSupport"&gt; &lt;br /&gt;      &lt;var-bind oid="1.3.6.1.4.1.2312.101.1.100.2.101" tag="n:source" type="OCTET STRING"&gt;&lt;br /&gt;      &lt;var-bind oid="1.3.6.1.4.1.2312.101.1.100.2.102" tag="n:level" type="OCTET STRING"&gt;&lt;br /&gt;      &lt;var-bind oid="1.3.6.1.4.1.2312.101.1.100.2.103" tag="n:instanceId" type="OCTET STRING"&gt;&lt;br /&gt;      &lt;var-bind oid="1.3.6.1.4.1.2312.101.1.100.2.104" tag="n:id" type="OCTET STRING"&gt;&lt;br /&gt;      &lt;var-bind oid="1.3.6.1.4.1.2312.101.1.100.105" tag="n:type" type="OCTET STRING"&gt;&lt;br /&gt;    &lt;/var-bind&gt;&lt;/var-bind&gt;&lt;/var-bind&gt;&lt;/var-bind&gt;&lt;/var-bind&gt;&lt;/var-bind-list&gt;               &lt;br /&gt;  &lt;/mapping&gt;&lt;br /&gt;  &lt;br /&gt;&lt;/notification-map-list&gt;&lt;br /&gt;&lt;/pre&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;Notification mapping file is not hard to understand. Each mapping has following attributes:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;name - name identifying this entry, in general it should match 'definition-name'&lt;/li&gt;&lt;li&gt;notification-type - regular expression which should find match in Notification.getType() value&lt;/li&gt;&lt;li&gt;enterprise - the OID, it MUST match oid-prefix of MBean in 'attributes.xml'&lt;/li&gt;&lt;li&gt;generic and specific - SNMP metadata, check &lt;a href="http://publib.boulder.ibm.com/infocenter/zvm/v5r4/index.jsp?topic=/com.ibm.zvm.v54.kijl0/trp.htm"&gt;this&lt;/a&gt; for explanation.&lt;/li&gt;&lt;li&gt;inform - optional boolean attribute, if present and set to &lt;b&gt;true&lt;/b&gt;, notification is converted to SNMP &lt;i&gt;inform&lt;/i&gt;, not &lt;i&gt;trap&lt;/i&gt;&lt;/li&gt;&lt;li&gt;security-name - name of user to match entry in 'users.xml'&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;What is interesting is defined in &lt;i&gt;mbean &lt;/i&gt;&amp;nbsp;child elements. The&amp;nbsp;&lt;i&gt;var-bind-list&lt;/i&gt;&amp;nbsp;declares actual binding of notification data to SNMP world. The&amp;nbsp;&lt;i&gt;var-bind-list&lt;/i&gt; has single attribute, the&amp;nbsp;&lt;i&gt;wrapper-class. &lt;/i&gt;&amp;nbsp;This attribute must be set to class name of a class which implements &lt;b&gt;org.jboss.jmx.adaptor.snmp.agent.NotificationWrapper &lt;/b&gt;( by default its&amp;nbsp;&lt;b&gt;org.jboss.jmx.adaptor.snmp.agent.NotificationWrapperSupport&lt;/b&gt;&amp;nbsp;)&lt;b&gt;. &amp;nbsp;&lt;/b&gt;Default class handles conversion of common notification data.&amp;nbsp;&amp;nbsp;It binds following data to tag( tag is a logical name, its similar in meanig to &lt;i&gt;association-name&lt;/i&gt;):&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;table class="confluenceTable" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: none; background-origin: initial; border-collapse: collapse; clear: left; color: #333333; font-family: Arial, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 17px; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;tbody&gt;&lt;tr style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; font-size: 10pt; line-height: 13pt;"&gt;&lt;th class="confluenceTh" style="background-color: #f0f0f0; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; color: black; font-size: 10pt; line-height: 13pt; min-width: 0.6em; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; vertical-align: top;"&gt;Tag&lt;/th&gt;&lt;th class="confluenceTh" style="background-color: #f0f0f0; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; color: black; font-size: 10pt; line-height: 13pt; min-width: 0.6em; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; vertical-align: top;"&gt;Description&lt;/th&gt;&lt;/tr&gt;&lt;tr style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; font-size: 10pt; line-height: 13pt;"&gt;&lt;td class="confluenceTd" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; font-size: 10pt; line-height: 13pt; min-width: 0.6em; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; vertical-align: top;"&gt;n:message&amp;nbsp;&amp;nbsp;&lt;/td&gt;&lt;td class="confluenceTd" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; font-size: 10pt; line-height: 13pt; min-width: 0.6em; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; vertical-align: top;"&gt;javax.management.Notification.getMessage()&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; font-size: 10pt; line-height: 13pt;"&gt;&lt;td class="confluenceTd" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; font-size: 10pt; line-height: 13pt; min-width: 0.6em; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; vertical-align: top;"&gt;n:sequenceNumber&amp;nbsp;&amp;nbsp;&lt;/td&gt;&lt;td class="confluenceTd" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; font-size: 10pt; line-height: 13pt; min-width: 0.6em; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; vertical-align: top;"&gt;javax.management.Notification.getSequenceNumber()&amp;nbsp;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; font-size: 10pt; line-height: 13pt;"&gt;&lt;td class="confluenceTd" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; font-size: 10pt; line-height: 13pt; min-width: 0.6em; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; vertical-align: top;"&gt;n:timeStamp&amp;nbsp;&amp;nbsp;&lt;/td&gt;&lt;td class="confluenceTd" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; font-size: 10pt; line-height: 13pt; min-width: 0.6em; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; vertical-align: top;"&gt;javax.management.Notification.getTimestamp()&amp;nbsp;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; font-size: 10pt; line-height: 13pt;"&gt;&lt;td class="confluenceTd" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; font-size: 10pt; line-height: 13pt; min-width: 0.6em; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; vertical-align: top;"&gt;n:type&amp;nbsp;&amp;nbsp;&lt;/td&gt;&lt;td class="confluenceTd" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; font-size: 10pt; line-height: 13pt; min-width: 0.6em; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; vertical-align: top;"&gt;javax.management.Notification.getType()&amp;nbsp;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; font-size: 10pt; line-height: 13pt;"&gt;&lt;td class="confluenceTd" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; font-size: 10pt; line-height: 13pt; min-width: 0.6em; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; vertical-align: top;"&gt;n:all&amp;nbsp;&amp;nbsp;&lt;/td&gt;&lt;td class="confluenceTd" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; font-size: 10pt; line-height: 13pt; min-width: 0.6em; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; vertical-align: top;"&gt;javax.management.Notification.toString()&amp;nbsp;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; font-size: 10pt; line-height: 13pt;"&gt;&lt;td class="confluenceTd" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; font-size: 10pt; line-height: 13pt; min-width: 0.6em; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; vertical-align: top;"&gt;n:class&amp;nbsp;&amp;nbsp;&lt;/td&gt;&lt;td class="confluenceTd" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; font-size: 10pt; line-height: 13pt; min-width: 0.6em; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; vertical-align: top;"&gt;javax.management.Notification.getClass().getName()&amp;nbsp;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; font-size: 10pt; line-height: 13pt;"&gt;&lt;td class="confluenceTd" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; font-size: 10pt; line-height: 13pt; min-width: 0.6em; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; vertical-align: top;"&gt;a:startTime&amp;nbsp;&amp;nbsp;&lt;/td&gt;&lt;td class="confluenceTd" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; font-size: 10pt; line-height: 13pt; min-width: 0.6em; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; vertical-align: top;"&gt;snmp agent/adaptor start time&amp;nbsp;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; font-size: 10pt; line-height: 13pt;"&gt;&lt;td class="confluenceTd" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; font-size: 10pt; line-height: 13pt; min-width: 0.6em; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; vertical-align: top;"&gt;a:uptime&amp;nbsp;&amp;nbsp;&lt;/td&gt;&lt;td class="confluenceTd" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; font-size: 10pt; line-height: 13pt; min-width: 0.6em; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; vertical-align: top;"&gt;snmp agent/adaptor up time&amp;nbsp;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; font-size: 10pt; line-height: 13pt;"&gt;&lt;td class="confluenceTd" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; font-size: 10pt; line-height: 13pt; min-width: 0.6em; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; vertical-align: top;"&gt;a:trapCount&amp;nbsp;&amp;nbsp;&lt;/td&gt;&lt;td class="confluenceTd" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; font-size: 10pt; line-height: 13pt; min-width: 0.6em; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; vertical-align: top;"&gt;snmp agent/adaptor trap count&amp;nbsp;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; font-size: 10pt; line-height: 13pt;"&gt;&lt;td class="confluenceTd" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; font-size: 10pt; line-height: 13pt; min-width: 0.6em; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; vertical-align: top;"&gt;u:&lt;user-defined-tag&gt;&lt;/user-defined-tag&gt;&lt;/td&gt;&lt;td class="confluenceTd" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; font-size: 10pt; line-height: 13pt; min-width: 0.6em; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; vertical-align: top;"&gt;looked-up in n.getUserData()&amp;nbsp;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Non standard binding can be defined as child elements of &lt;i&gt;var-bind-list &lt;/i&gt;as &lt;i&gt;var-bind&lt;/i&gt;. Each &lt;i&gt;var-bind&lt;/i&gt;&amp;nbsp;element creates binding for some attribute. The binding has following data which describes it:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;oid - full OID identifying this variable. (NOTE: compare OID of bindings, to &lt;i&gt;enterprise&lt;/i&gt;&amp;nbsp;value and value of &lt;i&gt;oid-prefix&lt;/i&gt;&amp;nbsp;of MBean definition in &lt;i&gt;attributes.xml)&lt;/i&gt;&lt;/li&gt;&lt;li&gt;tag - logical name of binding. It follows pattern [a|u|n]:beanAttributeName&lt;/li&gt;&lt;li&gt;type - ASN.1/SNMP data type&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;The tag value (beanAttributeName) is in general name of attribute(follows java bean convention).&lt;/div&gt;&lt;div&gt;Now depending on tag prefix, name has different meaning:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;a - following name must be a name of MBean attribute. The &lt;i&gt;oid &lt;/i&gt;&amp;nbsp;MUST match one defined in &lt;i&gt;attributes.xml&lt;/i&gt;.&amp;nbsp;&lt;/li&gt;&lt;li&gt;u - the &lt;i&gt;prefix:name &lt;/i&gt;&amp;nbsp;is looked up in Notification.getUserData() (only in case it contains java.util.Map instance) and copied to payload. For this type of tag, the &lt;i&gt;oid &lt;/i&gt;&amp;nbsp;must not have to match existing attribute, &amp;nbsp;MIB entry with this OID will be created( by generator )&lt;/li&gt;&lt;li&gt;n - name following this prefix must be a valid java bean attribute of notification class. As in case of &lt;i&gt;u&lt;/i&gt;&amp;nbsp;the OID must not match existing attribute.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Now what is interesting in above example, is that it does not use standard &lt;i&gt;wrapper-class &lt;/i&gt;&amp;nbsp;and defines some non standard &lt;i&gt;var-bind&lt;/i&gt;s. Lets see how custom wrapper handles conversion:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: js"&gt;package org.mobicents.slee.tools.snmp;&lt;br /&gt;&lt;br /&gt;import javax.management.Notification;&lt;br /&gt;import javax.slee.management.AlarmNotification;&lt;br /&gt;&lt;br /&gt;import org.jboss.jmx.adaptor.snmp.agent.NotificationWrapperSupport;&lt;br /&gt;/**&lt;br /&gt; * Simple implementation of wrapper support. It fetches all data from Alarm notification and encodes it as&lt;br /&gt; * @author baranowb&lt;br /&gt; *&lt;br /&gt; */&lt;br /&gt;public class AlarmNotificationWrapperSupport extends NotificationWrapperSupport {&lt;br /&gt;&lt;br /&gt; // Agent properties&lt;br /&gt; public static final String NOTIFICATION_SRC_TAG = "n:source";&lt;br /&gt; public static final String ALARM_LEVEL_TAG = "n:level";&lt;br /&gt; public static final String INSTANCE_ID_TAG = "n:instanceId";&lt;br /&gt; public static final String ALARM_ID_TAG = "n:id";&lt;br /&gt; public static final String ALARM_TYPE_TAG = "n:type";&lt;br /&gt; &lt;br /&gt;   &lt;br /&gt; &lt;br /&gt; public AlarmNotificationWrapperSupport() {&lt;br /&gt;  // TODO Auto-generated constructor stub&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; @Override&lt;br /&gt; public void prime(Notification n) {&lt;br /&gt;  if( !(n instanceof AlarmNotification) )&lt;br /&gt;  {&lt;br /&gt;   throw new IllegalArgumentException("Wrong type of notification!");&lt;br /&gt;  }&lt;br /&gt;  //trigger super, so it puts all the data...&lt;br /&gt;  super.prime(n);&lt;br /&gt;  //now put our specific data&lt;br /&gt;  AlarmNotification an = (AlarmNotification) n;&lt;br /&gt;  //remember, we may get v1 alarms... which dont have certain fields!&lt;br /&gt;  //simply divide... this will bring less chaos!&lt;br /&gt;  &lt;br /&gt;  //current version of adaptor does not clean payload...&lt;br /&gt;  super.payload.remove(NOTIFICATION_SRC_TAG);&lt;br /&gt;  super.payload.remove(ALARM_LEVEL_TAG);&lt;br /&gt;  super.payload.remove(INSTANCE_ID_TAG);&lt;br /&gt;  super.payload.remove(ALARM_ID_TAG);&lt;br /&gt;  super.payload.remove(ALARM_TYPE_TAG);&lt;br /&gt;  &lt;br /&gt;  if(an.getNotificationSource()==null)&lt;br /&gt;  {&lt;br /&gt;   //1.0 - it does not set NS, however 1.1 alarm sets alarmSource to NS!&lt;br /&gt;   super.payload.put(NOTIFICATION_SRC_TAG, an.getAlarmSource().toString());&lt;br /&gt;   super.payload.put(ALARM_LEVEL_TAG, an.getLevel().toString());&lt;br /&gt;  }else&lt;br /&gt;  {&lt;br /&gt;   //1.1&lt;br /&gt;   super.payload.put(NOTIFICATION_SRC_TAG, an.getNotificationSource().toString());&lt;br /&gt;   super.payload.put(ALARM_LEVEL_TAG, an.getAlarmLevel().toString());&lt;br /&gt;   super.payload.put(INSTANCE_ID_TAG, an.getInstanceID());&lt;br /&gt;   super.payload.put(ALARM_ID_TAG, an.getAlarmID());&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;  //common part.&lt;br /&gt;  super.payload.put(ALARM_TYPE_TAG, an.getAlarmType());&lt;br /&gt;  if(an.getCause()!=null)&lt;br /&gt;  {&lt;br /&gt;   //TODO: add throwable conversion ?&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Having our magic classes and configuration files ready, we can start thinking on proper deployment.&lt;br /&gt;First thing is to build mib-gen( the dev version has artifacts version set to 5.1.1-SNAPSHOT).&lt;br /&gt;Change directory to snmp-mibgen(or whatever it is called localy) and simply issue maven order:&lt;br /&gt;&lt;pre style="background-color: white; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em; text-align: -webkit-auto;"&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;baranowb@port3:~/workspace/&lt;wbr&gt;&lt;/wbr&gt;snmp-mibgen$ mvn install&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] Scanning for projects...&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] Reactor build order:&amp;nbsp;&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] &amp;nbsp; SNMP MIB Parent&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] &amp;nbsp; MIB Generator&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] &amp;nbsp; MIB Generator Maven Plugin&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] ------------------------------&lt;wbr&gt;&lt;/wbr&gt;------------------------------&lt;wbr&gt;&lt;/wbr&gt;------------&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] Building SNMP MIB Parent&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] &amp;nbsp; &amp;nbsp;task-segment: [install]&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] ------------------------------&lt;wbr&gt;&lt;/wbr&gt;------------------------------&lt;wbr&gt;&lt;/wbr&gt;------------&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] [site:attach-descriptor {execution: default-attach-descriptor}]&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] [install:install {execution: default-install}]&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] Installing /home/baranowb/workspace/snmp-&lt;wbr&gt;&lt;/wbr&gt;mibgen/pom.xml to /home/baranowb/.m2/repository/&lt;wbr&gt;&lt;/wbr&gt;org/jboss/jbossas/snmp/mib/&lt;wbr&gt;&lt;/wbr&gt;parent/5.1.1-SNAPSHOT/parent-&lt;wbr&gt;&lt;/wbr&gt;5.1.1-SNAPSHOT.pom&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] ------------------------------&lt;wbr&gt;&lt;/wbr&gt;------------------------------&lt;wbr&gt;&lt;/wbr&gt;------------&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] Building MIB Generator&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] &amp;nbsp; &amp;nbsp;task-segment: [install]&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] ------------------------------&lt;wbr&gt;&lt;/wbr&gt;------------------------------&lt;wbr&gt;&lt;/wbr&gt;------------&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] [resources:resources {execution: default-resources}]&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;...&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] ------------------------------&lt;wbr&gt;&lt;/wbr&gt;------------------------------&lt;wbr&gt;&lt;/wbr&gt;------------&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] Building MIB Generator Maven Plugin&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] &amp;nbsp; &amp;nbsp;task-segment: [install]&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] ------------------------------&lt;wbr&gt;&lt;/wbr&gt;------------------------------&lt;wbr&gt;&lt;/wbr&gt;------------&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] [plugin:descriptor {execution: default-descriptor}]&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;...&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] ------------------------------&lt;wbr&gt;&lt;/wbr&gt;------------------------------&lt;wbr&gt;&lt;/wbr&gt;------------&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] Reactor Summary:&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] ------------------------------&lt;wbr&gt;&lt;/wbr&gt;------------------------------&lt;wbr&gt;&lt;/wbr&gt;------------&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] SNMP MIB Parent ..............................&lt;wbr&gt;&lt;/wbr&gt;......... SUCCESS [1.591s]&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] MIB Generator ..............................&lt;wbr&gt;&lt;/wbr&gt;........... SUCCESS [5.658s]&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] MIB Generator Maven Plugin ............................ SUCCESS [1.973s]&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] ------------------------------&lt;wbr&gt;&lt;/wbr&gt;------------------------------&lt;wbr&gt;&lt;/wbr&gt;------------&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] ------------------------------&lt;wbr&gt;&lt;/wbr&gt;------------------------------&lt;wbr&gt;&lt;/wbr&gt;------------&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] BUILD SUCCESSFUL&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] ------------------------------&lt;wbr&gt;&lt;/wbr&gt;------------------------------&lt;wbr&gt;&lt;/wbr&gt;------------&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] Total time: 9 seconds&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] Finished at: Tue Nov 08 16:11:25 CET 2011&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] Final Memory: 46M/578M&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] ------------------------------&lt;wbr&gt;&lt;/wbr&gt;------------------------------&lt;wbr&gt;&lt;/wbr&gt;------------&lt;/div&gt;&lt;/pre&gt;Once maven is done. Switch to&lt;i&gt; snmp-adaptor&lt;/i&gt; directory and edit &lt;i&gt;notifications.xml &lt;/i&gt;&amp;nbsp;and &lt;i&gt;attributes.xml&lt;/i&gt;&amp;nbsp;files. Put there snippets outlined above. Those files can be found in &lt;i&gt;snmp-adaptor/adaptor-service/src/main/resources.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Last thing you need to do, is to edit &lt;i&gt;jboss-service.xml&lt;/i&gt; to instruct adaptor how to behave. Edit this file, search for following snippet:&lt;br /&gt;&lt;pre class="brush: js"&gt;&lt;attribute name="SubscriptionList"&gt;&lt;br /&gt;      &lt;subscription-list&gt;&lt;br /&gt;        &lt;br /&gt;        &lt;mbean name="jboss.jmx:name=SnmpAgent,service=snmp,type=adaptor"&gt;&lt;br /&gt;          &lt;notification type="jboss.snmp.agent.coldstart"&gt;&lt;br /&gt;        &lt;/notification&gt;&lt;/mbean&gt;&lt;br /&gt;        &lt;br /&gt;        &lt;mbean name="jboss.jmx:name=SnmpAgent,service=timer,type=heartbeat"&gt;&lt;br /&gt;          &lt;notification type="jboss.snmp.agent.heartbeat"&gt;&lt;br /&gt;        &lt;/notification&gt;&lt;/mbean&gt;&lt;br /&gt;        &lt;mbean name="jboss.cache:service=Cache,config=*"&gt;&lt;br /&gt;         &lt;notification type="org.jboss.cache.ViewChanged"&gt;&lt;br /&gt;        &lt;/notification&gt;&lt;/mbean&gt;      &lt;br /&gt;       &lt;br /&gt;      &lt;/subscription-list&gt;&lt;br /&gt;    &lt;/attribute&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Edit it and append following declaration:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: js"&gt;&lt;mbean name="javax.slee.management:name=Alarm"&gt;&lt;br /&gt;         &lt;notification type="javax.slee.management.alarm"&gt;&lt;br /&gt;        &lt;/notification&gt;&lt;/mbean&gt;&lt;br /&gt;        &lt;mbean name="javax.slee.management:name=SleeManagement"&gt;&lt;br /&gt;         &lt;notification type="javax.slee.management.SleeStateChangeNotification"&gt;&lt;br /&gt;        &lt;/notification&gt;&lt;/mbean&gt;            &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;This will instruct Adapter to do following:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&amp;nbsp; try to register to declared MBeans as NotificationListener&lt;/li&gt;&lt;li&gt;if &amp;nbsp;&lt;i&gt;DynamicSubscriptions&lt;/i&gt;&amp;nbsp;attribute is set to true, it will will try to register as NotificationListener once declared MBeans are available&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;One important remark here, note that there is &lt;i&gt;notification&lt;/i&gt;&amp;nbsp;element. It has attribute &lt;i&gt;type&lt;/i&gt;. This attribute value is used as filter for notification. Important thing here is that its not matched as regular expression. The pseudo code for this operation looks as:&lt;br /&gt;&lt;pre class="brush: js"&gt;boolean doesMatch(Notification n)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; return &amp;nbsp;n.getType().startsWith(${notification.type});&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Having done above, we can generate MIB, build adaptor deployment unit and start to play SNMP.&lt;br /&gt;To do so, simply issue maven order in &lt;i&gt;snmp-adaptor&lt;/i&gt;&amp;nbsp;directory (note that JBOSS_HOME) has to be defined. Output should look similar to one below(it deploys deployer, but we dont care for it now):&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: white; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em; text-align: -webkit-auto;"&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;baranowb@port3:~/workspace/&lt;wbr&gt;&lt;/wbr&gt;snmp-adaptor$ mvn install&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] Scanning for projects...&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] Reactor build order:&amp;nbsp;&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] &amp;nbsp; SNMP Adaptor Parent&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] &amp;nbsp; SNMP Adaptor Core&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] &amp;nbsp; SNMP Adaptor Service&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] &amp;nbsp; SNMP Deployer Core&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] &amp;nbsp; SNMP Deployer Service&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;...&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] [compiler:compile {execution: default-compile}]&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] Nothing to compile - all classes are up to date&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] [:generate-mib {execution: default}]&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;&lt;b&gt;[INFO] Generating MIB from attributes file = /home/baranowb/workspace/snmp-&lt;wbr&gt;&lt;/wbr&gt;adaptor/adaptor-service/src/&lt;wbr&gt;&lt;/wbr&gt;main/resources/attributes.xml and notifications file = /home/baranowb/workspace/snmp-&lt;wbr&gt;&lt;/wbr&gt;adaptor/adaptor-service/src/&lt;wbr&gt;&lt;/wbr&gt;main/resources/notifications.&lt;wbr&gt;&lt;/wbr&gt;xml&lt;/b&gt;&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;&lt;b&gt;[INFO] Parsing...&lt;/b&gt;&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;&lt;b&gt;[INFO] Writing file /home/baranowb/workspace/snmp-&lt;wbr&gt;&lt;/wbr&gt;adaptor/adaptor-service/&lt;wbr&gt;&lt;/wbr&gt;target/classes/adaptor.mib...&lt;/b&gt;&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;...&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;&amp;nbsp; &amp;nbsp;&lt;b&gt; [unjar] Expanding: /home/baranowb/workspace/snmp-&lt;wbr&gt;&lt;/wbr&gt;adaptor/adaptor-service/&lt;wbr&gt;&lt;/wbr&gt;target/adaptor-service-5.1.1-&lt;wbr&gt;&lt;/wbr&gt;SNAPSHOT-sar.jar into /home/baranowb/servers/&lt;a href="http://jboss-5.1.0.ga/server/default/deploy/snmp-adaptor.sar" target="_blank"&gt;jboss-&lt;wbr&gt;&lt;/wbr&gt;5.1.0.GA/server/default/&lt;wbr&gt;&lt;/wbr&gt;deploy/snmp-adaptor.sar&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;...&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO]&amp;nbsp;&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO]&amp;nbsp;&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] ------------------------------&lt;wbr&gt;&lt;/wbr&gt;------------------------------&lt;wbr&gt;&lt;/wbr&gt;------------&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] Reactor Summary:&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] ------------------------------&lt;wbr&gt;&lt;/wbr&gt;------------------------------&lt;wbr&gt;&lt;/wbr&gt;------------&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] SNMP Adaptor Parent ..............................&lt;wbr&gt;&lt;/wbr&gt;..... SUCCESS [1.340s]&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] SNMP Adaptor Core ..............................&lt;wbr&gt;&lt;/wbr&gt;....... SUCCESS [3.153s]&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] SNMP Adaptor Service ..............................&lt;wbr&gt;&lt;/wbr&gt;.... SUCCESS [2.162s]&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] SNMP Deployer Core ..............................&lt;wbr&gt;&lt;/wbr&gt;...... SUCCESS [0.977s]&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] SNMP Deployer Service ..............................&lt;wbr&gt;&lt;/wbr&gt;... SUCCESS [0.231s]&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] ------------------------------&lt;wbr&gt;&lt;/wbr&gt;------------------------------&lt;wbr&gt;&lt;/wbr&gt;------------&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] ------------------------------&lt;wbr&gt;&lt;/wbr&gt;------------------------------&lt;wbr&gt;&lt;/wbr&gt;------------&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] BUILD SUCCESSFUL&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] ------------------------------&lt;wbr&gt;&lt;/wbr&gt;------------------------------&lt;wbr&gt;&lt;/wbr&gt;------------&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] Total time: 8 seconds&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] Finished at: Tue Nov 08 16:52:59 CET 2011&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] Final Memory: 57M/581M&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;[INFO] ------------------------------&lt;wbr&gt;&lt;/wbr&gt;------------------------------&lt;wbr&gt;&lt;/wbr&gt;------------&lt;/div&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Receiving traps&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;Once above completes we are ready to play with SNMP. That is if assumption that default users/managers are fine with setup, but since we will use single machine, it should. To receive traps, we have to configure SNMP tool(net-snmp).&lt;br /&gt;&lt;br /&gt;First login as super user. Than create user:&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: white; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em; text-align: -webkit-auto;"&gt;&lt;span class="Apple-style-span" style="font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 13px; line-height: 15px; white-space: pre-wrap;"&gt;net-snmp-config --create-snmpv3-user -a maplesyrup TEST&lt;/span&gt;&lt;/pre&gt;Note that above values match default user present in adapter configuration file &lt;i&gt;users.xml&amp;nbsp;&lt;/i&gt;.&lt;br /&gt;Once above completes, edit snmptrapd.conf:&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: white; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em; text-align: -webkit-auto;"&gt;&lt;span class="Apple-style-span" style="font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 13px; line-height: 15px; white-space: pre-wrap;"&gt;gedit /etc/snmp/snmptrapd.conf&lt;/span&gt;&lt;/pre&gt;Add following entries:&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: white; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em; text-align: -webkit-auto;"&gt;&lt;div class="line number1 index0 alt2" style="background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px 0px !important; border-bottom-right-radius: 0px 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px 0px !important; border-top-right-radius: 0px 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: #333333; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 13px; height: auto !important; left: auto !important; line-height: 15px; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0em !important; padding-right: 1em !important; padding-top: 0px !important; position: static !important; right: auto !important; text-align: left; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;"&gt;&lt;code class="java plain" style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px 0px !important; border-bottom-right-radius: 0px 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px 0px !important; border-top-right-radius: 0px 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(0, 0, 0) !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.2em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"&gt;#User to receive TRAP&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1" style="background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px 0px !important; border-bottom-right-radius: 0px 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px 0px !important; border-top-right-radius: 0px 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: #333333; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 13px; height: auto !important; left: auto !important; line-height: 15px; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0em !important; padding-right: 1em !important; padding-top: 0px !important; position: static !important; right: auto !important; text-align: left; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;"&gt;&lt;code class="java plain" style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px 0px !important; border-bottom-right-radius: 0px 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px 0px !important; border-top-right-radius: 0px 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(0, 0, 0) !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.2em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"&gt;createUser -e &lt;/code&gt;&lt;code class="java value" style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px 0px !important; border-bottom-right-radius: 0px 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px 0px !important; border-top-right-radius: 0px 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(0, 153, 0) !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.2em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"&gt;0x80001370017F000101&lt;/code&gt; &lt;code class="java plain" style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px 0px !important; border-bottom-right-radius: 0px 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px 0px !important; border-top-right-radius: 0px 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(0, 0, 0) !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.2em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"&gt;TEST MD5 maplesyrup DES maplesyrup&lt;/code&gt;&lt;/div&gt;&lt;div class="line number5 index4 alt2" style="background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px 0px !important; border-bottom-right-radius: 0px 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px 0px !important; border-top-right-radius: 0px 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: #333333; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 13px; height: auto !important; left: auto !important; line-height: 15px; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0em !important; padding-right: 1em !important; padding-top: 0px !important; position: static !important; right: auto !important; text-align: left; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;"&gt;&lt;code class="java plain" style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px 0px !important; border-bottom-right-radius: 0px 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px 0px !important; border-top-right-radius: 0px 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(0, 0, 0) !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.2em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"&gt;#Those make snmptrapd log the TRAPs and INFORM to the console&lt;/code&gt;&lt;/div&gt;&lt;div class="line number6 index5 alt1" style="background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px 0px !important; border-bottom-right-radius: 0px 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px 0px !important; border-top-right-radius: 0px 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: #333333; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 13px; height: auto !important; left: auto !important; line-height: 15px; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0em !important; padding-right: 1em !important; padding-top: 0px !important; position: static !important; right: auto !important; text-align: left; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;"&gt;&lt;code class="java plain" style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px 0px !important; border-bottom-right-radius: 0px 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px 0px !important; border-top-right-radius: 0px 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(0, 0, 0) !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.2em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"&gt;authUser log,execute,net TEST&lt;/code&gt;&lt;/div&gt;&lt;div class="line number7 index6 alt2" style="background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px 0px !important; border-bottom-right-radius: 0px 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px 0px !important; border-top-right-radius: 0px 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 13px; height: auto !important; left: auto !important; line-height: 15px; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0em !important; padding-right: 1em !important; padding-top: 0px !important; position: static !important; right: auto !important; text-align: left; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;"&gt;&lt;/div&gt;&lt;/pre&gt;The hex value in above snippet is &lt;i&gt;ENGINEID&lt;/i&gt;. For me it did not change. If you need to double check, see what is written to &lt;i&gt;/var/net-snmp/snmptrapd.conf &lt;/i&gt;&amp;nbsp;file. (Note: for some reason, snmp tool did not use config files from &lt;i&gt;/etc &lt;/i&gt;&amp;nbsp;directory. I had to edit &lt;i&gt;/root/.snmp/snmptrapd.conf&lt;/i&gt;) .&lt;br /&gt;&lt;br /&gt;Having done above ,there is one final step that needs to be taken. We need to copy MIB file. It is located in&amp;nbsp;&lt;i&gt;$JBOSS_HOME/server/default/deploy/snmp-adaptor.sar &lt;/i&gt;&amp;nbsp;directory.&lt;br /&gt;First check where MIB should be stored, by issuing following command:&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: white; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em; text-align: -webkit-auto;"&gt;&lt;table border="0" cellpadding="0" cellspacing="0" style="background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px 0px !important; border-bottom-right-radius: 0px 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px 0px !important; border-top-right-radius: 0px 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; clear: left; color: #333333; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 13px; height: auto !important; left: auto !important; line-height: 1.2em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; text-align: left; top: auto !important; vertical-align: baseline !important; width: 1296px;"&gt;&lt;tbody style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px 0px !important; border-bottom-right-radius: 0px 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px 0px !important; border-top-right-radius: 0px 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.2em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"&gt;&lt;br /&gt;&lt;tr style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px 0px !important; border-bottom-right-radius: 0px 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px 0px !important; border-top-right-radius: 0px 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.2em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"&gt;&lt;td class="code" style="background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px 0px !important; border-bottom-right-radius: 0px 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px 0px !important; border-top-right-radius: 0px 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.2em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: 1296px;"&gt;&lt;div class="container" style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px 0px !important; border-bottom-right-radius: 0px 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px 0px !important; border-top-right-radius: 0px 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.2em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0em !important; padding-right: 0px !important; padding-top: 0px !important; position: relative !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap !important; width: auto !important;" title="Hint: double-click to select code"&gt;&lt;div class="line number1 index0 alt2" style="background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px 0px !important; border-bottom-right-radius: 0px 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px 0px !important; border-top-right-radius: 0px 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.2em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0em !important; padding-right: 1em !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"&gt;&lt;code class="java plain" style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px 0px !important; border-bottom-right-radius: 0px 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px 0px !important; border-top-right-radius: 0px 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(0, 0, 0) !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.2em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"&gt;net-snmp-config --&lt;/code&gt;&lt;code class="java keyword" style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px 0px !important; border-bottom-right-radius: 0px 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px 0px !important; border-top-right-radius: 0px 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(51, 102, 153) !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.2em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"&gt;default&lt;/code&gt;&lt;code class="java plain" style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px 0px !important; border-bottom-right-radius: 0px 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px 0px !important; border-top-right-radius: 0px 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(0, 0, 0) !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.2em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"&gt;-mibdirs&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/pre&gt;I had to copy MIB files to &lt;i&gt;/root/.snmp/mibs&lt;/i&gt;, so my directory structure looked as follows:&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: white; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em; text-align: -webkit-auto;"&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;root@port3:~/.snmp# ll -R&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;.:&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;total 20&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;drwxr-xr-x &amp;nbsp;3 root root 4096 2011-10-27 09:54 ./&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;drwx------ 12 root root 4096 2011-11-04 16:54 ../&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;drwxr-xr-x &amp;nbsp;2 root root 4096 2011-10-27 15:53 mibs/&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;-rw-r--r-- &amp;nbsp;1 root root &amp;nbsp;216 2011-10-27 09:54 snmp.conf&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;-rw-r--r-- &amp;nbsp;1 root root &amp;nbsp;544 2011-10-27 09:54 snmptrapd.conf&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;./mibs:&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;total 16&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;drwxr-xr-x 2 root root 4096 2011-10-27 15:53 ./&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;drwxr-xr-x 3 root root 4096 2011-10-27 09:54 ../&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;-rw-r--r-- 1 root root 4217 2011-11-02 13:07 mobicents-slee.mib&lt;/div&gt;&lt;/pre&gt;Now we are ready to fire up the daemon. If everything is setup properly we can execute following(and see similar output):&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: white; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em; text-align: -webkit-auto;"&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;root@port3:~/.snmp# snmptrapd -f -Lo -Dusm&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;registered debug token usm, 1&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;usmUser: created a new user TEST at 80 00 13 70 01 7F 00 01 01&amp;nbsp;&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;NET-SNMP version 5.6.1.1&lt;/div&gt;&lt;/pre&gt;&lt;br /&gt;Now we can start JSLEE container:&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: white; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em; text-align: -webkit-auto;"&gt;baranowb@port3:~/# cd $JBOSS_HOME; bin/run.sh -b 127.0.0.1 | tee console.log&lt;/pre&gt;Once container starts, we can deploy example service and observe SNMP daemon output. For me it looked similar to following:&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: white; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em; text-align: -webkit-auto;"&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;2011-10-28 08:48:05 localhost [UDP: [127.0.0.1]:1161-&amp;gt;[127.0.0.1]:&lt;wbr&gt;&lt;/wbr&gt;162]:&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;DISMAN-EVENT-MIB::&lt;wbr&gt;&lt;/wbr&gt;sysUpTimeInstance = Timeticks: (16179) 0:02:41.79&lt;span style="white-space: pre-wrap;"&gt; &lt;/span&gt;SNMPv2-MIB::snmpTrapOID.0 = OID: SLEE-MIB::&lt;wbr&gt;&lt;/wbr&gt;jbossJmxNotificationOldState.&lt;wbr&gt;&lt;/wbr&gt;0.10&lt;span style="white-space: pre-wrap;"&gt; &lt;/span&gt;SLEE-MIB::&lt;wbr&gt;&lt;/wbr&gt;jbossJmxNotificationOldState = STRING: "Stopped"&lt;span style="white-space: pre-wrap;"&gt; &lt;/span&gt;SLEE-MIB::&lt;wbr&gt;&lt;/wbr&gt;jbossJmxNotificationNewState = STRING: "Starting"&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;usm: USM processing begun...&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;usm: match on user TEST&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;usm: Verification succeeded.&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;usm: USM processing completed.&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;2011-10-28 08:48:05 localhost [UDP: [127.0.0.1]:1161-&amp;gt;[127.0.0.1]:&lt;wbr&gt;&lt;/wbr&gt;162]:&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;DISMAN-EVENT-MIB::&lt;wbr&gt;&lt;/wbr&gt;sysUpTimeInstance = Timeticks: (17188) 0:02:51.88&lt;span style="white-space: pre-wrap;"&gt; &lt;/span&gt;SNMPv2-MIB::snmpTrapOID.0 = OID: SLEE-MIB::&lt;wbr&gt;&lt;/wbr&gt;jbossJmxNotificationSource.0.&lt;wbr&gt;&lt;/wbr&gt;11&lt;span style="white-space: pre-wrap;"&gt; &lt;/span&gt;SLEE-MIB::&lt;wbr&gt;&lt;/wbr&gt;jbossJmxNotificationSource = STRING: "SbbNotification[service=&lt;wbr&gt;&lt;/wbr&gt;ServiceID[name=SNMPTestService,vendor=org.mobicents,&lt;wbr&gt;&lt;/wbr&gt;version=1.0],sbb=SbbID[name=&lt;wbr&gt;&lt;/wbr&gt;SNMPTest,vendor=org.mobicents,&lt;wbr&gt;&lt;/wbr&gt;version=1.0]]"&lt;span style="white-space: pre-wrap;"&gt; &lt;/span&gt;SLEE-MIB::&lt;wbr&gt;&lt;/wbr&gt;jbossJmxNotificationLevel = STRING: "Indeterminate"&lt;span style="white-space: pre-wrap;"&gt; &lt;/span&gt;SLEE-MIB::&lt;wbr&gt;&lt;/wbr&gt;jbossJmxNotificationInstanceId = STRING: "SbbID[name=SNMPTest,vendor=org.mobicents,&lt;wbr&gt;&lt;/wbr&gt;version=1.0]"&lt;span style="white-space: pre-wrap;"&gt; &lt;/span&gt;SLEE-MIB::&lt;wbr&gt;&lt;/wbr&gt;jbossJmxNotificationId = STRING: "9e4ebf6e-9821-4b48-98d1-&lt;wbr&gt;&lt;/wbr&gt;d77a596e5da4"&lt;span style="white-space: pre-wrap;"&gt; &lt;/span&gt;SLEE-MIB::&lt;wbr&gt;&lt;/wbr&gt;jbossJmxNotificationType = STRING: "ImportantAlarm"&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;usm: USM processing begun...&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;usm: match on user TEST&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;usm: Verification succeeded.&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;usm: USM processing completed.&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;2011-10-28 08:48:06 localhost [UDP: [127.0.0.1]:1161-&amp;gt;[127.0.0.1]:&lt;wbr&gt;&lt;/wbr&gt;162]:&lt;/div&gt;&lt;div style="font-family: arial; font-size: small; line-height: normal; white-space: normal;"&gt;DISMAN-EVENT-MIB::&lt;wbr&gt;&lt;/wbr&gt;sysUpTimeInstance = Timeticks: (18124) 0:03:01.24&lt;span style="white-space: pre-wrap;"&gt; &lt;/span&gt;SNMPv2-MIB::snmpTrapOID.0 = OID: SLEE-MIB::&lt;wbr&gt;&lt;/wbr&gt;jbossJmxNotificationOldState.&lt;wbr&gt;&lt;/wbr&gt;0.10&lt;span style="white-space: pre-wrap;"&gt; &lt;/span&gt;SLEE-MIB::&lt;wbr&gt;&lt;/wbr&gt;jbossJmxNotificationOldState = STRING: "Starting"&lt;span style="white-space: pre-wrap;"&gt; &lt;/span&gt;SLEE-MIB::&lt;wbr&gt;&lt;/wbr&gt;jbossJmxNotificationNewState = STRING: "Running"&lt;/div&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;In next post, I will cover ways to manage SNMP exposed attributes.&lt;br /&gt;&lt;br /&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/3691620912972680962-300068130628013427?l=baranowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://baranowb.blogspot.com/feeds/300068130628013427/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://baranowb.blogspot.com/2011/11/snmp-enabled-slee.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3691620912972680962/posts/default/300068130628013427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3691620912972680962/posts/default/300068130628013427'/><link rel='alternate' type='text/html' href='http://baranowb.blogspot.com/2011/11/snmp-enabled-slee.html' title='SNMP enabled SLEE !!!'/><author><name>baranowb</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://1.bp.blogspot.com/_K4gvy89DzOw/SqF1MtefrtI/AAAAAAAAA9I/yGuWaOTQIzU/s1600-R/gallery-77805673-500x500.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3691620912972680962.post-1591737302007592612</id><published>2011-09-23T03:19:00.000-07:00</published><updated>2011-09-23T03:19:22.783-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ss7 ussd mobicents jainslee jslee'/><title type='text'>First Mobicents SS7 Gateway is out!!!</title><content type='html'>Just as subject states. Our long struggle with SS7 specs and traces bring our long forgotten child to the public.&lt;br /&gt;The 1.0.0.BETA1 of Mobicents SS7 Gateway is out. Currently it supports only 'USSD' over SIP/HTTP, but more will come.&lt;br /&gt;&lt;br /&gt;Detailed info can be found &lt;a href="http://mobicents-ss7.blogspot.com/2011/09/mobicents-ss7-gateway-released.html"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3691620912972680962-1591737302007592612?l=baranowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://baranowb.blogspot.com/feeds/1591737302007592612/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://baranowb.blogspot.com/2011/09/first-mobicents-ss7-gateway-is-out.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3691620912972680962/posts/default/1591737302007592612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3691620912972680962/posts/default/1591737302007592612'/><link rel='alternate' type='text/html' href='http://baranowb.blogspot.com/2011/09/first-mobicents-ss7-gateway-is-out.html' title='First Mobicents SS7 Gateway is out!!!'/><author><name>baranowb</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://1.bp.blogspot.com/_K4gvy89DzOw/SqF1MtefrtI/AAAAAAAAA9I/yGuWaOTQIzU/s1600-R/gallery-77805673-500x500.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3691620912972680962.post-1830105840709884522</id><published>2011-04-28T09:28:00.000-07:00</published><updated>2011-04-28T09:28:17.458-07:00</updated><title type='text'>SLEE Basic concepts, mini FAQ</title><content type='html'>&amp;nbsp;&amp;nbsp; &amp;nbsp; I have had this post in mind for quite some time now, some may find in trivial or redundant, however I feel it needed. FAQ on mobicents.org is not a good place for such content, JSR's dont have it(hidden in plain sight), since its simple specs, mobicents user guides may incorporate it in future. Soooo, as community member I decided to create some sort of little FAQ, since its always easier to understand something stated directly, than browse tons of pages, in search of concept one does not even comprehend or missunderstands.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;Each year there is some sort of of magic period, when lots of new users pop up in forums They ask. They really ask lots of questions. Thats a good thing, whats bad is that lots of questions are hard to understand, since new users mix/confuse SLEE concepts. Below you can find answers and clarification to some of them.&lt;br /&gt;&lt;br /&gt;First lets explain some basic concepts:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. SBB Abstract class(SBBA)&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; SBB Abstract class - is a class created by developer It contains all the service logic which SBB should perform.&amp;nbsp;It implements javax.slee.&lt;i&gt;Sbb &lt;/i&gt;interface.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;NOTE: SBBA &lt;b&gt;MUST &lt;/b&gt;implement all methods from &lt;i&gt;javax.slee.Sbb &lt;/i&gt;&amp;nbsp;interface, SLEE container does not provide those by default.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;SBB Abtract class must have following, concrete methods(implemented):&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;receive event handlers - for each definition of incoming event in descriptor, SBBA must have method &lt;i&gt;on&amp;lt;&lt;eventname&gt;&amp;gt;&lt;/eventname&gt;&lt;/i&gt;&lt;/li&gt;&lt;li&gt;methods defined in SBB LO (if any defined) - for each method defined there, SBBA must have concrete method with matchin signature&lt;/li&gt;&lt;li&gt;methods defined in &lt;i&gt;javax.slee.Sbb&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Concrete methods define SBB Logic executed on call - be it an event, SBB LO call or SLEE callback.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; SBB Abstract class must have following, abstract methods:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;fire event method, for each event defined as "Fireable" (check events direction), SBBA must have method &lt;i&gt;fire&amp;lt;&lt;eventname&gt;&amp;gt;&lt;/eventname&gt;&lt;/i&gt;&lt;/li&gt;&lt;li&gt;setter and getter for each CMP field defined in descriptor&lt;/li&gt;&lt;li&gt;method to fetch custom Activity Context Interface, if any is defined&lt;/li&gt;&lt;li&gt;methods to fetch usage parameter sets, if any defined&lt;/li&gt;&lt;li&gt;methods to fetch child relation object for each child relation defined, if any&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;NOTE: &lt;/i&gt;As explained below, SBBA &lt;b&gt;should not&lt;/b&gt;( or rather MUST NOT, but thats on devs responsibility) defined any class level variables to store any kind of state. It should use CMPs, ACI variables, profiles and some 3rd party resources, like database.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Thats it, there is nothing more to that class.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;2. SBB Concrete class(SBBC)&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;SBB Concrete class is non abstract class. It is created by SLEE container upon deployment of SBB. &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;SLEE container implements all required methods(mandated by specs) present in SBBA. To put it simply, SBBC extends(in one way or another) SBB abstract class.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;b&gt;3. SBB Entity (SBBE)&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;SBBE is a logical entity(bad place for such word, but it is 100% accurate). It has no physical representation in what developer creates. It is maintained by SLEE container.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; To put it simply, SBBE is a state of single SBB. More or less it consists of:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;convergence name, ID&lt;/li&gt;&lt;li&gt;CMP fields of SBB (defined in SBBA)&lt;/li&gt;&lt;li&gt;activities to which SBB is attached&lt;/li&gt;&lt;li&gt;ACI variables&lt;/li&gt;&lt;li&gt;children references, if any children have been created&lt;/li&gt;&lt;li&gt;....&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; IMPORTANT: calls to SBBE state(like getter of CMP) outside of JSLEE calls WILL in most/all cases fail!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;3.&amp;nbsp;&lt;/b&gt;&lt;b&gt;SBB LocalObject( SBBLO)&amp;nbsp;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&lt;/b&gt;SBB Local object is an interface. Each SBB have it. &amp;nbsp;By default SLEE container provides implementation of&amp;nbsp;&lt;i&gt;javax.slee.SbbLocalObject&lt;/i&gt;&amp;nbsp;interface. It allows limited management over SBBs (SBBE actaully).&lt;/div&gt;&lt;div&gt;Some may have non standard interface. &amp;nbsp;In such case user is responsible for implementation of methods defined in such, nonstandard interface, in SBB Abstract class.&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;4. SLEE Object Pools&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; SLEE container creates pools of concrete objects( for profiles and SBBs ) from concrete classes(SBBC for instance. Pools are managed my container. Objects within those pools are assigned to serve a call. For instance, imagine following situation. Event is fired into SLEE, container in some way determines:&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;- there is SBBE attached to activity&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;- it is capable of receiving said event&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;- SBBE has no real object assigned&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;SLEE container will do the following:&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; - borrow SBBC object from pool&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; - assign SBBC to SBBE &amp;nbsp;(now calls to SBBE state are valid, ie. getter of CMP can be called)&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; - deliver said event to SBBC(actually handler is defined in SBBA) event handler&lt;/div&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp; - &lt;/b&gt;possibly terminate assgiment of SBBC to SBBE, in such case SBBC instance is returned to pool, SBBE state is stored somewhere in container.&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;5. SBB Concrete class(SBBC) vs SBB Abtract class (SBBA)&amp;nbsp;&lt;/b&gt;&lt;b&gt;vs SBB Entity&amp;nbsp;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;It is very common for new users to mix or confuse above. Diagram below may shed some light on this problem:&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/-MIubNlHLKaQ/Tbl-7K0KuXI/AAAAAAAABH0/NBxduuXSn6Q/s1600/trivialJSLEESPecs.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-MIubNlHLKaQ/Tbl-7K0KuXI/AAAAAAAABH0/NBxduuXSn6Q/s320/trivialJSLEESPecs.png" width="210" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;6. Root SBB vs child SBB&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; Root SBB is a trigger point for service start. Each service defines root SBB. Root SBBE are create ONLY by SLEE container. They are created based on on logic defined below. Root SBBs can create children( children are created by code create by developer, NOT by SLEE container). Child SBBs can create more children.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; IMPORTANT: Only root SBBs are interrogated for initial events. Child SBBs are not. Thats a rule of thumb&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;IMPORTANT: ONLY initial events are handled differently for Root SBBs, all other events are handled in the same way for Root and child SBBs&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;div style="font-weight: normal;"&gt;&lt;b&gt;7. Initial Event Selector &amp;amp; convergence name&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Convergence name is a sort of hidden property of root SBB. Convergence name is unique in container.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Initial event selectors allow to define custom convergence name. Variable selectors use SLEE variable(like EventTypeId) to compose convergence name.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; Initial Event Selector method is a callback method. It is called by SLEE container when descriptors points to it. Selector method is called to allow code to determine two things:&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; - if event is AT all initial&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; - compute convergence name(create, based on developer whim)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; Initial event selector method MUST be concrete method, implemented by developer &amp;nbsp;in SBBA. It takes single argument of type &lt;i&gt;javax.slee.InitialEventSelector&amp;nbsp;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; IMPORTANT: if event in descriptor has &lt;b&gt;initial-event&lt;/b&gt;&amp;nbsp;set to false(attribute of event definition) selectors are ignored by SLEE container, ie, following event definition, wont create service instance when event is fired into SLEE:&lt;/div&gt;&lt;div&gt;&lt;pre class="brush: js"&gt;&amp;lt;event event-direction="Receive" initial-event="False"&amp;gt;&lt;br /&gt;   &amp;lt;event-name&amp;gt;StartServiceEvent&amp;lt;/event-name&amp;gt;&lt;br /&gt;   &amp;lt;event-type-ref&amp;gt;&lt;br /&gt;    &amp;lt;event-type-name&amp;gt;&lt;br /&gt;     javax.slee.serviceactivity.ServiceStartedEvent&lt;br /&gt;    &amp;lt;/event-type-name&amp;gt;&lt;br /&gt;    &amp;lt;event-type-vendor&amp;gt;javax.slee&amp;lt;/event-type-vendor&amp;gt;&lt;br /&gt;    &amp;lt;event-type-version&amp;gt;1.1&amp;lt;/event-type-version&amp;gt;&lt;br /&gt;   &amp;lt;/event-type-ref&amp;gt;&lt;br /&gt;   &amp;lt;initial-event-select variable="ActivityContext" /&amp;gt;&lt;br /&gt;  &amp;lt;/event&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;8. How SLEE creates instance of service/SBBE&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;There are two ways to create SBBEs. First one required javax.slee.ChildRelation object. SBBE is created with call to &lt;i&gt;create()&lt;/i&gt;&amp;nbsp;method. It is done directly from SBBA code created by developer.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Second one is managed by SLEE container. Simple flow looks as follows(not exactly, it is simplyfied):&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; - create list(organized by priority) of &lt;b&gt;ROOT SBBs&lt;/b&gt;&amp;nbsp;defining EventType as initial.&lt;br /&gt;&amp;nbsp;&amp;nbsp; - determine if event is initial:&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* if variable is used: default true&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* if initial-event-selector-method is used, check its return value&lt;br /&gt;&amp;nbsp;&amp;nbsp; - compute convergence name( or fetch from InitialEventSelector )&lt;br /&gt;&amp;nbsp;&amp;nbsp; - check if there is SBBE for that convergence name exists, if not, create SBBE and attach to activity on which event is delivered&lt;br /&gt;&amp;nbsp;&amp;nbsp;- deliver event to SBBE&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; Above procedure is repeated for all root SBBs in said list.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; IMPORTANT: Note that if SBBE exists, its not created, its only attached to activity on which event is delivered.&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Guidelines:&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&amp;nbsp;&amp;nbsp; 1. Read specs, user guide and forums before posting. There is high chance one of said resources has answer to that question.&lt;br /&gt;&amp;nbsp;&amp;nbsp; 2. If you post, give descriptive topic: "&lt;i&gt;I have problem"&lt;/i&gt;, "&lt;i&gt;MGCP problem" &lt;/i&gt;or &lt;i&gt;"Help I have problem/am in a hurry"&lt;/i&gt;&amp;nbsp;is not descriptive, users, with similar problems wont be able to find it easly!&lt;br /&gt;&amp;nbsp;&amp;nbsp; 3. Read exception/debug information - it may hold key to solve your problem.&lt;br /&gt;&amp;nbsp;&amp;nbsp; 4. If you post please add as much info as possible. container name, container version, deployment config, conditions, traffic dump, etc....&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt; &lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt; &lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt; &lt;/b&gt;&lt;/div&gt;&lt;div&gt;Now some questions that I remember/googled from forums. If something is missing, send me email or add comment:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;GENERAL Questions&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;u&gt;&amp;nbsp;1. I have SLEE 1.x, when SMPP5 RA will be &amp;nbsp;ported(or any new one)&lt;/u&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;i&gt;1.x reached its AOL loooong time ago, move to 2.x container or hack that resource. Core team does not have time to support everything :)&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/i&gt;&lt;br /&gt;&amp;nbsp;&lt;u&gt;2. How can I contribute?&lt;/u&gt;&lt;br /&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; You have to sign contributors agreement, so code becomes open source: &lt;a href="https://cla.jboss.org/"&gt;https://cla.jboss.org&lt;/a&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;u&gt;3. How can I create/send/receive XXX message?&lt;/u&gt;&lt;br /&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; Read specific resources, check examples. Examples have sample code to create some basic interaction - ie. SIP messages, between two nodes. RFCs for SIP describe procedures used. If you still face problem, post with as much info as possible, step by step explanation what you do, core member or community member may have time to shed some light there.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;u&gt;4. Which container is better SS or SLEE?&lt;/u&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;i&gt;&amp;nbsp;There is no such thing as better container. Those are created in two different technologies. Performance wise they are quite similar. However there are key differences.&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; SLEE:&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; - RA abstraction allows easy integration of any type of protocol or resource(even hardware)&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; - &amp;nbsp;transactional by default&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; - requires more time to comprehend&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; - requires some low level knowledge about protocols used&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; - similar to EJB in some way&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; - well defined container facilities&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; SS:&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; - based on well known Servlets programming model&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; - out of box integration between HTTP and SIP(SIP &amp;amp; HTTP oriented only)&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; - not transactional by default, JTA requires user hacks&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; - &amp;nbsp;well defined help utilities - like Proxy or B2BUAHelper&lt;/i&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; Depending on application purpose,available time, previous experience of dev team, one of them is more suitable. Detailed list of differences can be found &lt;a href="http://hudson.jboss.org/hudson/view/Mobicents/job/MobicentsBooks/lastSuccessfulBuild/artifact/sip-servlets/index.html#ss_jslee_interop"&gt;here&lt;/a&gt;.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;GENERAL SLEE Questions&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;u&gt;1. When SBBE is removed?&lt;/u&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;i&gt;&amp;nbsp;SBBE are removed in one of two cases:&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;- explicit removal from developer code&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;- SBBE attachment count - number of activities to which SBBE is attached, reaches zero.&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;If none of above happens, SBBE lingers in memory and performs actions developer coded it to perform.&lt;/i&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;u&gt;&amp;nbsp;&amp;nbsp;2. Can I store profile data in some other place than default JPA resource?&lt;/u&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;Yes. Check profiles lifecycle methods. By default containers handles callbacks and actions associated with them. However you can provide implementation, which will be respected by container.&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;ERROR Reports&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&lt;u&gt;1. DU deployment gives error: xxxxx violates SLEE specification section x.y.z, what should I do?&lt;/u&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;i&gt;&amp;nbsp;Read that section, validators in container print that information for a reason. If error says component violates some section, it does.&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;u&gt;&amp;nbsp;2. Container start/DU deployment throws exception with weird content:&lt;/u&gt;&lt;br /&gt;&amp;nbsp;- method not found&lt;br /&gt;&amp;nbsp;- wrong arguments&lt;br /&gt;&amp;nbsp;- etc...&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;i&gt;Clean container, if you get your hands dirty, you have to wash them, same thing applies to container. Remove everything you deployed previously before playing with source. Better, fetch clean AS and play in it.&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;If problem persists it means that source is outdated. Now to solve that perform following:&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;- update every source you use and rebuild&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;- possibly update .m2/settings.xml and add nexus:&lt;/i&gt;&lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;pre class="brush: js"&gt;&amp;lt;repositories&amp;gt;&lt;br /&gt;        &amp;lt;repository&amp;gt;&lt;br /&gt;          &amp;lt;id&amp;gt;jboss-public-repository-group&amp;lt;/id&amp;gt;&lt;br /&gt;          &amp;lt;name&amp;gt;JBoss Public Maven Repository Group&amp;lt;/name&amp;gt;&lt;br /&gt;          &amp;lt;url&amp;gt;https://repository.jboss.org/nexus/content/groups/public/&amp;lt;/url&amp;gt;&lt;br /&gt;          &amp;lt;layout&amp;gt;default&amp;lt;/layout&amp;gt;&lt;br /&gt;          &amp;lt;releases&amp;gt;&lt;br /&gt;            &amp;lt;enabled&amp;gt;true&amp;lt;/enabled&amp;gt;&lt;br /&gt;            &amp;lt;updatePolicy&amp;gt;never&amp;lt;/updatePolicy&amp;gt;&lt;br /&gt;          &amp;lt;/releases&amp;gt;&lt;br /&gt;          &amp;lt;snapshots&amp;gt;&lt;br /&gt;            &amp;lt;enabled&amp;gt;true&amp;lt;/enabled&amp;gt;&lt;br /&gt;            &amp;lt;updatePolicy&amp;gt;never&amp;lt;/updatePolicy&amp;gt;&lt;br /&gt;          &amp;lt;/snapshots&amp;gt;&lt;br /&gt;        &amp;lt;/repository&amp;gt;&lt;br /&gt;      &amp;lt;/repositories&amp;gt;&lt;br /&gt;&lt;br /&gt;      &amp;lt;pluginRepositories&amp;gt;&lt;br /&gt;        &amp;lt;pluginRepository&amp;gt;&lt;br /&gt;          &amp;lt;id&amp;gt;jboss-public-repository-group&amp;lt;/id&amp;gt;&lt;br /&gt;          &amp;lt;name&amp;gt;JBoss Public Maven Repository Group&amp;lt;/name&amp;gt;&lt;br /&gt;          &amp;lt;url&amp;gt;https://repository.jboss.org/nexus/content/groups/public/&amp;lt;/url&amp;gt;&lt;br /&gt;          &amp;lt;layout&amp;gt;default&amp;lt;/layout&amp;gt;&lt;br /&gt;          &amp;lt;releases&amp;gt;&lt;br /&gt;            &amp;lt;enabled&amp;gt;true&amp;lt;/enabled&amp;gt;&lt;br /&gt;            &amp;lt;updatePolicy&amp;gt;never&amp;lt;/updatePolicy&amp;gt;&lt;br /&gt;          &amp;lt;/releases&amp;gt;&lt;br /&gt;          &amp;lt;snapshots&amp;gt;&lt;br /&gt;            &amp;lt;enabled&amp;gt;true&amp;lt;/enabled&amp;gt;&lt;br /&gt;            &amp;lt;updatePolicy&amp;gt;never&amp;lt;/updatePolicy&amp;gt;&lt;br /&gt;          &amp;lt;/snapshots&amp;gt;&lt;br /&gt;        &amp;lt;/pluginRepository&amp;gt;&lt;br /&gt;      &amp;lt;/pluginRepositories&amp;gt;&lt;br /&gt;&lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;i&gt; &lt;i&gt;&lt;u&gt;&amp;nbsp;&amp;nbsp;&lt;/u&gt;&lt;/i&gt;&lt;u&gt;3. Deployment shows error similar to:&lt;/u&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;Missing dependencies for mobicents-&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;slee-example-sip11-b2b-DU-2.4.&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;0.CR1.jar:&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;....&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;....&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;i&gt;Well there is no other way! Deploy dependencies to make this nasty error go away. You can always check status of deployment via SLEE Twiddle or directly via AS JMX-Console.&lt;/i&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&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/3691620912972680962-1830105840709884522?l=baranowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://baranowb.blogspot.com/feeds/1830105840709884522/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://baranowb.blogspot.com/2011/04/slee-basic-concepts-mini-faq.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3691620912972680962/posts/default/1830105840709884522'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3691620912972680962/posts/default/1830105840709884522'/><link rel='alternate' type='text/html' href='http://baranowb.blogspot.com/2011/04/slee-basic-concepts-mini-faq.html' title='SLEE Basic concepts, mini FAQ'/><author><name>baranowb</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://1.bp.blogspot.com/_K4gvy89DzOw/SqF1MtefrtI/AAAAAAAAA9I/yGuWaOTQIzU/s1600-R/gallery-77805673-500x500.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-MIubNlHLKaQ/Tbl-7K0KuXI/AAAAAAAABH0/NBxduuXSn6Q/s72-c/trivialJSLEESPecs.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3691620912972680962.post-6383734123420540753</id><published>2010-11-19T01:53:00.000-08:00</published><updated>2010-11-19T01:53:15.987-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opensource diameter mobicents'/><title type='text'>Diameter Educational Series: Creating a "Hello World" Application with Mobicents Diameter</title><content type='html'>For some time now the Mobicents Diameter Team have been wondering how should we introduce diameter use cases to mobicents community. After some talk we decided to create series of blog posts with step by step instructions and examples.&lt;br /&gt;&lt;br /&gt;In next posts, me and Alex will cover topics ranging from simple "Hello World Example" to prepaid billing service or some IMS components.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: #f1c232;"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Some basics&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: #f1c232;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;As weird as it may seem in diameter domain, first example is always "hello world", so... Always simplistic, to show how to play in new environment. In this post I will describe basics of interaction in diameter world. I wont however describe protocol level details(like CER/CEA capabilities exchange).&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Diameter Nodes.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Diameter node is a network entity which supports diameter protocol and certain application. Each node is identified by certain set of informations:&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li style="text-align: left;"&gt;realm&lt;/li&gt;&lt;li style="text-align: left;"&gt;URI&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;Diameter realm is simply string, for instance "mobicents.org". &amp;nbsp;It identifies nodes domain of responsibility.&lt;/div&gt;&lt;div style="text-align: left;"&gt;URI identifies diameter nodes in realm. It has following form: aaa://&lt;ip&gt;[:port][;params]*&lt;/ip&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Nodes which has direct connection are called Diameter Peers. Diameter Peers have set of common applications.&amp;nbsp;When connection is established between two diameter nodes, this set &amp;nbsp;is determined. If there are no common applications, connection is not created.&amp;nbsp;This implies that peers understand all exchanged messages and AVPs.&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Messages and AVPs&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;All diameter data structures exchanged over wire have similar structure:&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li style="text-align: left;"&gt;header&lt;/li&gt;&lt;li style="text-align: left;"&gt;payload&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: left;"&gt;Structure is proper word, since proper interpretation depends on metadata. Metadata is encoded in header.&lt;/div&gt;&lt;div style="text-align: left;"&gt;Header contains following information:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li style="text-align: left;"&gt;ID&lt;/li&gt;&lt;li style="text-align: left;"&gt;flags&lt;/li&gt;&lt;li style="text-align: left;"&gt;length&lt;/li&gt;&lt;li style="text-align: left;"&gt;(possibly additional information)&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;ID is a set of unique codes identifying structure. IDs include structure code and vendor ID(or application ID).&lt;/div&gt;&lt;div style="text-align: left;"&gt;Flags are a set of bit switches. Flags carry additional information which may be helpful in proper interpretation of structure.&lt;/div&gt;&lt;div style="text-align: left;"&gt;Payload is simply byte encoded content of structure, it may be simple data like integer number, or another set of structures. To see visualization please refer to &lt;a href="http://en.wikipedia.org/wiki/Diameter_(protocol)"&gt;this page&lt;/a&gt;. Since payload is byte[], its proper interpetation depends on type associated to ID of structure.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Diameter Session&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Messages are exchanged within session.&amp;nbsp;Session is a relation of exchanged messages to particular activity, for instance accounting. Each diameter application defines life cycle of session and types of messages that can be exchanged within session. This allows peers to communicate with integrity and confidentiality.&lt;/div&gt;&lt;div style="text-align: left;"&gt;Sessions are identified by unique session id(AVP) present in each message exchanged.&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Diameter Application&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Diameter Application is not a software application. It is definition of protocol based on Diameter Base Protocol(RFC3588). Protocol is correct term since Diameter Application defines new messages, session state machines and AVPs.&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: #f1c232; font-size: x-large;"&gt;Step by step example&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;Now for purpose of this example lets define our own, private application. Our example application has to meet following requirements:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif; white-space: pre;"&gt; define new messages&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif; white-space: pre;"&gt; define new AVPs&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif; white-space: pre;"&gt; define very simple FSM for session to allow strict message exchange&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;Lets consider IDs of application as follows:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;ApplicationID: 33333&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;VendorID       : 66666&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;In this example we want our application to exchange text data within custom messages. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;Lets consider new type of message with name: SomeApplication-Exchange with message code equal to686 and application ID set to examples application ID.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;Request(SER - SomeApplication Exchange Request)  is defined as follows:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: 16px;"&gt;&lt;span class="Apple-style-span" style="font-family: monospace; white-space: pre;"&gt;    SER ::= &lt;/span&gt;&amp;nbsp;&amp;lt; Diameter Header: 686, 33333, REQ, PXY &amp;gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;pre class="newpage" style="font-size: 1em; margin-bottom: 0px; margin-top: 0px; page-break-before: always;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: 16px; white-space: normal;"&gt;&lt;cer&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt; Session-Id &amp;gt;&lt;/cer&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="newpage" style="font-size: 1em; margin-bottom: 0px; margin-top: 0px; page-break-before: always;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: 16px; white-space: normal;"&gt;&lt;cer&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;{ Origin-Host }&lt;/cer&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="newpage" style="font-size: 1em; margin-bottom: 0px; margin-top: 0px; page-break-before: always;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: 16px; white-space: normal;"&gt;&lt;cer&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;{ Origin-Realm }&lt;/cer&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="newpage" style="margin-bottom: 0px; margin-top: 0px; page-break-before: always;"&gt;&lt;span class="Apple-style-span"&gt;&lt;cer&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-size: 16px; white-space: normal;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;{ Destination-Realm }&lt;/span&gt;&lt;/span&gt;&lt;pre class="newpage" style="font-family: 'Times New Roman'; font-size: 1em; margin-bottom: 0px; margin-top: 0px; page-break-before: always; white-space: normal;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;{ Destination-Host }&lt;/pre&gt;&lt;pre class="newpage" style="margin-bottom: 0px; margin-top: 0px; page-break-before: always;"&gt;&lt;pre class="newpage" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; page-break-before: always;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman';"&gt;&lt;span class="Apple-style-span" style="font-size: 1em; white-space: normal;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;{ Auth-Application-Id }&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-size: 16px; white-space: normal;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;{ Exchange-Type }&lt;/span&gt;&lt;/span&gt;&lt;/cer&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="newpage" style="margin-bottom: 0px; margin-top: 0px; page-break-before: always;"&gt;&lt;span class="Apple-style-span"&gt;&lt;cer&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-size: 16px; white-space: normal;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;{ Exchange-Data }&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/cer&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="newpage" style="margin-bottom: 0px; margin-top: 0px; page-break-before: always;"&gt;&lt;span class="Apple-style-span"&gt;&lt;cer&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-size: 16px; white-space: normal;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;* [ Proxy-Info ]&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/cer&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="newpage" style="margin-bottom: 0px; margin-top: 0px; page-break-before: always;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: 16px; white-space: normal;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;* [ Route-Record ]&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="newpage" style="margin-bottom: 0px; margin-top: 0px; page-break-before: always;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: 16px; white-space: normal;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;* [ AVP ]&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;Answer is defined as follows:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;           SEA  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: monospace; font-size: 16px; white-space: pre;"&gt;&lt;cea&gt; ::= &amp;lt; Diameter Header: 686, 33333, PXY &amp;gt;&lt;/cea&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: 16px; white-space: normal;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre class="newpage" style="font-size: 1em; margin-bottom: 0px; margin-top: 0px; page-break-before: always;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: 16px; white-space: normal;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;lt; Session-Id &amp;gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="newpage" style="font-size: 1em; margin-bottom: 0px; margin-top: 0px; page-break-before: always;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: 16px; white-space: normal;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;{ Result-Code }&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="newpage" style="font-size: 1em; margin-bottom: 0px; margin-top: 0px; page-break-before: always;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: 16px; white-space: normal;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;{ Origin-Host }&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="newpage" style="font-size: 1em; margin-bottom: 0px; margin-top: 0px; page-break-before: always;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: 16px; white-space: normal;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;{ Origin-Realm }&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="newpage" style="font-size: 1em; margin-bottom: 0px; margin-top: 0px; page-break-before: always;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: 16px; white-space: normal;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;{ Auth-Application-Id }&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="newpage" style="margin-bottom: 0px; margin-top: 0px; page-break-before: always;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-size: 16px; white-space: normal;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;{ Exchange-Type }&lt;/span&gt;&lt;/span&gt;&lt;pre class="newpage" style="font-family: 'Times New Roman'; font-size: 1em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; page-break-before: always; white-space: normal;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;{ Exchange-Data }&lt;/pre&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-size: 16px; white-space: normal;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;* [ Proxy-Info ]&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="newpage" style="margin-bottom: 0px; margin-top: 0px; page-break-before: always;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-size: 16px; white-space: normal;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;* [ AVP ]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;Message definition contains two non standard AVPs which are crucial to example application. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;Both AVPs are specific to this application and are simple, not grouped AVPs. They are defined as follows:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: 16px; white-space: normal;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre class="newpage" style="font-size: 1em; margin-bottom: 0px; margin-top: 0px; page-break-before: always;"&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+---------------------+&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| &amp;nbsp; &amp;nbsp;AVP Flag rules &amp;nbsp; |&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|----+-----+----+-----|----+&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;                 |   &amp;nbsp;|     |SHLD| MUST|MAY |&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Attribute Name &amp;nbsp;Code Data Type &amp;nbsp;|MUST| MAY | NOT| &amp;nbsp;NOT|Encr|&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;--------------------------------|----+-----+----+-----|----|&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Exchange-Type &amp;nbsp; &amp;nbsp;888 Enumerated | M,V| &amp;nbsp;P &amp;nbsp;| &amp;nbsp; &amp;nbsp;| &amp;nbsp;  &amp;nbsp;| N &amp;nbsp;|&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Exchange-Data&amp;nbsp; &amp;nbsp; 999 UTF8String&amp;nbsp;| M,V| &amp;nbsp;P &amp;nbsp;| &amp;nbsp; &amp;nbsp;| &amp;nbsp;  &amp;nbsp;| N &amp;nbsp;|&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;Exchange-Type is simple enumerated AVP. Its code is 888 with Vendor ID equal to our examples vendor ID.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;There are three possible values that this AVP may carry:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif; white-space: pre;"&gt; 0:    INITIAL                      - indicates start of data session exchange&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif; white-space: pre;"&gt; 1:    INTERMEDIATE       - indicates follow up exchange(consequent exchange)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif; white-space: pre;"&gt; 2:    TERMINATING        - indicates last exchange, after answer is sent, session is terminated&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;Exchange-Data is simple UTF8String AVP. Its code is 999 with Vendor ID equal to our examples vendor ID. It contains data that has to be exchanged.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;Since AVPs and messages  are defined we need to define session FSM, so we know how to code exchange of messages. Since it has to be simple, lets consider such scenario:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;client sends SAR with Exchange-Type set to INITIAL, server resonds with SAA&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;session starts&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;it can be followed by number of SAR with Exchange-Type set to INTERMEDIATE&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;session continues&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;client sends SAR with Exchange-Type set to TERMINATING&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;session ends&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;Diagram below depicts messages exchange:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_K4gvy89DzOw/TOZHztFVDVI/AAAAAAAABGs/RJKyUMsBp80/s1600/ExampleDiamApp.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="249" src="http://1.bp.blogspot.com/_K4gvy89DzOw/TOZHztFVDVI/AAAAAAAABGs/RJKyUMsBp80/s320/ExampleDiamApp.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;span class="Apple-style-span" style="color: #ffd966;"&gt;Network&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;Since application logic and message flow has been defined, we can start creating client and server code. However to do that we need to understand how stack interacts with network.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;For this example two types of listeners used by stack are relevant to us:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;NetworkReqListener&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;EventListener&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;NetworkReqListener is very simple one. It is invoked for requests incoming from network layer.&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif; white-space: pre;"&gt; It has single method "processRequest". It is defined as follows:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;pre class="brush: js"&gt;public interface NetworkReqListener {&lt;br /&gt;        Answer processRequest(Request request);&lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;Instances of this listener type are registered in stack.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif; white-space: pre;"&gt;With registration, stack is given information which applications are of interest for particular listener. That is, listener method is invoked for messages which belong to specific application.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif; white-space: pre;"&gt;Single method defined in this interface has return type of "Answer". Implementation of this interface may return non null value, in such case its sent as answer to request, for which method is invoked. However if method invocation does not return value, nothing bad happens. In such case, user code has to call session object to send answer explicitly.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif; white-space: pre;"&gt;Registration of this listener type looks as follows:&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush: js"&gt;Stack stack;&lt;br /&gt; ....&lt;br /&gt; ApplicationId authAppId = ApplicationId.createByAuthAppId(....);&lt;br /&gt;&lt;br /&gt; Network network = stack.unwrap(Network.class);&lt;br /&gt;    network.addNetworkReqListener(new NetworkReqListener() {&lt;br /&gt;     &lt;br /&gt;     @Override&lt;br /&gt;     public Answer processRequest(Request request) {&lt;br /&gt;      //this wontbe called.&lt;br /&gt;      return null;&lt;br /&gt;     }&lt;br /&gt;    }, authAppId);&lt;br /&gt; &lt;/pre&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif; white-space: pre;"&gt;EventListener&lt;request, answer=""&gt; is a bit more complicated. It is used to inform application on result of request send operation. It is defined as follows:&lt;/request,&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;pre class="brush: js"&gt;public interface EventListener { &lt;br /&gt;  &lt;br /&gt;     void receivedSuccessMessage(R request, A answer);&lt;br /&gt;     &lt;br /&gt;     void timeoutExpired(R request);&lt;br /&gt;     &lt;br /&gt; }&lt;/pre&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;It is invoked in two cases:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;there has been no answer to request: &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; white-space: pre;"&gt;timeoutExpired(R request)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;answer has been received for request send from this stack: &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; white-space: pre;"&gt;receivedSuccessMessage(R request, A answer)&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif; white-space: pre;"&gt;Instance of this listener type is passed to session object when new request is sent through it.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif; white-space: pre;"&gt;&lt;span class="Apple-style-span" style="color: #ffd966; font-size: large;"&gt;Sessions and messages exchange&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif; white-space: pre;"&gt;Messages can be exchanged between peers by means of &lt;i&gt;Session &lt;/i&gt;objects(&lt;i&gt;RawSession &lt;/i&gt;or &lt;i&gt;Session&lt;/i&gt;). In our example we will use Session object. Each object of this type represents single diameter session(identified by session-id AVP present in messages). Session object is very basic one. Session object may be in two states: &lt;i&gt;valid &lt;/i&gt;and &lt;i&gt;invalid&lt;/i&gt;. It is invalidated explicitly by user. Once invalidated, it is not eligible for further use.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif; white-space: pre;"&gt;Session objects can be obtained from &lt;i&gt;SessionFactory&lt;/i&gt; in following way:&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif; white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;pre class="brush: js"&gt;SessionFactory factory = stack.getSessionFactory();&lt;br /&gt; //create new session, with auto generated Session-Id&lt;br /&gt; Session session = factory.getNewSession(); &lt;br /&gt;&lt;/pre&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif; white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;span class="Apple-style-span" style="color: #ffd966;"&gt;Stack configuration&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif; white-space: pre;"&gt;Stack is configured with instance of "Configuration" object. Current implementation provides instance of this interface which parses XML configuration file. For detailed description of XML tags used in this file please refer to &lt;a href="http://hudson.jboss.org/hudson/view/Mobicents/job/MobicentsBooks/lastSuccessfulBuild/artifact/diameter/core/index.html#jdiameter-configuration"&gt;stack guide&lt;/a&gt;. Below there is quick guide to essentials we need to make our example application work.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif; white-space: pre;"&gt;Definition of configuration file looks as follows:&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif; white-space: pre;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="color: #274e13;"&gt;&lt;br /&gt;&lt;pre class="brush: js"&gt;&amp;lt;xsi:element name="Configuration"&amp;gt;&lt;br /&gt;        &amp;lt;xsi:annotation&amp;gt;&lt;br /&gt;            &amp;lt;xsi:documentation&amp;gt;JDiameter configuration&amp;amp;lt/xsi:documentation&amp;gt;&lt;br /&gt;        &amp;lt;/xsi:annotation&amp;gt;&lt;br /&gt;        &amp;lt;xsi:complexType&amp;gt;&lt;br /&gt;            &amp;lt;xsi:sequence&amp;gt;&lt;br /&gt;                &amp;lt;xsi:element ref="LocalPeer" minOccurs="1" maxOccurs="1"/&amp;gt;&lt;br /&gt;                &amp;lt;xsi:element ref="Parameters" minOccurs="1" maxOccurs="1"/&amp;gt;&lt;br /&gt;                &amp;lt;xsi:element ref="Network" minOccurs="1" maxOccurs="1"/&amp;gt;&lt;br /&gt;                &amp;lt;xsi:element ref="Security" minOccurs="0" maxOccurs="1"/&amp;gt;&lt;br /&gt;                &amp;lt;xsi:element ref="Extensions" minOccurs="0" maxOccurs="1"/&amp;gt;&lt;br /&gt;            &amp;lt;/xsi:sequence&amp;gt;&lt;br /&gt;        &amp;lt;/xsi:complexType&amp;gt;&lt;br /&gt;    &amp;lt;/xsi:element&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #274e13; font-family: Georgia, 'Times New Roman', serif; white-space: pre;"&gt;&amp;gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif; white-space: pre;"&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif; white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif; white-space: pre;"&gt;To our example only two are relevant(Parameters are of no interest for now):&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;LocalPeer&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;Network&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif; white-space: pre;"&gt;LocalPeer contains configuration options for local diameter node. It includes information like:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;local peer URI( like aaa://our.localhost:34200 )&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;IP addresses&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;Realm name to which local peer belongs to&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;overload monitor and applications configuration&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif; white-space: pre;"&gt;Network tag contains configuration information concerning network environment:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;Realms to which local peer is connected&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;Remote peers to which  local peer is connected&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif; white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif; white-space: pre;"&gt;Below is example configuration file for stack which:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;identifies itself as billing.server.company.org, bound to port 13868&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;bound to two NICs&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;belongs to "billing" domain.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;supports one realm: "service"&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;is connected to single remote peer&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush: js"&gt;&amp;lt;?xml version="1.0"?&amp;gt;&lt;br /&gt;&amp;lt;Configuration xmlns="http://www.jdiameter.org/jdiameter-server"&amp;gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;LocalPeer&amp;gt;&lt;br /&gt;                &amp;lt;URI value="aaa://billing.server.company.org:3868" /&amp;gt;&lt;br /&gt;&lt;br /&gt;                &amp;lt;IPAddresses&amp;gt;&lt;br /&gt;                        &amp;lt;IPAddress value="212.30.0.12" /&amp;gt;&lt;br /&gt;                        &amp;lt;IPAddress value="212.30.1.12" /&amp;gt;&lt;br /&gt;                &amp;lt;/IPAddresses&amp;gt;&lt;br /&gt;                &amp;lt;Realm value="billing" /&amp;gt;&lt;br /&gt;                &amp;lt;VendorID value="0" /&amp;gt;&lt;br /&gt;                &amp;lt;ProductName value="jDiameter" /&amp;gt;&lt;br /&gt;                &amp;lt;FirmwareRevision value="1" /&amp;gt;&lt;br /&gt;                &amp;lt;OverloadMonitor&amp;gt;&lt;br /&gt;                        &amp;lt;Entry index="1" lowThreshold="0.5" highThreshold="0.6"&amp;gt;&lt;br /&gt;                                &amp;lt;ApplicationID&amp;gt;&lt;br /&gt;                                        &amp;lt;VendorId value="0" /&amp;gt;&lt;br /&gt;                                        &amp;lt;AuthApplId value="333333" /&amp;gt;&lt;br /&gt;                                        &amp;lt;AcctApplId value="0" /&amp;gt;&lt;br /&gt;                                &amp;lt;/ApplicationID&amp;gt;&lt;br /&gt;                        &amp;lt;/Entry&amp;gt;&lt;br /&gt;                &amp;lt;/OverloadMonitor&amp;gt;&lt;br /&gt;        &amp;lt;/LocalPeer&amp;gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;Parameters&amp;gt;&lt;br /&gt;                ...&lt;br /&gt;        &amp;lt;/Parameters&amp;gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;Network&amp;gt;&lt;br /&gt;                &amp;lt;Peers&amp;gt;&lt;br /&gt;                        &amp;lt;Peer name="aaa://212.31.0.12:3868" attempt_connect="true" rating="1" /&amp;gt;&lt;br /&gt;                &amp;lt;/Peers&amp;gt;&lt;br /&gt;                &amp;lt;Realms&amp;gt;&lt;br /&gt;                        &amp;lt;Realm name="service" peers="212.31.0.12" local_action="LOCAL" dynamic="false" exp_time="1"&amp;gt;&lt;br /&gt;                                &amp;lt;ApplicationID&amp;gt;&lt;br /&gt;                                        &amp;lt;VendorId value="0" /&amp;gt;&lt;br /&gt;                                        &amp;lt;AuthApplId value="333333" /&amp;gt;&lt;br /&gt;                                        &amp;lt;AcctApplId value="0" /&amp;gt;&lt;br /&gt;                                &amp;lt;/ApplicationID&amp;gt;&lt;br /&gt;                        &amp;lt;/Realm&amp;gt;&lt;br /&gt;                &amp;lt;/Realms&amp;gt;&lt;br /&gt;        &amp;lt;/Network&amp;gt;&lt;br /&gt;        &amp;lt;Extensions /&amp;gt;&lt;br /&gt;&amp;lt;/Configuration&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="color: #bf9000;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Application Client&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;Since now we know some basics, we can start creating our client code. Step by step, we should be able to create simple source which will act according to our application FSM.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;First we need definition of some static fields, with some values relevant to our application and configuration. Static definition may look as follows:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush: js"&gt;//configuration files&lt;br /&gt; private static final String configFile = "org/example/client/client-jdiameter-config.xml";&lt;br /&gt; private static final String dictionaryFile = "org/example/client/dictionary.xml";&lt;br /&gt; //our destination&lt;br /&gt; private static final String serverHost = "127.0.0.1";&lt;br /&gt; private static final String serverPort = "3868";&lt;br /&gt; private static final String serverURI = "aaa://" + serverHost + ":" + serverPort;&lt;br /&gt; //our realm&lt;br /&gt; private static final String realmName = "exchange.example.org";&lt;br /&gt; // definition of codes, IDs&lt;br /&gt; private static final int commandCode = 686;&lt;br /&gt; private static final long vendorID = 66666;&lt;br /&gt; private static final long applicationID = 33333;&lt;br /&gt; private ApplicationId authAppId = ApplicationId.createByAuthAppId(applicationID);&lt;br /&gt;        //avp codes&lt;br /&gt; private static final int exchangeTypeCode = 888;&lt;br /&gt; private static final int exchangeDataCode = 999;&lt;br /&gt; // enum values for Exchange-Type AVP&lt;br /&gt; private static final int EXCHANGE_TYPE_INITIAL = 0;&lt;br /&gt; private static final int EXCHANGE_TYPE_INTERMEDIATE = 1;&lt;br /&gt; private static final int EXCHANGE_TYPE_TERMINATING = 2;&lt;br /&gt; //list of data we want to exchange.&lt;br /&gt; private static final String[] TO_SEND = new String[] { "I want to get 3 answers", "This is second message", "Bye bye" };&lt;br /&gt; &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Secondly, we require definition of some objects, like stack, session etc. It could look as follows:&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre class="brush: js"&gt;//Dictionary, for informational purposes.&lt;br /&gt; private AvpDictionary dictionary = AvpDictionary.INSTANCE;&lt;br /&gt; private Stack stack;&lt;br /&gt; private SessionFactory factory;&lt;br /&gt;        // ////////////////////////////////////////&lt;br /&gt; // Objects which will be used in action //&lt;br /&gt; // ////////////////////////////////////////&lt;br /&gt; private Session session;  // session used as handle for communication&lt;br /&gt; private int toSendIndex = 0;  //index in TO_SEND table&lt;br /&gt; private boolean finished = false;  //boolean telling if we finished our interaction&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Thirdly, we need code which will initialize stack, session factory and register us as dummy listener for network requests. It could look as follows:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: js"&gt;private void initStack() {&lt;br /&gt;  if (log.isInfoEnabled()) {&lt;br /&gt;   log.info("Initializing Stack...");&lt;br /&gt;  }&lt;br /&gt;  InputStream is = null;&lt;br /&gt;  try {&lt;br /&gt;   //Parse dictionary, it is used for user friendly info.&lt;br /&gt;   dictionary.parseDictionary(this.getClass().getClassLoader().getResourceAsStream(dictionaryFile));&lt;br /&gt;   log.info("AVP Dictionary successfully parsed.");&lt;br /&gt;   &lt;br /&gt;   this.stack = new StackImpl();&lt;br /&gt;   //Parse stack configuration&lt;br /&gt;   is = this.getClass().getClassLoader().getResourceAsStream(configFile);&lt;br /&gt;   Configuration config = new XMLConfiguration(is);&lt;br /&gt;   factory = stack.init(config);&lt;br /&gt;   if (log.isInfoEnabled()) {&lt;br /&gt;    log.info("Stack Configuration successfully loaded.");&lt;br /&gt;   }&lt;br /&gt;   //Print info about applicatio&lt;br /&gt;   Set&amp;lt;org.jdiameter.api.ApplicationId&amp;gt; appIds = stack.getMetaData().getLocalPeer().getCommonApplications();&lt;br /&gt;&lt;br /&gt;   log.info("Diameter Stack  :: Supporting " + appIds.size() + " applications.");&lt;br /&gt;   for (org.jdiameter.api.ApplicationId x : appIds) {&lt;br /&gt;    log.info("Diameter Stack  :: Common :: " + x);&lt;br /&gt;   }&lt;br /&gt;   is.close();&lt;br /&gt;   //Register network req listener, even though we wont receive requests&lt;br /&gt;   //this has to be done to inform stack that we support application&lt;br /&gt;   Network network = stack.unwrap(Network.class);&lt;br /&gt;   network.addNetworkReqListener(new NetworkReqListener() {&lt;br /&gt;    &lt;br /&gt;    @Override&lt;br /&gt;    public Answer processRequest(Request request) {&lt;br /&gt;     //this wontbe called.&lt;br /&gt;     return null;&lt;br /&gt;    }&lt;br /&gt;   }, this.authAppId); //passing our example app id.&lt;br /&gt;   &lt;br /&gt;  } catch (Exception e) {&lt;br /&gt;   e.printStackTrace();&lt;br /&gt;   if (this.stack != null) {&lt;br /&gt;    this.stack.destroy();&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   if (is != null) {&lt;br /&gt;    try {&lt;br /&gt;     is.close();&lt;br /&gt;    } catch (IOException e1) {&lt;br /&gt;     // TODO Auto-generated catch block&lt;br /&gt;     e1.printStackTrace();&lt;br /&gt;    }&lt;br /&gt;   }&lt;br /&gt;   return;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  MetaData metaData = stack.getMetaData();&lt;br /&gt;  //ignore for now.&lt;br /&gt;  if (metaData.getStackType() != StackType.TYPE_SERVER || metaData.getMinorVersion() &amp;lt;= 0) {&lt;br /&gt;   stack.destroy();&lt;br /&gt;   if (log.isEnabledFor(org.apache.log4j.Level.ERROR)) {&lt;br /&gt;    log.error("Incorrect driver");&lt;br /&gt;   }&lt;br /&gt;   return;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  try {&lt;br /&gt;   if (log.isInfoEnabled()) {&lt;br /&gt;    log.info("Starting stack");&lt;br /&gt;   }&lt;br /&gt;   stack.start();&lt;br /&gt;   if (log.isInfoEnabled()) {&lt;br /&gt;    log.info("Stack is running.");&lt;br /&gt;   }&lt;br /&gt;  } catch (Exception e) {&lt;br /&gt;   e.printStackTrace();&lt;br /&gt;   stack.destroy();&lt;br /&gt;   return;&lt;br /&gt;  }&lt;br /&gt;  if (log.isInfoEnabled()) {&lt;br /&gt;   log.info("Stack initialization successfully completed.");&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;&lt;/pre&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif; white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif; white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif; white-space: pre;"&gt; Finally we need three more pieces of code to handle initialization of whole procedure, request send and answer handling.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif; white-space: pre;"&gt;Initialization part could be straightforward and could look as follows:&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush: js"&gt;private void start() {&lt;br /&gt;  try {&lt;br /&gt;   //wait for connection to peer&lt;br /&gt;   try {&lt;br /&gt;    Thread.currentThread().sleep(5000);&lt;br /&gt;   } catch (InterruptedException e) {&lt;br /&gt;    // TODO Auto-generated catch block&lt;br /&gt;    e.printStackTrace();&lt;br /&gt;   }&lt;br /&gt;   //do send&lt;br /&gt;   this.session = this.factory.getNewSession("BadCustomSessionId;YesWeCanPassId;" + System.currentTimeMillis());&lt;br /&gt;   sendNextRequest(EXCHANGE_TYPE_INITIAL);&lt;br /&gt;  } catch (InternalException e) {&lt;br /&gt;   // TODO Auto-generated catch block&lt;br /&gt;   e.printStackTrace();&lt;br /&gt;  } catch (IllegalDiameterStateException e) {&lt;br /&gt;   // TODO Auto-generated catch block&lt;br /&gt;   e.printStackTrace();&lt;br /&gt;  } catch (RouteException e) {&lt;br /&gt;   // TODO Auto-generated catch block&lt;br /&gt;   e.printStackTrace();&lt;br /&gt;  } catch (OverloadException e) {&lt;br /&gt;   // TODO Auto-generated catch block&lt;br /&gt;   e.printStackTrace();&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif; white-space: pre;"&gt;Part which actually creates request and sends it via session objects is also quite trivial. It could look as follows:&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush: js"&gt;private void sendNextRequest(int enumType) throws InternalException, IllegalDiameterStateException, RouteException, OverloadException {&lt;br /&gt;  Request r = this.session.createRequest(commandCode, this.authAppId, realmName, serverURI);&lt;br /&gt;  // here we have all except our custom avps&lt;br /&gt;&lt;br /&gt;  AvpSet requestAvps = r.getAvps();&lt;br /&gt;  // code , value , vendor, mandatory,protected,isUnsigned32&lt;br /&gt;  // (Enumerated)&lt;br /&gt;  Avp exchangeType = requestAvps.addAvp(exchangeTypeCode, (long) enumType, vendorID, true, false, true); // value is set on creation&lt;br /&gt;  // code , value , vendor, mandatory,protected, isOctetString&lt;br /&gt;  Avp exchangeData = requestAvps.addAvp(exchangeDataCode, TO_SEND[toSendIndex++], vendorID, true, false, false); // value is set on creation&lt;br /&gt;  // send, pass oursevles as EventListener object&lt;br /&gt;  this.session.send(r, this);&lt;br /&gt;  dumpMessage(r,true);&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif; white-space: pre;"&gt;&lt;br /&gt;In above code, when request is sent &lt;i&gt;this &lt;/i&gt;is passed as argument(&lt;i&gt;EventListener&lt;/i&gt;). So our client object, must also handle answers. Lets consider that we want to perform following:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;Send request with some data encoded as string&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;Receive properly formatted answer, with the same data client send&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;In case of error answer, client should terminate operations&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif; white-space: pre;"&gt;Code which does above could look as follows:&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush: js"&gt;@Override&lt;br /&gt; public void receivedSuccessMessage(Request request, Answer answer) {&lt;br /&gt;  dumpMessage(answer,false);&lt;br /&gt;  if (answer.getCommandCode() != commandCode) {&lt;br /&gt;   log.error("Received bad answer: " + answer.getCommandCode());&lt;br /&gt;   return;&lt;br /&gt;  }&lt;br /&gt;  AvpSet answerAvpSet = answer.getAvps();&lt;br /&gt;&lt;br /&gt;  Avp exchangeTypeAvp = answerAvpSet.getAvp(exchangeTypeCode, vendorID);&lt;br /&gt;  Avp exchangeDataAvp = answerAvpSet.getAvp(exchangeDataCode, vendorID);&lt;br /&gt;  Avp resultAvp = answer.getResultCode();&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;  try {&lt;br /&gt;   //for bad formatted request.&lt;br /&gt;   if (resultAvp.getUnsigned32() == 5005 || resultAvp.getUnsigned32() == 5004) {&lt;br /&gt;    // missing || bad value of avp&lt;br /&gt;    this.session.release();&lt;br /&gt;    this.session = null;&lt;br /&gt;    log.error("Something wrong happened at server side!");&lt;br /&gt;    finished = true;&lt;br /&gt;   }&lt;br /&gt;   switch ((int) exchangeTypeAvp.getUnsigned32()) {&lt;br /&gt;   case EXCHANGE_TYPE_INITIAL:&lt;br /&gt;    // JIC check;&lt;br /&gt;    String data = exchangeDataAvp.getUTF8String();&lt;br /&gt;    if (data.equals(TO_SEND[toSendIndex - 1])) {&lt;br /&gt;     // ok :) send next;&lt;br /&gt;     sendNextRequest(EXCHANGE_TYPE_INTERMEDIATE);&lt;br /&gt;    } else {&lt;br /&gt;     log.error("Received wrong Exchange-Data: " + data);&lt;br /&gt;    }&lt;br /&gt;    break;&lt;br /&gt;   case EXCHANGE_TYPE_INTERMEDIATE:&lt;br /&gt;    // JIC check;&lt;br /&gt;    data = exchangeDataAvp.getUTF8String();&lt;br /&gt;    if (data.equals(TO_SEND[toSendIndex - 1])) {&lt;br /&gt;     // ok :) send next;&lt;br /&gt;     sendNextRequest(EXCHANGE_TYPE_TERMINATING);&lt;br /&gt;    } else {&lt;br /&gt;     log.error("Received wrong Exchange-Data: " + data);&lt;br /&gt;    }&lt;br /&gt;    break;&lt;br /&gt;   case EXCHANGE_TYPE_TERMINATING:&lt;br /&gt;    data = exchangeDataAvp.getUTF8String();&lt;br /&gt;    if (data.equals(TO_SEND[toSendIndex - 1])) {&lt;br /&gt;     // good, we reached end of FSM.&lt;br /&gt;     finished = true;&lt;br /&gt;     // release session and its resources.&lt;br /&gt;     this.session.release();&lt;br /&gt;     this.session = null;&lt;br /&gt;    } else {&lt;br /&gt;     log.error("Received wrong Exchange-Data: " + data);&lt;br /&gt;    }&lt;br /&gt;    break;&lt;br /&gt;   default:&lt;br /&gt;    log.error("Bad value of Exchange-Type avp: " + exchangeTypeAvp.getUnsigned32());&lt;br /&gt;    break;&lt;br /&gt;   }&lt;br /&gt;  } catch (AvpDataException e) {&lt;br /&gt;   // thrown when interpretation of byte[] fails&lt;br /&gt;   e.printStackTrace();&lt;br /&gt;  } catch (InternalException e) {&lt;br /&gt;   // TODO Auto-generated catch block&lt;br /&gt;   e.printStackTrace();&lt;br /&gt;  } catch (IllegalDiameterStateException e) {&lt;br /&gt;   // TODO Auto-generated catch block&lt;br /&gt;   e.printStackTrace();&lt;br /&gt;  } catch (RouteException e) {&lt;br /&gt;   // TODO Auto-generated catch block&lt;br /&gt;   e.printStackTrace();&lt;br /&gt;  } catch (OverloadException e) {&lt;br /&gt;   // TODO Auto-generated catch block&lt;br /&gt;   e.printStackTrace();&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt;&lt;/pre&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif; white-space: pre;"&gt;&lt;br /&gt;As you can see, client code is quite simple. It is not smarty-pants code, its sole purpose is to show how to interact with stack. &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif; white-space: pre;"&gt;Server code is very similar. Whole source with configuration files and ready to run scripts can be found in our &lt;a href="http://code.google.com/p/mobicents/source/browse/#svn/trunk/servers/diameter/examples/guide1"&gt;gcode svn&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif; white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3691620912972680962-6383734123420540753?l=baranowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://baranowb.blogspot.com/feeds/6383734123420540753/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://baranowb.blogspot.com/2010/11/diameter-educational-series-creating.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3691620912972680962/posts/default/6383734123420540753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3691620912972680962/posts/default/6383734123420540753'/><link rel='alternate' type='text/html' href='http://baranowb.blogspot.com/2010/11/diameter-educational-series-creating.html' title='Diameter Educational Series: Creating a &quot;Hello World&quot; Application with Mobicents Diameter'/><author><name>baranowb</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://1.bp.blogspot.com/_K4gvy89DzOw/SqF1MtefrtI/AAAAAAAAA9I/yGuWaOTQIzU/s1600-R/gallery-77805673-500x500.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_K4gvy89DzOw/TOZHztFVDVI/AAAAAAAABGs/RJKyUMsBp80/s72-c/ExampleDiamApp.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3691620912972680962.post-5283310333449525360</id><published>2010-11-18T05:33:00.000-08:00</published><updated>2010-11-18T05:43:15.556-08:00</updated><title type='text'>Syntax highlighter</title><content type='html'>Just testing cool tool for syntax.&lt;br /&gt;&lt;br /&gt;Test1:&lt;br /&gt;&lt;pre class="brush: js;"&gt;class X implements java.io.Serializable{&lt;br /&gt;&lt;br /&gt;    public void makeMyDay()&lt;br /&gt;    {&lt;br /&gt;        System.err.println("PunK");&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Downside of this, is that for each snippet I need to edit HTML, but still... looks a lot better.Also sometimes "Compose" will still use editor &amp;amp;ltpre&amp;gt; &amp;nbsp;to embed new content.&lt;br /&gt;&lt;br /&gt;To use this tool add ref in head of blog template to .js and .css files:&lt;br /&gt;&lt;pre class="brush: js;"&gt;&amp;lt;link href='http://alexgorbatchev.com/pub/sh/current/styles/shCore.css' rel='stylesheet' type='text/css'/&amp;gt;&lt;br /&gt;&amp;lt;link href='http://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css' rel='stylesheet' type='text/css'/&amp;gt;&lt;br /&gt;&amp;lt;script src='http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js' type='text/javascript'&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJScript.js' type='text/javascript'&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushBash.js' type='text/javascript'&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCss.js' type='text/javascript'&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJava.js' type='text/javascript'&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPhp.js' type='text/javascript'&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCSharp.js' type='text/javascript'&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushXml.js' type='text/javascript'&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushSql.js' type='text/javascript'&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script type='text/javascript'&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;SyntaxHighlighter.config.clipboardSwf = 'http://alexgorbatchev.com/pub/sh/2.0.278/scripts/clipboard.swf';&lt;br /&gt;&amp;nbsp;&amp;nbsp;SyntaxHighlighter.config.bloggerMode = true;&lt;br /&gt;&amp;nbsp;&amp;nbsp;SyntaxHighlighter.all(); &lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/pre&gt;and follow instructions: found&amp;nbsp;&lt;a href="http://alexgorbatchev.com/SyntaxHighlighter/manual/installation.html"&gt;here&lt;/a&gt;&amp;nbsp;(look for section with examples).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3691620912972680962-5283310333449525360?l=baranowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://baranowb.blogspot.com/feeds/5283310333449525360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://baranowb.blogspot.com/2010/11/syntax-highlighter.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3691620912972680962/posts/default/5283310333449525360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3691620912972680962/posts/default/5283310333449525360'/><link rel='alternate' type='text/html' href='http://baranowb.blogspot.com/2010/11/syntax-highlighter.html' title='Syntax highlighter'/><author><name>baranowb</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://1.bp.blogspot.com/_K4gvy89DzOw/SqF1MtefrtI/AAAAAAAAA9I/yGuWaOTQIzU/s1600-R/gallery-77805673-500x500.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3691620912972680962.post-7242345533715894230</id><published>2010-10-11T06:39:00.000-07:00</published><updated>2010-10-18T00:26:16.843-07:00</updated><title type='text'>Mobicents Team building 2010, Antalya, Turkey</title><content type='html'>&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Exactly, that one event in year, when whole team is supposed to have fun and work in close quarters(yes).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;The PLACE&lt;/span&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: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Whole event has been organized by &lt;/span&gt;&lt;/span&gt;&lt;a href="http://emmartins.blogspot.com/"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Eduardo M. M.&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;, big thanks. It was one of best events, if not THE best we had so far. We stayed in 5 start hotel &amp;amp; SPA center. Awesome place to chill out. Just look at pictures:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_K4gvy89DzOw/TLLcIm75DUI/AAAAAAAABGQ/qG_Ab2fWa8Y/s1600/IMG_3001_1600x1067.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;img border="0" height="213" src="http://2.bp.blogspot.com/_K4gvy89DzOw/TLLcIm75DUI/AAAAAAAABGQ/qG_Ab2fWa8Y/s320/IMG_3001_1600x1067.JPG" width="320" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_K4gvy89DzOw/TLLcMyUDUAI/AAAAAAAABGU/Z11jdCbK_gE/s1600/IMG_3018_1600x1067.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;img border="0" height="213" src="http://3.bp.blogspot.com/_K4gvy89DzOw/TLLcMyUDUAI/AAAAAAAABGU/Z11jdCbK_gE/s320/IMG_3018_1600x1067.JPG" width="320" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;This year was actually special for two reasons. First reason is the fact that whole team has gathered for the first time. Yes, thats true. During past years we always had bad luck and someone either did not make it, or just couldnt. This year even we met all, for the first time. Even Tom, who works from Brisbane office joined us.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Second reason is fact that some community users and customers joined us on short notice. This proved to be very, very good turn of events.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Most of us arrived on 24th night or evening, so start was a bit slow - simple catching up with cold beer in hand at the bar.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;The FUN&lt;/span&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: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Next day was strictly fun day, no work(well we talked about roadmaps on the bus, but that does not count). Rafting time!&amp;nbsp;We took a bus from hotel which drove us somewhere in the mountains. Once the bus stopped we got out, our prayers have been heard, we were alive - seriously if you dont buckle up, go there, have a ride, those guys are insane.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;From that spot we took huge rafts and went down the river. It was quite good fun.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_MqFF1_4VtyU/TKx91diEeuI/AAAAAAAAAi8/QMCqziDKzwU/s1600/P2-1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;img border="0" height="230" src="http://4.bp.blogspot.com/_MqFF1_4VtyU/TKx91diEeuI/AAAAAAAAAi8/QMCqziDKzwU/s320/P2-1.jpg" width="320" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;The WORK&lt;/span&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: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Now, enough about fun. Since that point, our regular day looked more or less the same: breakfast, work, 1-2h relax time, more work, party till morning.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Total we had three and a half day for our presentations, discussions and everything related. During that period of time, as each year, we went through all projects, their achievements, shortcommings and roadmaps.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Additionally this year some other topic were brought up to attention and discussed - like Clustering or SS7 training session.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Unfortunetly three days were not enough to go through all of our fields of interest. Certainly sign that we should extended next years event. Example topics that were discussed only with beer in hand are for instance: SIP Presence or IPBX.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_K4gvy89DzOw/TLLnN0abx4I/AAAAAAAABGc/6eL7WjexuIA/s1600/IMG_2988_1600x1067.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;img border="0" height="213" src="http://3.bp.blogspot.com/_K4gvy89DzOw/TLLnN0abx4I/AAAAAAAABGc/6eL7WjexuIA/s320/IMG_2988_1600x1067.JPG" width="320" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="line-height: 15px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_MqFF1_4VtyU/TKx-2R9T4OI/AAAAAAAAAjA/XKfhyu5n9aU/s1600/IMG_4909.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;img border="0" height="240" src="http://3.bp.blogspot.com/_MqFF1_4VtyU/TKx-2R9T4OI/AAAAAAAAAjA/XKfhyu5n9aU/s320/IMG_4909.JPG" width="320" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Our first day started with private sessions during which we discussed some internal stuff, crucial to our future. After that plan looked as follows:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul style="color: #333333;"&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;The meeting started with presentations from customers. The talk was mostly on how they are using the Mobicents Platform, what they liked and what they dont. Most important was what they expect from Mobicents in future, how Mobicents fares in competition from peers etc&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Business development update: leads, partners, customers, 12 month go-to-market strategy&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Lessons learned from customers in past 12 months&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://docs.google.com/leaf?id=0AdgrvwaZgnJ1ZGM1anA1dnhfMjQ3Zzh0dmtmZGg&amp;amp;sort=name&amp;amp;layout=list&amp;amp;num=50" style="color: #333333; font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Clustering infrastructure&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Documentation process review&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Diameter Crash Course&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Diameter 12 month progress and next 12 months roadmap&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Media Server Crash Course Part 1&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://docs.google.com/leaf?id=0Bx5XDw0RNfsVYTYyYzJkMTctN2E4MS00NWVkLTkzODMtN2I2NzY5NjE0ZTdk&amp;amp;sort=name&amp;amp;layout=list&amp;amp;num=50" style="color: #333333; font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;SS7 Progress&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://docs.google.com/leaf?id=0Bx5XDw0RNfsVMDFkYzZjZmUtZGRjMS00NDBkLWEyYWItMDk3YmViZDFkYmJh&amp;amp;sort=name&amp;amp;layout=list&amp;amp;num=50" style="color: #333333; font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Media Server 12 month progress and next 12 months roadmap&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://docs.google.com/leaf?id=0ByfgEQx5sxXKZDFhMmU2ZDItZTZhNC00NjUzLTk3MjgtMTYwMzZkY2M1ZjU5&amp;amp;sort=name&amp;amp;layout=list&amp;amp;num=50" style="color: #333333; font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;JSLEE&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;a href="https://docs.google.com/leaf?id=0ByfgEQx5sxXKZDFhMmU2ZDItZTZhNC00NjUzLTk3MjgtMTYwMzZkY2M1ZjU5&amp;amp;sort=name&amp;amp;layout=list&amp;amp;num=50" style="color: #333333; font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&amp;nbsp;12 month progress and next 12 months roadmap&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://docs.google.com/fileview?id=0B3Z3Uhj-XHcDYWUxYmQxYWEtODhiYi00NGNiLTk5NjEtYmZjMjRiZDg0OTU5&amp;amp;hl=en" style="color: #333333; font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Sip Servlets 12 month progress and next 12 months roadmap&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://docs.google.com/leaf?id=0B3Z3Uhj-XHcDNTAyOTc5MTAtNmUxMi00NDZhLWJlNTMtNjg3NjQ0MjA0NTZi&amp;amp;hl=en" style="color: #333333; font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Sip Servlets review&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;JSLEE&lt;/span&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: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&amp;nbsp;Eduardo presented our efforts to bring best open soruce JSLEE container :). So....&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;We had very good year, lots of work, lots of community feedback. Extremly &amp;nbsp;successful 2.x release of container. We completly reworked 2.x core to achieve:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;high performance - over 4x compared to 1.x generation of container&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;low latency&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;fault tolerance&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;His presentation covered also major features and development efforts we made, like:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="p1" style="line-height: 15px;"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Container's core modularization and SPI&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Server's state replication&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Fault Tolerant RA API&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Congestion Control&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Event Router Stats and Execution Mapper&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Simplified Global Logging Configuration&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;New or Reworked RAs (JCC, ISUP, MAP, XCAP Client)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Jopr Web Console&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Enhanced or simplified external SLEE Connection.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;In the end he covered roadmaps for immediate release and long term efforts:&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="p1" style="line-height: 15px; text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Mobicents JAIN SLEE 2.2.0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="p2" style="line-height: 15px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="p1" style="line-height: 15px;"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Part I of clustering performance enhancements (8x compared with 2.1.2)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Buddy groups clustering&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Twiddle Command Line Interface (CLI), which we believe will be a major tool for developers and platform administrators&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Part I of JAIN SLEE 1.1 Extensions, specially the one which allows JAIN SLEE Libraries to depend on other SLEE component types, such as RA Types&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Eclipse SLEE Plugin 2.0&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;SMPP v5 Resource Adaptor&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Misc performance optimizations on SLEE facilities, such as Tracers&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="p2" style="line-height: 15px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="p1" style="line-height: 15px; text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Mobicents JAIN SLEE 2010/11 Roadmap Draft&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="p2" style="line-height: 15px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="p1" style="line-height: 15px;"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;JAIN SLEE 1.1 Extensions: Annotations &amp;amp; ConfigProperties&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Jopr Web Console 2.x (or something else if we are not able to solve current version limitations)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;EclipSLEE 2.1&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Mobicents Cluster Framework 3.x with Advanced Buddy Groups features such as high performance intra group broadcasting of notifications&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Second wave of SS7 RAs&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;JSR 309 RA&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;For detailed info follow &lt;/span&gt;&lt;a href="http://emmartins.blogspot.com/2010/10/mobicents-team-meeting-2010-antalya.html"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Eduardos blog&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;DIAMETER&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Diameter presentation was a first one I did this year. This was actually a crash course training and as such it can not be disclosed as other presentations.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;In crash course Ive covered following:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;DIAMETER basics - data structures, encoding, protocol base&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;DIAMETER domains&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Base application&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Accounting application&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Credit Control Application(rfc4006)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Ro &amp;amp; Rf applications&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;During Diameter time, &lt;/span&gt;&lt;a href="http://ammendonca.blogspot.com/"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Alex &lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;covered our development efforts and roadmap.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;In short it was quite good year. &amp;nbsp;Roadmap was a bit packed. Only two features did not make it since there was no interest - WS Support and HSS. Major features and development efforts on diameter are as follows:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;SOAK testing&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;CPU and memory stability&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;XML configurable dictionary and validator&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;implementation of different applications(Cx/Dx,Sh,Ro,Rf,Cca....) along with JSLEE RAs&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;FT/HA support&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;performance improvement( over 4x )&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;documentation&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;JOPR console&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Improved AVP handling&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;For next year we plan to split work in two directions. Continue 1.4.x branch with improvements and start new one. The 2.x will be testing field for next gen stack, which should be more user friendly and much more &amp;nbsp;performant.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;For 1.4.x we have planned following:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;1.4.x&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;parser separation from stack metadata&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;testing framework for application sessions&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;profiling and improving clustering code&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;improve thread management&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;IPSEC/TLS support&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;testing framework for JSLEE RAs&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;support plugable/configurable load balancing algorithm in stack&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;integration with SIP loadbalancer&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;...&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;This is just a short list, full has much much more, its quite packed and scary.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;For 2.x we have planed following:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;2.x&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;redesign API to be user friendly&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;evaluate IoC as good approach&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;decouple sessions and message creation&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;SCTP support&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;greater perofrmance(over 1k exchanges/s)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;....&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="color: blue; font-size: x-large;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;SS7&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;During one of my time slots I have conducted quick crash course about SS7 and our progress in this field.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Crash course proved to be a bit confusing for some. But it drove our community guest into discussion, in which they shared their experience, field of interest and expectations. It was quite good and valuable discussion.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;SS7 progress during last year is tremendous. We have started very slow and picked up pace.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;From almost no working code and experience we finished with support for:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Dialogic and Intel based SS7 cards - this includes implementation of MTP levels&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;M3UA integration&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;SCCP&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;ISUP&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;TCAP&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;MAP&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;USSD Gateway&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;In future we plan to get SS7 training on operators side to be able to meet production quality with our code. In near future we will stabilize SS7 stack layers and test everything end to end with real hardware in our lab, which is being created.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Last but not least we plan to add more protocols to USSD Gateway we have been developing.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;SS7 presentation can be found &lt;a href="https://docs.google.com/leaf?id=0Bx5XDw0RNfsVYTYyYzJkMTctN2E4MS00NWVkLTkzODMtN2I2NzY5NjE0ZTdk&amp;amp;sort=name&amp;amp;layout=list&amp;amp;num=50"&gt;here&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: x-large;"&gt;Media Server&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: x-large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;During this event Amit and Oleg presented last years achievements and problems we faced on media field.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;In media processing accuracy and predictability is what counts. To address that requirement we had to give away multi threading and java timers. Our work on MMS has been centered around:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;stability&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;predictability&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;accurate implementation of scheduler(very low overhead, with 1ms precision)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;reducing number of active threads - MMS core and MGCP stack&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;improving performance with 3rd party libraries(like TTS, MBROLA)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;The outcome is best performing server on low end machine with 300x concurrent, bidirectional connections!&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Future plans for MMS are to split development in two directions.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: small;"&gt;First one is to continue 2.x development and concentrate on stability and perofrmance with voice media.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: small;"&gt;Second is to start 3.x development which will include video support.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: small;"&gt;Near future roadmap(2.1.0-B1) includes following:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;B-Channel endpoint for SS7&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;smart voice pool&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;configurable connection count for endpoints&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;RTCP support&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Audit endpoint support&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Thats it. Looking forward for next years TB event. Hope that more community users will show up.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&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/3691620912972680962-7242345533715894230?l=baranowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://baranowb.blogspot.com/feeds/7242345533715894230/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://baranowb.blogspot.com/2010/10/mobicents-team-building-2010-antalya.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3691620912972680962/posts/default/7242345533715894230'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3691620912972680962/posts/default/7242345533715894230'/><link rel='alternate' type='text/html' href='http://baranowb.blogspot.com/2010/10/mobicents-team-building-2010-antalya.html' title='Mobicents Team building 2010, Antalya, Turkey'/><author><name>baranowb</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://1.bp.blogspot.com/_K4gvy89DzOw/SqF1MtefrtI/AAAAAAAAA9I/yGuWaOTQIzU/s1600-R/gallery-77805673-500x500.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_K4gvy89DzOw/TLLcIm75DUI/AAAAAAAABGQ/qG_Ab2fWa8Y/s72-c/IMG_3001_1600x1067.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3691620912972680962.post-1790842424733031495</id><published>2010-10-11T02:31:00.000-07:00</published><updated>2010-10-11T02:31:11.537-07:00</updated><title type='text'>New stuff</title><content type='html'>Last week was a bit of hell week. We had two releases going on, one for SS7 project second for SLEE container. So lets see what we managed to push to community.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SS7 includes few fixes, but most important improvements are hidden in SCCP and M3UA/MTP. This release brings two things:&lt;br /&gt;&amp;nbsp;- support for M3UA, now you can integrate our stacks with Dialogic M3UA.&lt;br /&gt;&amp;nbsp;- SCCP routing and service. SCCP layers supports now basic routing. Additionally it has been changed to service, in which for instance JSLEE RAs, can register to receive MU which are targeted for specific address.&lt;br /&gt;Release already happened, shortly there will be new bundle available on sourceforge.net.&lt;br /&gt;&lt;br /&gt;JSLEE release brings tons of goodies. Detailed info can be found &lt;a href="http://groups.google.com/group/mobicents-public/msg/12e6bda727659374"&gt;here&lt;/a&gt;, in short:&lt;br /&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;- Cluster performance optimization, 8x compared with 2.1.2.FINAL&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;- Support for "Buddy Groups" clusters&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;- Tracers performance optimization&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;- Enhanced RA's SleeEndpoint with custom operations to help/optimize&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;work in cluster mode&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;- EJB support for SBBs, as defined by JAIN SLEE 1.1 standard&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;- CMP Field Accessor Methods performance optimization&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;- SbbContext/ProfileContext JAIN SLEE 1.1 Extension&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;- ActivityContextInterface JAIN SLEE 1.1 Extension&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;- Library XML Descriptor References JAIN SLEE 1.1 Extension&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Additionally this release comes with Twiddle CLI and refactored Eclipse plugin (EclipseSLEE).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3691620912972680962-1790842424733031495?l=baranowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://baranowb.blogspot.com/feeds/1790842424733031495/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://baranowb.blogspot.com/2010/10/new-stuff.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3691620912972680962/posts/default/1790842424733031495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3691620912972680962/posts/default/1790842424733031495'/><link rel='alternate' type='text/html' href='http://baranowb.blogspot.com/2010/10/new-stuff.html' title='New stuff'/><author><name>baranowb</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://1.bp.blogspot.com/_K4gvy89DzOw/SqF1MtefrtI/AAAAAAAAA9I/yGuWaOTQIzU/s1600-R/gallery-77805673-500x500.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3691620912972680962.post-8946728769907193080</id><published>2010-10-11T02:11:00.000-07:00</published><updated>2010-10-11T02:11:07.012-07:00</updated><title type='text'>Trip after trip, training gig.</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Its&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;been&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt; a &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;while&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;since&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Ive&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;had&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;some&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt; time to blog, high time to catch up.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Sometime&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt; ago(end of August I &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;believe&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;) me and &lt;/span&gt;&lt;a href="http://amitbhayani.blogspot.com/"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Amit&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;had&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;pleasure&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt; to &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;perform&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;training&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt; in South &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Affrica&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Training&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;took&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt; place in(or &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;near&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;) &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Johanesburg&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt; at CSIR&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;institute&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;CSIR&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;stands&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt; for Council for &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Scientific&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt; and Industrial Research. &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Its&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;located&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt; in Pretoria, &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Johanesburg&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;.&amp;nbsp;The&amp;nbsp;&lt;/span&gt;&lt;span class="J-JK9eJ-PJVNOc"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;CSIR&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;is South Africa's central and premier scientific research and development organisation in Africa. Constituted by an Act of Parliament in 1945 as a science council, the&amp;nbsp;&lt;/span&gt;&lt;span class="J-JK9eJ-PJVNOc"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;CSIR&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&amp;nbsp;undertakes directed and multidisciplinary research, technological innovation as well as industrial and scientific development to improve the quality of life of the country’s people. In short, CSIR hosts researches and create technologies which are implemented by SA government.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;We had accommodation &amp;nbsp;provided by Meraka. During whole training we stayed in one of houses at Merakas campus. Campus is a huge playground, not only it looks great but it provides also a lot of places to socialize, like:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;football field&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;tenis/squash courts&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;gym&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;etc....&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Usually core developers do not provide training. However this case was a bit different. Whole training was customized, to address needs of Meraka team.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Training gave me and Amit rare opportunity to interact with users. Whole gig gave us quite good picture of problems and design traps users fall into. Most of them come simply from missing concepts behind specification. This is something we can address in blog posts and documentation. And we will.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;CSIR developers are quite experienced. They've been playing with JSLEE container for quite some time now. They already have few Resource Adaptors and services developed on top of JSLEE container. Some of them quite interesting, for instance &lt;a href="http://sport.csir.co.za/view.aspx?id=2382~4p~QczxuuJq"&gt;MOBI4D&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_7uYlrUk2I2I/TIzckirCnKI/AAAAAAAAAnU/Wv7zBiZ_zWY/s1600/_MG_2732_1575x1050.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="213" src="http://3.bp.blogspot.com/_7uYlrUk2I2I/TIzckirCnKI/AAAAAAAAAnU/Wv7zBiZ_zWY/s320/_MG_2732_1575x1050.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;CSIR. Meraka Team, me and Amit.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3691620912972680962-8946728769907193080?l=baranowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://baranowb.blogspot.com/feeds/8946728769907193080/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://baranowb.blogspot.com/2010/10/trip-after-trip-training-gig.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3691620912972680962/posts/default/8946728769907193080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3691620912972680962/posts/default/8946728769907193080'/><link rel='alternate' type='text/html' href='http://baranowb.blogspot.com/2010/10/trip-after-trip-training-gig.html' title='Trip after trip, training gig.'/><author><name>baranowb</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://1.bp.blogspot.com/_K4gvy89DzOw/SqF1MtefrtI/AAAAAAAAA9I/yGuWaOTQIzU/s1600-R/gallery-77805673-500x500.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_7uYlrUk2I2I/TIzckirCnKI/AAAAAAAAAnU/Wv7zBiZ_zWY/s72-c/_MG_2732_1575x1050.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3691620912972680962.post-580079627674611251</id><published>2010-08-02T00:51:00.000-07:00</published><updated>2010-08-02T00:51:19.561-07:00</updated><title type='text'>Mobicents does it again!</title><content type='html'>Incredible. Once again we managed to make release, or two. Details below:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://groups.google.com/group/mobicents-public/browse_thread/thread/e9d5a29020612e1c"&gt;Protocol Suite&lt;/a&gt;&amp;nbsp;&amp;nbsp;- 1.0.0.B2.&lt;/li&gt;&lt;li&gt;&lt;a href="http://groups.google.com/group/mobicents-public/browse_thread/thread/86b7cf22708ed8bd"&gt;Media Server &lt;/a&gt;- 2.0.0.CR3.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Mobicents media server is last CR before FINAL( previously called GA).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ive mentioned that incubator went live on &lt;a href="http://www.mobicents.org/incubator.html"&gt;mobicents.org&lt;/a&gt;. Some work has been done there as well, during last few days. roadmaps are alive and beeing updated as in other projects. Also some new projects surfaced there(HA, SIP LoadBalancer, ....).&amp;nbsp;&lt;/div&gt;&lt;div&gt;What is still on "TODO" for incubator? Documentation. It should be linked soon. Stay tuned.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3691620912972680962-580079627674611251?l=baranowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://baranowb.blogspot.com/feeds/580079627674611251/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://baranowb.blogspot.com/2010/08/mobicents-does-it-again.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3691620912972680962/posts/default/580079627674611251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3691620912972680962/posts/default/580079627674611251'/><link rel='alternate' type='text/html' href='http://baranowb.blogspot.com/2010/08/mobicents-does-it-again.html' title='Mobicents does it again!'/><author><name>baranowb</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://1.bp.blogspot.com/_K4gvy89DzOw/SqF1MtefrtI/AAAAAAAAA9I/yGuWaOTQIzU/s1600-R/gallery-77805673-500x500.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3691620912972680962.post-1346505929275933013</id><published>2010-07-15T01:51:00.000-07:00</published><updated>2010-07-15T08:18:53.371-07:00</updated><title type='text'>Incubator goes live! Baby projects are official.</title><content type='html'>Again its been a while. Shortly traffic will pick up and some tutorial will see the light here. But before that, small update on mobicents.org. Incubator goes live. First Mobicents baby projects hit the light!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.mobicents.org/incubator.html"&gt;http://www.mobicents.org/incubator.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.mobicents.org/incubator/stream/intro.html"&gt;stream library&lt;/a&gt; - proprietary stream library&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.mobicents.org/incubator/asn/intro.html"&gt;asn.1 library&lt;/a&gt;&amp;nbsp;- library which enables user to encode/decode ASN.1.&lt;/li&gt;&lt;li&gt;set of SS7 stacks.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.mobicents.org/incubator/ussd/intro.html"&gt;USSD Gateway&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Some more will get promotion to incubator, time will show.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3691620912972680962-1346505929275933013?l=baranowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://baranowb.blogspot.com/feeds/1346505929275933013/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://baranowb.blogspot.com/2010/07/incubator-goes-live-baby-projects-are.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3691620912972680962/posts/default/1346505929275933013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3691620912972680962/posts/default/1346505929275933013'/><link rel='alternate' type='text/html' href='http://baranowb.blogspot.com/2010/07/incubator-goes-live-baby-projects-are.html' title='Incubator goes live! Baby projects are official.'/><author><name>baranowb</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://1.bp.blogspot.com/_K4gvy89DzOw/SqF1MtefrtI/AAAAAAAAA9I/yGuWaOTQIzU/s1600-R/gallery-77805673-500x500.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3691620912972680962.post-8587634397005166365</id><published>2010-03-18T10:37:00.000-07:00</published><updated>2010-03-18T10:37:39.676-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mobicents diameter SLEE media MMS'/><title type='text'>Fresh releases from Mobicents Kitchen</title><content type='html'>Last week or two were quite fruitful for mobicents team. What came out from under our hood?&lt;br /&gt;Well:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Jain MGCP Stack RC7 - last RC, more info can be found &lt;a href="http://mozesz%20uderzyc%20do%20rodzicow/"&gt;here&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Diameter 1.2.0 GA - JSLEE 2.x resources, more info can be found &lt;a href="http://groups.google.com/group/mobicents-public/browse_thread/thread/2a5872f69aee105c/38bfd0065db946a6?lnk=gst&amp;amp;q=Diameter#38bfd0065db946a6"&gt;here&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;MMS 2.0.0.RC1, first Release Candidate from 2.x trunk of MMS, more info can be found &lt;a href="http://groups.google.com/group/mobicents-public/browse_thread/thread/87441637cf2c487f/b5e658fd2abc5031?lnk=gst&amp;amp;q=CR1#b5e658fd2abc5031"&gt;here&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;More will come.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3691620912972680962-8587634397005166365?l=baranowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://baranowb.blogspot.com/feeds/8587634397005166365/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://baranowb.blogspot.com/2010/03/fresh-releases-from-mobicents-kitchen.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3691620912972680962/posts/default/8587634397005166365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3691620912972680962/posts/default/8587634397005166365'/><link rel='alternate' type='text/html' href='http://baranowb.blogspot.com/2010/03/fresh-releases-from-mobicents-kitchen.html' title='Fresh releases from Mobicents Kitchen'/><author><name>baranowb</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://1.bp.blogspot.com/_K4gvy89DzOw/SqF1MtefrtI/AAAAAAAAA9I/yGuWaOTQIzU/s1600-R/gallery-77805673-500x500.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3691620912972680962.post-7151721407306456732</id><published>2010-03-15T02:52:00.000-07:00</published><updated>2010-03-15T02:52:33.010-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JSLEE maven archetype guide tutorial'/><title type='text'>Maven Archetypes update</title><content type='html'>Some changes in maven tools in mobicents platofrm:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;fix metadata&lt;/li&gt;&lt;li&gt;add jslee 1.1 service archetype&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;So now all desired archetypes are there.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Maven archetypes can be found &lt;a href="http://code.google.com/p/mobicents/source/browse/#svn/trunk/tools/maven-archetypes"&gt;here&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;Also there is good article how to use archetypes to quick start projects, it can be found &lt;a href="http://whitelassiblog.wordpress.com/2010/03/10/creatingbuildingdeploying-and-testing-projects-with-mobicents-jain-slee-2-x-y-series/"&gt;here&lt;/a&gt;.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;How to use archetype from CLI? Please follow:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;checkout&lt;/li&gt;&lt;li&gt;install with &lt;i&gt;mvn install&lt;/i&gt;&lt;/li&gt;&lt;li&gt;use following command(for service):&amp;nbsp;&lt;i&gt;&amp;nbsp;mvn archetype:generate -DarchetypeGroupId=org.mobicents.tools.maven.archetype.slee -DarchetypeArtifactId=jain-slee-11-service -DgroupdId=xxx.y -DartifactId=TestSLee11Archetype_service -DarchetypeVersion=1.0.0.BETA2-SNAPSHOT&lt;/i&gt; , where:&lt;/li&gt;&lt;/ol&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;archetypeGroupId - archetype group&lt;/li&gt;&lt;li&gt;archetypeArtifactId - id of archetype&lt;/li&gt;&lt;li&gt;archetypeVersion - archetype version, once it is released, it should not be required&lt;/li&gt;&lt;li&gt;groupdId - new groupd id of created project&lt;/li&gt;&lt;li&gt;artifactId - new artifact id of created project, also directory name&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3691620912972680962-7151721407306456732?l=baranowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://baranowb.blogspot.com/feeds/7151721407306456732/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://baranowb.blogspot.com/2010/03/maven-archetypes-update.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3691620912972680962/posts/default/7151721407306456732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3691620912972680962/posts/default/7151721407306456732'/><link rel='alternate' type='text/html' href='http://baranowb.blogspot.com/2010/03/maven-archetypes-update.html' title='Maven Archetypes update'/><author><name>baranowb</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://1.bp.blogspot.com/_K4gvy89DzOw/SqF1MtefrtI/AAAAAAAAA9I/yGuWaOTQIzU/s1600-R/gallery-77805673-500x500.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3691620912972680962.post-3028040446506744449</id><published>2010-03-14T16:00:00.000-07:00</published><updated>2010-03-14T16:00:40.991-07:00</updated><title type='text'>JSLEE 1.1 service composition vs class loading</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;My last post about &lt;a href="http://baranowb.blogspot.com/2009/09/slee-11-classloader-demistified.html"&gt;JSLEE 1.1&lt;/a&gt;&amp;nbsp;describes theory of classloading in v1.1 containers. However, how does it look in practice?&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;Well, I must say it looks and works much better than earlier model. But.. yes, there is one small "but", due to inheritance restriction it may sometime prove to be problematic, atleast for certain cases.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;b&gt;Case 1: General Class Loading scheme&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;To make problem a bit closer, lets consider two services, each service is composed from the same sbbs:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&amp;nbsp;- Sbb[1]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&amp;nbsp;- Sbb[2]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&amp;nbsp;- Sbb[3]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;Each sbb references the same RA Types and Profiles&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&amp;nbsp;- RAType[1]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&amp;nbsp;- Profile[1]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&amp;nbsp;- Profile[2]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;To make this a bit more complicated - each service is independent. That is each can be deployed separetly and provide service.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;Now lets imagine two things:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;SBBs extends super class which provides common fields(RA Type SBB Interface) methods to manipulate profile, etc&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;There is shared Utility class which manipulate RA Type message factories to create specific messages, manipulate profiles, etc.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;Now there is no problem in 1.0 container as classloading was flat. Everything works fine, one or many sbb jars/DUs - it still works.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;However when one wants to deploy this set of services in 1.1 container, problem shows. In 1.1 container (as it is a bit more organized) we would like to have everything separated:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;library(Library[1]) with: super class of SBBs, Utility classes and similar&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;sbb-jar.xml, sbb-jar file for each sbb&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;DU for each somponent - services,library,profile and RA&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;Since library contains classes each sbb use, each sbb-jar.xml declares dependency on library.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;From first glance it looks like this deployment should work from kick. Well, it wont...&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;Lets consider Utility class, it operates(depends) on:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&amp;nbsp;- RA Type events&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&amp;nbsp;- RA Type classes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;Sbb super class is very similar in this matter. Both classes are contained in our Library[1].&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;What is wrong? Library[1] does not have any way of referencing RAType classes. That means that Utility class (as well as Sbb super class) has no access to definition of those classes. This will cause failure during runtime or sbb verification.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;i&gt;Conclusion: using single jar file for sbbs allows to make this problem dormant. However there seem to be more favored way for 1.1 container. That is:&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;i&gt;each functional component declares library with classes it uses&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;i&gt;functional component declares dependency on its library in its xml file&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;i&gt;any other component may ow declare dependency on library to use certain classes&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;i&gt;For this example it would mean following:&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;i&gt;&amp;nbsp;RA Type[1] Library[1] is declared. LIbrary[1] declares dependency on&amp;nbsp;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;i&gt;&amp;nbsp;RA Type[1] Library[1].&lt;/i&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;b&gt;Case 2: Event sharing&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;This problem happens only on shared deployment. That is JSLEE and non JSLEE aplication is deployed in the same container.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;Lets consider simple web application which fires event "X" into SLEE. Event "X" is received and processed by SLEE service.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;This makes it clear that X.class should be present in two places:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;SLEE - since there is service depending on it.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;web application archive, since it fires it.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;Since JSLEE v1.1 container no longer shares its classes outside container, it is logical to assume that jar containing X.class should be in both: JSLEE and web archive.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;Well, logic fails here. It wont work. It will cause well known exception:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;i&gt;ClassCastException: Can't cast X to X&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;To make this work following steps should be followed:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;- jar containing X.class should be in container library directory&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;- events.jar deployed within SLEE should contain only xml file with even definitions&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;Thats it.&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/3691620912972680962-3028040446506744449?l=baranowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://baranowb.blogspot.com/feeds/3028040446506744449/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://baranowb.blogspot.com/2010/03/jslee-11-service-composition-vs-class.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3691620912972680962/posts/default/3028040446506744449'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3691620912972680962/posts/default/3028040446506744449'/><link rel='alternate' type='text/html' href='http://baranowb.blogspot.com/2010/03/jslee-11-service-composition-vs-class.html' title='JSLEE 1.1 service composition vs class loading'/><author><name>baranowb</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://1.bp.blogspot.com/_K4gvy89DzOw/SqF1MtefrtI/AAAAAAAAA9I/yGuWaOTQIzU/s1600-R/gallery-77805673-500x500.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3691620912972680962.post-2780668012631090738</id><published>2010-01-25T06:49:00.000-08:00</published><updated>2010-01-25T06:49:13.235-08:00</updated><title type='text'>JSLEE Maven Archetypes</title><content type='html'>Sometime ago Eduardo spent some time to create basic maven archetypes for JSLEE. Since 2.x CR1 of JSLEE is going out and there was a lot of google group traffic regarding setting up basic project, I dedicated some time to create similar package for JSLEE 1.1.&lt;br /&gt;&lt;br /&gt;Here is &lt;a href="http://groups.google.com/group/mobicents-public/web/jainslee-maven-archetypes?pli=1"&gt;wiki page&lt;/a&gt;&amp;nbsp;which describes how to use archetypes (iirc). I will update it once I get spare 5 minutes.&lt;br /&gt;Sources can be found &lt;a href="http://mobicents.googlecode.com/svn/trunk/tools/maven-archetypes"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3691620912972680962-2780668012631090738?l=baranowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://baranowb.blogspot.com/feeds/2780668012631090738/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://baranowb.blogspot.com/2010/01/jslee-maven-archetypes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3691620912972680962/posts/default/2780668012631090738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3691620912972680962/posts/default/2780668012631090738'/><link rel='alternate' type='text/html' href='http://baranowb.blogspot.com/2010/01/jslee-maven-archetypes.html' title='JSLEE Maven Archetypes'/><author><name>baranowb</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://1.bp.blogspot.com/_K4gvy89DzOw/SqF1MtefrtI/AAAAAAAAA9I/yGuWaOTQIzU/s1600-R/gallery-77805673-500x500.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3691620912972680962.post-8250065824821321131</id><published>2010-01-15T03:30:00.000-08:00</published><updated>2010-01-15T03:38:45.146-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mobicents media server ss7'/><title type='text'>MMS v2 Beta3 is out</title><content type='html'>It took some time to reach this point. But ... its out. Another 2.x.y media server from mobicents has been born yesterday.&lt;br /&gt;&lt;br /&gt;Details can be found in media &lt;a href="http://mobicents-media-server.blogspot.com/2010/01/mobicents-media-server-mms-v200beta3.html"&gt;server blog&lt;/a&gt;. In short, what does it bring?&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Video support for &lt;a href="http://en.wikipedia.org/wiki/ISO_base_media_file_format"&gt;ISO files&lt;/a&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;RTSP support - this includes mobicents RTSP stack and MMS Controller&lt;/li&gt;&lt;li&gt;SS7 support preview&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Yes, SS7. At the moment its still not full, but allows to do some cool stuff.&lt;br /&gt;Currently SS7 guide is short and can be found &lt;a href="http://groups.google.com/group/mobicents-public/web/mms-ss7-support"&gt;here&lt;/a&gt;. However next release will incorporate it in regular guide.&lt;br /&gt;Roadmap can be found &lt;a href="http://groups.google.com/group/mobicents-public/web/mobicents-ss7-roadmap"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So what those goodies allow?&lt;br /&gt;Video is self explanatory. RTSP adds live streaming capability(its a bit like showcast radios on winamp with, but bit cooler since it allows operations like: pause, rewind - VCR style).&lt;br /&gt;&lt;br /&gt;Finally SS7. We tested with real MSC on operators side. Tests performed:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;link setup and stability(long term IN_SERVICE)&lt;/li&gt;&lt;li&gt;streaming&lt;/li&gt;&lt;li&gt;MU validation(it takes time to learn how to read those bits)&lt;/li&gt;&lt;li&gt;SCCP,TCAP and CAMEL testing. &lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;CAMEL test has been performed by JSLEE 1.x.y application with JCC RA( it can be found in &lt;a href="http://code.google.com/p/mobicents/source/browse/#svn/branches/servers/jain-slee/1.x.y/examples/jccexample"&gt;svn&lt;/a&gt;, code is very simple )&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here is what Media Server Team planned for MMS:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;stabilize core for CR1&lt;/li&gt;&lt;li&gt;add other SS7 protocols as independent stacks(that can be used without MMS)&lt;/li&gt;&lt;li&gt;B/D channels endpoints&lt;/li&gt;&lt;li&gt; SS7 RAs for JSLEE 2.x and similar resource for MSS&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;If everything goes smootly next release will allow JSLEE and MSS to connect to legacy network and provide means of replacing Asterisk.&lt;br /&gt;&lt;br /&gt;Big thanks to &lt;a href="http://vladimirralev.blogspot.com/"&gt;Vladimir&lt;/a&gt; for hand on HDLC part for MTP layers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3691620912972680962-8250065824821321131?l=baranowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://baranowb.blogspot.com/feeds/8250065824821321131/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://baranowb.blogspot.com/2010/01/mms-v2-beta3-is-out.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3691620912972680962/posts/default/8250065824821321131'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3691620912972680962/posts/default/8250065824821321131'/><link rel='alternate' type='text/html' href='http://baranowb.blogspot.com/2010/01/mms-v2-beta3-is-out.html' title='MMS v2 Beta3 is out'/><author><name>baranowb</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://1.bp.blogspot.com/_K4gvy89DzOw/SqF1MtefrtI/AAAAAAAAA9I/yGuWaOTQIzU/s1600-R/gallery-77805673-500x500.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3691620912972680962.post-7889357154837741015</id><published>2009-11-23T15:12:00.000-08:00</published><updated>2009-11-23T15:13:25.268-08:00</updated><title type='text'>Seagull on F12 and GCC 4.3+</title><content type='html'>This is going to be short post. Alex made log of his probs working out through compilation of seagull on &lt;a href="http://ammendonca.blogspot.com/2009/11/installing-seagull-in-mac-os-x.html"&gt;OS X&lt;/a&gt;. For me it turned out to be a bit harder.&lt;br /&gt;Please read his post before going through my notes.&lt;br /&gt;&lt;br /&gt;So what is fuss all about?&lt;br /&gt;As it seems, aside all problems Alex had there are few new ones on Fedora 12.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;First thing is that Fedora 12 ships with GCC 4.4.something. Since GCC 4.3, gcc becomes more strict. What is significant is that generation does not include standard header files by default. This causes GCC to complain about 'memcpy', 'strncpy' and other function not beeing defined. After going through all files, which cause gcc to fail and adding includes by hand I got a bit pissed of. (not sure if this is the good sollution) Once I boiled up, decided to add includes into common/Utils.hpp file.&lt;br /&gt;File modification includes two lines:&lt;br /&gt;&lt;i&gt;#include "stdio.h"&lt;br /&gt;#include "string.h"&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Second thing that poped up was error with parentheses. It seems that Seagull team went the easy way and left a lot of statements like:&lt;br /&gt;&lt;br /&gt;&lt;i style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;if( x = (vv == x))&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;GCC does not like those anymore and fails. Only sollution is to edit files and add () so ifs look like:&lt;br /&gt;&lt;i style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;if( (x = (vv == x)))&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Now after cleaning it went quite good. To point when linker started its work.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;relocation R_X86_64_32 against  - this messages makes it to screen once ld goes into action.&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;It seems that "-fPIC" has not made it into make file. This seemed a bit odd, but... I got work-${version}/compile.mk into vim, edited and rerun. Again failure. Now, at this point it becomes a question why there are xxx.mk files, which do not affect build?&lt;br /&gt;Sollution is quite simple. Add '-fPIC' to options BUILD_EXE_CC_FLAGS_LINUX and BUILD_LIB_CC_FLAGS_LINUX, present in build.conf.&lt;br /&gt;&lt;br /&gt;Now clean compilation worked from kick.&lt;br /&gt;&lt;br /&gt;Hope this helps. Cheers&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3691620912972680962-7889357154837741015?l=baranowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://baranowb.blogspot.com/feeds/7889357154837741015/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://baranowb.blogspot.com/2009/11/seagull-on-f12-and-gcc-43.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3691620912972680962/posts/default/7889357154837741015'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3691620912972680962/posts/default/7889357154837741015'/><link rel='alternate' type='text/html' href='http://baranowb.blogspot.com/2009/11/seagull-on-f12-and-gcc-43.html' title='Seagull on F12 and GCC 4.3+'/><author><name>baranowb</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://1.bp.blogspot.com/_K4gvy89DzOw/SqF1MtefrtI/AAAAAAAAA9I/yGuWaOTQIzU/s1600-R/gallery-77805673-500x500.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3691620912972680962.post-7036528174606836050</id><published>2009-11-18T16:05:00.000-08:00</published><updated>2009-11-19T02:52:13.734-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JSLEE MMS Media Server'/><title type='text'>Good stuff comes packed. JSLEE 2.0.00B2 and MMS news</title><content type='html'>Its been a while since I had a time to post here. Made myself a promise to post quite few usefull tips regarding JSLEE 2.x but never had time. Why? Because Mobicents team worked quite hard to be able to deliver good news.&lt;br /&gt;&lt;br /&gt;So first thing. SLEE 2.0.00B2 is about to be let loose into community!&lt;br /&gt;Made a lot of effort to make it quite a pack.&lt;br /&gt;- HA/FT clustering API&lt;br /&gt;- new HA api for RA implementation&lt;br /&gt;- full replication of data and clustering of JSLEE servers !!!!&lt;br /&gt;- performance improvements&lt;br /&gt;- SIP11 RA tunning(more and more cps)&lt;br /&gt;- BUG fixes&lt;br /&gt;&lt;br /&gt;Each topic deserves separate post, once I have a second, I will do that with details and examples guide.&lt;br /&gt;&lt;br /&gt;HA/FT clustering API(topic for another post) has ben created to ease development on this "side of moon".&amp;nbsp; It allows quite easy plugability into cluster, making application aware of changes. It is based on JBoss Cache and supports different replication strategies. I will describe it a bit more deeply in another post. If someone feels a desire to play with it I recomend browisng and playing with &lt;a href="http://code.google.com/p/mobicents/source/browse/#svn/trunk/servers/cluster"&gt;repository&lt;/a&gt;. So far we created a standalone, distributed timers(not tied to any of our project) it is quite good alternative to EJB3 timers and other implentation available(I would say its so far a best sollution, but...).I will describe example in another post(if someone feels like playing in a dark this will &lt;a href="https://www.jboss.org/community/wiki/jBossAS5ClusteringGuide"&gt;help&lt;/a&gt;.).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SLEE 1.1 specification is a great improvement since 1.0. Changes are quite significant so I even doubt why its 1.1, not 2.0, but thats just a speculation.&amp;nbsp; However, among all changes there is no definition of HA/FT api aside of Marshaller ( which is of no use without something specific to container). Thats why each implementation of JSLEE specification has to have some specific API to handle replication and FT in RA layer.&lt;br /&gt;So, we had to do it. So far only SIP11 RA is aware of cluster. We have to make some more test, but its working and its quite nice feature, atleast after hours of coding its something that pays of effort.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Full replication. Yes, JSLEE 2.x container is FULLY replicable among cluster. There is no exception. Data and local server resources are handled properly to make SLEE developers work in unified enviroment, even though server runs on mulitple nodes.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now what about MMS? Well me, Amit and Oleg took our time. All news will be official near release date. But what I can reveal is:&lt;br /&gt;&amp;nbsp;- we are working on video and its going good&lt;br /&gt;&amp;nbsp;- performance improvements - based on media path&lt;br /&gt;&amp;nbsp;- SS7 enabled!, right now we are running test to see how SS7 link is stable, next are tests with CAMEL, ISUP, SCCP.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Thats it for now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3691620912972680962-7036528174606836050?l=baranowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://baranowb.blogspot.com/feeds/7036528174606836050/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://baranowb.blogspot.com/2009/11/good-stuff-comes-packed-jslee-2000b3.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3691620912972680962/posts/default/7036528174606836050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3691620912972680962/posts/default/7036528174606836050'/><link rel='alternate' type='text/html' href='http://baranowb.blogspot.com/2009/11/good-stuff-comes-packed-jslee-2000b3.html' title='Good stuff comes packed. JSLEE 2.0.00B2 and MMS news'/><author><name>baranowb</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://1.bp.blogspot.com/_K4gvy89DzOw/SqF1MtefrtI/AAAAAAAAA9I/yGuWaOTQIzU/s1600-R/gallery-77805673-500x500.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3691620912972680962.post-2518759453010570751</id><published>2009-09-23T02:30:00.000-07:00</published><updated>2009-09-23T03:15:10.184-07:00</updated><title type='text'>MMS 2.X - Console comes back</title><content type='html'>It happened. In 1.X branch we dropped console for some reasons (many discussion, outcome the same). During last MMS chat Oleg spoke words we believed noone will witnes him say: "Maybe its time for..."&lt;br /&gt;&lt;br /&gt;Well thats the background. To make it short. We would like to announce that MMS 2.X will have management console. How it will look like? It all depends on feedback we get from users. We have general idea, but feedback and ideas are mostly welcome.&lt;br /&gt;Design Wiki can be found &lt;a href="http://groups.google.com/group/mobicents-public/web/mms-2-x-console"&gt;here&lt;/a&gt; , public thread can be found &lt;a href="http://groups.google.com/group/mobicents-public/browse_thread/thread/3f6401390b77c663#"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3691620912972680962-2518759453010570751?l=baranowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://baranowb.blogspot.com/feeds/2518759453010570751/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://baranowb.blogspot.com/2009/09/mms-2x-console-comes-back.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3691620912972680962/posts/default/2518759453010570751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3691620912972680962/posts/default/2518759453010570751'/><link rel='alternate' type='text/html' href='http://baranowb.blogspot.com/2009/09/mms-2x-console-comes-back.html' title='MMS 2.X - Console comes back'/><author><name>baranowb</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://1.bp.blogspot.com/_K4gvy89DzOw/SqF1MtefrtI/AAAAAAAAA9I/yGuWaOTQIzU/s1600-R/gallery-77805673-500x500.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3691620912972680962.post-4768515194181608971</id><published>2009-09-13T11:39:00.000-07:00</published><updated>2009-09-13T12:10:02.253-07:00</updated><title type='text'>MMS - Control Protocols</title><content type='html'>In mobicents projects we have different EE:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;SLEE&lt;/li&gt;&lt;li&gt;MSS&lt;/li&gt;&lt;li&gt;. . . (maybe more)&lt;/li&gt;&lt;/ul&gt;In addition we also have Media Server. Media Server is only responsible for media part of applications. To make it short: regardless of application logic, signaling protocol utilized by application, media server role is always the same, to&amp;nbsp; process media.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;EE is driven by some sort of protocol chosen by development team - which has complete freedom to choose one protocol over another, restricted only by project requirements. In case of media server it is not that easy. Over time different "parties" created different control protocols for media server (media gateway).&lt;br /&gt;For instance with CISCO equipment media server is controled with MGCP, in IMS environment media server is controled with H.248, in WWW it can be controled with RTSP, etc, etc.&lt;br /&gt;&lt;br /&gt;In Mobicents Media Server 1.x.y we support only MGCP (aside of local MSC API), however we felt that this is not enough to meet demand from partners and community (more on this &lt;a href="http://www.mobicents.org/"&gt;here&lt;/a&gt;).&lt;br /&gt;So for MMS 2.x we have more in plans:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;RTSP&lt;/li&gt;&lt;li&gt;H.248&lt;/li&gt;&lt;li&gt;MSML&lt;/li&gt;&lt;li&gt;VXML&lt;/li&gt;&lt;/ul&gt;During Brno we were supposed to iterate over this short list, high light use&amp;nbsp; cases, differences and basic concepts. However we did not have enough time. So in order to compensate I decided to post it here.&lt;br /&gt;Here we go.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Media Server Operation Model&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;As mentioned above media servers follow certain model of operation. See image below:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_K4gvy89DzOw/Sq0YTa-E8fI/AAAAAAAAA-8/gHIjaT5hOYU/s1600-h/MMS_App_Model.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_K4gvy89DzOw/Sq0YTa-E8fI/AAAAAAAAA-8/gHIjaT5hOYU/s400/MMS_App_Model.JPG" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Media Server estabilishes only RTP stream exchanged between UAs. To setup streaming application makes use of some dedicated control protocol. Dedicated controler on Media Server side converts control protocol reqeusts into physical setup of underlying resources(generators,detectors, codecs, etc....). This happens regardles of signaling protocol used(on image it is SIP, but in reality it could be any suitable for application).&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;MSML: Media Server Markup Language&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;Basic inforamtion:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;XML Based&lt;/li&gt;&lt;li&gt;It is independent of transport protocol ( SIP, HTTP, IP, ...)&lt;/li&gt;&lt;li&gt;Follows simple request/response model&lt;/li&gt;&lt;li&gt;Supports transactions&lt;/li&gt;&lt;li&gt;Supports semi-recovery from errors&lt;/li&gt;&lt;li&gt;Requires resource reservation&lt;/li&gt;&lt;li&gt;RTP service oriented&lt;/li&gt;&lt;/ul&gt;MSML supports something similar to transaction on Media Server side. It is not strictly defined as transaction but has very similar semantic/behaviour. Each MSML request can be seen as set of actions. Each action has arbitrary ID, set by application developer.&amp;nbsp; If particular action fails, error response will contain this ID to make application aware of failure point - this is semi-recovery of error condition. MSML pinpoint exact place of failure, allowing application to free resources (yes, responsibility is pushed to application). This is required since Media Server does not reclaim them (according to MSML specs).&lt;br /&gt;&lt;br /&gt;MSML is also RTP service oriented. Protocol does not define endpoint types as MGCP does for instance. It only defines actions that need to be undertaken to produce stream/interaction with user stream.&lt;br /&gt;&lt;br /&gt;As protocol MSML is designed to be extensible, just as Diameter does. Functional elements are grouped into package. Each package defines set of primitives which affect Media Server. Prmitives are tags and their parameters which are intepreted by Media Server controler.&lt;br /&gt;MSML allows new packages to be defined along ability to extend already defined. This is how whole language structure is defined. Definition from RFC are grouped as follows:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Core&lt;/li&gt;&lt;li&gt;Dialog-Core&lt;/li&gt;&lt;li&gt;Conf-Core&lt;/li&gt;&lt;li&gt;Audit-Core&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Dialog-Core defines primitives to control automated actions of Media Server, it defines also subpackages to extend those capabilities:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Dialog-Base&lt;/li&gt;&lt;li&gt;Dialog-Transform&lt;/li&gt;&lt;li&gt;Dialog-Speech&lt;/li&gt;&lt;li&gt;.....&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;&amp;nbsp;MSML: Base abstraction&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;Base MSML abstraction defines functional elements which are aligned as in image below:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_K4gvy89DzOw/Sq0siK9jFjI/AAAAAAAAA_E/UTvW8G19XpU/s1600-h/MSML_Abstraction.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_K4gvy89DzOw/Sq0siK9jFjI/AAAAAAAAA_E/UTvW8G19XpU/s400/MSML_Abstraction.JPG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;conn - connection is logical unit which termiantes all RTP sessions from one UA&lt;/li&gt;&lt;li&gt;operator - logical unit representing DSP&lt;/li&gt;&lt;li&gt;dialog - set of automated actions like: play, DTMF generator/detector, etc...&lt;/li&gt;&lt;li&gt;conf - logical unit which mixes streams&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;MSML: Protocol use example&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&amp;nbsp;Below is use case of MSML encapsulated in SIP protocol.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_K4gvy89DzOw/Sq058LMoCfI/AAAAAAAAA_M/8lxQ0rMdhhY/s1600-h/MSML_Example.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_K4gvy89DzOw/Sq058LMoCfI/AAAAAAAAA_M/8lxQ0rMdhhY/s400/MSML_Example.JPG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;MSML used inside SIP requires usually dialog to be established between application server and media server. MSML Requests/Answers are embeded in SIP INFO/INFO OK message.&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: left;"&gt;In image above there is only one UA, which awaits video to be played. However for different number of UAS scheme is similar - only difference is dialog time when dialog is estabilished between app server and media server.&lt;/div&gt;&lt;div style="text-align: left;"&gt;In example scenario app server asks Media Server to play announcement like (this is MSML Dialog): "Press one to play movie XXXXX, Press two to play movie xXXYYx" and detect DTMFs. Once UA sends DTMF, Media Server sends DTMF embeded in SIP INFO back to application server and indication that MSML Dialog has ended. Application server decodes INFO, picks file to be streamed back to UA and starts new MSML Dialog: "Play Movie Dialog".&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Other protocols will follow in subsequent posts. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3691620912972680962-4768515194181608971?l=baranowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://baranowb.blogspot.com/feeds/4768515194181608971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://baranowb.blogspot.com/2009/09/mms-control-protocols.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3691620912972680962/posts/default/4768515194181608971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3691620912972680962/posts/default/4768515194181608971'/><link rel='alternate' type='text/html' href='http://baranowb.blogspot.com/2009/09/mms-control-protocols.html' title='MMS - Control Protocols'/><author><name>baranowb</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://1.bp.blogspot.com/_K4gvy89DzOw/SqF1MtefrtI/AAAAAAAAA9I/yGuWaOTQIzU/s1600-R/gallery-77805673-500x500.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_K4gvy89DzOw/Sq0YTa-E8fI/AAAAAAAAA-8/gHIjaT5hOYU/s72-c/MMS_App_Model.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3691620912972680962.post-1728678684119190652</id><published>2009-09-05T02:37:00.000-07:00</published><updated>2009-09-13T07:03:23.381-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mobicents slee jsr240'/><title type='text'>Slee 1.1 Classloader demystified!</title><content type='html'>Here we go.&lt;br /&gt;&lt;br /&gt;During our dev struggle to get v2 of Mobicents JSLEE container operational we encountered quite big problem: Class Loading scheme.&lt;br /&gt;Usually class loaders are organized in classic tree structure:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;one root&lt;/li&gt;&lt;li&gt;each leaf can have only one parent&lt;/li&gt;&lt;li&gt;each leaf can be a root of a subtree&lt;/li&gt;&lt;/ul&gt;This has certain limitations, as proven by our JSLEE 1.0 container. Without classloader repositories/isolation there is no way for two versions of the same ra(service/Sbb/Profile) to be deployed and enabled.&lt;br /&gt;Moreover it is not possible to maintain integrity of classes loaded - consider situation:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;DU1 has service using lib.jar&lt;/li&gt;&lt;li&gt;DU2 also has service using lib.jar&lt;/li&gt;&lt;li&gt;order of deply is: DU1,DU2&lt;/li&gt;&lt;li&gt;when DU2 is deployed, classloader finds lib.jar classes and does not load them&lt;/li&gt;&lt;li&gt;DU1 and DU2 services kick in, instances of lib.jar classes are created (from DU1 definition)&lt;/li&gt;&lt;li&gt;now DU1 is undeployed&lt;/li&gt;&lt;li&gt;error on class casting - vague information: can not cast XXYX.class to XXYX.class&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Now regarding Mobicents JSLEE v1. JSLEE Specs did not define any way of providing dependency classes. To resolve this problem we altered a bit DU structure, each DU jar could have "library" dir with dependencies for particular DU.  This proved to be enough to solve dependencies, however all above problems still apply.&lt;br /&gt;Obviously JSR240 specs lead got a notion that specs lack something valuable here and in 1.1 it has been improved.&lt;br /&gt;In 1.1 container "library" component has been introduced. It is not a functional component/jar - not in terms of slee, like SbbComponent or ProfileCompoment. Its only purpose is to provide standarised and versioned way to provide classes to Slee components. So no more DU/library!!&lt;br /&gt;Now about classloaders. In SLEE v1.1 model has changed as well. Its a bit tricky. Consider classic model - tree, where each classloader with one parent. This is not sufficient for SLEE v1.1. New model allows multiple parent for each leaf to reflect components relation.&lt;br /&gt;&lt;br /&gt;Classloaders are defined per component - that is not jar, but actual identifiable component(which has ComopnentID). Component class loader loads all classes from component jar "and" all classes from referenced components.&lt;br /&gt;Consider case of jar file which contains definition of Sbb1, Sbb2 and Sbb3 - all sbb classes are in jar.&lt;br /&gt;&lt;br /&gt;So:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;three classloaders - Sbb1,Sbb2, Sbb3 - each "has" classes from jar&lt;/li&gt;&lt;li&gt;SbbX classloader has access to all referenced component classloaders&lt;/li&gt;&lt;/ul&gt;Actually component class loaders deffer queries to jar domain classloader to avoid that vague ClassCastException described above. Through references in xml descriptor classlaoder association is built(multiple parents - Sbb components usually references events, ras, other sbbs, profiles, etc...) - this is place where multiple parents are introduced. See diagram below, this should give a hint:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_K4gvy89DzOw/SqI9s3YClSI/AAAAAAAAA9o/FjNsApfFbug/s1600-h/MC_SLEE1.1_CL.JPG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5377928746022114594" src="http://2.bp.blogspot.com/_K4gvy89DzOw/SqI9s3YClSI/AAAAAAAAA9o/FjNsApfFbug/s200/MC_SLEE1.1_CL.JPG" style="cursor: pointer; display: block; height: 209px; margin: 0px auto 10px; text-align: center; width: 352px;" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3691620912972680962-1728678684119190652?l=baranowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://baranowb.blogspot.com/feeds/1728678684119190652/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://baranowb.blogspot.com/2009/09/slee-11-classloader-demistified.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3691620912972680962/posts/default/1728678684119190652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3691620912972680962/posts/default/1728678684119190652'/><link rel='alternate' type='text/html' href='http://baranowb.blogspot.com/2009/09/slee-11-classloader-demistified.html' title='Slee 1.1 Classloader demystified!'/><author><name>baranowb</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://1.bp.blogspot.com/_K4gvy89DzOw/SqF1MtefrtI/AAAAAAAAA9I/yGuWaOTQIzU/s1600-R/gallery-77805673-500x500.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_K4gvy89DzOw/SqI9s3YClSI/AAAAAAAAA9o/FjNsApfFbug/s72-c/MC_SLEE1.1_CL.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3691620912972680962.post-3998051919652616486</id><published>2009-09-04T13:20:00.000-07:00</published><updated>2009-09-07T07:47:37.237-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mobicents diameter IMS'/><title type='text'>Mobicents Diameter - reaches 1.0.2.GA !!!</title><content type='html'>Yes, thats true. Me and Alex managed to contribute enough time(even though he was sick and I was busy with personal erands) to make another diameter release. Still follow up will contain standalone documentation (yupieeee!!) with examples of configuration and setup.&lt;br /&gt;&lt;br /&gt;More about release &lt;a href="http://forums.java.net/jive/thread.jspa?threadID=66319&amp;amp;tstart=0"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Would like to make reminder about VM image we created with openIMS predeployed to make users life a bit easier, atleast for testing:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://dl.getdropbox.com/u/1441628/OpenIMSCore/Fedora-8.rar"&gt;image&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;&lt;a href="http://dl.getdropbox.com/u/1441628/OpenIMSCore/README.txt"&gt;readme&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Thats it for today. Cheers&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3691620912972680962-3998051919652616486?l=baranowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://baranowb.blogspot.com/feeds/3998051919652616486/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://baranowb.blogspot.com/2009/09/mobicents-diameter-reaches-102ga.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3691620912972680962/posts/default/3998051919652616486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3691620912972680962/posts/default/3998051919652616486'/><link rel='alternate' type='text/html' href='http://baranowb.blogspot.com/2009/09/mobicents-diameter-reaches-102ga.html' title='Mobicents Diameter - reaches 1.0.2.GA !!!'/><author><name>baranowb</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://1.bp.blogspot.com/_K4gvy89DzOw/SqF1MtefrtI/AAAAAAAAA9I/yGuWaOTQIzU/s1600-R/gallery-77805673-500x500.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3691620912972680962.post-4938145393893618195</id><published>2009-09-04T12:22:00.000-07:00</published><updated>2009-09-07T07:46:56.723-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mobicents meeting brno 2009'/><title type='text'>3rd Annual Mobicents Metting: Brno 2009</title><content type='html'>This august was quiet a big deal, Mobicents Team met in Brno office which was kind enough(or else) to host annual meeting.  Almost all of us made it to office without any incident, however we still missed three team members which did not make it.&lt;br /&gt;As usual it was tons of work and work. Since last year mobicents grew a lot  (maybe not a good estimate but svn code and commits have been more than doubled, with team not expanding at all) so we had a lot of topics  to go through. During las year three of our project reached GA status:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Sip Servlets&lt;/li&gt;&lt;li&gt;Media Server&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Diameter&lt;/li&gt;&lt;/ul&gt;Two other has already got successor:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Media Server&lt;/li&gt;&lt;li&gt;JAIN Slee&lt;/li&gt;&lt;/ul&gt;In short last year achievements are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;JSR 289 certification (Sip Servlets 1.1)  &lt;/li&gt;&lt;li&gt;JSR 240 certification( JSLEE 1.1, achieved by container v2.0.0.B1)&lt;/li&gt;&lt;li&gt;Media Server modular architecture&lt;/li&gt;&lt;li&gt;Diameter GA&lt;/li&gt;&lt;li&gt;Seam Telco Framework reaching stability&lt;/li&gt;&lt;/ul&gt;During meeting four topics reached level of "hot":&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;SS7 world mobicents role in IMS cloud&lt;/li&gt;&lt;li&gt;JSLEE 1.1 container architecture&lt;/li&gt;&lt;li&gt;HA&lt;/li&gt;&lt;li&gt;Media Server architecture&lt;/li&gt;&lt;/ul&gt;(See next post for some cool stuff that we talked about or did not talk )&lt;br /&gt;Thats how we spent our time in the office - except me and Amit killing each other bond style(we were supposed to go for paintball, but eventually it has been canceled).&lt;br /&gt;&lt;br /&gt;My main project(aside Diameter and JSLEE) is Media Server for the time beeing. Thats the one me and my co-mates were supposed to cover during this meeting.&lt;br /&gt;However one of our MMS team member did not make it to Brno me and Amit were supposed to cover his topics(MMS Architecture &amp;amp; SS7 introduction) - in practice presentations we created were covered by Amit.&lt;br /&gt;Topics that left for me were&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Base HA framework - how to achieve HA for non cache replicated resources&lt;/li&gt;&lt;li&gt;MMS Control protocols(which I did not present, see my other posts)&lt;/li&gt;&lt;/ul&gt;Seems like very abstract topic, atleast first one. Well thats correct. Moreover its not a trivial one (HA). During my preparations for this subject I made a lot of tests and research to get a hint what lies ahead of team to achieve. Its a bit scary I must tell. It gets insanly complicated since Mobicents covers different EE - just consider case when one has different EEs, different protocols and must provide HA and FT balancer for that bunch - feeling that headache comming?&lt;br /&gt;Aside my HA session we had one covered by Jean D and Vladimir R. Outcome? To make it short:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;improve JSIP stack&lt;/li&gt;&lt;li&gt;make JSIP stack modular so it supports replication of data&lt;/li&gt;&lt;li&gt;finalize LB strategy&lt;/li&gt;&lt;li&gt;cooperate on Fault Tolertant Framework&lt;/li&gt;&lt;/ul&gt;What if FTF? Simple acronym that should in future cover some cool features(See next posts :) ).&lt;br /&gt;&lt;br /&gt;What about fun part?&lt;br /&gt;It was not bad at all, even though academic year has not started:&lt;br /&gt;&lt;br /&gt;Before plunging into disco:&lt;br /&gt;&lt;a href="http://lh4.ggpht.com/_R_lA8bvxKBE/SpZLjP1l9uI/AAAAAAAAC5Q/cnQE7Dsbwdg/s912/img_1473.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" src="http://lh4.ggpht.com/_R_lA8bvxKBE/SpZLjP1l9uI/AAAAAAAAC5Q/cnQE7Dsbwdg/s912/img_1473.jpg" style="cursor: pointer; display: block; height: 422px; margin: 0px auto 10px; text-align: center; width: 574px;" /&gt;&lt;/a&gt;Get up early, go to work, eat late and party till morning. Here we are at eating part, good food, perfect beer, even portugal folks prefered it over wine:&lt;br /&gt;&lt;a href="http://lh6.ggpht.com/_R_lA8bvxKBE/SpUcA-HZZoI/AAAAAAAACzA/ENFFZqk0Oxo/s912/img_1360.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" src="http://lh6.ggpht.com/_R_lA8bvxKBE/SpUcA-HZZoI/AAAAAAAACzA/ENFFZqk0Oxo/s912/img_1360.jpg" style="cursor: pointer; display: block; height: 432px; margin: 0px auto 10px; text-align: center; width: 577px;" /&gt;&lt;/a&gt;&lt;br /&gt;And here we give a go to extreme sports part, carts made it a day, except few of us getting burns blisters from engine, it was worth chasing other team members around track: &lt;a href="http://lh4.ggpht.com/_R_lA8bvxKBE/SpZKqae4taI/AAAAAAAAC4U/uCvfIpxxxDY/s912/img_1390.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" src="http://lh4.ggpht.com/_R_lA8bvxKBE/SpZKqae4taI/AAAAAAAAC4U/uCvfIpxxxDY/s912/img_1390.jpg" style="cursor: pointer; display: block; height: 437px; margin: 0px auto 10px; text-align: center; width: 585px;" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3691620912972680962-4938145393893618195?l=baranowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://baranowb.blogspot.com/feeds/4938145393893618195/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://baranowb.blogspot.com/2009/09/3rd-annual-mobicents-metting-brno-2009.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3691620912972680962/posts/default/4938145393893618195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3691620912972680962/posts/default/4938145393893618195'/><link rel='alternate' type='text/html' href='http://baranowb.blogspot.com/2009/09/3rd-annual-mobicents-metting-brno-2009.html' title='3rd Annual Mobicents Metting: Brno 2009'/><author><name>baranowb</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://1.bp.blogspot.com/_K4gvy89DzOw/SqF1MtefrtI/AAAAAAAAA9I/yGuWaOTQIzU/s1600-R/gallery-77805673-500x500.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_R_lA8bvxKBE/SpZLjP1l9uI/AAAAAAAAC5Q/cnQE7Dsbwdg/s72-c/img_1473.jpg' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
