After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 569837 - Presence is not showing correct icon in Contact List
Presence is not showing correct icon in Contact List
Status: RESOLVED NOTGNOME
Product: ekiga
Classification: Applications
Component: Presence stack
3.0.x
Other All
: Normal normal
: ---
Assigned To: Ekiga maintainers
Ekiga maintainers
Depends on:
Blocks:
 
 
Reported: 2009-01-30 15:46 UTC by Michael Cronenworth
Modified: 2009-02-10 12:36 UTC
See Also:
GNOME target: ---
GNOME version: 2.23/2.24


Attachments
ekiga debug log (6.55 KB, application/x-compressed-tar)
2009-01-30 15:48 UTC, Michael Cronenworth
Details
screenshot proof (188.42 KB, image/jpeg)
2009-01-31 20:18 UTC, Michael Cronenworth
Details
debug patch (723 bytes, text/x-patch)
2009-01-31 20:59 UTC, Michael Cronenworth
Details
ekiga debug log with debug patch (6.60 KB, application/x-compressed-tar)
2009-01-31 21:00 UTC, Michael Cronenworth
Details

Description Michael Cronenworth 2009-01-30 15:46:09 UTC
Please describe the problem:
I only have three contacts, plus the Echo Test contact, but none of them show the correct Presence icon. I do not see a green icon, or gray icon. I see the little buddy icon.

I am running on Fedora 10 x86_64 with Ekiga 3.0.2 and OPAL 3.4.4. So are my contacts. I am behind a Fedora Linux server acting as a router. I have NAT working properly. I can successfully receive and send video and voice calls. So can my contacts.

The icon next to my contacts remains the "buddy" icon at ALL TIMES. I can make a video/voice call to either one of them and the icon state never changes. It never changes on my contacts side either.

Steps to reproduce:
1. Start Ekiga
2. "Buddy" icon next to all contact names including Echo Test.



Actual results:
"Buddy" icon is always displayed at all times.

Expected results:
Green icon or Gray icon to display presence state.

Does this happen every time?
Yes.

Other information:
I have been talking on the "ekiga-list" about this issue and no suggestions on a fix have been made. I will attach the debug log. The debug log was run when all my contacts were offline, but they did not have "grey" icons next to them. They were all the "buddy" type icons.
Comment 1 Michael Cronenworth 2009-01-30 15:48:17 UTC
Created attachment 127548 [details]
ekiga debug log

Debug log that was mentioned in my original report. This was taken when all my contacts were offline. I was seeing the "buddy" icon instead of "grey" icons for ALL contacts.
Comment 2 Damien Sandras 2009-01-31 15:06:00 UTC
I have tested here. Compiled OPAL, PTLIB, Ekiga 3.0.2 and I can not reproduce.

That 'limitation' was fixed from 3.0.1 to 3.0.2 with a fix both in Ekiga and in OPAL.

I'm sorry, but I think you do not run the correct versions.
Comment 3 Michael Cronenworth 2009-01-31 20:18:42 UTC
Created attachment 127651 [details]
screenshot proof

Damien, please do not close this again.

I'll provide you a screenshot.

Ekiga 3.0.2
OPAL 3.4.4
PTLIB 2.4.4

Here's the Fedora packages update page. These are real.

https://admin.fedoraproject.org/updates/F10/FEDORA-2009-0651

This is ridiculous I'm having to go this far to prove this to you. Just because /you/ cannot reproduce it doesn't mean it isn't happening. You obviously have never programmed for a commercial company before.
Comment 4 Damien Sandras 2009-01-31 20:33:28 UTC
I can't reproduce it, and nobody else in our team can.

But anyway, we'll debug it!

Please recompile Ekiga, and in method :
void
Opal::Sip::EndPoint::OnPresenceInfoReceived (const PString & user,
                                             const PString & basic,
                                             const PString & note)

Add at the end :

std::cout << _uri << " " << presence << " " << status << std::endl << std::flush;

Just before, when you see runtime.run_in_main, please add :
std::cout << "Signal emitted" << std::endl << std::flush;

