Dialing Phone Numbers using SkypeOut from FileMaker Pro


A while back, I found a technique to launch Skype and using the SkypeOut URI scheme, dial a number in Skype. I tested the ability recently and was surprised to see that the technique seems to be broken.

Back in 2006 Skype announced on their blog that a FileMaker plug-in had been created by Premium Systems, but the links are all dead now. BeezWax claims to be able to work with Skype on their web site, but there is not much detail included. There is also an AppleScript method to achieve this, but it is obviously not cross platform. 24U Software has a phone plugin called Phone Companion that works with some PBXs, but the developers don’t list Skype as a feature.

In searching for a solution, I happened upon an approach described by Rennie Innis and David Jondreau separately on various forums. They both suggest employing a Web Viewer to get the call out capability back again.

This demo was created in FileMaker 12, but the technique should work in FileMaker 11 as well. In the demo, I am presuming that you have Skype installed and have setup a Skype account.

downloaddemo.png

Update 2013-09-16: See also Sounds Essentials blog post on this same topic Cross-Platform Skype Out, Calling and Chat. They take a cross-platform approach to the scripts (included in PDF format) as well as how to initiate Skype Chats.

Demo database – FileMaker’s Contacts Template

media_1378105308232.png

Web Viewer – minimize its visibility

media_1378105373312.png
  • Name the Web Viewer so you can reference it in the script
  • Turn off interactivity
  • Set the fill to no fill
  • Set the borders to no borders
  • Send the Web Viewer behind another object

Web Viewer is named ‘skype_web_viewer”

media_1378105456528.png

In the Inspector, give the Web Viewer a name.

Web Viewer settings

media_1378105447743.png

In the Web Viewer setup panel, all the interaction options are toggled off. The Web Viewer is also set to have no fill and no border, again to make it as inconspicuous as possible.

Web Viewer is sent to the background to hide it

media_1378105434021.png

Select the Web Viewer, position it over top of another field or object and then from the Arrange menu select ‘Send to Back’.

Skype dialing button added to the Work Phone field.

media_1378149025836.png

Call phone via SkypeOut script with the telephone number field as the script parameter

media_1378105404543.png

Script Parameter is set to the Work Phone field contents

media_1378105409598.png

Set the Script Parameter to whichever field you wish to dial from. Each phone number field could have an associated SkypeOut button.

Call phone via SkypeOut script

media_1378105685278.png

Web Viewer SkypeOut script details

media_1378148568271.png

Note the alternate URI scheme for iOS devices.

  • #Put the phone number in the script parameter of the button.
  • #Declare a script variable. This variable is being sent to a web viewer called “skype_web_viewer”
  • If [PatternCount ( Get ( ApplicationVersion ) ; “Pro” )]
  • Set Variable [$SkypeNumber; Value:”callto:”&”+1″ & Filter ( Get(ScriptParameter) ; “0123456789+” )]
  • #Merely by setting the web viewer to this URL, FileMaker launches Skype and attempts to make this call.
  • Set Web Viewer [Object Name: “skype_web_viewer”; URL: $SkypeNumber]
  • #Clean up the Web Viewer with “Go Back” action.
  • Set Web Viewer [Go Back]
  • Else
  • #This variance is to deal with iPhones and iPads
  • Open URL [No dialog; “skype:”&Get(ScriptParameter)&”?call”]
  • End If

Result of Script in Skype

media_1378148347897.png

Skype pops up a dialog box asking you to confirm you wish to dial using Skype. There may be a way to turn this notification off and go directly to the call, but I did not see it in the Skype Preferences panel.

Alternative – AppleScript SkypeOut Method

media_1378105270637.png

If your users are all on Macintosh, you might consider using this approach instead . The script should just copy and paste into your solution. All you need to change is the phone number field. This won’t work on Windows or iOS.

Source: Alternate AppleScript Method

I saw mention of an AppleScript approach, and have included a scripted example of this approach in the demo file as well. The calculation generates an AppleScript that looks like this:

  • tell application “Skype”
    activate
    get URL “callto:5555551212”
    end tell
  • #In this case,the telephone field is coded into the calculated AppleScript as a variable, so it is a little easier to see. This number could come from a script variable as in the other example.
  • Set Variable [$SkypeNumber;
  • Value:”tell application \”Skype\”¶
  •     activate¶
  •     get URL \””&”callto:”&”+1″ & Filter ( Contacts::Work Phone ; “0123456789+” )&”\”¶
  • end tell”]
  • #Set this to the AppleScript
  • Perform AppleScript [$SkypeNumber]

