Welcome!

Welcome to the official BlackBerry Support Community Forums.

This is your resource to discuss support topics with your peers, and learn from each other.

inside custom component

Java Development

Reply
New Developer
New Developer
Posts: 30
Registered: ‎07-02-2009
My Device: Not Specified

xmpp over BIS?

hi there,

 

i am doing an IT consulting project for a mid-size corporation.  they use an internal jabber server with trillian on desktop and now the company wants to provide jabber chat on all of their blackberries also.

 

the problem is that we have ran into an interesting issue.  when doing jabber over TCP, everything works fine, but when doing jabber over BIS, the client can't even finish the xml handshake (according to the jabber daemon logs on the server).  it almost looks like BIS servers are blocking jabber traffic.  could that really be the case?

 

thanks...

Developer
Posts: 1,415
Registered: ‎07-30-2008
My Device: Not Specified

Re: xmpp over BIS?

As a paid consultant, surely you can translate this issue into packets or exceptions- what are you getting back and why does

your app choke? Note that these servers can  do some transforms. In particular, I had a problem with some cookie code that never previously saw multiple cookies on one header. In wirelss of course every byte counts. Also talk to RIM if you can 

get specific test cases. 

New Developer
New Developer
Posts: 30
Registered: ‎07-02-2009
My Device: Not Specified

Re: xmpp over BIS?

[ Edited ]

marchywka wrote:

As a paid consultant, surely you can translate this issue into packets or exceptions- what are you getting back and why does

your app choke?


surely i can, i was running tcpdump for hours last night pulling my hair out without any luck. 

 

here is the handshake when on TCP:

 

I: (#Port<0.14090>) Accepted connection {{97,154,12,12},29241} -> {{70,12,12,12},5222}

 

D: Received XML on stream = "<stream:stream to=\"xmpp.company.net\" xmlns=\"jabber:client\" xmlns:stream=\"http://etherx.jabber.org/streams\">"

 

D: Send XML on stream = "<?xml version='1.0'?><stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' id='2078124109' from='xmpp.company.net' xml:lang='en'>"

 

D: Received XML on stream = "<iq id='id_0' type='set'><query xmlns='jabber:iq:auth'><username>brian</username><resource>jabber</resource><password>test</password></query></iq>"

 

 

 

and after that it is smooth sailing. 

 

when it comes to BIS, the server sends XML stream but never hears back with the iq packet because the very first xml line we send to the app doesn't arrive on the device:

 

I: (#Port<0.14102>) Accepted connection {{206,53,157,23},57821} -> {{70,12,12,12},5222}

 

D: Received XML on stream = "<stream:stream to=\"xmpp.company.net\" xmlns=\"jabber:client\" xmlns:stream=\"http://etherx.jabber.org/streams\">"

 

D: Send XML on stream = "<?xml version='1.0'?><stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' id='931153785' from='xmpp.company.net' xml:lang='en'>"

 

 

and connection just hangs at this point.

 

any suggestions?  i even tried running jabber server on port 8080 and it still didn't work.

Message Edited by jkb on 08-22-2009 06:38 PM
Developer
Posts: 1,415
Registered: ‎07-30-2008
My Device: Not Specified

Re: xmpp over BIS?

Have you ever used non port-80 on BIS? I've always blamed carriers in the past with this but if it

works with a direct connection presumably it wouldn't be the carriers. What I've seen is generally

transformations in headers and transcoding with http. There could be some buffering issues etc- I think 

I've seen people complain about unexpected behaviour if a given target server is down ( the RIM

server connects to the phone and the phone never figures out if didn't get to intended server or

something like that) but I doubt that would be port dependent. With http, the things I've seen suggest

it needs to get large chunks of responses before forwarding depending on what you want it to do.

New Developer
New Developer
Posts: 30
Registered: ‎07-02-2009
My Device: Not Specified

Re: xmpp over BIS?


marchywka wrote:

Have you ever used non port-80 on BIS? I've always blamed carriers in the past with this but if it

works with a direct connection presumably it wouldn't be the carriers. What I've seen is generally

transformations in headers and transcoding with http. There could be some buffering issues etc- I think 

I've seen people complain about unexpected behaviour if a given target server is down ( the RIM

server connects to the phone and the phone never figures out if didn't get to intended server or

something like that) but I doubt that would be port dependent. With http, the things I've seen suggest

it needs to get large chunks of responses before forwarding depending on what you want it to do.


 

yes, we are using port 443 (SSL) on BIS just fine.  i am not sure why there would be anything done to the xmpp headers by BIS since this is not http traffic.

Developer
Posts: 1,474
Registered: ‎04-14-2009
My Device: Not Specified

Re: xmpp over BIS?

Have you tried tunnelling this connection/traffic over SSL over BIS? At least with SSL you'll be fairly certain that nobody's inspecting or modifying your plaintext traffic.