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
Developer
Posts: 71
Registered: ‎03-10-2009
My Device: Not Specified

Operator dependent connection problems

Hi,

 

 

I seem to have operator dependent connection (HttpConnection) problems on two distinct applications with two distinct operators. I browsed the forums and the web, read the KB articles that usually turn up in the responses (the "Network Diagnostic Tool" and the "Differen ways to make HTTP Connection..." ones), but I still don't get it.

 

I have created a pretty simple connection tester that just tries to fetch some data over HTTP both using a domain name and an IP address in the URL. It tries both with and without deviceside=true. Now my current problem is that I have a customer in Canada using a 3G Bold. His operator is Rogers. My test application, if run by him failes with an IOExeption and the message is "Tunnel failed". This is for both deviceside=true and also without. As he downloaded the app from my server with his BB browser he must have MDS connection set up (which is the default when omitting the deviceside parameter). He also has e-mail and gtalk working on his phone. The test app is a MIDlet and is not signed. However the 'real' app that I was tring to debug and which is alsonot able to establish a connection is a signed 'native' (.cod format) blackberry app.

 

What could the problem be?

 

Actually I suspect that it's some operator trickery, and this possibility is not mentioned in any of the above KB article, because I had similar problems with a French client (i.e. in a totally different network). In that case we found that other apps were also failing, yet he was able to make a connection using the built-in browser (that's how the app was installed). Also we found an application called viigo (from viigo.com) that did actually work. My guess is that they have signed up with RIM for BIS, but I'm of course not sure.

 

In that case if my app tried to create a network connection with deviceside=true then we got a 'firewall' warning saying that the app "tried to create a connectionboth inside and outside the firewall". (Which was actually not the case, it justtried to create a single connection...) Without deviceside=true we've got "Failed to transmit" as the detail message for the IOException. This device was a 8100, thismay be the cause of the difference between the error messages, but may be not. In this case  the operator admitted that they had 'firewalled' clients (even though it's not a firewall at all) and resetting the device (which causes the loss of all data) removed the restriction. This is OK for testing purposes but it's clearly not acceptable for our product. The operator also said something like we have to have the application accepted either by RIM or by them, which is pretty strange and clearly is a no-go (at least the operator).

 

As far as I can see the two cases are related, but I don't know how I, from the application, can initiate a connection without having to intruct the user to do weird things to their phones. Can anybody advise me on these?

 

Thanks,

Laszlo

 

Highlighted
BlackBerry Development Advisor
Posts: 15,784
Registered: ‎07-09-2008
My Device: BlackBerry PRIV
My Carrier: Bell

Re: Operator dependent connection problems

These sound like unrelated exceptions.  The failed to open tunnel exception indicates that the application was unable to connect using the selected route (direct TCP).  This could be caused by missing direct TCP APN information, which the user can enter by going to Options, Advanced Options, TCP or could be specified by your application (see next link).  If the correct APN has been populated this could indicate that the user does not have access to connect through the specified APN. They can contact their carrier to confirm this.

 

How To - Specify APN information for a direct TCP connection 
Article Number: DB-00532

http://www.blackberry.com/knowledgecenterpublic/livelink.exe/fetch/2000/348583/800451/800563/How_To_...

 

Note that there are 3 different browsers available on a BlackBerry handheld that each use different routes.  The BlackBerry Browser uses a BlackBerry Enterprise Server, the Internet Browser uses the BlackBerry Internet Service and the WAP Browser uses the carrier's WAP Gateway.  You can determine their default browser by going to Options, Advanced Options, Browser.

 

The second exception is discussed here:

 

Support - The application has attempted to open a connection to a location inside the firewall and outside the firewall.
Article Number: DB-00104

http://www.blackberry.com/knowledgecenterpublic/livelink.exe/fetch/2000/348583/800451/800563/Support...

 

The failed to transmit exception could indicate a network issue or an issue with their BlackBerry Enterprise Server account (when using deviceside=false).  Is this user able to connect using the BlackBerry Browser?

 

I recommend watching the following video for an overview on the various connection routes available on a BlackBerry handheld.

 

http://www.blackberry.com/DevMediaLibrary/view.do?name=NetworkingTransports

Mark Sohm
BlackBerry Development Advisor

Please refrain from posting new questions in solved threads.
Problem solved? Click the Accept As Solution button.
Found a bug? Report it using Issue Tracker
Developer
Posts: 71
Registered: ‎03-10-2009
My Device: Not Specified

Re: Operator dependent connection problems

Mark,

 

Thanks for responding. This is actually an accidental duplicate post, but the original one got nowhere: the discussion ended up with a suggestion to subscribe to the Alliance program and use BIS-B, but I found that the price is quite steep...

 


MSohm wrote:

These sound like unrelated exceptionsThe failed to open tunnel exception indicates that the application was unable to connect using the selected route (direct TCP).  This could be caused by missing direct TCP APN information, which the user can enter by going to Options, Advanced Options, TCP or could be specified by your application (see next link).  If the correct APN has been populated this could indicate that the user does not have access to connect through the specified APN. They can contact their carrier to confirm this.


 

The problem is that this happened even without using direct TCP (when not specifying deviceside=true). Meanwhile the browser works happilly on that device, as  my application was downloaded to the device using the built-in browser. (I even saw it in my web server logs.) I'm not interested wheather it's direct TCP or not, the KB articles say that the device will fall backto direct TCP if there is no MDS connection.

 

I have checked the document earlier, and I know that I can provide APN settings in the URL but I think that it'sthe wrong solution to the problem. The devices should come with access point settings defined or they should be automatically pushed just as with all the other mobile phones (and as it happens with the service book entries on the BB!).

 

 

About the second (firewall) issue. Thanks for the link. It's pretty strange that it's not documented  elsewhere. Also the doc won't unfortunately show up when googling for the exception error message.

 


The failed to transmit exception could indicate a network issue or an issue with their BlackBerry Enterprise Server account (when using deviceside=false).  Is this user able to connect using the BlackBerry Browser?

 

I recommend watching the following video for an overview on the various connection routes available on a BlackBerry handheld.

 

http://www.blackberry.com/DevMediaLibrary/view.do?name=NetworkingTransports


 

Yes, he was also able to connect with his browser and used that to download and install the application from my web server. He has tried other applications like opera mini and those also failed. However viigo, which is known to use BIS-B did work. Then he was suggested by the carrier to reset his device and the apps started to work on the reset ones. But of course  this is not an option for us to require all the users to go through this.

 

