Open source sip or iax client that registers to browser

Hello,

I’ve been browsing for several days. I am looking for high quality good looking sip softphone, which would be open-source (I really need the source), registers itself as a handler for sip:// or callto://, so I can make calls from browser (so I can code web application, that allows users to call directly by clicking the phone icon in the web app).

I’ve tried Openwengo, which is totally unstable (at least on windows), IaxComm, which is also not very stable for me and has a really ugly interface. I don’t require fancy features such as video or messaging, just simple calls (hold, transfer, multiple calls, etc. is fine, but I don’t require it).

I’ve been previously using Eyebeam, but since I’m not very happy about the company’s customer service (I reported bugs for client I brought and they just did not care, replied too late, etc.), I would like to have ability to fix bugs myself.

It does not matter if it is IAX2 of SIP softphone, I don’t even need fancy codecs. I would prefer multiplatform software, but Windows is a priority.

Also, is there a Free (and open-source) ActiveX component? I found java applet version of some iax client, which would be fine too.

Thanks,

Juraj.

Well, at least i know, if you have registered your phone as a TAPI (which SippX does for instance), a click on a phone icon triggering a TAPI call would dial immediatly.

This is what i have here (but with a standalone application, not web - but the call (API) is the same, delphi or PHP).

This is the code i used in delphi, maybe it helps you porting it to PHP:
The call to TAPI:
tapiRequestMakeCall(pChar(DestAddress),PChar(Application.Title),pChar(CalledParty),PChar(Comment));

The definition:
const TAPIERR_CONNECTED = 0;
const TAPIERR_DROPPED = -1;
const TAPIERR_NOREQUESTRECIPIENT = -2;
const TAPIERR_REQUESTQUEUEFULL = -3;
const TAPIERR_INVALDESTADDRESS = -4;
const TAPIERR_INVALWINDOWHANDLE = -5;
const TAPIERR_INVALDEVICECLASS = -6;
const TAPIERR_INVALDEVICEID = -7;
const TAPIERR_DEVICECLASSUNAVAIL = -8;
const TAPIERR_DEVICEIDUNAVAIL = -9;
const TAPIERR_DEVICEINUSE = -10;
const TAPIERR_DESTBUSY = -11;
const TAPIERR_DESTNOANSWER = -12;
const TAPIERR_DESTUNAVAIL = -13;
const TAPIERR_UNKNOWNWINHANDLE = -14;
const TAPIERR_UNKNOWNREQUESTID = -15;
const TAPIERR_REQUESTFAILED = -16;
const TAPIERR_REQUESTCANCELLED = -17;
const TAPIERR_INVALPOINTER = -18;

{tapi size constants}
const TAPIMAXDESTADDRESSSIZE = 80;
const TAPIMAXAPPNAMESIZE = 40;
const TAPIMAXCALLEDPARTYSIZE = 40;
const TAPIMAXCOMMENTSIZE = 80;
const TAPIMAXDEVICECLASSSIZE = 40;
const TAPIMAXDEVICEIDSIZE = 40;

function tapiRequestMakeCallA(DestAddress : PAnsiChar;
AppName : PAnsiChar;
CalledParty : PAnsiChar;
Comment : PAnsiChar) : LongInt;
stdcall; external ‘TAPI32.DLL’;

function tapiRequestMakeCallW(DestAddress : PWideChar;
AppName : PWideChar;
CalledParty : PWideChar;
Comment : PWideChar) : LongInt;
stdcall; external ‘TAPI32.DLL’;

function tapiRequestMakeCall(DestAddress : PChar;
AppName : PChar;
CalledParty : PChar;
Comment : PChar) : LongInt;
stdcall; external ‘TAPI32.DLL’;

Well, but I can’t call TAPI from HTML page (which is generated from PHP). I am not running PHP on the client, I only generate HTML.

I wanted something like callto://123456/ would open a new call to that number or something like that. So if sip client registers callto:// url, it will make the call.

[quote=“jooray”]Well, but I can’t call TAPI from HTML page (which is generated from PHP). I am not running PHP on the client, I only generate HTML.

I wanted something like callto://123456/ would open a new call to that number or something like that. So if sip client registers callto:// url, it will make the call.[/quote]

You can do something similar (not exactly) to that using SipLinks:

siplinks.com

Try the product which has an ‘open to field’ or a ‘dialpad’ so u can enter numbers or embed it in the url.

laser.com/dante/