Hi!
I have problems sending SUBSCRIBE for presence..
Following code is executed ok, but nothing is received at the server end. Can someone help me by pointing the problem?
CSIPMessageElements* msgElem = CSIPMessageElements::NewL();
CleanupStack::PushL( msgElem );
//Get the current connection
CSIPConnection& conn = ConnectionL();
// Create user header array
RPointerArray<CSIPHeaderBase>* userHeadersArr = new(ELeave)RPointerArray<CSIPHeaderBase>;
CleanupStack::PushL( userHeadersArr );
// Create Expires Header
CSIPExpiresHeader* expiresHdr = new (ELeave)CSIPExpiresHeader(60);
CleanupStack::PushL( expiresHdr );
userHeadersArr->Append(expiresHdr);
CleanupStack::Pop( expiresHdr );
// Set the User Headers
msgElem->SetUserHeadersL(*userHeadersArr);
CleanupStack::Pop( userHeadersArr );
//Create Event Header
CSIPEventHeader* eventHdr = CSIPEventHeader::NewL(_L8("PRESENCE"));
CleanupStack::PushL( eventHdr );
userHeadersArr->Append(eventHdr);
// create an object for refresh
CSIPRefresh* iRefresh = CSIPRefresh::NewL();
CleanupStack::PushL( iRefresh );
//Getting sip username (AOR)
const TDesC8* aor = NULL;
iProfile->GetParameter( KSIPUserAor, aor );
//Creating and setting "to" header
CSIPAddress* toAddress =CSIPAddress:ecodeL(*aor);
CleanupStack::PushL(toAddress);
CSIPToHeader* toHeader = CSIPToHeader::NewL(toAddress);
CleanupStack::Pop(toAddress);
CleanupStack::PushL(toHeader);
//Creating and setting "from" header
CSIPAddress* addr = CSIPAddress:ecodeL( *aor );
CleanupStack::PushL( addr );
CSIPFromHeader* fromHeader = CSIPFromHeader::NewL( addr );
CleanupStack::Pop( addr );
CleanupStack::PushL(fromHeader);
TBuf8<128> contact;
_LIT8(kat,"@");
_LIT8(klocal, "@LOCALHOST");
TInt iNameEnd = aor->Find(kat);
contact.Copy(aor->Ptr(), iNameEnd);
contact.Append(klocal);
CSIPContactHeader* contactHeader = CSIPContactHeader::NewL(CSIPAddress:ecodeL(contact));
CleanupStack::PushL(contactHeader);
CUri8* uri8 = ConvertToUri8LC( *aor );
// create an object for CSIPSubscribeAssoc
iSubscribeDialogAssoc = CSIPSubscribeDialogAssoc::NewL
(conn, fromHeader, uri8, eventHdr, toHeader, contactHeader);
CleanupStack::Pop( ); //uri 8
CleanupStack::Pop( contactHeader );
CleanupStack::Pop( fromHeader );
CleanupStack::Pop( toHeader );
delete iClientTx;
TRAPD(err,iClientTx = iSubscribeDialogAssoc->SendSubscribeL
(msgElem, iRefresh));
if(err!=KErrNone)
{
User::Leave(err);
}
CleanupStack::Pop( iRefresh );
CleanupStack::Pop( eventHdr );
CleanupStack::Pop( msgElem );
Thank you!
Teemu

ecodeL(*aor);


