Monday, October 26, 2009

Mobicents SIP Load Balancing

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 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 algorithms
  • Fault Tolerance - multiple smart SIP LBs can work together and nterchangeably in case of failure when sprayed by "dumb" IP load balancers
  • Cooperative 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

Wednesday, October 14, 2009

Introducing Mobicents IPBX

Many Mobicents community users are already familiar with IPBX, which is complete (and open-source) Media PBX with rich Web User Interface, but it's been on the background for some time due to higher priority tasks. Now with the increased community feedback, we present the new version of IPBX 1.0 CR, which is stable and covers a number of real use-cases. I cannot not mention the guys from Manaty for their help testing the IPBX and finding/solving a number of problems. But I want to thank all users who gave feedback and reported their experiences.

For those who are new to IPBX - this is a converged application (meaning it serves several protocols HTTP, SIP, Media/RTP) and as such it provides integrated experience acrosss several technologies. Let's see this short video of what the application really does:

What we see here is users authenticating against the application over HTTP and SIP protocols from Web browsers and SIP Phones respectively. They use the same credentials for both HTTP and SIP, the sessions are related to each other by the users and the state of the calls can be displayed in the Web browser of particular users. Moreover, when users call each-other they participate in the same calls, thus many users may want to see the state of the same call or conference bridge - the IPBX provides that as well.

Once you are in a call, you can invite more people in a conference, or you can remove participants. When you need to type something, use the conference chat. All participants in the conference will see the messages. The video also shows a function known as call parking, which allows you to transfer a call from one phone to another.

There are many things not shown in this video. When you are getting started you should take a look at the administrative panels (log in as admin/admin). Three important features there:
  • PSTN Accounts - allows you to call PSTN phones such as mobile and landline phones through a PSTN gateway service provider
  • PBX Settings - allows you to configure the PBX behaviour, the system announcement files, calling prefix, etc
  • User Administration - you can edit the user accounts from here
It is important to note that once configured, the PBX can operate without any Web User Interface. If you like you can register your phones blindly and start making calls by dialing peers or PSTN numbers (with the prefix). The SIP and Web parts of the application, although implemented by the same application logic can operate independently and still catch-up with each other if you want to log in from the Web UI.

On the technical side, this application was implemented on top of Mobicents Sip Servlets 1.0 for JBoss AS 4.2.3, Seam Telco Framework 2.2, JBoss Seam and Richfaces with JBoss Developer Studio and Mobicents Eclipse Plugins.

I really hope this project to gain more developer community interest to help us build the next features on the roadmap. Right now the following features are planned for the near future:
  • Recording calls
  • Better UI
  • Voicemail
  • Multiline calls
There are certainly a lot of other features we'd like to add, and if you have other ideas they are more than welcome.

There are few other videos, but I will just add this one for the Linux users with another set of phones:

Finally, some links:

Tuesday, October 6, 2009

Amazing OKI Technology

Last week, I visited OKI, a major japanese telecom product vendor, to help creating a better technical relationship for the telecom vertical between OKI and Red Hat JBCP team. Along with our technical meetings I got to see one of their new products in action.

It's no secret that Japan is way ahead in many IT&Telecom fields. New things are developed fast and pushed to the market quickly. As a result, the people I see on the streets are almost always "on the phone" - looking the the screen, pressing some buttons or waving the phone around. I quickly learned that the phones usually come with tons of apps and services that make you stick around such as built-in contact-less e-wallets chips, bar-code readers, TV (the Japanese TV is crazy!) and what not. I don't even mention the browsers and all the internet/IP services here. You can walk through the subway doors with the phone in your hand and the ticketing transactions occur automatically. You can scan some QR code to pick up information about items in the store, on the street or elsewhere.

Obviously, when you create a new service here, you can leverage a lot of unique infrastructure, but the Japanese market is massive and very saturated and staying on top is a real challenge.

The new product from OKI is up for the challenge. It is an advanced platform for a variety of services delivered in a unique integrated and rich user interface. Basically you call a number, it turns out the service you dialed supports streaming the enhanced user interface and your phone picks it up. Your TV, PC or other devices at home can join the service session and show you visually the current menus in the service or the results of your operations. The feedback from the system is both audio and video updated accurately in real time on all devices in the session. With your voice you can navigate through the menus or ask operations to be executed. You could use DTMF to enter a password or a code privately in case you don't want to speak out confidential information to feed the system. One of the coolest features is that if you are not at home, you could use some nearby ATM or other kiosk in Japan as a display. So, you are walking on the street and you just literally tell your phone to move the visualization to the kiosk and it's there. Additionally, kiosk and other devices may have more UI controls such as touchscreen, keyboard or a mouse. Within your service session you can use the extra controls for input. The OKI team allowed me to blog about this omitting some details and features. They put a lot of attention to details in the UI and interop interfaces, and some are really worth keeping secret :)

One of the example services implemented on top of the platform is ordering food for a family. You go through the usual steps - identifying yourself, searching for a particular type of food, selecting a restaurant, going through the menu, examine additional options, ask questions, make your order and then confirm the payment. On every step of the order the platform adds something unique to the UI that couldn't be done otherwise especially when it comes to ordering for a group of people or while on the go.

I think along with the typical customer services this platform can be useful for a number of office or enterprise applications - collaboration tools, e-meeting tools, online business workflow and so forth.

This is just one of the mind-blowing things I've seen in Japan, which is truly a very special place on Earth in every aspect. I will try to cover more "Only in Japan" stories when I catch up with my regular job.