JAJAH Development Blog

Blogs by JAJAH Developers

Google Voice – what’s next

March 14th, 2009
Google’s latest revolution and the usual suspect
By now, the news of Google Voice has spread all over the web. Some celebrates the new revolution from the world’s web seminary, while other raise the usual concerns about invading your privacy. To the skeptics, I can only say, common! Nobody’s forcing you to use it. Google’s power is incredible but there’re still alternatives out there. Besides, free services in exchange for some level of privacy invasion already exist and gain popularity. (Gmail, being the most obvious example, but there’re others). Moreover, we already deliberately provide so much private information about ourselves in Facebook, Twitter, windows messenger status and others that privacy claims about big brother monitoring seems somewhat archaic.
One number, many friends
However, Google Voice is facing other challenges before it become globally  available and gain widespread use. First of all, Google Voices should help its users to spread their new number with their friends, family and colleagues. Perhaps a variation of Google Mobile sync service could help in that. Another related problem is that the numbers given to users are still only US. Even if the service becomes global, the given number is always local to the user. So, if I get a US number and my friend live in Austria, it will still cost a lot of money to make the international call from Austria to Germany. Of course, this is a common problem with all international calls. However, if Google has ambitions to make their service ubiquitous, they’d need to find a solution to this issue. JAJAH Direct can provide such a solution and at low-cost rates.
I’m sorry, what did you say?
One of Google Voice prominent service is it’s voicemail transcripts. It’s a great service, if, Google can indeed make fully automated transcriptions. Personally, I don’t see that happening in the near future. Google’s Speech-to-text services are gaudi and GOOG-411. Both services are limited to recognizing specific words out of a pre-defines list like Joe’s Pizza, economics, Texas. At this point, it’s not possible to fully transcribe complete voice mails without making mistakes, asking the user to repeat some words or have human intervention. A partial solution might be to make an educated guess about the nature of the voicemail content. If Google could assume a particular voicemail is of specifi context (entertainment, sports, business), it could reduce the number of transcription mistakes to a minimum. Since Google already has vast knowledge about its users habits and interest areas, that seems to be taken care of. Also, let’s not forget that transcription service should be able to understand different accents, languages, oral mistakes made by the user’s themselves,  nick names, voice interference and more before it become accurate. I know of only one such device that does a similar task, but, it will be in production state only 142 years form now.
One last thing
In addition to the above , Google has to overcome huge operational and regulatory challenges. Call termination, VoIP-related fraud, IP call routing and hosting are just few of issues any valuable VoIP company has to deal with. I wonder how much Google Voice is ready to cope with these issues, especially if it wishes to become a global service provider like JAJAH.

How to enable links to local files from your wiki on Firefox

March 13th, 2009
I like wiki. It’s a good platform to share information and ideas in your organization, community or the entire web. Occasionally, you’d like to add links to local files in your organization wiki like list of phone numbers, some how-to documents or something else. However, Firefox users find out that nothing happens when they’re clicking on the local-file links. This is actually due to security reasons. So, if you wish to override the behavior, this article will explain what to do.  The article suggests two add-ons to use. I prefer to LocalLink and not IE Tab because the later reloads the entire page on the IE engine and loses your logging session.
Meanwhile, on the wiki pages
The correct format for links to local files is to prefix the path with file:/// and wrap it with brackets. Let’s say your file resides in C:\MyFolder\MyFile.ext. The link in wiki will be edited as [file:///C:/MyFolder/MyFile.txt] (make sure to use slash and not backslash). In case the file resides in a server, the format will look like this: [file://///MyServer/MyFolder/MyFile.txt]  (did you noticed we’re now using 5 slashes?). After installing LocalLink you could open the file by right-clicking on the link and selecting from ‘Open Link in Local Context’ menu. LocalLinks You might consider setting your application configuration in Firefox. Go to Tools, Options and choose the Applications tab. Now, for each relevant file type, choose the action you want Firefox to take. ff_applications_options

How to add permanent links on WordPress

March 8th, 2009
By default, WordPress posts have ugly links like http://yourpost.com/?p=12. It’s very easy changing the links to become more aesthetic and usable:
  1. Open your WP account.
  2. On the left-hand side, click on ‘Permalinks’ under ‘Settings’ options.
  3. Now choose the preferred settings
wp_permalinks

Twitter 911

March 7th, 2009
About a year ago, I published an article that claimed that with all innovations surrounding us, the technology is, in most cases, not reliable enough . The most recent example came from GMail’s outage two weeks ago. Anyway, in the article I mentioned the tragic incident where a VoIP 911 service sent an ambulance to the wrong place. Up until now, no major breakthrough was made in VoIP 911 services. That is most evident in the FAQ pages of all major Mobile VoIP service provider. You’re guaranteed to see a clause indicating the service is not designated to work with 911 calls. Obviously, many regulatory and technological issues prevent VoIP 911 to become a reality. For instance, how (and who?) would  WiFi routers update when a device connect to them? Perhaps some partial answer to those issues can come from a totally different place. Twitter, which have had an incredible 752% growth in 2008, Facebook and other social-interfaces might provide it. Here’s the deal. You make a VoIP 911 call. The interface to PSAP will send your social-networks username. PSAP could gather your latest status and could know, for instance, that just before the call, the caller twitted about arriving to his hotel. I’m sure you could think of other examples. With growing trend to tell the entire world what we’re doing and where, that information could help in emergencies.

