Monday, October 11, 2010

Mobicents Team building 2010, Antalya, Turkey

Exactly, that one event in year, when whole team is supposed to have fun and work in close quarters(yes).


The PLACE
Whole event has been organized by Eduardo M. M., big thanks. It was one of best events, if not THE best we had so far. We stayed in 5 start hotel & SPA center. Awesome place to chill out. Just look at pictures:









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.


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.




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.
The FUN
Next day was strictly fun day, no work(well we talked about roadmaps on the bus, but that does not count). Rafting time! 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.
From that spot we took huge rafts and went down the river. It was quite good fun.








The WORK
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.
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.
Additionally this year some other topic were brought up to attention and discussed - like Clustering or SS7 training session. 
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.




Our first day started with private sessions during which we discussed some internal stuff, crucial to our future. After that plan looked as follows:




JSLEE
 Eduardo presented our efforts to bring best open soruce JSLEE container :). So....
We had very good year, lots of work, lots of community feedback. Extremly  successful 2.x release of container. We completly reworked 2.x core to achieve:

  • high performance - over 4x compared to 1.x generation of container
  • low latency
  • fault tolerance

His presentation covered also major features and development efforts we made, like:

  • Container's core modularization and SPI
  • Server's state replication
  • Fault Tolerant RA API
  • Congestion Control
  • Event Router Stats and Execution Mapper
  • Simplified Global Logging Configuration
  • New or Reworked RAs (JCC, ISUP, MAP, XCAP Client)
  • Jopr Web Console
  • Enhanced or simplified external SLEE Connection.

In the end he covered roadmaps for immediate release and long term efforts:



Mobicents JAIN SLEE 2.2.0

  • Part I of clustering performance enhancements (8x compared with 2.1.2)
  • Buddy groups clustering
  • Twiddle Command Line Interface (CLI), which we believe will be a major tool for developers and platform administrators
  • 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
  • Eclipse SLEE Plugin 2.0
  • SMPP v5 Resource Adaptor
  • Misc performance optimizations on SLEE facilities, such as Tracers

Mobicents JAIN SLEE 2010/11 Roadmap Draft

  • JAIN SLEE 1.1 Extensions: Annotations & ConfigProperties
  • Jopr Web Console 2.x (or something else if we are not able to solve current version limitations)
  • EclipSLEE 2.1
  • Mobicents Cluster Framework 3.x with Advanced Buddy Groups features such as high performance intra group broadcasting of notifications
  • Second wave of SS7 RAs
  • JSR 309 RA

For detailed info follow Eduardos blog.


DIAMETER

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. 
In crash course Ive covered following:
  • DIAMETER basics - data structures, encoding, protocol base
  • DIAMETER domains
  • Base application
  • Accounting application
  • Credit Control Application(rfc4006)
  • Ro & Rf applications

During Diameter time, Alex covered our development efforts and roadmap.
In short it was quite good year.  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:
  • SOAK testing 
  • CPU and memory stability
  • XML configurable dictionary and validator
  • implementation of different applications(Cx/Dx,Sh,Ro,Rf,Cca....) along with JSLEE RAs
  • FT/HA support
  • performance improvement( over 4x )
  • documentation
  • JOPR console
  • Improved AVP handling

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  performant.

For 1.4.x we have planned following:

1.4.x

  • parser separation from stack metadata
  • testing framework for application sessions
  • profiling and improving clustering code
  • improve thread management
  • IPSEC/TLS support
  • testing framework for JSLEE RAs
  • support plugable/configurable load balancing algorithm in stack
  • integration with SIP loadbalancer
  • ...
This is just a short list, full has much much more, its quite packed and scary.

For 2.x we have planed following:
2.x
  • redesign API to be user friendly
  • evaluate IoC as good approach
  • decouple sessions and message creation
  • SCTP support
  • greater perofrmance(over 1k exchanges/s)
  • ....

SS7

During one of my time slots I have conducted quick crash course about SS7 and our progress in this field.
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.

SS7 progress during last year is tremendous. We have started very slow and picked up pace. 
From almost no working code and experience we finished with support for:
  • Dialogic and Intel based SS7 cards - this includes implementation of MTP levels
  • M3UA integration
  • SCCP
  • ISUP
  • TCAP
  • MAP
  • USSD Gateway
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.
Last but not least we plan to add more protocols to USSD Gateway we have been developing.

SS7 presentation can be found here.


Media Server


During this event Amit and Oleg presented last years achievements and problems we faced on media field.

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:
  • stability
  • predictability
  • accurate implementation of scheduler(very low overhead, with 1ms precision)
  • reducing number of active threads - MMS core and MGCP stack
  • improving performance with 3rd party libraries(like TTS, MBROLA)
The outcome is best performing server on low end machine with 300x concurrent, bidirectional connections!

Future plans for MMS are to split development in two directions. First one is to continue 2.x development and concentrate on stability and perofrmance with voice media.

Second is to start 3.x development which will include video support.

Near future roadmap(2.1.0-B1) includes following:
  • B-Channel endpoint for SS7
  • smart voice pool
  • configurable connection count for endpoints
  • RTCP support
  • Audit endpoint support




Thats it. Looking forward for next years TB event. Hope that more community users will show up. 

New stuff

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.


SS7 includes few fixes, but most important improvements are hidden in SCCP and M3UA/MTP. This release brings two things:
 - support for M3UA, now you can integrate our stacks with Dialogic M3UA.
 - 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.
Release already happened, shortly there will be new bundle available on sourceforge.net.

JSLEE release brings tons of goodies. Detailed info can be found here, in short:

- Cluster performance optimization, 8x compared with 2.1.2.FINAL
- Support for "Buddy Groups" clusters
- Tracers performance optimization
- Enhanced RA's SleeEndpoint with custom operations to help/optimize
work in cluster mode
- EJB support for SBBs, as defined by JAIN SLEE 1.1 standard
- CMP Field Accessor Methods performance optimization
- SbbContext/ProfileContext JAIN SLEE 1.1 Extension
- ActivityContextInterface JAIN SLEE 1.1 Extension
- Library XML Descriptor References JAIN SLEE 1.1 Extension

Additionally this release comes with Twiddle CLI and refactored Eclipse plugin (EclipseSLEE).

Trip after trip, training gig.

Its been a while since Ive had some time to blog, high time to catch up.


Sometime ago(end of August I believe) me and Amit had pleasure to perform training in South Affrica.
Training took place in(or near) Johanesburg at CSIR institute


CSIR stands for Council for Scientific and Industrial Research. Its located in Pretoria, Johanesburg. The CSIRis 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 CSIR 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.




We had accommodation  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:

  • football field
  • tenis/squash courts 
  • gym
  • etc....

Usually core developers do not provide training. However this case was a bit different. Whole training was customized, to address needs of Meraka team. 

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.


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 MOBI4D.

CSIR. Meraka Team, me and Amit.