Dialing from Thunderbird’s address book: TBDialOut

I’ve had my first go at developing an extension for Thunderbird, the open source email client from Mozilla. The unimaginatively named TBDialOut is an extension that enables the user to place a phone call direct from Thunderbird’s address book.

I’ve actually been using an extension that does this for quite a while—VOIP3Dialer 1.1. But I recently upgraded to Thunderbird 3.1.7 from 2.something-or-other and VOIP3Dialer didn’t work with TB3. I really wanted to keep the funcionality that VOIP3Dialer offered, and with it not having been updated since July 2008, and its support web page gone it seemed there wasn’t much option but to learn how these extensions things work.

It didn’t take long to work out what had changed in Thunderbird’s address book to break things. That sorted, I started to look around a bit more and get to understand the inner workings of an extension. I ended up rewriting pretty much all of the functional code in VOIP3Dialer, and then started adding stuff.

TBDialOut introduces various user options, including a choice of URL schema to use and international dial prefixes. I then tackled the user interface. I added clickable links as well as the original context menu items and three buttons and made a few other usability tweaks. Finally, I changed the three buttons for a single, combined button that prompts the user to select which phone number to dial (home, work or mobile (cell phone)).

Screenshot of TBDialOut

TBDialOut in use

TBDialOut basically just passes the selected phone number to which ever programme is configured to handle the URL scheme you’ve chosen to use with TBDialOut. You can choose from sip:, tel:, callto: or skype:. I’m using it with a small Perl script that contacts my Asterisk server to set up a phone call. When I click on a number with TBDialOut the phones in the house ring out. Pick one up and you’re connected to the number you clicked.

Links