How to make conference calls from your mobile

February 22nd, 2009
Did you know you can make conference calls from your mobile? Yes, we can! This functionality is hidden inside your phone and my guess is that 99% of mobile users are not aware of it. Here’s a quick step-by-step on how to do it on Nokia S40 phones. I welcome you to add in the comments explanations for other manufacturers.
  1. Call someone! (that’s easy, right?) and wait for your friend to answer. Let’s say his name is Riker.
  2. Press options, New call (ah ha!) and type the phone number of another friend. Let’s say his name is Worf. Wait for Worf to answer (Kapla!)
  3. Back on your phone, you’re now talking to Worf while Riker is on hold. Now press options, scroll down and press on – yes, you got it – Conference. Now you, Riker and Worf can speak all together.
  4. If you wish to add another friend - Data for example - simply repeat steps 2 and 3.
  5. To finish the conference just hang up. All your friends will be disconnected from the call.
A word of caution. You should check with your operator how much this calls will cost you. I’m not sure it’s just the rate of one call times the number of participants in the conference call. Finally, if you wish to make low-cost conference calls to friends and colleagues abroad, you can use JAJAH’s conference call service. If you’re not in front of your computer, you can make conference call as described above with JAJAH.Direct numbers.

How to run Freeswitch mod_dingaling on windows

February 13th, 2009
We recently began to explore Freeswitch. This is a powerful telephony platform that provides many communication functionalities with  agile configuration. Amongst others, we looked at the dingaling implementation which enables communications with GoogleTalk using XMPP implementation. We quickly found out there’re a few steps to complete before the code will run on Windows/VS environment. So, instead of having others struggle like we did, here’s a list of the required steps. Have fun.
  1. Configuration
    1. Enable mod_dingaling by un-commenting on modules.conf.xml the line <load module="mod_dingaling"/>. Alternatively, you can run on the console load mod_dingaling.
    2. Enable debug mode for the module (dingaling.conf.xml). It’s not required but will helps in understanding what’s going on.
    3. Create jingle-profile like the one below:
      <include>
        <!-- Remember to to remove the ‘x’ from x-profile -->
        <profile type="client">
          <param name="name" value="<meaningful name>"/>
          <param name="login" value="<your username>/gtalk"/>
          <param name="password" value="<your password>"/>
          <param name="server" value="talk.google.com"/>
          <param name="dialplan" value="XML"/>
          <param name="context" value="public"/>
          <param name="message" value="Send help or ? to learn more"/>
          <param name="rtp-ip" value="$${bind_server_ip}"/>
          <param name="ext-rtp-ip" value="$${external_rtp_ip}"/>
          <param name="auto-login" value="true"/>
          <!-- SASL "plain" or "md5? -->
          <param name="sasl" value="plain"/>
          <!-- Enable TLS or not -->
          <param name="tls" value="true"/>
          <!-- disable to trade async for more calls -->
          <param name="use-rtp-timer" value="true"/>
          <!-- default extension -->
          <param name="exten" value="1000"/>
          <param name="vad" value="both"/>
        </profile>
      </include>
      
  2. TLS. You need this to insure your XMPP stanzas are encrypted as required by the specifications. There’re few steps you need to do on windows:
    1. Install GnuTls for windows. Pick the latest exe file. At time of writing, the last one is 2.7.3.
    2. Assuming you’re using visual studio as your IDE, open visual studio command prompt (not your normal console) and type: cl foo.c -I../include -Dssize_t=long libgnutls-26.lib. This will create a libgnutls-26.lib that can be used as a import library for Visual Studio projects.
  3. Configure library ixemel to work with TL S libraries:
    1. Add additional include directory   addInclude
    2. Add additional dependency. addDependency
  4. Last step, make sure the TLS dlls are copied to the configuration environment. For example, if you’re running on debug mode, you should have the following files in <your freeswitch root>/Debug:
    • libgcrypt-11.dll
    • libgnutls-26.dll
    • libgnutls-extra-26.dll
    • libgnutls-openssl-26.dll
    • libgpg-error-0.dll
    • libtasn1-3.dll
    A post-build event should take care of it: xcopy "$(SolutionDir)GnuTLS-2.7.3\bin\*.dll" "$(SolutionDir)$(OutDir)\" /C /D /Y /S /F
  5. I-can’t-find-config.h-step. Copy it from <freeswitch root>\libs\win32\iksemel. Make sure the follwing line is not commented:
    #define HAVE_GNUTLS
  6. Questions?

People are only interested in headlines