Could this be related to the firewall as well? I mean is it possible that because the application tried both direct and non-direct TCP during its lifetime (actually different versions, but according to the docs it doesn't matter) it was blocked from accessing either methods?

 

I also watched the video a few days ago and I found that a key component is missing from the diagrams: there must be a box somewhere between the cell towers and the internet. Because despite what the diagram shows, it's not true that the devices can simply access the internet. The diagram in the video shows that the device accesses the BIS through the internet, but actually the whole BIS thing (well, ok most of it) would be unnecessary if the device had a full internet access. So it technically might be true that the requests from the device are tunneled through the net to the BIS, but the key is here tunneling: must be a component that sits on the carrier network (between the cell towers and the network cloud) and tunnels the traffic of some of the applications to BIS. Is it like this?

 

Laszlo Marai

BlackBerry Development Advisor
Posts: 15,784
Registered: ‎07-09-2008
My Device: BlackBerry PRIV
My Carrier: Bell

Re: Operator dependent connection problems

What browser is the user using?  You can see their default browser setting under Options, Advanced Options, Browser.

 

There are a few possibilities here.  There is the BlackBerry Browser (BlackBerry Enterprise Server), Internet Browser (BlackBerry Internet Service), WAP Browser (Carrier's WAP Gateway) and Hotspot Browser (Wi-Fi Connection).

 

So just because the user can use the browser does not mean your application can make a TCP connection.

 

The BIS-B servers are run by RIM and sit between the carrier's network and the Internet (when connecting over BIS-B).  A direct TCP connection goes directly from the carrier's network to the Internet.

Mark Sohm
BlackBerry Development Advisor

Please refrain from posting new questions in solved threads.
Problem solved? Click the Accept As Solution button.
Found a bug? Report it using Issue Tracker
Developer
Posts: 71
Registered: ‎03-10-2009
My Device: Not Specified

Re: Operator dependent connection problems


MSohm wrote:

What browser is the user using?  You can see their default browser setting under Options, Advanced Options, Browser.

 

There are a few possibilities here.  There is the BlackBerry Browser (BlackBerry Enterprise Server), Internet Browser (BlackBerry Internet Service), WAP Browser (Carrier's WAP Gateway) and Hotspot Browser (Wi-Fi Connection).

 

So just because the user can use the browser does not mean your application can make a TCP connection.

 

The BIS-B servers are run by RIM and sit between the carrier's network and the Internet (when connecting over BIS-B).  A direct TCP connection goes directly from the carrier's network to the Internet.


 

I don't know what browser he is using. I've mainly given up on this issue, as I found out  during a lot of wasted hours that there is no solution to thisissue. Everybody just sits down and codes and tests(!) what RIM should be doing and then when they get big enough they start to pay for BISB. This is clearly not a technological but a political/business issue. (The business behind is not selling BISB but selling all those boxes that that sit on the carriers' network and then carriers selling 'BB specific' data plans.)

 

I don't even understand how you can have 4 browsers. Normally you'd have one and they would use different connection options. You might have implemented it like this, but calling them different browsers surely adds to the confusion. And if it's confusing to a developer then how confusing it might be to a user?

New Developer
Posts: 1
Registered: ‎04-29-2009
My Device: Not Specified

Re: Operator dependent connection problems

You refer to sign-up for BISB - but I can't find any details about this - do you mean the user must sign up for it - or the developer.

 

From your previous postings I assumed the developer but can't find any information about this - can your provide links please.

 

We have problems with our app not working on blackberry devices because of network issues - would paying for BISB help?

 

What about getting in the blackberry store or being Java certified? Does either of these things make internet access easier?

 

Al

Developer
Posts: 85
Registered: ‎12-05-2008
My Device: Blackberry 8900 Javelin

Re: Operator dependent connection problems

Our Rogers users have had alot of issues with internet connection too with Shazam. The application works pretty well on almost everyone else. Sadly there are no Rogers devices on the test service DeviceAnywhere and the Canadian operators we can test appear fine.

 

If you find anything about Rogers that makes you slap your forehead in frustration please feel free to vent here - i sure could do with some pointers!

Developer
Posts: 4,764
Registered: ‎07-21-2008
My Device: Not Specified

Re: Operator dependent connection problems

You don't sign up for BIS-B, you sign up for the Blackberry Alliance Program. Alliance Members can request BIS-B access.

 

http://na.blackberry.com/eng/partners/software.jsp

 

 

Developer
Posts: 71
Registered: ‎03-10-2009
My Device: Not Specified

Re: Operator dependent connection problems

  Al,

 

 As Doug said you have to sign up as an Alliance Partner. That has a pretty steep yearly fee. It's around 2000USD/year, but I guess they tailor it to your business as you have to talk to a sales guy. They are reallt helpful, but I doesn't make me feel better as the whole issue is an aritifical and fishy ine...

 

So as I learned BISB helps most of the time, but not all of the time. Also it works only as long as you pay your subscription. It includes a lot of other useful stuff, but still it's good to know because it mainly makes it viable for  service providers and not software wendors be it a company selling  'shrink wrapped' end product or one developing software for customers (which is mostly what I do know). The reason is simple: you can't sell and guarantee that your software will  just work because it will work only as lonmg as you pay this tax. It's less of a problem for service providers (e.g. AP, Google, etc.) who have to run a server anyway, because they usually give away the mobile app for free and their clients know that they may shut down te service (according to their ToS of course). But it's not expected for software that is sold

 

As I said above simply signing up for BISB won't solve the problem once for all because there are cases when even BISB will not be available, but other means (TCP or WAP) may be. So it will improve the chances that your app will be able to make a connection but it won't save you from coding what everybody else has to: trying to figure out which connection options are available and also including settings for all the networks that you expect your application to be used on. I created a simple lib for this and plan to release in under the GPL because it's plain crazy. basically every single ... (curse word) application needs it yet for some really hard to understand reason it's not in the OS.

 

Blackberry store and java certified has nothing to do with this. You're free to sell applications that don't work Smiley Happy.