Opened at 2006-01-19T22:37:29Z
Closed at 2012-03-25T23:24:40Z
#88 closed defect (fixed)
Mobile AIM client messages don't show up on IRC.
Reported by: | anonymous | Owned by: | Jelmer Vernooij |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | OSCAR | Version: | 0.92 |
Keywords: | AIM | Cc: | |
IRC client+version: | Client-independent | Operating System: | FreeBSD |
OS version/distro: |
Description
Messages sent from Mobile AIM clients will be processed incorrectly by BitlBee and show up simply as NUL on IRC.
Jelmer has a trace.
Attachments (0)
Change History (22)
comment:1 Changed at 2006-01-25T16:17:49Z by
comment:2 Changed at 2006-02-28T21:09:00Z by
Messages from mobile phone users show up as "(null)" for me.
comment:4 Changed at 2006-06-20T05:20:50Z by
I also noticed that people who are logged in via mobile devices do not show up on your buddy list.
I eventually figured out that this is because of the client version/type BitlBee is sending. I guess they didn't support any sort of mobile features. I grabbed the 'signature' for AIM 5.1 in the GAIM source and put it into BitlBee (protocols/oscar/aim.h) and now I see mobile users.
Note: I have no idea what this might break; but I don't use many 'advanced' features. All I really care about is receiving IMs when I'm 'in transit' and having a way to see them later. YMMV.
comment:5 Changed at 2006-09-04T20:05:54Z by
Just for the convenience of everyone else, here's the diff that needs to be applied. It's straight from the Gaim source as noted by the anonymous poster above. Whoever you are, thanks a bunch.
--- a/bitlbee-1.0.3/protocols/oscar/aim.h 2006-06-24 07:00:44.000000000 -0700 +++ b/bitlbee-1.0.3/protocols/oscar/aim.h 2006-09-04 06:20:24.000000000 -0700 @@ -143,6 +143,17 @@ "en", \ } +#define AIM_CLIENTINFO_KNOWNGOOD_5_1_3036 { \ + "AOL Instant Messenger, version 5.1.3036/WIN32", \ + 0x0109, \ + 0x0005, \ + 0x0001, \ + 0x0000, \ + 0x0bdc, \ + "us", \ + "en", \ +} + /* * I would make 4.1.2010 the default, but they seem to have found * an alternate way of breaking that one. @@ -151,7 +162,7 @@ * memory test, which may require you to have a WinAIM binary laying * around. (see login.c::memrequest()) */ -#define AIM_CLIENTINFO_KNOWNGOOD AIM_CLIENTINFO_KNOWNGOOD_3_5_1670 +#define AIM_CLIENTINFO_KNOWNGOOD AIM_CLIENTINFO_KNOWNGOOD_5_1_3036 #ifndef TRUE #define TRUE 1
comment:6 Changed at 2006-10-22T13:56:01Z by
Component: | BitlBee → OSCAR |
---|
comment:7 follow-up: 8 Changed at 2007-08-09T21:56:44Z by
+1 on this one (messages from mobile devices showing up as '(null)')... i'd be happy to help grab a trace, if someone can tell me how. i can reproduce quite reliably...
comment:8 Changed at 2007-08-10T23:02:27Z by
Replying to anonymous:
+1 on this one (messages from mobile devices showing up as '(null)')... i'd be happy to help grab a trace, if someone can tell me how. i can reproduce quite reliably...
ok, i haxxed it myself, although i'm sure this is not really a robust patch... if anybody is desperate to stop the (null)s , try this patch against bitlbee-1.1dev:
--- bitlbee-1.1dev/protocols/oscar/oscar.c Sat Oct 21 15:54:53 2006 +++ bitlbee-1.1dev-HAX/protocols/oscar/oscar.c Fri Aug 10 17:52:07 2007 @@ -1093,8 +1093,17 @@ } else { g_snprintf(tmp, BUF_LONG, "%s", args->msg); } - } else + } else { g_snprintf(tmp, BUF_LONG, "%s", args->msg); + + // hack to fix messages from mobile im... at least try to be + // safe enough to check that there's at least one message part to + // dereference... what's in there, though, is anybody's guess... + if (args->msg == NULL && args->mpmsg.numparts > 0) { + g_snprintf(tmp, BUF_LONG, "%s", args->mpmsg.parts[0].data); + } + } + strip_linefeed(tmp); serv_got_im(gc, userinfo->sn, tmp, flags, time(NULL), -1);
comment:9 follow-ups: 10 11 Changed at 2007-10-10T22:35:49Z by
Okay, can someone else who tried this patch post his findings here? People keep asking on IRC if this patch works and I keep asking them to try it out for me because I don't use AIM but NOBODY ever came back to me.
No news is good news? If you care about AIM and fixing this bug please just give some feedback...
comment:10 Changed at 2007-10-14T16:12:34Z by
Replying to wilmer:
Okay, can someone else who tried this patch post his findings here? People keep asking on IRC if this patch works and I keep asking them to try it out for me because I don't use AIM but NOBODY ever came back to me.
No news is good news? If you care about AIM and fixing this bug please just give some feedback...
I just tried it on 1.0.4 and when I logged on via SMS it did show me as online on bitlbee. I tried sending a message on bitlbee to myself - it did get sent to my phone. I then tried doing a reply on my phone and it did show up in bitlbee successfully. I haven't done enough testing to know what it might end up breaking (eg if somebody tries to use extra features added in the versions between 3.5.1670 and 5.1.3036)
comment:11 Changed at 2007-10-27T16:48:23Z by
Replying to wilmer:
No news is good news? If you care about AIM and fixing this bug please just give some feedback...
I just ran into this bug when a friend who works for RIM/Blackberry updated his phone's AIM software. I could send to his phone; his phone would send (null) to bitlbee.
I tried the patch to 1.0.3 (the version used by Debian and Ubuntu) and it works perfectly. Thanks very much for the fix.
comment:12 Changed at 2007-11-04T23:16:04Z by
I've confirmed the problem and solution on bitlbee versions 1.1dev on Gentoo and 1.0.4 on OpenBSD3.9. The patch mentioned above by anonymous was not very ebuild-friendly (I think it's just the date format in the headers), but this slightly modified patch does work in an ebuild and through OpenBSD's ports system:
--- protocols/oscar/oscar.c.orig 2007-11-02 16:17:46.000000000 -0400 +++ protocols/oscar/oscar.c 2007-11-02 16:18:36.000000000 -0400 @@ -1093,8 +1093,13 @@ } else { g_snprintf(tmp, BUF_LONG, "%s", args->msg); } - } else + } else { g_snprintf(tmp, BUF_LONG, "%s", args->msg); + if (args->msg == NULL && args->mpmsg.numparts > 0) { + g_snprintf(tmp, BUF_LONG, "%s", args->mpmsg.parts[0].data); + } + } + strip_linefeed(tmp); serv_got_im(gc, userinfo->sn, tmp, flags, time(NULL), -1);
I would like to see this bug fixed, since several of my friends use AIM only from cell phone. I will post my findings to the relevant Gentoo bug as well.
comment:13 Changed at 2007-11-10T09:28:51Z by
Resolution: | → fixed |
---|---|
Status: | new → closed |
Okay, that one's fixed in a slightly modified form (one that uses more than just the first part, please tell me if this is a bad idea). See the current devel tree, r259.
comment:14 Changed at 2007-11-10T09:29:30Z by
[,259], that is. Trac-bzr comes up with strange revision numbers...
comment:15 Changed at 2008-07-16T20:44:55Z by
Resolution: | fixed |
---|---|
Status: | closed → reopened |
Okay, I just installed 1.2.1 and still had this problem. I was able to fix it by applying the patch above (which adds the newer client identifier, comment #5) and now it works fine. SMS buddies are listed as online, and I can send and receive IMs to SMS numbers with no problem.
I don't know what affect this might have on other things elsewhere (such as if another "feature" of that newer client is tried against bitlbee, it might cause some problem) but the SMS issue is definitely not fixed without that patch.
comment:16 Changed at 2009-04-17T17:10:22Z by
Version 1.2.3 - only had to apply patch to CLIENTINFO as mentioned in a previous comment. Other patches to oscar.c were not required, but until aim.h was changed mobile clients weren't showing up.
comment:17 Changed at 2009-06-17T08:18:54Z by
Just tested on testing.bitlbee.org, still broken. Output of attempt to add buddy below:
01:12:34 @wraithan | add 0 +1XXX9574757 MyPhone2 01:12:34 @root | Adding `+1XXX9574757' to your contact list 01:12:34 @root | oscar - Error: Error while adding buddy: 0x000a
Area Code changed to XXX to protect my phone number.
Attempt to message via the nickname for the contact already in my buddy list (same phone number):
01:15:17 @root | oscar - Error: Your message to +1XXX9574757 did not get sent: Not logged in
comment:18 Changed at 2009-06-17T23:36:46Z by
So apparently I never picked up the first patch posted here because I wasn't sure about its side effects.
I'm still not, but if I never try it, how to find out if it's good? :-)
Applied in changeset:devel,464.
comment:19 Changed at 2009-06-18T03:06:53Z by
Running testing.bitlbee.org now, everything is working fine, going to continue using it for a couple days to make sure there isn't any side effects to the this patch.
comment:21 Changed at 2010-05-12T04:36:31Z by
I was successfully using this on testing.bitlbee.org up until recently, and I now I see it's no longer working. Also tested on my local server with bitlbee stable and bitlbee-bzr. I can add contacts and see mobile numbers on my blist, but sending messages to them has no effect.
Thanks, Scott
comment:22 Changed at 2012-03-25T23:24:40Z by
Resolution: | → fixed |
---|---|
Status: | reopened → closed |
Mobile messages seem to work and texting doesn't.
I believe this is the same problem I'm having. Bitlbee doesn't support SMS (test messaging) via AIM.
AIM supports text messaging through special screennames -- those starting with a + and followed by the digits of the phone number (including country code). An example screen name would be
+12125551212
.Through other clients (AOL Instant Messenger, Trillian, GAIM), I can send a message to a screename like this, and the user will receive a SMS (text message) on his phone from me. He can then reply, and I'll recive an IM from him.
This function doesn't work through Bitlbee, in either direction. Outbound, the sequence is:
Inbound, if I SMS (text) a message to myself on AIM, I get a SMS back with: