Xojo VOIP SDK

Anyone know if there is anyway to interface seamlessly with a voip solution or a plugin for Xojo to do said task?

Dave,

I had looked for that a few months back and did not find any plugins. TCP/UDP are the closest you have in Xojo to work with so you would have to create your own implementation for SIP TCP/5060 or Cisco SCCP/ TCP & RTP/RTCP/UDP.

I would be interested to know if anyone decides to write this.

What are you looking to do?
If you want a VoIP switch to send/receive calls/SMSs there are people like twilio.com. You just need to POST/GET commands to them (using httpsocket). Easy enough to do.

A fully featured soft phone embedded in the browser, however …erm, a bit more involved,

This should be fairly straight forward to integrate: http://www.linphone.org/eng/documentation/dev/liblinphone-free-sip-voip-sdk.html

The open source edition was able to connect to my internal phone system easily enough. ( I didn’t do much more than that. )

In my looking it over it I was not able to see the commercial pricing but you can play with the open source version to see if it will work for you. Just do not accidentally use the open source version in your commercial product.

FWIW I was referring to Cisco and Avaya Enterprise VOIP Systems.

We have 3CX but their API doesn’t play well without a Lot of work.

Depends on what you want to do.

We get the CLI by the very basic method of having 3CX put it in the clipboard and a button in our Xojo app to read it and do a search on the number. Thats as much as we could do :frowning:

it’s a lot of work.
I once looked in the Skype SDK, but that was even too much work for a client for creating the plugin.

Best if you license a good library which we can use in Xojo.

What are you trying to achieve?

We’re awaiting our local exchange being upgraded to fibre, once that’s happened we plan to swap over to Snom IP phones. One of the attractions is that you can interact with Snom IP phones using http & XML, the phone can act as either a client or a server.

Be warned - as yet I haven’t done any of this in practice, but here’s a rough outline of some of the capabilities I’ve been reading up on:

Let’s say for example you’ve created a CRM application, when the user is looking at a particular customer’s card you could push an XML formatted menu to the user’s Snom phone containing the contacts and phone numbers that are relevant to that customer:
http://username:password@phone_ip/minibrowser.htm?url=http://server_ip/menu.xml

or if you want to make your Snom phone dial a number send it a GET request formatted something like this: http://username:password@phone_ip/command.htm?number=NUMBER&outgoing_uri=URI

You can also make the phone act as the trigger by specifying an ‘Action URL’ that it should send an http GET request to whenever a particular event occurs, the parameters available for the GET request depend on which event you’ve attached an ‘Action URL’ to. For example, if you attached an ‘Action URL’ to the ‘Incoming Call’ event two of the runtime variables available to you should be $call-id and $phone_ip, so to specify you want those included in your URL you’d state something like this:
http://192.168.X.X/test.php?callerID=$call-id&phoneIP=$phone_ip

If I remember correctly there are over 40 events you can attach to - incoming call, outgoing call, on hook, off hook, connected, disconnected, etc, etc…

All of this is easy to accomplish with Snom phones, I have several crm apps working in this environment. I also have a Windows app working via named pipes to achieve the crm goal, but would love a protocol I could use in Xojo without these third party devices/applications.

Is a web or a desktop framework preferred? Web will be easiest for cross-platform abilities since webRTC is a faction of HTML5…(HTML5 would automatically allow desktop(htmlviewer)/browser/and mobile devices natively) whereas desktop clients with no htmlviewer based interaction will require numerous 3rd party components or libraries to get up and going (without writing plugins by hand). A web control could be designed easily to allow 2-way (or more) communication using a SIP server, or for “internal” communications where the application itself acts as the server (authentication/identification of users could be open or account based by name/number/etc). I’ve used webRTC to create video conferencing applications (video with audio works on desktop(HTMLViewer)/web/and mobile devices), and could begin dabbling to port the code over to Xojo.

Live Audio/Video demo:
https://apprtc.appspot.com/

(In the demo, a unique “number” will be given to the user when the link loads **see the QueryString at the bottom of the window)

You will have to have another device (yes even mobile) connect to that link, to initiate the audio/video conference. In the demo all communications exist solely between both browser windows with no server between handling the communications (can easily route through a SIP).

**Using this same technique I also made 8 security cameras using cheap single-board computers that have cameras built-in ($22!) for the local GoodWill for under $200.00 :slight_smile:

I am investigating a possible contract job where I’d have to be able to send text-to-speech generated files over a VoIP server via SIP protocols, and also receive return calls, decoding DTMF codes sent by the caller. I’d have to do that for Linux, primarily.

I am now going to look at the linphone.org solution, as that appears to be a quite solid and easy-to-use library.

Has anyone else already worked with that in the meantime?

[quote=321534:@Thomas Tempelmann]I am investigating a possible contract job where I’d have to be able to send text-to-speech generated files over a VoIP server via SIP protocols, and also receive return calls, decoding DTMF codes sent by the caller. I’d have to do that for Linux, primarily.

I am now going to look at the linphone.org solution, as that appears to be a quite solid and easy-to-use library.

Has anyone else already worked with that in the meantime?[/quote]
Hello, Thomas

Were you able to get this anywhere? I’m looking at the possibility of a VoIP client for iOS that supports separate channel recording, but the biggest part of such a thing is the VoIP protocol itself.

I didn’t take the job, so I didn’t pursue this further. Responses from linphone were also disappointing, i.e. they were not willing to clarify a few questions I had.

Oh. Shame. Thanks anyway :slight_smile:

Hello,

Do you know if it would be possible to integrate (or manage an interface) with an application like telephone to allow to make and receive calls in SIP?

After,

has someone integrated the PJSIP library available in opensource into a plugin?

https://www.pjsip.org/