如何生成一个新的互联网访问接入点

  1. #include <commdbconnpref.h>  
  2. #include <commdb.h>  
  3. #include <cdbpreftable.h>  
  4.    
  5. TUint32 CreateWapApL(CCommsDatabase* db)  
  6. {  
  7.     _LIT(KWapApName, "MyAP WAP");  
  8.     TUint32 WapId;  
  9.     CCommsDbTableView* view = db->OpenTableLC(TPtrC(WAP_ACCESS_POINT));   
  10.     User::LeaveIfError(view->InsertRecord(WapId));  
  11.     view->WriteTextL(TPtrC(COMMDB_NAME), KWapApName);  
  12.     view->WriteTextL(TPtrC(WAP_CURRENT_BEARER), TPtrC(WAP_IP_BEARER));   
  13.    
  14.     User::LeaveIfError(view->PutRecordChanges());  
  15.     delete view;  
  16.    
  17.     return WapId;  
  18. }  
  19.    
  20. TUint32 CreateGprsServiceL(CCommsDatabase* db)  
  21. {  
  22.     _LIT(KGprsName,  "MyAP Gprs");  
  23.     _LIT(KSettingAPN, "Winsock");  
  24.    
  25.     TUint32 gprsId;  
  26.     CCommsDbTableView* view = db->OpenTableLC(TPtrC(OUTGOING_GPRS));   
  27.     User::LeaveIfError(view->InsertRecord(gprsId));  
  28.    
  29.    
  30.     view->WriteTextL(TPtrC(COMMDB_NAME), KGprsName);   
  31.     view->WriteTextL(TPtrC(GPRS_APN), KSettingAPN);  
  32.     view->WriteUintL(TPtrC(GPRS_PDP_TYPE), 0);  
  33.     view->WriteBoolL(TPtrC(GPRS_IP_ADDR_FROM_SERVER), EFalse);   
  34.     view->WriteBoolL(TPtrC(GPRS_IP_DNS_ADDR_FROM_SERVER), EFalse);  
  35.     view->WriteBoolL(TPtrC(GPRS_IP6_DNS_ADDR_FROM_SERVER), EFalse);  
  36.     view->WriteTextL(TPtrC(GPRS_IF_AUTH_NAME), _L(""));  
  37.     view->WriteTextL(TPtrC(GPRS_IF_AUTH_PASS), _L(""));  
  38.     view->WriteBoolL(TPtrC(GPRS_IF_PROMPT_FOR_AUTH), EFalse);  
  39.     view->WriteUintL(TPtrC(SERVICE_IF_AUTH_RETRIES), 0);  
  40.     view->WriteTextL(TPtrC(GPRS_IF_NETWORKS), _L("tcp,udp,icmp,icmp6"));  
  41.     view->WriteBoolL(TPtrC(GPRS_HEADER_COMPRESSION), EFalse);  
  42.     view->WriteBoolL(TPtrC(GPRS_DATA_COMPRESSION), EFalse);  
  43.     view->WriteUintL(TPtrC(GPRS_REQ_PRECEDENCE), 0);  
  44.     view->WriteUintL(TPtrC(GPRS_REQ_DELAY), 0);  
  45.     view->WriteUintL(TPtrC(GPRS_REQ_RELIABILITY), 0);  
  46.     view->WriteUintL(TPtrC(GPRS_REQ_PEAK_THROUGHPUT), 0);  
  47.     view->WriteUintL(TPtrC(GPRS_REQ_MEAN_THROUGHPUT), 0);   
  48.     view->WriteUintL(TPtrC(GPRS_MIN_PRECEDENCE), 0);  
  49.     view->WriteUintL(TPtrC(GPRS_MIN_DELAY), 0);  
  50.     view->WriteUintL(TPtrC(GPRS_MIN_RELIABILITY), 0);  
  51.     view->WriteUintL(TPtrC(GPRS_MIN_PEAK_THROUGHPUT), 0);  
  52.     view->WriteUintL(TPtrC(GPRS_MIN_MEAN_THROUGHPUT), 0);   
  53.     view->WriteBoolL(TPtrC(GPRS_ANONYMOUS_ACCESS), EFalse);   
  54.     view->WriteBoolL(TPtrC(GPRS_ENABLE_LCP_EXTENSIONS), EFalse);   
  55.     view->WriteBoolL(TPtrC(GPRS_DISABLE_PLAIN_TEXT_AUTH), EFalse);  
  56.     view->WriteUintL(TPtrC(GPRS_AP_TYPE), 2);  
  57.     view->WriteUintL(TPtrC(GPRS_QOS_WARNING_TIMEOUT), -1);  
  58.    
  59.     User::LeaveIfError(view->PutRecordChanges());  
  60.     delete view;  
  61.    
  62.     return gprsId;  
  63. }  
  64.    
  65. TUint32 CreateLocationL(CCommsDatabase* db)  
  66. {  
  67.     _LIT(KLocName, "MyAP Location");  
  68.     TUint32 LocId;  
  69.     CCommsDbTableView* view = db->OpenTableLC(TPtrC(LOCATION));   
  70.     User::LeaveIfError(view->InsertRecord(LocId));  
  71.    
  72.     view->WriteTextL(TPtrC(COMMDB_NAME), KLocName);   
  73.     view->WriteTextL(TPtrC(LOCATION_INTL_PREFIX_CODE),_L("+"));  
  74.     view->WriteTextL(TPtrC(LOCATION_NAT_PREFIX_CODE),_L("0"));  
  75.     view->WriteTextL(TPtrC(LOCATION_NAT_CODE),_L("44"));  
  76.     view->WriteUintL(TPtrC(LOCATION_PAUSE_AFTER_DIAL_OUT), 0);  
  77.     view->WriteBoolL(TPtrC(LOCATION_MOBILE), ETrue);  
  78.     view->WriteBoolL(TPtrC(LOCATION_USE_PULSE_DIAL), EFalse);   
  79.     view->WriteBoolL(TPtrC(LOCATION_WAIT_FOR_DIAL_TONE), EFalse);   
  80.    
  81.     User::LeaveIfError(view->PutRecordChanges());  
  82.     delete view;  
  83.    
  84.     return LocId;  
  85. }  
  86.    
  87. TUint32 CreateBearerL(CCommsDatabase* db)  
  88. {  
  89.     _LIT(KAgentName, "wsocka.agt");  
  90.     _LIT(KIfName, "wsocki");  
  91.     _LIT(KLddName, "foo");  
  92.     _LIT(KBearerName, "MyAP Bearer");  
  93.    
  94.     TUint32 BearerId;  
  95.     CCommsDbTableView* view = db->OpenTableLC(TPtrC(LAN_BEARER));   
  96.     User::LeaveIfError(view->InsertRecord(BearerId));  
  97.    
  98.     view->WriteTextL(TPtrC(COMMDB_NAME), KBearerName);   
  99.     view->WriteTextL(TPtrC(IF_NAME), KIfName);   
  100.     view->WriteTextL(TPtrC(LAN_BEARER_LDD_NAME), KIfName);   
  101.     view->WriteTextL(TPtrC(LAN_BEARER_PDD_NAME), KIfName);   
  102.     view->WriteTextL(TPtrC(AGENT_NAME), KAgentName);   
  103.    
  104.     view->WriteUintL(TPtrC(LAST_SOCKET_ACTIVITY_TIMEOUT), -1);  
  105.     view->WriteUintL(TPtrC(LAST_SESSION_CLOSED_TIMEOUT), -1);  
  106.     view->WriteUintL(TPtrC(LAST_SOCKET_CLOSED_TIMEOUT), -1);  
  107.    
  108.     User::LeaveIfError(view->PutRecordChanges());  
  109.     delete view;  
  110.    
  111.     return BearerId;  
  112. }  
  113.    
  114. TUint32 CreateNetworkL(CCommsDatabase* db)  
  115. {  
  116.     _LIT(KNetName, "MyAP Network");  
  117.     TUint32 NetId;  
  118.     CCommsDbTableView* view = db->OpenTableLC(TPtrC(NETWORK));   
  119.     User::LeaveIfError(view->InsertRecord(NetId));  
  120.    
  121.     view->WriteTextL(TPtrC(COMMDB_NAME), KNetName);   
  122.    
  123.     User::LeaveIfError(view->PutRecordChanges());  
  124.     delete view;  
  125.    
  126.     return NetId;  
  127. }  
  128.    
  129. void CreateConnectionPreferencesL(CCommsDatabase* db, TUint32 Iap)  
  130. {  
  131.     CCommsDbConnectionPrefTableView * view =   
  132.     db->OpenConnectionPrefTableLC(ECommDbConnectionDirectionOutgoing);   
  133.    
  134.     CCommsDbConnectionPrefTableView::TCommDbIapBearer bearerinfo;  
  135.     bearerinfo.iBearerSet=-1;         
  136.     bearerinfo.iIapId=Iap;  
  137.    
  138.     CCommsDbConnectionPrefTableView::TCommDbIapConnectionPref pref;  
  139.     pref.iRanking=0;  
  140.     pref.iDirection=ECommDbConnectionDirectionOutgoing;  
  141.     pref.iDialogPref =ECommDbDialogPrefDoNotPrompt;   
  142.     pref.iBearer=bearerinfo;  
  143.    
  144.     view->InsertConnectionPreferenceL(pref);  
  145.     delete view;  
  146.    
  147. }  
  148.    
  149.    
  150.    
  151. TUint32 CreateIAPL(CCommsDatabase* db, TUint32 Bearer, TUint32 Network,   
  152.                        TUint32 Service, TUint32 Location)  
  153. {  
  154.     _LIT(KIAPName,  "MyAP");  
  155.     TUint32 IapId;  
  156.     CCommsDbTableView* view = db->OpenTableLC(TPtrC(IAP));   
  157.     User::LeaveIfError(view->InsertRecord(IapId));  
  158.    
  159.     view->WriteTextL(TPtrC(COMMDB_NAME), KIAPName);   
  160.     view->WriteTextL(TPtrC(IAP_SERVICE_TYPE), TPtrC(OUTGOING_GPRS));  
  161.     view->WriteTextL(TPtrC(IAP_BEARER_TYPE), TPtrC(LAN_BEARER));  
  162.     view->WriteUintL(TPtrC(IAP_BEARER), Bearer);  
  163.     view->WriteUintL(TPtrC(IAP_NETWORK), Network);  
  164.     view->WriteUintL(TPtrC(IAP_SERVICE), Service);  
  165.     view->WriteUintL(TPtrC(LOCATION), Location);  
  166.     view->WriteUintL(TPtrC(IAP_NETWORK_WEIGHTING), 0);  
  167.    
  168.     User::LeaveIfError(view->PutRecordChanges());  
  169.     delete view;  
  170.    
  171.     return IapId;  
  172. }  
  173.    
  174. void CreateWapIPBearerL(CCommsDatabase* db, TUint32 Iap, TUint32 WapIap)  
  175. {  
  176.     _LIT(KWapBearer, "MyAP Wap Bearer");  
  177.     TUint32 Id;  
  178.     CCommsDbTableView* view = db->OpenTableLC(TPtrC(WAP_IP_BEARER));   
  179.     User::LeaveIfError(view->InsertRecord(Id));  
  180.    
  181.     view->WriteTextL(TPtrC(COMMDB_NAME), KWapBearer);   
  182.     view->WriteUintL(TPtrC(IAP), Iap);  
  183.     view->WriteUintL(TPtrC(WAP_ACCESS_POINT_ID), WapIap);  
  184.     view->WriteUintL(TPtrC(WAP_WSP_OPTION), EWapWspOptionConnectionless);  
  185.     view->WriteBoolL(TPtrC(WAP_SECURITY), EFalse); /  
  186.     view->WriteTextL(TPtrC(WAP_GATEWAY_ADDRESS), _L("0.0.0.0"));   
  187.     view->WriteUintL(TPtrC(WAP_PROXY_PORT), 0);  
  188.    
  189.     User::LeaveIfError(view->PutRecordChanges());  
  190.     delete view;  
  191. }  
  192.    
  193. void CreateNewIAP()  
  194. {  
  195.     CCommsDatabase* db=CCommsDatabase::NewL();  
  196.    
  197.     TUint32 Bearer=CreateBearerL(db);  
  198.     TUint32 Network=CreateNetworkL(db);  
  199.     TUint32 Service=CreateGprsServiceL(db);  
  200.     TUint32 Location=CreateLocationL(db);  
  201.     TUint32 Iap=CreateIAPL(db, Bearer, Network, Service, Location);  
  202.    
  203.     CreateConnectionPreferencesL(db, Iap);  
  204.    
  205.     TUint32 WapAp=CreateWapApL(db);  
  206.     CreateWapIPBearerL(db,Iap,WapAp);  
  207.    
  208.     delete db;  
  209. }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值