This page was last modified 09:37, 26 November 2007.
Create new internet access point
From Forum Nokia Wiki
Creating the GPRS Internet Access Point (IAP) OS version independent
In order to create the IAP, CCommsDatabase is used. The following code example creates all the table entries manually. It actually duplicates the emulator's "Winsock" IAP initial settings. CreateNewIAP() is the main function.
#include <commdbconnpref.h> #include <commdb.h> #include <cdbpreftable.h> TUint32 CreateWapApL(CCommsDatabase* db) { _LIT(KWapApName, "MyAP WAP"); TUint32 WapId; CCommsDbTableView* view = db->OpenTableLC(TPtrC(WAP_ACCESS_POINT)); User::LeaveIfError(view->InsertRecord(WapId)); view->WriteTextL(TPtrC(COMMDB_NAME), KWapApName); view->WriteTextL(TPtrC(WAP_CURRENT_BEARER), TPtrC(WAP_IP_BEARER)); User::LeaveIfError(view->PutRecordChanges()); delete view; return WapId; } TUint32 CreateGprsServiceL(CCommsDatabase* db) { _LIT(KGprsName, "MyAP Gprs"); _LIT(KSettingAPN, "Winsock"); TUint32 gprsId; CCommsDbTableView* view = db->OpenTableLC(TPtrC(OUTGOING_GPRS)); User::LeaveIfError(view->InsertRecord(gprsId)); view->WriteTextL(TPtrC(COMMDB_NAME), KGprsName); view->WriteTextL(TPtrC(GPRS_APN), KSettingAPN); view->WriteUintL(TPtrC(GPRS_PDP_TYPE), 0); view->WriteBoolL(TPtrC(GPRS_IP_ADDR_FROM_SERVER), EFalse); view->WriteBoolL(TPtrC(GPRS_IP_DNS_ADDR_FROM_SERVER), EFalse); view->WriteBoolL(TPtrC(GPRS_IP6_DNS_ADDR_FROM_SERVER), EFalse); view->WriteTextL(TPtrC(GPRS_IF_AUTH_NAME), _L("")); view->WriteTextL(TPtrC(GPRS_IF_AUTH_PASS), _L("")); view->WriteBoolL(TPtrC(GPRS_IF_PROMPT_FOR_AUTH), EFalse); view->WriteUintL(TPtrC(SERVICE_IF_AUTH_RETRIES), 0); view->WriteTextL(TPtrC(GPRS_IF_NETWORKS), _L("tcp,udp,icmp,icmp6")); view->WriteBoolL(TPtrC(GPRS_HEADER_COMPRESSION), EFalse); view->WriteBoolL(TPtrC(GPRS_DATA_COMPRESSION), EFalse); view->WriteUintL(TPtrC(GPRS_REQ_PRECEDENCE), 0); view->WriteUintL(TPtrC(GPRS_REQ_DELAY), 0); view->WriteUintL(TPtrC(GPRS_REQ_RELIABILITY), 0); view->WriteUintL(TPtrC(GPRS_REQ_PEAK_THROUGHPUT), 0); view->WriteUintL(TPtrC(GPRS_REQ_MEAN_THROUGHPUT), 0); view->WriteUintL(TPtrC(GPRS_MIN_PRECEDENCE), 0); view->WriteUintL(TPtrC(GPRS_MIN_DELAY), 0); view->WriteUintL(TPtrC(GPRS_MIN_RELIABILITY), 0); view->WriteUintL(TPtrC(GPRS_MIN_PEAK_THROUGHPUT), 0); view->WriteUintL(TPtrC(GPRS_MIN_MEAN_THROUGHPUT), 0); view->WriteBoolL(TPtrC(GPRS_ANONYMOUS_ACCESS), EFalse); view->WriteBoolL(TPtrC(GPRS_ENABLE_LCP_EXTENSIONS), EFalse); view->WriteBoolL(TPtrC(GPRS_DISABLE_PLAIN_TEXT_AUTH), EFalse); view->WriteUintL(TPtrC(GPRS_AP_TYPE), 2); view->WriteUintL(TPtrC(GPRS_QOS_WARNING_TIMEOUT), -1); User::LeaveIfError(view->PutRecordChanges()); delete view; return gprsId; } TUint32 CreateLocationL(CCommsDatabase* db) { _LIT(KLocName, "MyAP Location"); TUint32 LocId; CCommsDbTableView* view = db->OpenTableLC(TPtrC(LOCATION)); User::LeaveIfError(view->InsertRecord(LocId)); view->WriteTextL(TPtrC(COMMDB_NAME), KLocName); view->WriteTextL(TPtrC(LOCATION_INTL_PREFIX_CODE),_L("+")); view->WriteTextL(TPtrC(LOCATION_NAT_PREFIX_CODE),_L("0")); view->WriteTextL(TPtrC(LOCATION_NAT_CODE),_L("44")); view->WriteUintL(TPtrC(LOCATION_PAUSE_AFTER_DIAL_OUT), 0); view->WriteBoolL(TPtrC(LOCATION_MOBILE), ETrue); view->WriteBoolL(TPtrC(LOCATION_USE_PULSE_DIAL), EFalse); view->WriteBoolL(TPtrC(LOCATION_WAIT_FOR_DIAL_TONE), EFalse); User::LeaveIfError(view->PutRecordChanges()); delete view; return LocId; } TUint32 CreateBearerL(CCommsDatabase* db) { _LIT(KAgentName, "wsocka.agt"); _LIT(KIfName, "wsocki"); _LIT(KLddName, "foo"); _LIT(KBearerName, "MyAP Bearer"); TUint32 BearerId; CCommsDbTableView* view = db->OpenTableLC(TPtrC(LAN_BEARER)); User::LeaveIfError(view->InsertRecord(BearerId)); view->WriteTextL(TPtrC(COMMDB_NAME), KBearerName); view->WriteTextL(TPtrC(IF_NAME), KIfName); view->WriteTextL(TPtrC(LAN_BEARER_LDD_NAME), KIfName); view->WriteTextL(TPtrC(LAN_BEARER_PDD_NAME), KIfName); view->WriteTextL(TPtrC(AGENT_NAME), KAgentName); view->WriteUintL(TPtrC(LAST_SOCKET_ACTIVITY_TIMEOUT), -1); view->WriteUintL(TPtrC(LAST_SESSION_CLOSED_TIMEOUT), -1); view->WriteUintL(TPtrC(LAST_SOCKET_CLOSED_TIMEOUT), -1); User::LeaveIfError(view->PutRecordChanges()); delete view; return BearerId; } TUint32 CreateNetworkL(CCommsDatabase* db) { _LIT(KNetName, "MyAP Network"); TUint32 NetId; CCommsDbTableView* view = db->OpenTableLC(TPtrC(NETWORK)); User::LeaveIfError(view->InsertRecord(NetId)); view->WriteTextL(TPtrC(COMMDB_NAME), KNetName); User::LeaveIfError(view->PutRecordChanges()); delete view; return NetId; } void CreateConnectionPreferencesL(CCommsDatabase* db, TUint32 Iap) { CCommsDbConnectionPrefTableView * view = db->OpenConnectionPrefTableLC(ECommDbConnectionDirectionOutgoing); CCommsDbConnectionPrefTableView::TCommDbIapBearer bearerinfo; bearerinfo.iBearerSet=-1; bearerinfo.iIapId=Iap; CCommsDbConnectionPrefTableView::TCommDbIapConnectionPref pref; pref.iRanking=0; pref.iDirection=ECommDbConnectionDirectionOutgoing; pref.iDialogPref =ECommDbDialogPrefDoNotPrompt; pref.iBearer=bearerinfo; view->InsertConnectionPreferenceL(pref); delete view; } TUint32 CreateIAPL(CCommsDatabase* db, TUint32 Bearer, TUint32 Network, TUint32 Service, TUint32 Location) { _LIT(KIAPName, "MyAP"); TUint32 IapId; CCommsDbTableView* view = db->OpenTableLC(TPtrC(IAP)); User::LeaveIfError(view->InsertRecord(IapId)); view->WriteTextL(TPtrC(COMMDB_NAME), KIAPName); view->WriteTextL(TPtrC(IAP_SERVICE_TYPE), TPtrC(OUTGOING_GPRS)); view->WriteTextL(TPtrC(IAP_BEARER_TYPE), TPtrC(LAN_BEARER)); view->WriteUintL(TPtrC(IAP_BEARER), Bearer); view->WriteUintL(TPtrC(IAP_NETWORK), Network); view->WriteUintL(TPtrC(IAP_SERVICE), Service); view->WriteUintL(TPtrC(LOCATION), Location); view->WriteUintL(TPtrC(IAP_NETWORK_WEIGHTING), 0); User::LeaveIfError(view->PutRecordChanges()); delete view; return IapId; } void CreateWapIPBearerL(CCommsDatabase* db, TUint32 Iap, TUint32 WapIap) { _LIT(KWapBearer, "MyAP Wap Bearer"); TUint32 Id; CCommsDbTableView* view = db->OpenTableLC(TPtrC(WAP_IP_BEARER)); User::LeaveIfError(view->InsertRecord(Id)); view->WriteTextL(TPtrC(COMMDB_NAME), KWapBearer); view->WriteUintL(TPtrC(IAP), Iap); view->WriteUintL(TPtrC(WAP_ACCESS_POINT_ID), WapIap); view->WriteUintL(TPtrC(WAP_WSP_OPTION), EWapWspOptionConnectionless); view->WriteBoolL(TPtrC(WAP_SECURITY), EFalse); \ view->WriteTextL(TPtrC(WAP_GATEWAY_ADDRESS), _L("0.0.0.0")); view->WriteUintL(TPtrC(WAP_PROXY_PORT), 0); User::LeaveIfError(view->PutRecordChanges()); delete view; } void CreateNewIAP() { CCommsDatabase* db=CCommsDatabase::NewL(); TUint32 Bearer=CreateBearerL(db); TUint32 Network=CreateNetworkL(db); TUint32 Service=CreateGprsServiceL(db); TUint32 Location=CreateLocationL(db); TUint32 Iap=CreateIAPL(db, Bearer, Network, Service, Location); CreateConnectionPreferencesL(db, Iap); TUint32 WapAp=CreateWapApL(db); CreateWapIPBearerL(db,Iap,WapAp); delete db; }
Need to link with commdb.lib in the .mmp file.
LIBRARY commdb.lib
The code requires WriteDeviceData capability to run on devices based on Symbian OS v9.
Related Link
| Related Discussions | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Problem With Access Point Settings Using RConnection.. | gmsk19 | Symbian Networking & Messaging | 2 | 2008-06-09 12:34 |
| NOKIA D211 doesn't work with my 3com and Asus access point | nuvolablu | Multimodecards | 4 | 2004-04-24 19:00 |
| setting up an internet connection on 7650 | lesliel | Mobile Java General | 1 | 2002-10-09 07:59 |
| Internet connection over Bluetooth (6600<->PC) | cbruegg | Bluetooth Technology | 0 | 2003-11-12 19:28 |
| how to get the response from the WAP site | lakshmanraob | Mobile Java Networking & Messaging & Security | 6 | 2006-06-10 05:45 |
