Sunday, September 12, 2010

Mobicents Face-2-Face 2010 at Antalya, Turkey from 24th Sept to 30th Sept

Its time of the year when Mobicents developer from across the world meet at one common place and brain storm on road-map for next year, achievement of past year, experiences, prospects etc. The annual Mobicents Face-2-Face was only for team members till now, but like true Open Source Spirit we have opened this meeting to all users, partners, or even non-users who wants to participate and get the understanding of Mobicents Project and how core team functions. We already have three partners visiting this meeting for this year.

However its not as boring as it sounds. Every evening after hectic day the team visits the best and lively attraction of the city and freaks out, sometimes till next day morning! Don't believe me? Look at blogs and picture from last year meeting http://groups.google.com/group/mobicents-public/web/mobicents-dev-team-meeting---brno-august-2009

The meet is happening at Antalya, Turkey from 24th Sept 2010 to 30th Sept 2010. If interested in participating follow the public post http://groups.google.com/group/mobicents-public/browse_thread/thread/d59873fbdd142f96/00e654830423ad4a?lnk=raot#00e654830423ad4a

Hope to see you guys @ Antalya :)

A week at Meraka, CSIR


Last week Bartek and I had privilege to conduct Mobicents Platform training at Meraka, Council for Scientific and Industrial Research (CSIR) Institute located in city of Pretoria, South Africa. The CSIR 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 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.


Institute is built across beautiful campus and rich with facilities; I was amazed to see the CSIR Institute and made me remind IIT-K Campus that I visited this February.




Usually training's are too boring to conduct with flow of knowledge happening just in one direction. But this was a rare training where audience were very interactive and made Bartek/me think twice before we could really answer their queries.

Meraka has already developed couple of JSLEE Resource Adaptor's (on Mobicents 1.x.y Platform) for proprietary protocol communicating with SMSC and USSD aggregator. These RA's are used in platform called MOBI4D. The presentation explaining the MOBI4D is here http://sport.csir.co.za/view.aspx?id=2382~4p~QczxuuJq


Meraka already have several exciting projects ongoing specifically on TTS, ASR, IVR, IP Tv. It will be very exciting to see these projects go live by end of next year.

Looking forward to visit SA again soon and spend more time with this team!


Thursday, January 7, 2010

java.net.SocketException: Too many open files

There is limitation on how any open file handles (this includes sockets too) OS can support. If this limit is reached, you get above exception. If you are on ∗ nix OS, this can be easily increased.

Open /etc/security/limits.conf

I am on Ubuntu so for me I just execute following command from command line

sudo gedit /etc/security/limits.conf

and add following two lines

∗ soft nofile 3072
∗ hard nofile 3072

Save and Close the file. I don't know how to load these settings from command prompt but rebooting did the trick. To make sure these changes are done execute

ulimit -n

If you know how to do it on windows please add comment.

Thanks.

Saturday, January 2, 2010

Mobicents JAIN SLEE Server 2.x unites in league of JOPR Console!

JBoss Operations Network (JOPR) is becoming the de-facto for managing suite of JBoss products and rightly so as it provides administration, monitoring, alerting, operational control and configuration in an enterprise setting with fine-grained security and an advanced extension model.

Since Mobicents Sip Servlets Server is already having JOPR agent and we have experienced how easy it becomes when it comes to management using JOPR JAIN SLEE server team also decided to venture on JOPR so all the products of Mobicents have same look and feel and can be managed from same Console.

Big thanks goes to JOPR team for answering all the queries that really saved lot of time had we tried to solve them by ourselves.

The features of Mobicents JSLEE (version 2.x.y) JOPR is in-line with Mobicents Management Console that is available with Mobicents JSLEE Server 1.x.y.

The JOPR Agent (binary) for Mobicents JSLEE will soon be available with release Mobicents JAIN SLEE Server version 2.0.0CR1. However if you are getting little impatient and want to give it a try right away, download the source code from mobicents svn and call 'mvn clean install'. You should see the agent jar at jopr-plugin/target/mobicents-slee-jopr-as-5-plugin-2.0.0-SNAPSHOT.jar
The Agent is built using the source RHQ 1.4.x trunk.

The first binary release of RHQ 1.4.0.b01 server can be downloaded from here. Follow the blog from Heiko to know more about this release.

Unzip rhq-server-1.4.0.B01.zip and start the server from 'rhq-server-1.4.0.B01/bin' using 'rhq-server.sh start'. Once server is started visit http://localhost:7080/. First time it will ask for configuring the Database and for test you can simply select the HSQLDB. To know more about installation of JOPR have a look at http://community.jboss.org/wiki/jopr-installation.

You also need to have JOPR Agent, I found one in rhq-server-1.4.0.B01/jbossas/server/default/deploy/rhq.ear/rhq-downloads/rhq-agent/rhq-enterprise-agent-1.4.0.B01.jar. Unjar it and start the Agent from 'rhq-enterprise-agent-1.4.0.B01/rhq-agent/bin' by executing 'rhq-agent.sh -l' (-l argument is only for first time to configure the agent, the subsequent starts can be done by executing command 'rhq-agent.sh'). It will ask few questions for configuring agent and has default answers for each, just press 'enter' for each.

To install the Mobicents JAIN SLEE JOPR Plugin using Jopr UI, go to Administration → System Configuration → Plugins. On the Agent Plugins tab (selected by default), on the bottom of the page, click on Add..., browse to the Jopr plugin JAR file and select it. Finally, click on the Upload button and the plugin will be deployed. Click on Scan for Updates and it should be shown in the list as "Mobicents JSLEE Server 2.x". On the Agent Console call 'Plugins Update'.

