Sounds Essential is a trusted partner on several demanding and highly complex development projects. Their technical skills, creativity, and most importantly, their grasp of our business needs has helped our company deliver sophisticated solutions to our (very happy) clients. Even when projects reach the "intense" stage, we really enjoy working with Sounds Essential.
Digital Spark LLC
FileMaker Pro: Cross-Platform Skype Out Part 1
Calling & Chat from Within FileMaker Pro
Here at Sounds Essential, we like the database program FileMaker Pro. It's cross-platform (works on PC, Mac and iOS) and extremely versatile. That’s why we use it for our own business to keep track of clients and projects. Every once in a while, though, we come across something new we'd like the database to do. That often requires a little research to figure how best to implement the solution, as was the case with integrating Skype. Here's our solution that works cross-platform on all devices.
We weren't after a full-blown integration; we just wanted to click phone numbers and have Skype dial them for us. If the contact in question also used Skype, we wanted to click that Skype name and initiate a Skype call or chat with them. It didn’t seem like a tough task and would be a huge time saver once done.
Implementing it for the PC turned out to be a breeze. Then we tested it on a Mac and… nothing. Being in a multi-platform environment, this wasn't acceptable. We needed it to work on a PC, a Mac and iOS for FileMaker Go on an iPhone or iPad. We couldn't find any fully documented solutions for what we were trying to achieve, so it took a while to figure it. Credit must go to those that have documented parts of this process before, especially the use of the web viewer trick. Now we'd like to share our solution so others can avoid the headache we endured.
Although more technical than our usual blog posts, a brief summary of the solution is below, and documents are available for download showing the script steps in detail. While there's a little duplication in the scripts that could be condensed, we broke out each platform stage separately to keep it clear and to make for easier adjustments should they be needed in the future.
The key element to both scripts is placing a Web Viewer on your layout. As it is not required to actually display anything, it can be as small as 1px square or hidden behind other layout items, but it must be there. Name the Web Viewer skype_wv. Assign the script to a button that, when clicked, will execute the script. Both scripts have been tested and are working with:
- Windows 8, FMP 12 and Skype 184.108.40.206
- Mac OS 10.7.5, FMP 12 and Skype 220.127.116.113
- iOS 6.1.4, FM Go 12.0.7 and Skype 4.10.332
Dialing a phone number:
This is the simpler of the two implementations. Of course you must have a Skype account and valid subscription or credit in order to be able to successfully place the call. The key aspect is that the phone number must include the country code, area code and phone number, without any spaces or punctuation. For example a New York number would be 12125559999. The script is where all the magic happens and essentially follows these steps:
- Test for the platform the user is on
- Put the number to be dialed into a variable
- Test the variable to ensure it is not empty and exit the script if so
- Execute a different step to dial the number depending on which platform the user is on
There are a few different elements to get right depending on which platform the script is being executed on:
- Windows: uses the Set Web Viewer script step with the URL being called starting with callto://+ (Note that Windows can also use Open URL and callto://+)
- Mac: uses the Set Web Viewer script step with the URL being called starting with skype:+
- iOS: uses the Open URL script step with the URL being called starting with skype:+
Initiating a Skype Chat or Call:
This script is similar to the above but has additional steps to ask the user if they wish to start a chat or a Skype call:
- Test for the platform the user is on
- Test the Skype name to ensure it is not empty and exit the script if so
- Execute a different step depending on which platform the user is on
- Ask the user if they wish to initiate a chat or call, also giving them the option to cancel the request
- The answer to the above then executes the relevant script step to initiate the call or pop up the chat window for that contact
This is slightly simpler in that all platforms use the same URL call, with the call or chat variable added on, but the method of calling the URL differs on iOS:
- Windows & Mac: use the Set Web Viewer script step with the URL being called starting with skype: (Note that Windows can also use Open URL and skype:)
- iOS: uses the Open URL script step with the URL being called starting with skype:
We hope this and the documents available for download help you integrate some Skype functionality into your database. If you have any tips to further improve the implementation, please leave a comment below or contact us. And if you need help with this or any other FileMaker issue, don't hesitate to get in touch and we'll be happy to give you a quote.
Update 2013-09-20: We've improved upon this version of the phone dialing script to include the capability to send an SMS and use an iPhone's built in ability to send a SMS and make phone calls. And we've posted a demo file that includes the above and the new functionality. Check it out here.