anybody could help me on creating IAP?
| Fri, 2006-02-17 03:50 | |
|
i have watched quite a number of topics abt the creating the IAP. Iam also facing the same problem for a long time. i m using the method below to create IAP same as some of the topics used.
//1)Add record to OUTGOING_GPRS view = cdb->OpenTableLC(TPtrC(OUTGOING_GPRS)); view->InsertRecord(gprsId); view->WriteTextL(TPtrC(COMMDB_NAME), _L("internet")); view->WriteBoolL(TPtrC(GPRS_IF_PROMPT_FOR_AUTH), ETrue); view->WriteBoolL(TPtrC(GPRS_IP_ADDR_FROM_SERVER), ETrue); view->WriteBoolL(TPtrC(GPRS_IP_DNS_ADDR_FROM_SERVER), ETrue); view->WriteTextL(TPtrC(GPRS_IP_GATEWAY), _L("0.0.0.0")); view->WriteTextL(TPtrC(GPRS_IF_AUTH_NAME), _L("")); view->WriteTextL(TPtrC(GPRS_IF_AUTH_PASS),_L("")); view->WriteTextL(TPtrC(GPRS_APN), _L("internet")); ......... ........ etc... ![]() //2)Add record to NETWORK TUint32 networkId; CCommsDatabase* cdb2=CCommsDatabase::NewL(EDatabaseTypeIAP); CleanupStack::PushL(cdb2); CCommsDbTableView* view2 = cdb2->OpenTableLC(TPtrC(NETWORK)); view2->InsertRecord(networkId); view2->WriteTextL(TPtrC(COMMDB_NAME), _L("internet")); error = view2->PutRecordChanges(EFalse, EFalse); CleanupStack::PopAndDestroy(view2); CleanupStack::PopAndDestroy(cdb2); view2=NULL; //3)SEARCH FOR Mobile LOCATION id TInt result; ...... //4)Create IAP ..... //5) CREATE WAP_ACCESS_POINT ..... //6) Create WAP_IP_BEARER .... so has anybody sloved the problem ? this IAP is a WAP AP , not a GPRS AP , how can I make it as a real GPRS IAP? Thanks for advices |
|







