Posted
over 15 years
ago
by
Jean Deruelle
Happy new year to all!To celebrate the already started but still new year, the Mobicents team (special kudos to the QA and productization team) brings to our customers a little present, the commercially supported flavor of Mobicents called JBoss
... [More]
Communications Platform is now available in its 1.2.2 version on the JBoss Customer Support Portal, the release notes are here so go check it out !I'll end this post by thanking my fellows on the Mobicents core team for the hard work to bring you the best Open Source Communications platform and our striving and ever growing community that is helping us out by using it, reporting bugs, contributing fixes and features,... wishing you all the best for the year to come and happy ne
[Less]
|
Posted
over 15 years
ago
by
amit.bhayani
|
Posted
over 15 years
ago
by
amit.bhayani
|
Posted
over 15 years
ago
by
Jean Deruelle
Here is our new shiny Mobicents Sip Servlets 1.1 release !The focus of this release has been Clustering and High Availability where refactoring has been done to give the community more flexibility, stability and accomodate more architectures.Thus Our
... [More]
Sip Load Balancer has been completely revamped to be SIP Transaction Stateless, Distributable, Convergent with an HTTP Forwarder (based on Netty project) added, allow pluggable algorithms and the Sip Servlets Container itself has had numerous improvements for Clustering and Failover with HA persistent timers, reduced network traffic for SIP Sessions replication, JAIN SIP has been extended to become an HA SIP Stack and much moreWe also added a new alerting application allowing the JBoss RHQ/Jopr Enterprise Management Solution to give calls or send SMS to System Administrators when monitoring alerts are fired : See Jopr is Talking, RHQ and future of Alerts, and RHQ/Jopr Mobicents AlertsOur Mobicents Sip Servlets certified implementation runs on top of Apache Tomcat 6.0.14, JBoss AS 4.2.3.GA and JBoss AS 5.1.0.GA.The other highlights of this release are :* Application Router : Filtering SIP requests based on Public Service Identities (PSI) in IMS* Move to Diameter version 1.1.0.GA and inclusion of Diameter in JBoss 5 version* More than 30 bug fixesDownloads are here, online documentation is here, User Guide is here, the 1.1 changelog and roadmap is here and the Mobicents Google Group for feedback and questions is here.Try out this new awesome release and give us your feedback !Enjoy and Have Fun !The Mobicents Sip Servlets Team
[Less]
|
Posted
over 15 years
ago
by
WhatDog
Mobicents Jain-SLEE 2.0.0.BETA2 was just released a few days ago. If you missed the announcement shame on you, go get it right now. I was really looking forward this release and that was just what I did.So, I downloaded it, then installed sip
... [More]
resource adaptor and sip11-loadtest-with-dialogs and had fun with it. Development team already told me that it was fast, that it could handle twice the call rate and that it was stable. I thought of seeing it by myself and I can now say that they were right. I just posted my test report to mobicents-public mailing list.This is all very nice, but what I want to talk about in this post is this tool that monitors the load of the server under load. I am very happy with the tool that parses the stat file that the SIPp load generator outputs and shows it in a beautiful report, but it was not complete because it doesn't show things like Memory, I/O or CPU usage. Now we can see those parameters because I just developed a similar tool that parses the output of the vmstat command.I was inspired by some code that I saw that parsed the output of this command. Since the structure of the data is not much different than the stat file, I thought of modifying the sipp report tool and created the vmstat report tool in a few hours.Since this was done in such a hurry, between some test runs, there are still some things that I'm improving. I would like to have some averages so it would be easier to compare results on longer tests. I would also like to group different graphs of the same components, like CPU and Memory, to understand better how these resources are being used when the server is under load. I haven't committed the tool to Mobicents SVN yet, but I will. Although this reports are great, they are very limited, and the only reason why I put it up was that is was easy to do. The report only shows the state of the whole system, while what would be ideal was to have a report of the Java VM process where Mobicents is running only. That could also be done, and it's a thing that I considered in the past, but it would require a greater effort to accomplish, so for now it's another idea on my drawer of ideas.All in all, I believe that it's a nice addition to our collection of test and report tools, and that it will certainly be used in future load tests to monitor the server load while it runs. Now we will also be able to compare the resource consumption of a server between releases.Data is nothing if we can't understand it. For me, that am a little dumb, there is nothing better to make me understand things than a good graph, or set of graphs. That is the main reason why I develop this tools, and although there s still a lot of stuff that I don't understand, I'm getting there one graph at a time.Have fun, [Less]
|
Posted
over 15 years
ago
by
baranowb
This is going to be short post. Alex made log of his probs working out through compilation of seagull on OS X. For me it turned out to be a bit harder.Please read his post before going through my notes.So what is fuss all about?As it seems, aside all
... [More]
problems Alex had there are few new ones on Fedora 12.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.File modification includes two lines:#include "stdio.h"#include "string.h"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:if( x = (vv == x))GCC does not like those anymore and fails. Only sollution is to edit files and add () so ifs look like:if( (x = (vv == x)))Now after cleaning it went quite good. To point when linker started its work.relocation R_X86_64_32 against - this messages makes it to screen once ld goes into action.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?Sollution is quite simple. Add '-fPIC' to options BUILD_EXE_CC_FLAGS_LINUX and BUILD_LIB_CC_FLAGS_LINUX, present in build.conf.Now clean compilation worked from kick.Hope this helps. Cheers [Less]
|
Posted
over 15 years
ago
by
Alexandre Mendonça
Ahh... Nothing like a rainy Saturday to get in the mood for some tasks that were delayed for too long!As I was getting ready to watch the soccer match between FC Porto (my team) and Oliveirense, at Oliveirense's stadium, the referee decided that
... [More]
there were no conditions (really bad pitch, also due to the rain) for the game to happen... well, I had to do something... :-)Installing Seagull (the network traffic generator, useful for my Diameter tests) in my iMac was one of those tasks that I could never find the time, and today it seemed a good day. I knew it was not going to be a simple task, as I've tried sometime ago to install (ie, build from source) under Ubuntu or some other Linux distro and never made it... but I didn't tried hard either, as there are RHEL/Fedora binaries I just setup a VM with it.OK.. So, first step was to look for someone who had already done the job... couldn't find any, seems like Mac's are not chosen as dev machines very often. No binaries, no instructions. I'm on my own.The INSTALL.TXT has some instructions on how to build it... the commands to run. I'll do it as I like to: run until it crashes and see what's wrong after. First instruction is:Edit build.conf to fit your needs (default should be OK)If it says it should be OK, it should be OK. Let's move on.run "./build.ksh -target clean"Just to make sure everything is clean. Not a problem, no issues here. Next!run "./build.ksh -target all"This is where the "fun" began. It simply failed with some generic failure message:[Begin Makefile generation phase][Creating symbolic link: /Users/ammendonca/Desktop/seagull/bin][Making directory: /Users/ammendonca/Desktop/seagull/work-1.8.1][Making directory: /Users/ammendonca/Desktop/seagull/build-1.8.1]make: *** [/Users/ammendonca/Desktop/seagull/work-1.8.1/project.mk] Error 1 [Begin compilation phase]make: *** No rule to make target `all'. Stop.Nice, isn't it? Not much clues of what and where it is failing. After running some pieces of the make script by itself, I got to ./work-1.8.1/compiler.mk file where it said "Compiler variable for OS DARWIN not defined".For adding this information, it was needed to edit the ./build.conf afterall :-). So I just copied all the (...)_LINUX entries and renamed them to _DARWIN, et voilá. It worked.Next ran, next failure:[Compiling protocol-external/C_ProtocolExternal.cpp][Compiling protocol-text/C_MessageText.cpp]cc1plus: warnings being treated as errorsprotocol-text/C_MessageText.cpp: In member function 'C_ProtocolFrame::_msg_error_code C_MessageText::EncodeWithContentLength(int)':protocol-text/C_MessageText.cpp:62: warning: format '%d' expects type 'int', but argument 4 has type 'size_t'make[1]: *** [/Users/ammendonca/Desktop/seagull/work-1.8.1/C_MessageText.o] Error 1make: *** [all_seagull] Error 2This was a pretty simple and obvious one. Just learned how size_t should be printed, it's with %Zd instead of the %d that is present. Made that change at line 62 of ./protocol-text/C_MessageText.cpp and that's it!One step closer... but not there yet:[Compiling /Users/ammendonca/Desktop/seagull/work-1.8.1/y.tab.c]y.tab.c: In function 'int yyparse()':y.tab.c:1349: error: 'yylex' was not declared in this scopey.tab.c:1587: error: 'yyerror' was not declared in this scopey.tab.c:1733: error: 'yyerror' was not declared in this scopemake[1]: *** [/Users/ammendonca/Desktop/seagull/work-1.8.1/y.tab.o] Error 1make: *** [all_seagull] Error 2Checking the referred y.tab.c I've checked it declared those methods only if some vars (__linux__ OR __CYGWIN__) were declared. This should be some compiler info as my friend grep didn't found any reference on the seagull sources. Googled a little bit and just found what it was and so I checked it should be __APPLE__ for my system.A previous message showed that this y.tab.c file was being generated and, so, with the help of grep I managed to find out that it came from ./xml-parser/xml_definition.y, at line 38. Changed#if defined(__linux__) || defined(__CYGWIN__)to#if defined(__linux__) || defined(__CYGWIN__) || defined(__APPLE__)It was almost there... got the binary seagull already linked in the ./bin folder! Good news, but still some required lib is failing to link:[Linking /Users/ammendonca/Desktop/seagull/build-1.8.1/libtrans_ip.so]Undefined symbols: "_main", referenced from: start in crt1.10.5.old: symbol(s) not foundcollect2: ld returned 1 exit statusmake[1]: *** [/Users/ammendonca/Desktop/seagull/build-1.8.1/libtrans_ip.so] Error 1make: *** [all_libtrans_ip.so] Error 2Boooring! Thought this could be it... so much work and now some weird linkage error was going to throw it all away. Well.. can't give up, tried some own ideas... then went googling, nothing much useful, every linkage error seems to have this same output.Since it referred main, started looking for it.. no sign of it in the files being linked. Hmm.. that makes sense, it's a library, why would it need to have a main anyway? After checking the flags being used for compilation, just found out this one for compiling a library was not present: -dynamiclibSo I added it to BUILD_LIB_LD_FLAGS_DARWIN in ./build.conf which now looked like this:BUILD_LIB_LD_FLAGS_DARWIN="-shared -fPIC -dynamiclib"Yeah! Everything worked just fine! The install was completed successfully and all the binaries were in the bin folder. Hurray!This was a lengthy journey but in the end it was fruitful.. as always, when it works ;-) Seagull v1.8.1 running on Mac OS X 10.5.6 (Leopard)!Notes:Apple Dev Tools are required to be installed prior to any of this being made. They can be found in the Install DVD;I had to run the commands with "sudo" as it required permissions for some operations;Optionally you can run "./install.ksh" to copy Seagull binaries and config files as suggested in INSTALL.TXT and perform the remaining actions, if needed.Please let me know if this has been useful for you and/or if something is inaccurate. This has been tested against Seagull 1.7.0 and 1.8.1 on Mac OS X 10.5.6 (Leopard). [Less]
|
Posted
over 15 years
ago
by
baranowb
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.So first thing. SLEE 2.0.00B2
... [More]
is about to be let loose into community!Made a lot of effort to make it quite a pack.- HA/FT clustering API- new HA api for RA implementation- full replication of data and clustering of JSLEE servers !!!!- performance improvements- SIP11 RA tunning(more and more cps)- BUG fixesEach topic deserves separate post, once I have a second, I will do that with details and examples guide.HA/FT clustering API(topic for another post) has ben created to ease development on this "side of moon". 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 repository. 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 help.).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. 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.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.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.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: - we are working on video and its going good - performance improvements - based on media path - SS7 enabled!, right now we are running test to see how SS7 link is stable, next are tests with CAMEL, ISUP, SCCP.Thats it for now. [Less]
|
Posted
almost 16 years
ago
by
Vladimir Ralev
Check out our SIP Load Balancing (SIP LB) designs and deployment scenarios. Our goal is to support as many scenarios as possible in a simple way and maintain flexibility for future enhancements and custom load balancing. We look at the load-balancer
... [More]
as a platform where you can implement your own routing decision logic - distributed or standalone, stateful or stateless, layer 3/4 or layer 7, it is all up to you.The new load balancer provides quite a few improvements on top of the old one:Performance (>1000 cps, but depending on the algorithm)Flexibility - pluggable algorithms and customizable algorithmsFault Tolerance - multiple smart SIP LBs can work together and nterchangeably in case of failure when sprayed by "dumb" IP load balancersCooperative Load Balancing - very often, mutliple protocols and sessions are involved in a telco service. Then you need to group calls, HTTP or other protocol sessions to stick together and be failed-over together. Only your application knows the right way to group these sessions, thus sometimes it is crucial to delegate load-balancing decisions to your application. Now, you could implement your own algorithms that take hints or instructions from the applications.For more details you can look at these slides: Feedback is welcome!UPDATE: Revised November 1st, 2009 [Less]
|
Posted
almost 16 years
ago
by
Alexandre Mendonça
It was on Friday, 16th October 2009 that a shiny new release of Mobicents Diameter happened.It's v1.1.0.GA and along with the usual enhancements and bug fixes, the main new features are:JBoss AS 5 supportStack configuration at runtime, via
... [More]
JMXEducative Example for Cx/Dx applicationPreview of the Mobicents Diameter User GuideIt can be downloaded from here: Mobicents Diameter v1.1.0.GA DownloadsPlease note that the JBoss 5 version zip contains only the Stack and the Multiplexer, no JAIN SLEE Resource Adaptors or Examples are included. If you want to try the new Mobicents JAIN SLEE 2.x version (which runs on JBoss 5) and it's Diameter Resource Adaptors and Examples, you'll need to build them from source, which can be found in the SVN trunk.Summing it up, you now get a more stable Diameter in 2 flavors (JBoss 4 & JBoss 5), the ability to configure the stack in realtime (add/remove realms, add/remove peers, manage timeouts, etc...), a new example of how to play with Cx/Dx (which will be the basis for the HSS prototype) plus the user guide to help you play with all of it!A special thanks to Jared Morgan and Tom Wells for the extra effort on the documentation! [Less]
|