This will deploy the Plugin on Agent side and it will automatically discover your Mobicents JAIN SLEE Server 2.x.y. To add mobicents server to RHQ Server go to Overview → Auto Discovery Queue on server page and Import Mobicents JAIN SLEE Server. If you don't see an entry like 'Mobicents JAIN SLEE Server 2.x.y (:port) something went wrong and check necessary logs of server and agent.

VoilĂ ! You have JOPR monitoring your Mobicents JAIN SLEE Server and it should look something like this



If you want to know more about how to manage JAIN SLEE Server, build the docs by calling 'mvn clean install' from /jopr-plugin/docs and browse the docs.

Enjoy the new shiny management console!

Please post queries to mobicents-public@googlegroups.com

Tuesday, December 22, 2009

IEEE paper on "Developing Converged Application using Open Source software"

The 2009 IEEE Symposium on Industrial Electronics & Applications was held at Best Western Premier Seri Pacific Hotel, Kuala Lumpur, Malaysia on 4th-6th October 2009. From RedHat/Mobicents I submitted paper on "Developing Converged Application using Open Source software" and presented the same on 5th October 2009. The paper is already registered in the IEEE Xplore database. The paper talks about leveraging the Open Source Solution in development of real time application like voice. The paper then talks in details about Mobicents Platform, components involved in Mobicents Platform and finally a converged example developed on Mobicents Platform.

Thursday, September 24, 2009

Encounter with JOPR

There is a discussion for Mobicents Media Server 2.x.y Console requirements on

  • whether it should be built using Swing that can be installed on any machine and this stand-alone instance connects with Mobicents Media Server for statistics and configuration
OR
  • use standard JOPR server that almost all Mobicents project is using as de-facto and write agent that will monitor media server.

In quest to understand what exactly is JOPR I decided to write a custom plugin for JOPR and see how it can monitor any resource's that we want.

I started with blog from Heiko and this was very useful. Thank you JOPR guys for such a niece blog! After reading all 5 Part's I decided to give it a try.

Started with SVN check-out of JOPR from http://svn.rhq-project.org/repos/rhq/trunk to my local directory /jopr/src/

Since JOPR is also using maven, building JOPR was not nightmare. However JOPR by default requires the access to Postgres database and it wasn't easy for me to install Postgres and get it running :( I wish JOPR uses in-memory HSQLDB initially and latter on give an option to go for Postgres, Oracle, My-Sql or any DB that user may want to use in production. This will make the development very fast.

The wiki explaining the build of JOPR is given at http://support.rhq-project.org/display/RHQ/Building+RHQ

Once you have JOPR built and installed and have Postgres up and running, you need to develop a custom plugin as explained in Part3 of blog.

Assuming that custom plugin is built and ready, next step is start the server

  1. cd to /jopr/src/trunk/modules/enterprise/server/container/target/rhq-server-1.3.0-SNAPSHOT/bin and call ./rhq-server.sh start
  2. Go to http://localhost:7080/ to see the JOPR console. Login as user rhqadmin and password rhqadmin
  3. Still we haven't started the Agent. So next cd to /jopr/src/trunk/modules/enterprise/agent/target/rhq-agent/bin and ./rhq-agent.sh -l. This will configure the Agent and ask few simple questions. For almost all of them the default answers are rigtht. Bellow is from my comandline showing what reply I provided


    RHQ 1.3.0-SNAPSHOT [4925] (Thu Aug 20 13:44:46 GMT+05:30 2009)
    Answer the following questions to setup this RHQ Agent instance.
    - After each prompt, a default value will appear in square brackets.
    If you press the ENTER key without providing any value,
    the new preference value will be set to that default value.
    - If you wish to rely on the system internal default value and
    not define any preference value, enter '!*'.
    - If you wish to stop before finishing all the questions but still
    retain those preferences you already set, enter '!+'.
    - If you wish to cancel before finishing all the questions and revert
    all preferences back to their original values, enter '!-'.
    - If you need help for a particular preference, enter '!?'.

    Agent Name [localhost] : postgres_agent
    Agent Hostname or IP Address [!*] :
    Agent Port [16163] :
    RHQ Server Hostname or IP Address [127.0.0.1] :
    RHQ Server Port [7080] :
    The setup has been completed for the preferences at node [/rhq-agent/default].



    Next from client CLI I executed command 'plugins' just to refresh the plugins from server.

  4. Now go to http://localhost:7080/ Click on Dashboard - Auto-Discovery and you should see entry of the 'postgres_agent' agent. Import this Agent and now all the statistics including the custom plugin that we developed will be available to JOPR Server and we can monitor the stats. Below is the Screen shot showing the Response Time metrics exposed by our custom plugin.


So far so good. The conclusion is Agent needs to be installed on Mobicents Media Server that we need to monitor and Agent communicate to server Via JBoss Remoting. I am still learning what is the communication protocol and what is the load on client machine where Agent is installed due to agent activity. Remember Mobicents Media Server cannot take any heavy load else Jitter will kill all the performance.

Its now clear that we can expose the statistics using JOPR. Next I want to write a Agent that talks to MMS via MGCP protocol to avoid installing Agent at MMS side and expose some real statistics. Also one of the requirements of MMS Console is configuring the media-path at run-time with easy drag-and-drop feature from console. I still don't know if this is possible via JOPR Agent? And if yes can it be remote or needs to be in same JVM as Mobicents Media Server?

May be I will ask the JOPR experts to help me out with this dilemma.


Till then enjoy the JOPR :)