Thursday, December 16, 2010

Agile in telecommunications environment

Have you tried applying Lean, Agile methodologies in a telco environment ?

Here is our (translated) presentation from Agile Warsaw where we outline some of the challenges, experiences and solutions we have had with Agile management in a pretty large telco project.

Have you had similar problems ? How did you approach them ?

Friday, November 5, 2010

Freeswitch performance

I was recently testing Freeswitch and the performance of mod_conference to see how many concurrent channels it can handle. Take a look at the results.

The test environment was an Intel quad core machine with 8 GB and FreeSWITCH Version 1.0 installed. The load was generated by SIPP running on a different machine.

On this standard server, and just a little bit of tweaking, with 2000 calls in 50 different conference rooms with each conference being recorded to a file - the call quality was still ok and cpu was 50% idle.

Here are the SIPP result screens

Each call lasted about 4 and a half minutes with more or less 10% of that time prerecorded alaw sound was streamed by SIPP at different intervals throughout the call. 2002 calls were connected at peak, with 2000 generted by SIPP and 2 calls were placed manually to test the call quality.

I would say the results are quite impressive, what do you think ?

Saturday, October 23, 2010

End of Cash?

An excellent blog post by Tomi Ahonen. This is the first of a series on evolution of money from physical to electronic to mobile.

Interesting and informative article covering subjects like history of money, cheques, credit cards, mobile money, virtual money and various examples of mobile money initiatives around the world including how they approach the issue in South Korea.

Go ahead and read the article

Asterisk 1.8.0 released

Asterisk 1.8.0 was released 2 days ago. The first thing that came to my mind when I saw the main feature list was that it is catching up on Freeswitch.

As on, the main features include

Secure RTP
IPv6 Support in the SIP channel driver
Connected Party Identification Support
Calendaring Integration
A new call logging system, Channel Event Logging (CEL)
Distributed Device State using Jabber/XMPP PubSub
Call Completion Supplementary Services support
Advice of Charge support

The complete list of new features can be found on (supposibly, because I can't open the link)

The full changelog is here

Tuesday, August 10, 2010

really cool demo by Twilio

Twilio steals the show at New York Tech Meetup with this live demo.

You usually tend to think twice, or more before giving a live demo because that's when it hurts when things go wrong - and that's when they usually do.

Check out the demo by Twilio developer to large tech audience.

Watch live streaming video from nytechmeetup at

Sunday, May 23, 2010


Five years back when Gadu-Gadu was just a few guys and us - we had to buy, install and mount the servers in the racks by ourselves. Now they're just scrap.

Today it's all virtualized. And it's a little easier to get your service running. You submit a ticket and your servers are up and ready the next day ..or two.

Thursday, May 20, 2010


GaduAIR's birthday cake. The MVNO network is one year old ..this was 2 days ago.

Friday, April 30, 2010

Recommended Watching

This is a video of Eric Schmidt's keynote @ Abu Dhabi Media Summit. Overview of where technology, media and the mobile internet is currently going - highly recommended ...well, at least in my opinion.

Friday, April 9, 2010

Google App Engine/Java + GWT + Eclipse Plug-in + some goodies = neat development environment for application prototyping

For past weeks I was looking for the complete solution/environment/framework to build a prototype/prove of concept for customer facing web apps projects that could be "easily" converted to production system if needed. .... think I have found one candidate ... at least for now to give it a try :) Will share some experience which I have learned.

Some of my requirements for the overall solution were:
  • Open Source
  • Rich Internet Application Framework
  • Build in Java
  • Flexible and powerful
  • Following good practices and design patterns
  • Full-featured development environment
  • Easy Deployments
  • Scalable and Redundant back-end
  • None to low maintenance cost
  • Cost efficient hosting -free or pay as you grow

After spending some time on research and evaluating several solutions I reassured my self that there is no "out of the box" perfect solution that you can use. There are always pros and cons that you have to decide what is the best for you in a given situation and learn to manage its limitations.

At the moment I have decided that the core of the solution should be build on Google App Engine/Java and Google Web Toolkit.
This goodies from the Google with Eclipse Plug-in and some additional extensions (which I will mention later) are the solid base for kind of stuff I'm aiming for.
If it happens that you never heard about it you should definitely go to:
GAE website:
GWT website:
and Google IO conference:
or just google for it ... there is plenty resources out there.

