Bug 127737 - Wengo VoIP support in Kopete
Summary: Wengo VoIP support in Kopete
Status: CONFIRMED
Alias: None
Product: kopete
Classification: Applications
Component: New plugin wishes (show other bugs)
Version: unspecified
Platform: Gentoo Packages Linux
: NOR wishlist
Target Milestone: ---
Assignee: Kopete Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-05-21 04:00 UTC by Devon Warren
Modified: 2010-04-19 23:56 UTC (History)
4 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Devon Warren 2006-05-21 04:00:49 UTC
Version:           0.12 beta 2 (using KDE KDE 3.5.2)
Installed from:    Gentoo Packages
Compiler:          3.4.6-r1 
OS:                Linux

It would be great if Kopete supported Wengo, an open source VoIP communication program. I know Jingle is being implemented so I think Wengo support would not be too hard. This would save us all from having 2 IM/VoIP clients open at once (assuming you use Wengo). 

I am not a lawyer and I have not checked yet but I do not think they have any legal restrictions on other clients using the protocal.
Comment 1 Matija Šuklje 2006-07-04 14:45:10 UTC
I agree, (Open)Wengo support would be great to see in future Kopete versions.

And I think it might be easier to implement then Skype as well because of at least two reasons:
- OpenWengo is under GPL and therefore you can read and use their source without any further restrictions the KDE/Kopete team isn't used to (KDE and Kopete are GPL as well - no problem there)
- the Wengo protocol uses the open standard SIP. for IM usage it will soon change from SIP/SIMPLE to XMPP (for VoIP it will still keep the other SIP components)

You can read it in their FAQ:
http://www.openwengo.org/index.php/openwengo/public/homePage/openwengo/public/faqAdvanced#a0

Also, OpenWengo is intending to include (via XMPP/Jabber) access to other IM protocols in its (OpenWengo NG) client, so if you look at it from the competition viewpoint it'd be nice to include Wengo rather soon, because users will then be able to choose between more FOSS IM applications: namely Kopete, Gaim and OpenWengo NG.

p.s. I am a law student
Comment 2 Paulo Fidalgo 2006-07-04 15:28:05 UTC
Wengo uses SIP for his VoIP service.
Sip support in kopete is already planned, at least I remember to read something about around the net... so it's just a matter of time, or just a matter of coders ;) because coder's are never enough!!!
Comment 3 Matija Šuklje 2006-07-04 15:51:09 UTC
Sweet! :D

Heh, yea ...there always seems to be a lack of coders, artists etc. in pretty much all projects out there. I suppose that's just the world we live in. Things still go forward though! :D
Comment 4 Coran 2006-07-23 21:29:18 UTC
*** This bug has been confirmed by popular vote. ***
Comment 5 bonne 2006-08-18 18:49:42 UTC
Yes SIP integration would be great!

There is also another KDE based project which supports SIP very well. Check out Twinkle http://www.twinklephone.com/

Either of these projects should provide enough code to build good SIP support in Kopete. 
Comment 6 Julien Gilli 2006-08-18 19:56:41 UTC
We (the OpenWengo community) would be very happy to help you to implement SIP support in Kopete. How could we help in that?
Comment 7 Matt Rogers 2006-08-18 21:27:18 UTC
Implement it for us as a kopete plugin? Currently, no one on the current team 
has time ATM, so someone new would have to come in and do it.
Comment 8 Julien Gilli 2006-08-21 10:24:14 UTC
There are several things to know if we want to discuss the inclusion of OpenWengo's code into Kopete:
 * The SIP layer is under heavy refactoring right now, and it should be done in about 3 weeks.
 * We are adding IAX support at the same level of abstraction, it should be ready by the end of September (See http://dev.openwengo.org/trac/openwengo/trac.cgi/wiki/CodeCampIaxWengoPhone for more information).

Maybe it would be a good opportunity to integrate both protocols? What do you think about it?
Comment 9 Chani 2006-08-21 19:29:46 UTC
I'd love the chance to help make a SIP client that doesn't drive me up
the wall... if I can find the time, that is.
I know almost nothing about the protocol right now, though.
Comment 10 bonne 2006-08-22 12:23:09 UTC
Julien: 
Can I suggest, that if you're refactoring your SIP code, that you separate all the SIP stuff from all the GUI stuff and make a separate library. Preferably with a sensible API ;) 
That way it will be easy to not only incorporate the library into Kopete, but also other open source applications that wish to.

In fact there exist a number of SIP libraries already. It may be worth simply extending them with your code, or otherwise colluding with the authors

Check out:
http://www.gnu.org/software/osip/
http://savannah.nongnu.org/projects/exosip/

Likewise there is a Qt based IAX client alread in existance. See:
http://www.kiax.org/

And, of course the open source IAX client library:
http://iaxclient.sourceforge.net/

I hope this info helps!
Comment 11 Julien Gilli 2006-08-22 12:34:30 UTC
Actually, our SIP layer has a very high level of abstraction. Here's a sneak peak at the current API:

virtual int addVirtualLine(const std::string & displayName,
					const std::string & username,
					const std::string & identity,
					const std::string & password,
					const std::string & realm,
					const std::string & proxyServer,
					const std::string & registerServer) = 0;

	/**
	 * Dials a phone number.
	 *
	 * @param lineId line to use to dial the phone number
	 * @param phoneNumber SIP address to call (e.g phone number to dial)
	 * @return the phone call id (callId)
	 */
	virtual int makeCall(int lineId, const std::string & phoneNumber) = 0;

	/**
	 * Accepts a given phone call.
	 *
	 * @param callId id of the phone call to accept
	 */
	virtual void acceptCall(int callId) = 0;

	/**
	 * Rejects a given phone call.
	 *
	 * @param callId id of the phone call to reject
	 */
	virtual void rejectCall(int callId) = 0;

	/**
	 * Closes a given phone call.
	 *
	 * @param callId id of the phone call to close
	 */
	virtual void closeCall(int callId) = 0;

	/**
	 * Holds a given phone call.
	 *
	 * @param callId id of the phone call to hold
	 */
	virtual void holdCall(int callId) = 0;

	/**
	 * Resumes a given phone call.
	 *
	 * @param callId id of the phone call to resume
	 */
	virtual void resumeCall(int callId) = 0;

	/** @} */  
	  
	  /**
	   * Sends a DTMF to a given phone call.
	   *
	   * @param callId phone call id to send a DTMF
	   * @param tone DTMF tone to send
	   */
	  virtual void playTone(int callId, EnumTone::Tone tone) = 0;

There are more methods in the whole API, but you can get the idea.
It is very easy to use by a client application, and it is not related in any way to any user interface. There may be some issues with dependent libraries, though. I think that using this library with Kopete would be definitely worth trying.
Comment 12 Claus Rebler 2007-05-28 17:57:52 UTC
integrat wengophone fetaures
voip, sip, web-cam ...