I'm waiting for a new debug output.
Comment 5 Michael Cronenworth 2009-01-31 20:59:40 UTC
Created attachment 127655 [details]
debug patch

This is the patch I applied to add the code you requested. I want to make sure I added it in the correct location.
Comment 6 Michael Cronenworth 2009-01-31 21:00:40 UTC
Created attachment 127656 [details]
ekiga debug log with debug patch

This is the debug log (-d 4) from running the patched Ekiga.
Comment 7 Damien Sandras 2009-01-31 21:04:03 UTC
It seems the method is not called. Can you confirm ?
Comment 8 Michael Cronenworth 2009-01-31 21:16:04 UTC
Yes, I diff'd and grep'd the output and found no additional text. I verified the patch was applied to the correct source file and was compiled in.

$ strings /usr/bin/ekiga | grep "Signal emitted"
Signal emitted

I'm not at all familiar with Ekiga's code, but I am a competent programmer in multiple languages. I'm ready to do whatever additional gdb'ing or whatever that needs to be done next. May I suggest that I look at where Ekiga should have called that method and find out why it wasn't called? (point me where that might be)

Thanks.
Comment 9 Damien Sandras 2009-01-31 21:26:09 UTC
That would be nice... It is extremely rare to see people reporting bugs and being able to follow up on them!

This method should be called from OPAL, in src/sip/handlers.cxx, in method
OnReceivedPresenceNOTIFY(....) :

  if (!xmlPresence.Load(body)) {
    endpoint.OnPresenceInfoReceived (from.AsQuotedString(), basic, note);
    return PFalse;
  }

If we can not load the XML, we call OnPresenceInfoReceived in the endpoint.

I do not see why it would not be called, except if OPAL_PTLIB_EXPAT is not defined, which would be a huge bug in the pack.
Comment 10 Michael Cronenworth 2009-01-31 21:51:17 UTC
I noticed something interesting when I was attempting to rebuild OPAL from the Fedora source RPM. In the OPAL config.log:

conftest.cpp: In function 'int main()':
conftest.cpp:8: error: 'PXMLParser' was not declared in this scope
conftest.cpp:8: error: expected `;' before 'parser'
configure:5649: $? = 1
configure: failed program was:
|
|                           #include <ptbuildopts.h>
|                           #include <ptlib.h>
|                           #include <ptclib/pxml.h>
|
|                           int main()
|                           {
|                             PXMLParser parser;
|                           }
|
configure:5670: checking PTLIB has expat
configure:5672: result: no

I had the ptlib-devel and the expat-devel package installed. I rebuilt ptlib and it found expat just fine.

Is this something to be concerned about?
Comment 11 Damien Sandras 2009-01-31 22:01:01 UTC
Perhaps it means that the PTLIB RPM provided by Fedora is not built with EXPAT. It would mean presence can not work at all... Weird because I think I remember it was working for you except for offline contacts.

Well, just recompile and see...
Comment 12 Michael Cronenworth 2009-01-31 22:15:04 UTC
Success! Rebuilding ptlib and opal with --enable-expat has fixed it. Perhaps it was accidentally thought that that option was by default enabled.

I've created Red Hat bug 483411. Thanks Damien. I'll let you close this.
Comment 13 Damien Sandras 2009-02-01 19:04:36 UTC
Ah good, you see there was no bug :P

Thanks for working on this!
Comment 14 Eugen Dedu 2009-02-01 19:16:16 UTC
In debian packaging there is no --enable-expat (http://experimental.debian.net/fetch.php?&pkg=ptlib&ver=2.4.2-3&arch=amd64&stamp=1229087820&file=log&as=raw), still it works.  --enable-expat is on by default.  There must be another thing which disables expat on Fedora.
Comment 15 Peter Robinson 2009-02-10 12:36:00 UTC
This has been fixed in Fedora 10 as of the following releases:
ekiga-3.0.2-2.fc10
opal-3.4.4-4.fc10
ptlib-2.4.4-2.fc10