Perhaps you should use RGenericAgent and Co. for establishing a connection. I see that you do not want to deal with connection management, but maybe you have no other choice, though I'm not sure about this.
Anyway, it seems to me that RGenericAgent is able to create a connection, I don't know how it can be parametrized, though. But, if there's an active CSD-like connection (such as CSD or HSCSD), the class can observe it and notify you if something has changed with the connection. And, of course, if there's an active GPRS connection, it's only good for you.
Ps.: I'm planning to write another question about TCP/IP over GPRS and it's about observing the availability of GPRS connection.