Forum posts: 19
I am able to create access point in uiq 2 through code , but I am not able to delete the access point manualy from the list of access point, while other access point for example mobile office is deleting. So I want to which API can be used to delete the access point. My code is below.
or suggest me what changes should i made so that I can able to delete access point .
_LIT(KSettingAPN, "internet");
_LIT(KIAPName, "MYAccessPoint");
//_LIT(KSettingAPN, "airtelgprs.com");
//_LIT(KIAPName, "MOffice");
TUint32 gprsId;
////CCommsDatabase* db=CCommsDatabase::NewL(); ///////////////////////////////////////////
CCommsDatabase* db=CCommsDatabase::NewL();
if(db == NULL)
User::Exit(KErrNoMemory);
CleanupStack::PushL(db);
#ifdef __LOGME__
LogText.Copy(_L("AddNewAccesspoint 1\n"));
WriteLogFile(LogText);
#endif
CCommsDbTableView* view = db->OpenTableLC(TPtrC(OUTGOING_GPRS));
if(view == NULL){
CleanupStack::PopAndDestroy(); // db
User::Exit(KErrNoMemory);
}
User::LeaveIfError(view->InsertRecord(gprsId));
#ifdef __LOGME__
LogText.Copy(_L("AddNewAccesspoint 2\n"));
WriteLogFile(LogText);
#endif
view->WriteTextL(TPtrC(COMMDB_NAME), KIAPName);
view->WriteBoolL(TPtrC(GPRS_IF_PROMPT_FOR_AUTH), ETrue);
view->WriteBoolL(TPtrC(GPRS_IP_ADDR_FROM_SERVER), EFalse);
view->WriteBoolL(TPtrC(GPRS_IP_DNS_ADDR_FROM_SERVER), EFalse);
view->WriteTextL(TPtrC(GPRS_IP_GATEWAY), _L("10.10.1.100"));
view->WriteTextL(TPtrC(GPRS_IF_AUTH_NAME), _L(""));
view->WriteTextL(TPtrC(GPRS_IF_AUTH_PASS), _L(""));
view->WriteTextL(TPtrC(GPRS_APN), KSettingAPN);
#ifdef __LOGME__
LogText.Copy(_L("AddNewAccesspoint 3\n"));
WriteLogFile(LogText);
#endif
view->WriteUintL(TPtrC(GPRS_PDP_TYPE), 0);
view->WriteBoolL(TPtrC(GPRS_IF_PROMPT_FOR_AUTH), EFalse);
view->WriteTextL(TPtrC(GPRS_IF_NETWORKS), _L("ip"));
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_USE_EDGE), EFalse);
view->WriteBoolL(TPtrC(GPRS_ENABLE_LCP_EXTENSIONS), EFalse);
view->WriteBoolL(TPtrC(GPRS_DISABLE_PLAIN_TEXT_AUTH), EFalse);
#ifdef __LOGME__
LogText.Copy(_L("AddNewAccesspoint 4\n"));
WriteLogFile(LogText);
#endif
TInt error = view->PutRecordChanges();
#ifdef __LOGME__
LogText.Copy(_L("AddNewAccesspoint 5\n"));
WriteLogFile(LogText);
#endif
CleanupStack::PopAndDestroy(2); // view, db
delete view;
view = NULL;
delete db;
db = NULL;
#ifdef __LOGME__
LogText.Copy(_L("AddNewAccesspoint 6\n"));
WriteLogFile(LogText);
#endif
TUint32 iapId;
CCommsDatabase* db2=CCommsDatabase::NewL();
if(db2 == NULL)
User::Exit(KErrNoMemory);
CleanupStack::PushL(db2);
CCommsDbTableView* iapTable = db2->OpenTableLC(TPtrC(IAP));
if(iapTable == NULL){
CleanupStack::PopAndDestroy(); // db2
User::Exit(KErrNoMemory);
}
User::LeaveIfError(iapTable->InsertRecord(iapId)); //Start transaction
#ifdef __LOGME__
LogText.Copy(_L("AddNewAccesspoint 7\n"));
WriteLogFile(LogText);
#endif
iapTable->WriteTextL(TPtrC(COMMDB_NAME),KIAPName);
//iapTable->WriteTextL(TPtrC(COMMDB_NAME),KSettingAPN);
iapTable->WriteTextL(TPtrC(IAP_SERVICE_TYPE), TPtrC(OUTGOING_GPRS));
//iapTable->WriteUintL(TPtrC(IAP_SERVICE), iServiceId);
iapTable->WriteUintL(TPtrC(IAP_SERVICE), gprsId);
#ifdef __LOGME__
LogText.Copy(_L("AddNewAccesspoint 8\n"));
WriteLogFile(LogText);
#endif
User::LeaveIfError(iapTable->PutRecordChanges()); //Submit transaction
CleanupStack::PopAndDestroy(2); // iapTable, db2
Forum posts: 42
that's the way I have done it (2 years ago
Maybe the code helps you.
void CApDataHandler::AccessPointDataL( TUint32 aUid, CApAccessPointItem& aApItem )
{
CCommsDbTableView* tableIAP = iDb->OpenViewMatchingUintLC(TPtrC(IAP),TPtrC(COMMDB_ID),aUid);
User::LeaveIfError(tableIAP->GotoFirstRecord());
HBufC* CommDBName = HBufC::NewLC(KCommsDbSvrMaxFieldLength);
TPtr CommDBNamePtr(CommDBName->Des());
tableIAP->ReadTextL(TPtrC(COMMDB_NAME), CommDBNamePtr);
aApItem.SetNamesL(*CommDBName);
CleanupStack::PopAndDestroy(CommDBName);
HBufC* IapServiceType = HBufC::NewLC(KCommsDbSvrMaxFieldLength);
TPtr IapServiceTypePtr(IapServiceType->Des());
tableIAP->ReadTextL(TPtrC(IAP_SERVICE_TYPE),IapServiceTypePtr);
aApItem.WriteTextL(EApIapServiceType,*IapServiceType);
//Set BearerType
if (*IapServiceType==TPtrC(OUTGOING_GPRS))
{
aApItem.SetBearerTypeL(EApBearerTypeGPRS);
}
else
{//TODO make a choise if CSD or HSCSD
aApItem.SetBearerTypeL(EApBearerTypeCSD);
}
TUint32 IapServiceId(0);
tableIAP->ReadUintL(TPtrC(IAP_SERVICE),IapServiceId);
aApItem.WriteUint(EApIapServiceId,IapServiceId);
CleanupStack::PopAndDestroy(IapServiceType);
#ifdef __PROXY_SETTINGS
//TODO Nach readProxyData auslagern!
//Proxysetting check
HBufC* SqlQuery = HBufC::NewLC(100); //Max 100 unicode chars
TPtr SqlQueryPtr(SqlQuery->Des());
SqlQueryPtr.AppendFormat(_L("select * from %S "),&TPtrC(PROXIES));
SqlQueryPtr.AppendFormat(_L("where %S=%u "),&TPtrC(PROXY_ISP),IapServiceId);
if (aApItem.BearerTypeL()==EApBearerTypeGPRS)
{
SqlQueryPtr.AppendFormat(_L("and %S='%S' "),&TPtrC(PROXY_SERVICE_TYPE),&TPtrC(OUTGOING_GPRS));
}
else
{
SqlQueryPtr.AppendFormat(_L("and %S='%S' "),&TPtrC(PROXY_SERVICE_TYPE),&TPtrC(DIAL_OUT_ISP));
}
CCommsDbTableView* tablePROXIES = iDb->OpenViewLC(TPtrC(PROXIES),*SqlQuery);
if (tablePROXIES->GotoFirstRecord()==KErrNone)
{
aApItem.SetProxyFlag();
//TODO Felder in ApItem füllen
}
CleanupStack::PopAndDestroy(tablePROXIES);
CleanupStack::PopAndDestroy(SqlQuery);
#endif
//Check if there's a WapAccessPoint referenz to the IAP
//Table: WAP_IP_BEARER
CCommsDbTableView* tableWapIpBearer = iDb->OpenViewMatchingUintLC(TPtrC(WAP_IP_BEARER),TPtrC(WAP_IAP),aUid);
if (tableWapIpBearer->GotoFirstRecord()==KErrNone)
{
TUint32 WapAccessPointId(0);
tableWapIpBearer->ReadUintL(TPtrC(WAP_ACCESS_POINT_ID),WapAccessPointId);
aApItem.WriteUint(EApWapAccessPointID,WapAccessPointId);
//TODO Felder in ApItem füllen
}
CleanupStack::PopAndDestroy(tableWapIpBearer);
CleanupStack::PopAndDestroy(tableIAP);
}
//////////////////////////
void CApDataHandler::RemoveAPL( TUint32 aUid )
{
CCommsDbTableView* tableIAP = iDb->OpenViewMatchingUintLC(TPtrC(IAP),TPtrC(COMMDB_ID),aUid);
CApAccessPointItem* ApItem = new(ELeave)CApAccessPointItem();
CleanupStack::PushL(ApItem);
AccessPointDataL(aUid,*ApItem);
//Now we start with our remove logic
iDb->BeginTransaction();
User::LeaveIfError(tableIAP->GotoFirstRecord());
User::LeaveIfError(tableIAP->DeleteRecord());
// IAP-Table auslesen ob DIAL_OUT oder GPRS
TUint32 IapServiceId(0);
ApItem->ReadUint(EApIapServiceId,IapServiceId);
CCommsDbTableView* tableIapService;
if (ApItem->BearerTypeL()==EApBearerTypeGPRS)
{
tableIapService = iDb->OpenViewMatchingUintLC(TPtrC(OUTGOING_GPRS),TPtrC(COMMDB_ID),IapServiceId);
}
else
{
tableIapService = iDb->OpenViewMatchingUintLC(TPtrC(DIAL_OUT_ISP),TPtrC(COMMDB_ID),IapServiceId);
}
User::LeaveIfError(tableIapService->GotoFirstRecord());
User::LeaveIfError(tableIapService->DeleteRecord());
CleanupStack::PopAndDestroy(tableIapService);
#ifdef __PROXY_SETTINGS
// Prüfen, ob zu COMMDB_ID ein Eintrag in PROXIES ist
if (ApItem->HasProxy())
{
HBufC* SqlQuery = HBufC::NewLC(100); //Max 100 unicode chars
TPtr SqlQueryPtr(SqlQuery->Des());
SqlQueryPtr.AppendFormat(_L("select * from %S "),&TPtrC(PROXIES));
SqlQueryPtr.AppendFormat(_L("where %S=%u "),&TPtrC(PROXY_ISP),IapServiceId);
if (ApItem->BearerTypeL()==EApBearerTypeGPRS)
{
SqlQueryPtr.AppendFormat(_L("and %S='%S' "),&TPtrC(PROXY_SERVICE_TYPE),&TPtrC(OUTGOING_GPRS));
}
else
{
SqlQueryPtr.AppendFormat(_L("and %S='%S' "),&TPtrC(PROXY_SERVICE_TYPE),&TPtrC(DIAL_OUT_ISP));
}
CCommsDbTableView* tablePROXIES = iDb->OpenViewLC(TPtrC(PROXIES),*SqlQuery);
TInt err(0);
err = tablePROXIES->GotoFirstRecord();
err = tablePROXIES->DeleteRecord();
CleanupStack::PopAndDestroy(tablePROXIES);
CleanupStack::PopAndDestroy(SqlQuery);
}
#endif
//Check if there's a WapAccessPoint referenz to the IAP
if (ApItem->WapUid()>0)
{
//Table: WAP_IP_BEARER
CCommsDbTableView* tableWapIpBearer = iDb->OpenViewMatchingUintLC(TPtrC(WAP_IP_BEARER),TPtrC(WAP_ACCESS_POINT_ID),ApItem->WapUid());
User::LeaveIfError(tableWapIpBearer->GotoFirstRecord());
User::LeaveIfError(tableWapIpBearer->DeleteRecord());
CleanupStack::PopAndDestroy(tableWapIpBearer);
//Table: WAP_ACCESS_POINT
CCommsDbTableView* tableWapAccessPoint = iDb->OpenViewMatchingUintLC(TPtrC(WAP_ACCESS_POINT),TPtrC(COMMDB_ID),ApItem->WapUid());
User::LeaveIfError(tableWapAccessPoint->GotoFirstRecord());
User::LeaveIfError(tableWapAccessPoint->DeleteRecord());
CleanupStack::PopAndDestroy(tableWapAccessPoint);
}
iDb->CommitTransaction();
CleanupStack::PopAndDestroy(ApItem);
CleanupStack::PopAndDestroy(tableIAP);
}
Tobias
www.OutBank.de
Tobias.Stoeger