24 thoughts on “Dialing from Thunderbird’s address book: TBDialOut

  1. John T

    Hi Chris,
    TB DialOut is great. Have been using it with x-lite/eyebeam. Question, any chance of sharing your perl script or info how to use it with a desktop sip phone or pbx ? It would be great to be able to dial via computer and use the hard phone–I’ve just got a Yealink TP28 Sip phone. You seem to have cracked that.
    Thanks,
    Regards,
    John

    Reply
  2. Rainer Piper

    Perfect !!!
    I wrote a small program to pass the required Phonecall via Manager Port to my Asterisk PBX.
    Works perfect!!!
    Thanks TBDialOut Developer!!!

    Reply
  3. Eduardo

    Hi Chris.
    I think your ADD-ON may be very useful. Unfortunately I have upgraded Thunderbird some days ago to 5.0. That was before I found your ADD-ON. Will you support TB5.0?
    I am planning to use it with sipgate. Any experience?
    Regards.
    Eduardo

    Reply
  4. Eduardo

    Hi.
    I have tested TBDialOut w/ TB5.0and in spite of complaints from the ADD-ON manager it works. Great!
    So far I am using it with Skype.
    I would like to use it with sipgate. It’s a sip VOIP provider. Is there any instruction on the web you know of to install a URL hander for this?
    Thanks, regards.
    Eduardo

    Reply
  5. Karl

    Hi,

    Thunderbird 5.0 has just been released, but it claims TBDialOut 1.5.2 is incompatible and disables it. Any chance of an update soon?

    Karl

    Reply
  6. Vincenzo Turi

    Chris,
    I am trying to get me and my team to be able to dial throug our office Cisco SPA922 VoIP phones by clicking on TB’s address book.
    We have found a couple of (paid) applications that can tell the SPA922 to make the call, but they both work by monitoring the windows clipboard. Is there a way to add an option in TBDialOut to copy the number to the clipboard?
    Of course, if you have any other suggestions on how to get the job done they are most welcome!
    Thanks for your attention and thanks again for sharing your work.
    Regards.
    Vince

    Reply
  7. Chris Post author

    I’ve been on holiday with no internet connection for a while, so sorry for the delay folk. I’ll try to get a TB 5 compatible version done pretty soon. Thanks to Eduardo sounds like it should be straightforward.

    Reply
  8. Chris Post author

    @Vincenzo,
    I’d rather not work on an option to copy a number to the Windows clipboard, if only because I don’t use Windows 🙂 If you can find out how these paid apps interact with the phones I can look at that – the phones presumably have some sort of API for setting up calls. Also, how are you’re phones used? If they are all connected to a soft PBX such as Asterisk, it might be possible to interact with the PBX instead.

    Reply
  9. Rainer Piper

    Hi …
    here my little Program that I wrote for Windows and Asterisk PBX …
    http://www.soho-piper.de/software/SetupPipercallto.exe
    Requires: .net Framework 4
    This Program is testet on Windows 7 32bit an Asterisk 1.8.x.x !!!
    How does it work …
    Youtube Video -> http://www.youtube.com/watch?v=noBT8_XPPFk
    A click on callto:[Phone-No] transfers the requiered call No. via Asterisk Manager Interface (AMI) to my Extension (Hard- or Softphone).

    Rainer 😉

    Reply
    1. Chris Post author

      I’ve just put a new beta version up at http://www.oak-wood.co.uk/tbdialout/releases/. 1.6.0rc1 includes the ability to configure a custom URL which TBDialOut will send an HTTP GET request to. The placeholder %NUM% in the configured string will be replaced by the phone number you are calling. This should enable things such as Andrea requested with
      http://myasteriskserver.local/myscript.php?%NUM%

      Also, it should be OK with Snom phones using something like
      http://my_phone_ip/command.htm?number=%NUM%&outgoing_uri=my_account

      or some Yealink phones using
      http://my_phone_ip/cgi-bin/ConfigManApp.com?outgoing_uri=my_account&number=%NUM%

      It’s probably useful with other devices too.

      Reply
  10. Eduardo

    Hi.
    The new URL features sounds great. Unfortunately I am using a Grandstream GXP1450. I believe that it does not support dialing by URL command. Or does it?

    Reply
  11. Daniel

    Hi Chris,

    Very nice extension. The latest 1.7 version work well for me if used directly with asterisk AMI (ie port 5038). Unfortunately I must use astman proxy and it doesn’t work at all. Are you aware of this issue?

    Daniel

    Reply
  12. Chris Post author

    @Daniel
    Thanks for bringing this problem to my attention. I’m really short of time for the next few months so I’m afraid it may be a while before I can look at this. I don’t use astman myself so I’ll need to set that up before I can really investigate the problem.

    Reply
  13. Andreas

    Dear Chris,
    nice extension. I want to use the URL command with a Cisco 7945. Unfortunately, it doesn’t work. If I enter the same URL in a browser (the local address of the webdialer), the phone dials the number. What’s wrong?
    Thanks & best wishes
    Andreas

    Reply
  14. Rick

    Hi, I have a feeling I’m wanting this extension to do something that’s actually impossible, and maybe someone can confirm that. I don’t have a phone server and don’t know what a ‘URL scheme’ is but rather I just have an old-fashioned regular telephone plugged into a wall outlet and that has nothing to do with my computer. I just remember the old days when I had a dial-up modem and the phone plugged into that, and I could make a call from my computer’s address book.
    Given that I’m now on Verizon FIOS for both phone and internet, and given that I have all my phone contacts in the Thunderbird Address Book, is there a way I can have Thunderbird dial these numbers out on my telephone?
    It seems such a waste to have all these phone numbers in my computer but no way for the computer to dial them. Thanks for any help.

    Reply
  15. Gordan

    Hi Chris,

    I’m trying to set up my e-mail program Thunderbird with the add-on “TBDialOut 1.7.2” to dial directly from my address book a telephone number. In the add-on I have chosen the function “callto:” (other choices: “tel:”, “sip:”, “skype”, “custom URL” and “Asterisk AMI”). I associated the “callto:”-option with the Voip-client “C:\Program Files\VoipCheapCom.com\VoipCheapCom\VoipCheapCom.exe”. Now after I press a telephone number from a contact in my address book, the voip client opens but nothing else happens, meaning the number is not dialed.
    How do I get this to work?

    Reply
    1. Chris Post author

      Gordan

      I don’t know VoipCheapCom and I don’t know if it is possible to pass a phone number to it on the command line. This is necessary in order to register it as a protocol handler for callto:, or any other protocol. You will need to check with company that produces it.

      If it is not possible, an alternative would be to use a different softphone, such as X-Lite, with your VoipCheap.com account. They have instructions for doing this on their site.

      If you do manage to get VoipCheapCom working please let me know so that I can add it to the FAQ.

      Reply
  16. G. Ravi

    Hi,

    I am trying to use TBDialout extension for using with Address book. I want to call using the address book with modem and headphones. I am getting error message probably due to some configuration required in the call to: option ( I guess). Please help how to make it work.
    I am trying to use dialer.exe (Windows XP).

    Thanks in advance!

    Ravi

    Reply
  17. Michael

    Nice Extension, works very well!

    I’m using Elastix with a CISCO 7961 IP-Phone with SIP Firmware (…)
    After hours of testing I finally found the solution why the phone was ringing but it wasn’t connected to the dialed number.

    In Asterisk CLI was just this line:
    == Starting Local/2000@default-00000011;1 at default,0800800800,1 failed so falling back to exten ‘s’
    — Executing [s@default:1] Playback(“Local/2000@default-00000011;1”, “vm-goodbye”) in new stack

    The solution was to change the settings of TbDialOut:

    Originating channel: Local/2000
    Context: from-internal

    Reply

Leave a Reply