Caller ID looks up FileMaker Client Record with VOIP Telephone


A few weeks back, we had a meeting of the BC FileMaker Developer Association. Joshua Paul of Neo Code Software, was talking about the benefits of the Voice Over Internet phone system his company had installed. His phone costs were way down, the voice quality was reliable and crystal clear (because the system uses better more modern ‘high definition’ codecs than the standard phone lines). Best of all, he could create a virtual office scenario with developers in widely diverse locations, yet it felt like everyone was in the next room.

Steve Barer of Oak Bay Softrends asked if Neo Code’s phone system could bring up a customer record when they called in. Steve felt that this was the holy grail that most offices would sacrifice the boss’s middle-management son for. Josh had to admit that it did not yet, but that it was a good idea. The next day, taking up the challenge, Josh called me to demo how he got this working. He spent a morning figuring out how to do it. It is pretty basic once you have it working, but it helps to know what you are looking for. The ability to run FileMaker Pro lookups based on an incoming Caller ID has application in a variety of sales and customer support situations. Once Neo Code put this in place they found it invaluable and could not imagine working without it. We hope you are as excited about this idea as we are.

wpid10048-caller-id-to-filemaker.gif

What you need for this project:

  • an IP-based Phone – a SIP phone – think of this like Skype, except non-proprietary. As an open-standard, any companies can make phones for it or sell the bandwidth to communicate between SIP phones. ($100-$250/phone set)
  • a Voice Over Internet Phone (VOIP) service with an assigned phone number (varies but usually much less expensive than a standard phone service)
  • 360Works RemoteScripter plugin ($195)
  • FileMaker Pro – setup with a script that takes a phone number or name value and opens a new window and does a lookup based on the provided parameters.

Hardware required

wpid10050-media_1404925515885.png

Yealink IP Phones  are available for about $100 on Amazon. There are many options to select from in SIP phones and VOIP service providers. Neo Code Software already had the Yealink phones in place. These phones are rated as having good sound quality at a reasonable price. Before you purchase a SIP phone system, check that it offers a similar URL call out action feature first.

Sign up for a VOIP service

wpid10051-media_1404925815294.png

Neo Code Software uses VOIP.ms, but there are a large number of other VOIP providers. Ask around to see who your friends and colleagues recommend.

Sending a URL to FileMaker Pro

FileMaker’s URL Scheme in FileMaker Pro 13 is much improved and allows one to send parameters with a URL script call. Unfortunately, this won’t work for Neo Codes’ purposes, because their Yealink phones were not setup to know that fmp://whatever.. is a URL.

Instead, Neo Code chose 360Works RemoteScripter plugin to capture a more traditional-looking ‘http’ URL coming from the phone.

Finding the IP address on your SIP Phone

wpid10049-image.png

In the Yealink phone, these are the steps, different SIP phones will take different approaches to this.

  • Press the Menu Button
  • Press the Status Buttton
  • The first item in the list is the phone’s IP address.

Log in to the Telephone

wpid10052-media_1404926617120.png

Make sure the SIP phone you buy has a web interface for administering the phone.

In a web browser, enter the IP address for the phone (that you got from the previous step). You should see a User Name and Password prompt to gain access to the phone settings. Hopefully your system administrator recorded this information somewhere accessible.

Configure Action URL

wpid10053-media_1404926684771.png

Look for an area that allows you to execute URL actions when an Incoming Call occurs.

In the Yealink telephone web interface, click on the

1) Phone Tab
2) Action URL sidebar
3) Incoming Call field – Enter your URL to send to FileMaker in this field

If the Yealink were modern enough to recognize fmp:// as a URL, then you could use FileMaker’s built-in URL Scheme. That would have looked something like this:

FMP://192.168.1.78/CallerID.fmp12?script
    =Lookup_Client&param=$remote&$display_remote

If your phone system is more modern, perhaps it will be able to send this type of URL to FileMaker Pro. Unfortunately, the web server in the Yealink is a few years old, and doesn’t recognize more modern URL schemes, so the work around was to use an http:// formed URL, and send it the 360Works RemoteScripter plugin instead.

Including the Name and Telephone Numbers as parameters for the script

wpid10054-media_1404968342111.png

According to the Yealink manual, (page 62) that URL looks something like this:

http://192.168.15.113:4546/?$remote&$display_remote

Breaking down that URL, we see first the IP address of the FileMaker Pro machine, then a port number 4546, which is what the ScripterRemote is listening on and finally, we are sending the remote name and phone number as parameters. When these parameters get to FileMaker Pro and the script runs, it will search on the name and/or phone number to find the client.

Setting up 360Works RemoteScripter

media_1404971912657.png

There is good information on 360Works web site on setting up their plug-in, including a video explaining many of the features and how to set them up. Once you have the plugin installed, you configure it to listen on a specified port. When a request comes in on at port, it acts in a similar manner to FileMaker Pro 13’s URL scheme, running a script with a set of parameters.

Note: Because this approach is using a plug-in rather than native FileMakerPro, the implication is that it could be made to work with the FileMaker 7 file format (FileMaker Pro versions 7 through 11). FileMaker Pro 13 offers the possibility of a plug-in free approach, if your SIP phone supports the fmp protocol.

That’s it. I hope this provides some inspiration for you on setting up your own phone system with this ability to talk to FileMaker Pro. Some other ideas to add to your script: set the script to log the call to a correspondence table. It is also possible to send outbound requests from FileMaker Pro to the telephone to initiate a customer call.

I will close with a quote from Joshua Paul of Neo Code Software:

“I built it for the challenge — not because I wanted it, but you know what? — it is awesome! Steve is a genius — what a great idea! Having FileMaker Pro show me the client record instantly is amazing. It’s like having a cell phone vs a home phone. You don’t realize how much you needed it because it isn’t like anything you’ve ever had. I can’t live without it now. I can’t imagine not having it.”

If you are just getting started with VOIP systems and/or FileMaker want to talk to a consultant about getting your company setup with such a system, contact Neo Code Software.

5 Responses to “Caller ID looks up FileMaker Client Record with VOIP Telephone”

  1. Excellent Article Douglas, congrats! It is nice to see people working on integration with other technologies and platforms. I recently wrote wrote an article on integrating with Twilio, an phone service provider: http://bit.ly/phonetofilemaker. The solution does not use plugins, but uses CWP to connect to FileMaker

    • Nice article. Could you have Twilio send an FMP request script direct to FileMaker, skipping the need for the php/XML step?

      • Douglas, no at this time the API’s they have do not allow a direct connection to FileMaker (Server). For fmp scheme URL’s you typically would need a FileMaker client to act on a FileMaker database. Through a callback URL called by Twilio upon receiving an incoming call though, via CWP you can start a script on FileMaker Server. You then only need to create an generic PHP script which connects to FMS and create, for example a new record in a caller Queue.

  2. Hans Gunnarsson July 15, 2014 at 5:46 am

    Are we talking about that when we are using FM 13 server we could send a start script string with parameters directly into the XML service?

  3. Great Plug in, I did create an exe file to be called from Filemaker 13 script and invokes any softphone dialer. simple : http://www.filemaker-crm-voip-plugin.com