VoIP with Google Talk

Bug #141359 reported by sander
16
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Coccinella
In Progress
Wishlist
buzzdee
Baltix
New
Undecided
Unassigned

Bug Description

VoIP with Google Talk does not work.

API:
http://code.google.com/apis/talk/libjingle/developer_guide.html

Useful XEPs:
http://www.xmpp.org/extensions/xep-0208.html (Bootstrapping Implementation of Jingle)
http://www.xmpp.org/extensions/xep-0177.html (Jingle Raw UDP Transport)
http://www.xmpp.org/extensions/xep-0176.html (Jingle ICE Transport)
http://www.xmpp.org/extensions/xep-0167.html (Jingle Audio via RTP)

Related FAQ item (needs update when this bug is fixed!):
http://thecoccinella.org/faq/voip

Related requests:
http://coccinella.im/node/48
http://coccinella.im/node/67

Possible useful libs:
http://nice.freedesktop.org/wiki/ (ICE)

sander (s-devrieze)
description: updated
description: updated
sander (s-devrieze)
Changed in coccinella:
assignee: nobody → matsben
importance: Undecided → Wishlist
Revision history for this message
Mats (matsben) wrote :

I refuse to use libjingle for this since that code is so very badly layered. Note that jingle indeed works but using the iaxclient library. Perhaps I should blog about the bad job Google did with libjingle? If you have any other suggestion for an open source voip library, suggestions are welcome. I know Antonio has looked into pjsip which seems better layered, and where there is a chance to get the raw streams without the protocol part (SIP). But I haven't looked at myself.

Revision history for this message
sander (s-devrieze) wrote :
sander (s-devrieze)
description: updated
Revision history for this message
v_2e (v-2e) wrote :

So, is XEP-0176 and XEP-0167 support going to be implemented in Coccinella?
The currently supported XEP-0179 protocol usage is discouraged nowadays, and more and more clients now support the protocols mentioned above. For example, my friends communicate with VoIP using Psi quite a long time, and I cannot join them with Coccinella. But still, I prefer using Coccinella :)
It would be very very nice to have these extensions support in Coccinella to freely communicate to other people with other Jabber-clients.

Regards,
Vladimir

Revision history for this message
buzzdee (sebastia) wrote :

I'm going to work on the VoIP part again. The next release will have the IAX phone part enabled, as a experimental feature, so that you may use Coccinella as a conventional IAX client to Asterisk PBX.
The problem is that on OpenBSD, which is my preferred development platform, the auido based ports have to be ported to the OpenBSD sndio API, since the plan is to drop the OSS api from the kernel. I'm already working on getting snack and iaxclient ported to the sndio API, but I'm still struggeling a bit. I first want to get the stuff working on OpenBSD that is already in Coccinella, before going on to add new things. There is an OpenBSD ports hackathon in end of October, where I probably with the help of others can get those things to work, and afterwards can concentrate to get other things done. So not the next, but in one of the following, there will be sth. done.

Revision history for this message
v_2e (v-2e) wrote :

I'm glad to hear the development process is going on. :)
If I understand the situation right, with IAX I still won't be able to contact people whose jabber-client uses ICE-UDP Transport Method (XEP-0176)? Does this have to be a separate feature or do I misunderstand something?

Thanks.
Vladimir.

Revision history for this message
buzzdee (sebastia) wrote :

Yes, its separate feature, and won't help you much for your specific situation.
I for myself have an Asterisk running, so I'm connected to it via Coccinella using the IAX Phone feature. Since my asterisk is connected to an upstream SIP provider, that allows me to make/receive free calls to other parties using SIP or even cheap calls into the "ordinary" land lines or cell phones. Don't know whether there are IAX providers available on the Net like SIP providers are, and setting up Asterisk to translate the IAX to SIP is also not a 5 minute job ;) So this may or may not a feature for you ;)

Revision history for this message
v_2e (v-2e) wrote :

It's a pity I am not a programmer and I do not know Tcl/Tk :)
By the way, isn't XEP-0167 related to this question? I mean, they say "The application type includes a straightforward mapping to Session Description Protocol (SDP) for interworking with SIP media endpoints." on the XMPP.org extensions web page. Couldn't this help connecting to SIP servers?
And also, what is needed to implement Jingle ICE-UDP Transport Method (XEP-0176) in Coccinella? I believe, there must be a lot of common code for using audio device, for example - regardless of the certain protocol being used. Am I right? If so, what should actually be added to the Coccinella code (and to what part of Coccinella code) to get it working with other XEP-0176-compliant jabber-clients?

Revision history for this message
buzzdee (sebastia) wrote :

> It's a pity I am not a programmer and I do not know Tcl/Tk :)
ah, come on, what an exculse ;) a year ago my Tcl/Tk knowledge was next to zero, and nearly the same regarding XMPP. I started to dig into the code, since I liked coccinella, but found it a little bit buggy, and I was missing some features. A lot of bugs are fixed since then, and even added a couple of smaller new features. But there is still a lot of stuff I'd like to have left.
XMPP is also further easy, you just need to read up the specs, and implement whats written there ;)
Regarding the audio device, for general audio in Coccinella, snack is responsible for audio. However, for the JingleIAX and IAX client itself, the iaxclient library brings its own audio device functions.
Coccinella depends on tcludp for the audio stuff anyways. I think that functionality should be enough to implement ICE-UDP. However, that would mean to implement the SIP functionality on top of it on our own.
I think it would probably be better/easier to use a existing SIP library, or this mentioned libjingle, and add tcl bindings to it. Unfortunately that libjingle is C++, sth. I don't really understand.
Also coccinella is using jabberlib. Jabberlib implements jingle already. There are probably only a few XMPP parts missing to implement the ICE-UDP, which should not be too hard to implement. Take a look in the jabberlib subdirectory of the coccinella code. Afterwards only a library implementing RTP and/or SIP is needed, preferably if that library has tcl bindings. If not, those could probably be added, I'm not sure if tcludp would be sufficient.
If you are serious, you may start searching the net for such libs, preferably written in C. (For me C++ is a mess and I always get headaches when I have to deal with it). Then provide an overview here, what could be used.

cheers,
Sebastian

Revision history for this message
v_2e (v-2e) wrote :

Hello!
Well, if you say that it isn't too hard to figure out how to program in tcl/tk and to implement XEPs, I'll try to do something in this direction. Unfortunately, I do not have much time to dig into Coccinella's sources and learn Tcl at the moment, so I will start reading the specs when I have some spare time.
Meanwhile, I have found a SIP library written in C. It is called Sofia-SIP. It is licensed under LGPL license.
Here is the website: http://sofia-sip.sourceforge.net/

Is this what you were talking about or am I wrong?

Regards,
Vladimir

buzzdee (sebastia)
Changed in coccinella:
milestone: none → 0.96.22
Revision history for this message
buzzdee (sebastia) wrote :

I'll need to read up the XEP's again, and check the source, what we have already, as I said, maybe we only need tcludp, or some rtp lib since I'm not sure we would really need a SIP library.

When you want to start, you may try sth. easy first, take a look at bug 504895, both XEPs mentioned there are not that complex.
The reason its not yet done is that it was not much high priority. This topic here, may be a bit too complex to start with, but I'll not want to stop you ;)

The web is full with tcl/tk documentation. After a while, I bought two books, where I can recommend: "Practical Programming in Tcl and Tk". This you also get in parts from the web.

If you get into trouble, or have questions, contact me privately. My E-Mail and XMPP id is the same. Take a look in the AUTHORS.txt file in the coccinella source.

cheers,
Sebastian

Revision history for this message
v_2e (v-2e) wrote :

  Hello!
  Maybe this information: http://mail.jabber.org/pipermail/jingle/2011-June/001640.html will be useful for the implementation of the functionality under the current discussion.

  Regards,
    Vladimir

Revision history for this message
buzzdee (sebastia) wrote :

see comment to bug https://bugs.launchpad.net/coccinella/+bug/141379

There, http://xmpp.org/extensions/xep-0167.html, jingle RTP Sessions will be implemented to get video communication to work. This can then also be used for audio communication.

Changed in coccinella:
assignee: Mats (matsben) → buzzdee (sebastia)
status: New → In Progress
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.