Update 2013-09-04: Note that this issue is isolated to the Macintosh platform. This technique will still work on Windows. Thanks to reader Egbert Friedrich for prompting me to get around to testing it on Windows. I was being lazy, I hadn’t launched Parallels since replacing my hard drive and didn’t have Skype installed, didn’t look forward to clicking through all the dialog boxes, yada, yada…  He pointed out that the script step OpenURL and “skype:”&PhoneNumberHere seems to work just fine on his side of the world. So I tested and he is right, the old method still works well on Windows. From reading the forums and testing it, the issue seems to be between FileMaker, Safari and Skype.

SkypeFail

When you send out the Open URL to Safari, it is supposed to pass it on to Skype, but for some reason it stalls in the process. Sending the URL through a Web Viewer instead solves the problem.

In a follow up email, Egbert suggested using a freeware app to solve the issue another way on Macs. 

“…have the “skype” assigned to the app Skype instead of Safari. Otherwise Safari occupies all url calls. You can set the standard app with this freeware OS X Preference Pane: RCDefaultApp” 

Update 2014-11-16: Added a Web Direct version of the dialing routine to the Demo File. There are two Web Viewers that you should be able to just copy and paste into your solution. They also will work in a regular FileMaker Pro client. They are a simpler approach to adding Skype calling.

The limitations over the other method are that they are slower to load and the size of the Web Viewer cannot be made as small as the Button/Web Viewer combo on the previous screen.

  • Choose either icon or text only Web Viewer
  • Copy/Paste Web Viewer to your layout
  • Edit the Calculated URL
  • Change the field to your telephone field
  • Remove commenting (/* and */) from beginning/end of URL

11 Responses to “Dialing Phone Numbers using SkypeOut from FileMaker Pro”

  1. Wow! It’s a nice concept, I’m going to use this one of in
    my project . Thanks for sharing this

  2. I’m using FMP11, and your file only works in 12. Is there any way you could export the file for 11? It would be really useful. I can’t use 12 as I need to connect with users and solutions in .fp7

  3. Hello Douglas,

    Thanks for your efforts in explaining the Skype script.
    It works very nice.
    I was wondering on what is needed to get this to work under WebDirect as well. Do you think that’s possible?
    I would appreciate any help or suggestions on how to fix that.

    Thanks a lot,

    Regards,

    Wim Claessen

    • Hi Wim,

      Glad you are getting use of of this. I haven’t tried this in WebDirect myself, but one approach to try would be, created a Web Viewer with a calculated URL in it.

      "data:text/html," & The calculated URL here call ME with Skype

      <a href=" skype:MyUserNameGoesHere?call">call MyUserNameGoesHere with Skype

      Replace MyUserNameGoesHere with a field name and comment out the quotation marks.

      Sources:

      Hope that is useful.

      • Thanks a lot Douglas for your response.
        I understand and can manage the approach of using a webviewer with a calculated url in it. It works fine for me when using a standard FM client on a hosted solution.
        The same host also provides me with webdirect pages, all works well, exept I can’t get Webdirect to display any content in Webviewer fields.
        I actually wonder if webviewer is really supported in Webdirect. It should, according to the documentation, but i just can’t manage to get this to work.

        Any ideas where to look further?

        Thanks for your hekp.
        Have a nice day.

        Wim.

      • I have seen comments to the effect that web viewers aren’t 100% functional yet. How about a trying just a button with an open url script?

  4. Hello Douglas,

    As far as Webdirect is concerned, I found out it is not fully supported yet.
    Outside from Safari, there are big limitations.
    Accessing a webviewer object like skype_wv and then calling for the action open url, “skype:+12345678” works fine on normal FM clients, but not in a browser on webdirect.

    When i use the scriptstep Open URL “skype:echo123?call” in Webdirect, i get a message (in Dutch) saying that “it” can’t open a window and that popup blocking should be disabled.

    A) I get the same message and layout both on Safari as on Chrome, so I believe the message comes from the Webdirect host.
    B), i fully enabled popups.

    There you are, I have no idea for the moment how to solve this.
    Any suggestions would be greatly appreciated.

    Thanks again

    Best regards,
    Wim.

Trackbacks/Pingbacks

  1. Dialing Phone Numbers using SkypeOut from FileMaker Pro | HomeBase Software - FileMaker Pro Gurus - September 4, 2013

    […] via Dialing Phone Numbers using SkypeOut from FileMaker Pro | HomeBase Software. […]

  2. Dialing Phone Numbers using SkypeOut from FileMaker Pro | Filemaker Info - September 4, 2013

    […] See on hbase.net […]

  3. Running FileMaker Scripts from Your Desktop with Launchy or Alfred | HomeBase Software - September 12, 2013

    […] Dialing Phone Numbers using SkypeOut from FileMaker Pro […]