I've no knowledge of IP or PBX phones but my best guess would be to look at the phone system possibilities for dialing by passing an url to the system API or a helper application that can be run from command line. Both processes can be scripted in filemaker.
A lot of office phone systems should be integrable with computer's contact book / database programs. I guess many service call centers are set up this way.
Take a look at this video.
I'm working in something very similar to what you described, and i had to learn a lot about IP Phones, SIP and DID numbers, as well as trunking an termination,and the possibilities are endless.
I found a video that could be a good starting point for you and some pages that could help you to understand the process more in depth .
In my case i'm developing the call center system for a transportation company in filemaker as well as calling interface in a mobile environment (directly in a tablet PC)
I hope you find this information useful.
We use RingCentral for our phone system. It's a a fairly popular cloud based VOIP system. They have a URL API that is quite easy to use and works very well. I simply have a small "phone" icon next to any phone number displayed in our program. Press the icon and your phone rings. Answer it and you are then connected to the number corresponding to the icon.
BTW, The phones are standard Cisco IP phones. While I'm no expert on these phones, I have noticed it has buttons labeled 1 through 9 and three more at the bottom, "*", "0" and "#". While I've never tried it, I understand that if you push these buttons in the proper sequence, you can actually make calls to other people. Must be some sort of backup feature.
I've had limited success with the RingCentral API. If I set the webviewer URL to:
I get: FAILED Invalid username or password
If i put 2 webviewers on a layout and log in my account in one and specify a call command in the other, I can initiate the call.
Kyle- Can you share how you get around this?
One WebViewer and the following URL calc.
un = $UserName;
pw = $Password;
ext = "";
prompt = "0"
"https://service.ringcentral.com/ringout.asp?cmd=call&username=1" & un & "&ext=" & ext & "&password=" & pw & "&to=" & Filter ( $NumberToCall; "1234567890" ) & "&from=" & un & "&clid=" & un & "&prompt=" & prompt
Yup that works.. just had to get clear weather or not we needed a 1 infront of the users phone number. duh!