[Telepathy] SIP for Croatian Vipnet network
Senko Rasic
senko at senko.net
Wed Jan 14 12:36:46 PST 2009
Hi,
Ivan Vučica wrote:
> This is what I need to set up in Ekiga for the thing to work:
I've tried connecting to VIP using Ekiga 2.0.12 using
these directions and failed, and found a page by one
VIPNet user saying that Ekiga 3.x is required (which I couldn't
install for some reason and check this).
It might be instructive to capture network traffic (e.g.
using Wireshark) with Ekiga2 and Ekiga3 usage and see what
gets transmitted differently.
> Currently I am unable to set up outbound proxy in Empathy. Same thing
> for either User+Registrar or AuthenticationUser+Password. Is this a bug
> in Telepathy, or should I bug the Empathy guys? :)
The UI in Empathy doesn't let you specify all optional params for SIP
(Empathy devs can comment whether that's intentional feature or a bug),
but you can set/change a lot more options by using commandline
tool mc-account.
The SIP protocol is handled by telepathy-sofiasip connection manager.
To see which params can be set, look at its .manager file
(e.g. /usr/share/telepathy/managers/sofiasip.manager on ubuntu).
(the 's/b/q/i' characters on the right side of '=' signify param
type: string, boolean, unsigned int, or signed int, respectively)).
After you set up the account in Empathy, look it up using:
mc-account list
mc-account show <account> (e.g. sofiasip0)
You can change param with:
mc-account set <account> <param-type>:<param-name>=<value>
e.g. for registrar:
mc-account set sofiasip string:registrar=ims.vip.hr
Using these I tried blindly setting up a few params (registrar,
proxy, extra auth user/pass), but still got Forbidden from VIP,
so it's possible that I couldn't get the combination right,
or that indeed telepathy-sofiasip itself doesn't support some
feature required to work with VIP. Network traffic dump could
help us find out which.
Btw to enable Telepathy debugging for SIP:
0. be sure you're offline
1. set env params (example using bash):
export SOFIASIP_DEBUG=all
export SOFIASIP_PERSIST=1
export TPORT_LOG=2 (more verbose debugging of SIP stack)
2. tell Empathy to go online
> From what I understand, using Telepathy I should be able to "plug in"
> to existing connections created using Empathy. I have absolutely zero
> experience with DBus and Telepathy, but I would love to implement it
> into a MMORPG client I'm working on ( http://yetanother.tibiaclient.com/ ).
> Are there any helpful, simple but complete C examples? Python example on
> the wiki doesn't exactly show how to receive or send messages. A simple
> printf()+scanf() based example would be of great help. Googling didn't
> help exactly.
> Any such example out there?
Your best bet is using telepathy-glib, which is our C library wrapping
the Telepathy interfaces in a nice GObject-y way (it's used for both
services and clients). The API reference is fairly documented though
intro/tutorial is lacking, but you can look at the bundled examples and
test suite to get a feel of it.
One part that telepathy-glib doesn't cover at the moment is actually
figuring out which accounts are online (and getting the connections),
because current mission-control implements an outdated API version,
which isn't supported by telepathy-glib. The new mission-control v5
is under development, but it's not ready for use yet.
But for this you can use libempathy - a core part of Empathy client
which presents somewhat higher-level API than telepathy-glib, and
more importantly (in this case), works with current mission-control.
So you can use libempathy API (and even libempathy-gtk widgets,
if you're writing GTK+ app) to enumerate/select accounts and get
the connections, and pass that on to telepathy-glib.
There's a few examples in:
http://people.collabora.co.uk/~robot101/telepathy-guadec-2008-senko.pdf
(also check out other presentations from
http://telepathy.freedesktop.org/wiki/Presentations page) that might
help you get started.
Regards,
Senko
--
Senko Rasic at Collabora <senko.rasic at collabora.co.uk>
More information about the Telepathy
mailing list