10,000 Calls - A significant milestone
Posted on October 12, 2007
Filed Under milestone | 3 Comments
I am happy to announce small but to us, a significant milestone…10,000 calls on TringMe’s platform. I am simply thrilled and waiting for this to happen!!!
Thanks you all for your support and look forward to more participations and feedback. We are still slow in issuing invites but things should improve going forward.
It’s Tringging…
Posted on October 10, 2007
Filed Under Uncategorized | Leave a Comment
TringMe was covered by TechCrunch and we’ve been busy as ever since then :). We sincerely thank TechCrunch to review TringMe. We would also like to take this opportunity to thank all those who have given us their comments and feedback.
TringMe user base is increasing steadily since launch. We received close to 1800 signup requests on day-1 and have continued to receive hundreds of invite requests everyday thereafter. Our platform is coping up well with continuously increasing user base without any drop in Quality of Service (QoS) and that is definitely in line with our expectation since scalability was one of the core underpinnings of the design.
The platform on which we build TringMe was the core focus from the day we started. Once we nailed down on TringMe idea, we started looking for a suitable platform to create TringMe. Due to my experience in designing products in communication and VoIP domain, designing call processing termination on phone or Gtalk was not a technical challenge in itself. This more so since I had some existing software which we would quickly adapt to these needs. The key component needed was flash server (RTMP server). The key requirements were:
- Scalability: Can handle thousands of simultaneous call in real-time without affecting QoS
- Efficient and minimum resource usage: CPU and memory are at premium here. We required it to use minimal CPU and memory, as a good share of CPU time and memory is also required by other applications like call processing, voice transcoding, other signal processing etc.
- Integration: Integrate with call processing and other real-times applications
- Coding and Database: Interface with C/C++ and php modules. Interface with database
- Stability: High availability
Basically, I was looking for a high performance flash server with minimum resource usage and optionally also offers other telecom platform features. We evaluated few servers and as expected, my runtime and performance requirements were high to be met by any of them. It is important to stress that I am not making any comparison; merely assessing the suitability of our requirements with existing solutions. Adobe FMS is an excellent and feature rich solution but at the same time huge, resource hungry (see their system requirements), and very expensive. It also has connection and bandwidth cap for most editions. Beside these, interfacing it with call processing and other software modules (written in C/C++) was not simple enough. Hence, I was doubtful in making it a suitable platform for real-time applications like TringMe. Another very good solution is Red5, but that too is resource hungry and far from TringMe’s performance and other requirements. Eventually we decided to write our own, starting from scratch, which turned out to be the right decision.
TringMe’s platform has become one of our biggest assets. It is fast, small, scalable and extremely powerful. Memory usage is at minimum. Intelligent memory and resource allocation strategies resulted in almost no dynamic memory allocation once server is fully up and the maximum resource usage is configurable. The run time memory usage is just a few KBs per connection and IMHO, extremely good from any standard. Below is output of size that can give some idea on compactness of the server
text data bss dec hex filename
72734 7196 2020 81950 1401e tringme
Design also focused on keeping CPU usage to minimum. The buffer copy is often the largest source of CPU utilization in protocol state machines. We carefully designed and coded to use zero-copy for most parts. With all such optimization, our flash server remains light weighted even in highly loaded conditions.
While the core part of the server is RTMP protocol state machine, lot more required to make it as a platform, for example, framework for communicating with external application and modules, emails, database, buffer and memory management etc. The most complex of all is Signal Processing Unit (SPU) & Voice Engine.
Voice engine enables TringMe to use various audio formats used in telephony (gsm, g711, ilbc, and very soon speex) and jitter correction. TringMe’s platform chooses the appropriate audio codec format for the end nodes and uses voice engine for transcoding between the formats.
SPU performs many other complex functions required to interoperate with various telephony providers. For example, with one provider we had to implement complex logic of combined Human Speech Detection, DTMF detection, Ring Detection to reliably detect if phone was picked up before delivering the voicemails. There are may more functionalities in SPU that will enable upcoming features on TringMe, off course we will hold the details for now
Be assured, we are adding so many features, and I am happy to see that TringMe users are continuously feeding us with suggestions & feature requests. We continue to evaluate these suggestions to better understand the needs of the community … stay tuned on TringMe.
What differentiates TringMe?
Posted on October 9, 2007
Filed Under Uncategorized | Leave a Comment
Some of you asked us - what differentiates TringMe in the web-based telephony arena where there are already a few players. Let me explain:
At a high level, existing web-based telephony services can be categorized as following:
- Services that act as middleman-connecting caller’s phone to callee’s phone. Most companies (e.g. jajah, jaxtr, click2voice etc.) fall into this with varying feature-sets.
- Services that require user to install a plugin of some sorts or a program and then the user can use the service to place calls. A few companies (e.g. Gizmocall) fall into this category.
- Services that do not require user to install anything and provide pure web based telephony experience. As far as we know, TringMe is the only one in this category so far and that is one of the key differentiators, we believe.
There is much more from TringMe. TringMe’s flash-based telephony platform is quite flexible and powerful. Although, we launched by introducing a web-based telephony widget, there are more applications planned based on our platform. We are already working with few companies and individuals to create more applications based on this platform and you will see few more applications very soon.
TringMe Launch
Posted on October 2, 2007
Filed Under Launch | 3 Comments
I’m extremely happy to announce the public beta release of TringMe.com. TringMe allows your website visitors, friends and customers to call or leave a voicemail to you - directly from the web. You will instantly receive a call or a voicemail on your existing cell phone, landline Gtalk or via e-mail. It’s pure web-based telephony.
While we are very excited, we are not making any big claims neither we want to call it ‘revolutionary’ like many other launches, even though based on early feedback we feel that it is an innovative idea and people are going to like it – hope we deliver to people’s expectation.
Expect bugs, expect some downtime, or limited feature set. We worked days, nights and weekends to create TringMe but still there is a long way to go. However, instead of waiting for all feature set to be completed, we rather felt that it was time to invite the public (you) to participate. Simultaneously, we continue to refine and build additional features.
Please note – TringMe is still a Beta and we are sincerely looking for feedback, suggestions and constructive criticisms. We look forward to your comments though comment on this blog or via email to feedback@tringme.com. You can also leave us a voicemail using TringMe.
TringMe will only grow with your participation and support.