+
+void CallListener::findGprsId()
+{
+ ConnectionManager cm;
+
+ QList<ConnectionManager::Connection> connections;
+
+ if(cm.scanConnections(connections, ConnectionManager::GPRS) &&
+ connections.size() > 0)
+ {
+ gprsId_ = connections.at(0).id;
+ }
+}
+
+bool CallListener::is3g()
+{
+ QDBusMessage msg = QDBusMessage::createMethodCall("com.nokia.phone.net",
+ "/com/nokia/phone/net",
+ "Phone.Net",
+ "get_registration_status");
+
+ QDBusMessage rep = systemBus_.call(msg);
+
+ if(rep.type() == QDBusMessage::ErrorMessage)
+ {
+ qDebug() << "Unable to get network status";
+ return false;
+ }
+
+ uint status = rep.arguments().value(6).toUInt();
+
+ if(status & 0x10) // 3.5G (HSUPA)
+ {
+ return true;
+ }
+ else if(status & 0x08) // 3G (HSDPA)
+ {
+ return true;
+ }
+
+ // Something else
+ return false;
+}