I think all the right things were said here, but I hope that we can combine some of the answers and wrap this question up.
You didn’t share your code, which complicates the work, but many use the RIM / BlackBerry source provided by PushDemo, where the connection suffix is hardcoded in /pushdemo/com/rim/samples/device/push/PushUtils.java :
private static String getConnectionSuffix() { return ";deviceside=false;ConnectionType=mds-public"; }
I also assume this read your other question .
Thus, you hardcoded the transport type of BlackBerry BIBS. BlackBerry supports many different transports , such as BES, BIS, BIBS, or WAP. BIBS Transport will send a request from your device to BlackBerry servers that are located on the Internet. (Note: this part probably confuses the iOS / Android developer, as these platforms do not provide Apple / Google network intermediaries for relaying normal HTTP / S traffic)
Then the request is sent to your server, which is located at:
196.84.32.112:8443
I am sure that the TCP / IP endpoint is not accessible from the Internet (I cannot reach it). So why does this fail for you.
You can use this url
https:
and paste it into your BlackBerry device’s browser and it will work. Your device is configured for BES, which uses your company's internal servers. These backend servers can reach the endpoint of 196.84.32.112:8443 , so this seems to work for you. But this is because you did not hardcode the transport, as in your push code that uses getConnectionSuffix() . The device’s browser is smart enough to figure out which transport works, and BES works to get to this intranet server.
Hope this explains the confusing part.
Decision
As others have said, the solution is to get your company's IT staff to make the IP address 196.84.32.112 and port 8443 accessible through their firewall. This would allow BlackBerry servers to successfully achieve this.
Another solution would be to modify the PushUtils.java code to avoid the BIBS transport:
private static String getConnectionSuffix() { return ";deviceside=false"; }
If you need really flexible code, I would suggest rewriting this PushUtils.java code because it uses HTTP connection logic up to 5.0. ConnectionFactory on OS 5.0+ makes this easier and more reliable with support for multiple transports ...
To answer the question about user support for multiple vehicles, see this blackberry.com example , in particular the MyConnectionFactory class. It allows you to choose which transport your application is transporting, and which it tries first.
Ultimately, the decision to make your server public or not depends on how it will be used and whether you will have non-corporate Internet clients trying to register on your corporate server.