Google App Engine among its advantages has a lot of weaknesses and limitations so you need to be at least aware of them. If against all odds you consider to give a try (as I did) you should learn how to dill with it.
Google is also aware about its limitations and with the time is improving them.
If you want to find out more about GAE and its "problematic features" I recommend reading:

Because of the GAE special nature and its limitations you should follow good practises for your application design and use/build framework which will limit potential work needed to migrate to other hosting/storage solution.

I decided that i will stick with GWT no matter if my application is on GAE/J or somewhere else. This is such a cool technology that I can not imagine any other way of doing web development from now on. Its very powerful, and development experience is great.
To fully utilize its power you should follow best practices which were presented by Ray Ryan at Google I/O 2009 entitled Google Web Toolkit Architecture: Best Practices For Architecting Your GWTApp (You have to watch it)

This excellent talk laid out several best practise approaches for designing your GWT application based on the team's experiences while developing the new AdWords interface. Some of the key recommendations were:

This talk caused GWT community maelstrom and in its results few implementations of its ides were created.
For more details on that topic I recommend following reading:

And two complete frameworks that implements above (and a little bit more):

One weakness of GWT is a relatively small amount of out of the box standard widgets. Likely there is a simple solution for that. Use Ext GWT which is a Java library for building rich Internet applications with Google Web Toolkit (GWT). To give you some idea how to integrate with mvp framework see example EmployeeAdminWithGXT at

At the end I would like to mention quickly something about JDO and its implementation for GAE which is officially promoted way of accessing Google Data Store. Unfortunately neither JDO nor JPA (which is build on top JDO and is also partially supported) is not the best way to access it. Google data store isn't RDBMS, so it requires some special treatment. That's way JDO implementation for GAE is not perfect and it is causing developers live harder by making staff more difficult that it supposed to be. That's way you should consider to use some alternatives... fortunately there are some. Google provides low level API which is used by JDO implementation any way. I don't recommend using it directly but to use frameworks like Objectify, Twig or SimpleDS that make some stuff easier and more efficient. For the comparison of this frameworks please read this great article at (and the rest of this blog ... author had to go through the same process as i did). I have decided to use Twig

Happy coding and stay tuned


Saturday, April 3, 2010

largest sip service in Poland 4 years old

Gadu-Gadu's VoIP offering just recently had its 4th birthday...

It all started on 14th February 2006 when Gadu-Gadu launched its own Internet telephony service under Gadu naGłos brand. Now it's quite safe to say that Gadu-Gadu has the largest SIP based VoIP implementation in Poland. We started working for GG at the end of 2005 - it took us a few months to develop the service before kicking off in February 2006. Since then the service grew dynamically size and functional wise - receiving calls from pstn in the im client, calls between GG users, free calls to pstn daily, voicemail, integration with mvno network, and more ... :)

In 2007 Gadu-Gadu was the first carrier in Poland to launch ringback tones for pstn calls answered in the im client. Gadu-Gadu was also the first carrier to launch HD voice calling for all calls between Gdau-Gadu im users based in iSAC GIPS codec. In 2009 video calling was also launched.

The current statistics behing the service are quite impressive

- 1,5 milion active users (where active = at least 1 call in 3 months)
- more than half of the active user base also uses video calls
- 3 milion calls monthly
- 20 thousand established calls per hour during peak
- 0,5 mln voicemail boxes

Wednesday, March 3, 2010 - the click to call based service ! was launched on February 24. We have actually planned to launch a web based click to call VoIP offering for few years now but there were always things to do which had higher priority and those were mostly to do with the never ending MVNO project. So after launching the MVNO service last year and after things settled down - we've decided to dust off the idea again.

The service is very straight forward to use. On the web page you enter two telephone numbers - yours and the person you are calling, click call and that's it! You can also trigger a phone call by sending a premium sms - we call you back and connect you to the number in the sms message. It makes VoIP more user friendly - without the need of microphones, headsets or tieing the user to the pc.

The service is quite revolutionary when it comes to charging - a flat fee is charged per call, with very low rates. Basically it is assumed that statistically not every call will be max duration.

Great work by the GG VoIP team!