Menu

#278 488 error after libnice upgrade

OBSOLETE_(1.18.x)
closed-fixed
None
Protocol/Other
5
2016-04-23
2015-02-10
No

I'm not sure, what's the right project to describe this problem. Recently I ran an upgrade on Arch Linux that updated libnice (0.1.7-1 -> 0.1.10-1). It's a dependency of farstream-0.1 (0.1.2-4) which is a depency of libpurple (2.10.11-1) which is a dependency of pidgin-sipe (1.18.5-1). After the upgrade pidgin-sipe fails to join to conferences and fails with the following error message:

Error occured
Unable to establish a call
488 Not Acceptable Here
Error parsing SDP

After downgrading libnice back to version 0.1.7-1 audio started to work again.

Related

Bugs: #279
Release Notes: 2015/04/pidgin-sipe-release-1191

Discussion

1 2 > >> (Page 1 of 2)
  • Stefan Becker

    Stefan Becker - 2015-02-10

    IMHO the first thing you should check if you also need to install the libnice gstreamer support. Other distributions have factored out the gstreamer support into own package, e.g. on Fedora:

    $ rpm -qi libnice-gstreamer
    Name        : libnice-gstreamer
    Version     : 0.1.7
    Release     : 1.fc21
    ...
    Summary     : GStreamer plugin for libnice
    Description :
    The libnice-gstreamer package contains a gstreamer 0.10 plugin for libnice.
    
    $ rpm -ql libnice-gstreamer
    /usr/lib64/gstreamer-0.10/libgstnice010.so
    

    Without it you will not be able to make any V&V calls. https://www.archlinux.org/packages/extra/x86_64/libnice/files/ shows that the file seems to be included.

    Anyway if you want any fix for this, we need a --debug log from a call before and after the upgrade. Otherwise I will close this as NOTABUG.

     
  • Stefan Becker

    Stefan Becker - 2015-02-10

    Please also check that the nice gstreamer plugin works after the upgrade:

    $ gst-inspect-0.10 nice
    Plugin Details:
      Name:                 nice
      Description:          Interactive UDP connectivity establishment
      Filename:             /usr/lib64/gstreamer-0.10/libgstnice010.so
      Version:              0.1.7
      License:              LGPL
      Source module:        libnice
      Binary package:       libnice
      Origin URL:           http://telepathy.freedesktop.org/wiki/
    
      nicesrc: ICE source
      nicesink: ICE sink
    ...
    
     
  • Timo Saarinen

    Timo Saarinen - 2015-02-10

    I have the logs now. Do you want them as copy/pasted here or should I send them in a private message or email?

    I can't see any libnice-gstreamer package in Arch Linux. Instead libnice has an optional dep to gstreamer, which is installed in the system.

     
  • Stefan Becker

    Stefan Becker - 2015-02-10
    • assigned_to: Jakub Adam
     
  • Stefan Becker

    Stefan Becker - 2015-02-10

    Please attach them here, because Jakub will need them.

    Did you check the gst-inspect command?

     
  • Timo Saarinen

    Timo Saarinen - 2015-02-10
    $ gst-inspect-0.10 nice
    Plugin Details:
      Name:         nice
      Description:      Interactive UDP connectivity establishment
      Filename:     /usr/lib/gstreamer-0.10/libgstnice010.so
      Version:      0.1.10
      License:      LGPL
      Source module:    libnice
      Binary package:   libnice
      Origin URL:       http://telepathy.freedesktop.org/wiki/
    
      nicesink: ICE sink
      nicesrc: ICE source
    
      2 features:
      +-- 2 elements
    
     
  • Stefan Becker

    Stefan Becker - 2015-02-10

    Looking at the log I see more backend-fs2: got new candidate ... messages with the new libnice, leading to a much longer a=candidate ... list in the INVITE SDP message. That SDP message is then rejected by the other site as not acceptable.

    I see some candidates with port 0, not sure if that is the cause of the rejection.

    @Timo: did you try to update to SIPE 1.19.0? It has some changes for libnice, but I'm not sure if they will any affect on your problem.

     
  • Stefan Becker

    Stefan Becker - 2015-02-11

    @Timo: Arch Linux now has SIPE 1.19.0. Please update and retry with the newer libnice.

     
  • Timo Saarinen

    Timo Saarinen - 2015-02-11

    Unfortunately pidgin-sipe 1.19.0-1 doesn't help with the problem.

     
    • Stefan Becker

      Stefan Becker - 2015-02-11

      --debug log please. git commit 7d7db58, included in 1.19.0 should have addressed the port 0 issues.

       
  • Timo Saarinen

    Timo Saarinen - 2015-02-11

    Here you are.

     
    • Stefan Becker

      Stefan Becker - 2015-02-11

      Looks like the port 0 handling does not work in all cases, I still see them in the SDP message from the latest log. Jakub?

       
    • Stefan Becker

      Stefan Becker - 2015-02-11

      BTW: the part with the version information is missing from the log. Can you please include that, so that we can be sure that you are really using SIPE 1.19.0?

       
  • Timo Saarinen

    Timo Saarinen - 2015-02-11

    Yes, it's 1.19.0.

     
  • Jakub Adam

    Jakub Adam - 2015-02-11

    I think this is an incompatibility between libnice 0.1.10 and Farstream 0.1.2.

    Since 0.1.10, libnice always generates TCP candidates and it's a responsibility of the application to filter out those candidates it doesn't want to use. However, Farstream 0.1.2 supports only UDP and thus wrongly reports the new candidates as being UDP though in fact they are TCP.

    Because zero port handling in SIPE looks only at TCP candidates, it lefts your (UDP-only) candidate list untouched.

    This issue is solved in Farstream 0.2.7, but updating the Arch package to that version wouldn't be a solution since 0.2.x branch requires GStreamer 1.0 which in turn is unsupported by libpurple 2.x. Farstream 0.1.x development was already abandoned so we can't expect any update there.

    I'm working on a patch for SIPE that tries to filter out the incorrectly identified TCP candidates and will post it likely tomorrow.

     
  • Timo Saarinen

    Timo Saarinen - 2015-02-12

    Thanks for information, Jakub. I also informed Arch libpurple packager about farstream versions. Maybe it's be time to update libpurple dependency to farstream.

     
    • Stefan Becker

      Stefan Becker - 2015-02-12

      No, you can't update libpurple-2.x to farstream-0.2.x, because it is as dead as farstream-0.1.x :-)

      libpurple-3.x moves to gstreamer-1.0 and farstream-0.2.x. Nobody knows when Pidgin 3.x will be released, though...

       
  • Jakub Adam

    Jakub Adam - 2015-02-12

    I've created a patch that tries to remove all those wrongly identified candidates.

    Please fetch and try SIPE from my farstream-tcp-fix branch (current mob + the fix) and tell me whether it helps. If everything is okay, I'll push the commit upstream.

     
  • Stefan Becker

    Stefan Becker - 2015-02-13

    While trying to understand the patch and make sure it doesn't leak, I came up with this simplification and fixed some minor things that I noticed were missing.

     
    • Jakub Adam

      Jakub Adam - 2015-02-13

      Thanks Stefan, looks good and much cleaner. I had to extend it a bit though, because I noticed that for candidates other than host we have to check also base ports: 7ac05327.

      Now let's give Timo chance to try it out.

       
  • Stefan Becker

    Stefan Becker - 2015-02-17

    That won't work, because it is not a release package. You need to run ./git-build.sh and the plugin will be src/purple/.libs/libsipe.so. If you still want to create the tarball for the PKGBUILD, then use make dist-bzip2.

     
    • Timo Saarinen

      Timo Saarinen - 2015-02-17

      I made the PKGBUILD use git-build.sh instead of configure stuff. The pakcage was created and installed, but when I start Pidgin, the status combobox and buddy list are empty. There are also no option to join to a meeting.

       
  • Stefan Becker

    Stefan Becker - 2015-02-17

    Then the plugin binary libsipe.so can't be loaded by libpurple. You will see an error message in the --debug log that libsipe.so failed to load, maybe with a reason.

     
1 2 > >> (Page 1 of 2)

Log in to post a comment.