February 7th, 2009
High broadband speeds means abundant  information. However, time remains constant. Hence, less time to consume all this  information. Consequently, we become headlines-junky seeking immediate information rush but no thorough exploration. Not good. I’m not the first to say that but, hey, at least I didn’t take too much of your time reading this post, absorbing and moving to the next topic.

C# 3.0: Lambda Expressions, extension methods and Object Initializers

January 23rd, 2009
I just finished reading Alex Yakhnin’s post about generic control creation for WinForms. This is an excellent article  for those whishing to know how to use some of C# 3.0 neatest features like Lambda Expressions, Extension Methods and Object Initializers. Alex demonstrate how, using these features, nerd developers like us can make their code more readable and as a result – maintainable. Basically, he used Extension methods to extends Control class functionality to create inherited controllers. One of the arguments used in the extension method is Func<Control, T> build.  This is a in fact a nice way to say that ‘build’ is a function that accepts an argument of  Control type, and has a return a value of type T. Next, he uses Lambda expression to present the function in an elegant way. The expression is in fact, a constructor for the control we wish to build. As a final ingredient in this wonderful code soup, he used Object Initializers for the constructor.

Big Brother monitoring

December 24th, 2008
One of the group sessions that were held last week in MoMo TLV was focused about Network monitoring and “Big Brother”. The group itself talked for about 15 minutes before we switched to other groups, but it was enough to raise some intriguing points. The demand for monitoring is triggered by two distinctively opposite sides: government and facebook-like users. Following 9-11 and local crime events, governments began to tap more and more on their citizens. Although we see many groups opposing it, I think that the fear-factor will overcome and we’ll see more monitoring on a bigger scale. Obviously, that includes mobile calls, SMS, IM and VoIP. On the other hand, there are those who freely give away information about themselves: GPS data of current location is uploaded to the web. Blogs, pictures and twitters are common ways to share friends but also complete strangers about our personal lives. That got me thinking. Perhaps there’s a business opportunity for these open-life people? There are already companies with contextual-oriented ads platform that can be used in exchange for free or subsidize calls. This is, in fact, a nice way to say that your calls are monitored so you’ll get ads that relates to topics you talked about. Let’s say you talk about how nice Rome is. Don’t be surprise if you’ll see an ad offering you a deal for a trip to Italy. Indeed, the concept is not new. GMail is doing this for several years now. I’m not sure people are giving a second thought about the fact that Google is going over their mails. Still, GMail demonstrates that free services in exchange for some privacy-compromise is working. This approach can be expended even further from saving money to making money. Perhaps Big brother-like shows where listeners subscribe to channels where people talk to their friends and family over the phone. This can be a phone-equivalent to web cams.

The Flop of Mobile VoIP

October 4th, 2008
Analysts say that Mobile VoIP Market will boom around 2012 hitting more than $65B annual revenues. Many interpret this as a sign for investments in Mobile VoIP applications and services, thinking that consumer VoIP market will grow from nearly zero in 2008 to over 500M users in 2012. Every other day I read breaking news about VoIP Application for a new mobile device or platform. I think they are all wrong. I don’t think that by 2012 Mobile VoIP market will even exist as a standalone market. VoIP stands for Voice Over Internet Protocol - now which consumer really cares about what protocol is carrying his or her voice to the destination device? What the average consumer wants is a cheap and simple way to make calls, the protocol used is really least of the consumer concerns. Phone bill is though, but what does that have to do with Mobile VoIP? Would Internet Protocol make your phone bill shrink? I hardly think so. Phone companies need to make money so they can keep giving us a high quality service, keep their backbone, customer support, sales and other departments running requires money, and lots of it. Phone companies need to pay their employees, and these guys don’t really care if their dim comes from per minutes or per kilobyte cost. It’s not to say that I don’t think we’re over charged for making calls - we are - since most phone companies are just too greedy - but it has nothing to do with Internet Protocol per se. So unless we switch back to direct trading economy phone companies will continue paying their employees and this money will come from us either directly (us paying phone bills), or indirectly (by someone subsidizing our calls for some sort of benefit). Mobile VoIP application providers may temporarily ‘enjoy’ lower operational costs and thus provide cheaper calling, but it’s neither convenient nor a steady service going beyond the techies community - it’s not a long term investment. The reason I think Mobile VoIP market will never lift of, is that I don’t think it has independent existence from the mobile telephony industry. There are various providers (including JAJAH) providing all sort of mobile VoIP applications to make calls over data connection but those are not consumer ready for many reasons which I won’t count here. Mobile VoIP application can be consumer ready only if they are merged into the mobile device, either coming from the handset maker, mobile service providers or both. Hence it will never be an independent market. Mobile VoIP is a very misleading term. What I do think will happen in the next few years is that Mobile Operators will gradually shift their core infrastructure to be NGN-like and this is because audio is only one of the media types that will be pass over the air - it does not make sense to keep one infrastructure for voice and another for data - merging makes more sense. While this may potentially lower operational costs for mobile operators, it will not necessarily lower how much consumers pay - this has more to do with the core greediness of the operators than the core network architecture. Best, Amichay
Jajah is the VoIP player that brought you web-activated telephony.