Hi,

On 26 Aug 2010, Agostino De Matteis wrote:
>I don't know if this could help, but it worked for me :-)

thanks for helping out with these. I don't think the fixes are yet
in mergeable state (more below), but I'm not yet quite sure either 
what the real fixes would be... ;)

Let's take a closer look:

>This could be a first problem, you didn't define a STUN server, however
>it tries to use it.

That's done on purpose. The intent is that if your service provider
(running your home domain) has a STUN server, that will be used
automatically. So one would only need to specificy a STUN server
address explicitly in the case where a non-default server should
be used (in normal case you'd just pass your SIP address and password
and that's it).

Of course in real-life, service providers do not deploy STUN in
this fashion and one often/always needs to specify a separate
STUN server.

>I fixed it in ssc_sip.c changing the code to:
>
>if (res_impl) {
>  g_object_set(G_OBJECT(res_impl), "stun-server", conf->ssc_stun_server,
>NULL);
>  if(conf->ssc_stun_server){
>   g_object_set(G_OBJECT(res_impl), "stun-domain", userdomain, NULL);
>  } else {
>   g_object_set(G_OBJECT(res_impl), "stun-domain", NULL, NULL);
>  }
>}

So this is basicly not quite the real fix yet, but I agree that it might
be useful to have a option to completely disable STUN in case it
causes trouble. Currently there's no such option (as you've described).
Patches are welcome!

>In the file ssc_media_gst_utils.c the function
>ssc_media_create_audio_sink near line 205 checks only if the string alsa
>is in the longname, so for it AlsaSPDIFSink and AlsaSink are the same:
>
>if(strstr(klass_tags, "Sink") && strstr(klass_tags, "Audio") &&
>    strstr(gst_element_factory_get_longname(factory), type)){
>   res = gst_element_factory_create(factory, "audiosink");
>   break;
>}
>
>I fixed it in a quick and dirty way like this (I'll have to think for a
>better way though :-)):

Ouch, this is a bit nasty. The sofsip-cli gstreamer implementation is 
supposed to be really scaled down so it serves as an example, but issues 
like these do not really help the serving-as-an-example-business. I wonder 
if the easiest solution is to have the user specify gstreamer sink and 
source (for audio play/record) explicitly. So you could use ALSA sinks, 
Pulseaudio, or something else on other platforms...

Trying to be clever about these can get really hairy (I mean it's not 
impossible that someone wants the VoIP downlink over SPDIF), and
certainly a job for more complete implementations (see farsight2 and
telepathy-farsight for reference how this really should be done with 
gstreamer).

If someone has the energy/time, it would be interesting to add
a simple farsight2 backend to sofsip-cli. The APIs have now stabilized 
and as Empathy is used quite widely, many people will anyways have 
farsight2 already installed on their machines.

Br,
-- 
Kai Vehmanen


------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
Sofia-sip-devel mailing list
Sofia-sip-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sofia-sip-devel

Reply via email to