telephonyserver/etelmultimode/DTsy/mmtsymessaging.cpp
branchopencode
changeset 77 930a53cdc2d3
parent 24 6638e7f4bd8f
child 78 d4cfc65049ba
--- a/telephonyserver/etelmultimode/DTsy/mmtsymessaging.cpp	Fri Jun 04 13:03:15 2010 +0100
+++ b/telephonyserver/etelmultimode/DTsy/mmtsymessaging.cpp	Thu Oct 07 19:32:01 2010 +0300
@@ -1571,6 +1571,7 @@
 	case EMobileUssdMessagingSendMessage:
 	case EMobileUssdMessagingSendMessageNoFdnCheck:
 	case EMobileUssdMessagingSendRelease:
+	case EMobileUssdMessagingSendMessageDefaultHandler:
 		ret=KReqModeFlowControlObeyed;
 		break;
 
@@ -1589,6 +1590,7 @@
 	case EMobileUssdMessagingSendMessageNoFdnCheckCancel:
 	case EMobileUssdMessagingSendReleaseCancel:
 	case EMobileUssdMessagingNotifyNetworkReleaseCancel:
+	case EMobileUssdMessagingSendMessageDefaultHandlerCancel:
 	default:
 		User::Leave(KErrNotSupported);
 		break;
@@ -1662,7 +1664,8 @@
 
 	case EMobileUssdMessagingSendMessage:
 		return SendMessage(aTsyReqHandle, aPackage.Des1n(), aPackage.Des2n());
-
+	case EMobileUssdMessagingSendMessageDefaultHandler: 
+		return SendMessageDefaultHandler(aTsyReqHandle, aPackage.Des1n(), aPackage.Des2n());
 	case EMobileUssdMessagingSendMessageNoFdnCheck:
 		return SendMessageNoFdnCheck(aTsyReqHandle, aPackage.Des1n(), aPackage.Des2n());
 
@@ -1688,6 +1691,7 @@
 	case EMobileUssdMessagingReceiveMessageCancel:
 		return ReceiveMessageCancel(aTsyReqHandle);
 	case EMobileUssdMessagingSendMessageCancel:
+	case EMobileUssdMessagingSendMessageDefaultHandlerCancel: 
 		return SendMessageCancel(aTsyReqHandle);
 	case EMobileUssdMessagingSendMessageNoFdnCheckCancel:
 		return SendMessageNoFdnCheckCancel(aTsyReqHandle);
@@ -1708,7 +1712,9 @@
 		{
 	case EMobileUssdMessagingReceiveMessage:
 		return ReceiveMessageCancel(aTsyReqHandle);
-	case EMobileUssdMessagingSendMessage:
+	case EMobileUssdMessagingSendMessageDefaultHandler: 
+		return SendMessageCancelDefaultHandler(aTsyReqHandle);
+	case EMobileUssdMessagingSendMessage:	
 		return SendMessageCancel(aTsyReqHandle);
 	case EMobileUssdMessagingSendMessageNoFdnCheck:
 		return SendMessageNoFdnCheckCancel(aTsyReqHandle);
@@ -1766,8 +1772,24 @@
 	LOGTEXT(_L8("CUssdMessagingDMmTsy::SendMessage called"));
 	RMobileUssdMessaging::TMobileUssdAttributesV1Pckg* attsPckg = REINTERPRET_CAST(RMobileUssdMessaging::TMobileUssdAttributesV1Pckg*,aMsgAttributes);
 	RMobileUssdMessaging::TMobileUssdAttributesV1& atts = (*attsPckg)();
-	if ((aMsgData->Compare(DMMTSY_USSD_MESSAGE_PDU) != 0) ||
-		atts.iFlags != DMMTSY_USSD_ATTRIBUTE_FLAGS || 
+		
+	if (atts.iFlags != DMMTSY_USSD_ATTRIBUTE_FLAGS || 
+		atts.iFormat != DMMTSY_USSD_ATTRIBUTE_FORMAT ||
+		atts.iType != DMMTSY_USSD_ATTRIBUTE_TYPE ||
+		atts.iDcs != DMMTSY_USSD_ATTRIBUTE_DCS)
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	else
+		iPhone->AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+
+TInt CUssdMessagingDMmTsy::SendMessageDefaultHandler(const TTsyReqHandle aTsyReqHandle, TDesC8* aMsgData, TDesC8* aMsgAttributes)
+	{
+	LOGTEXT(_L8("CUssdMessagingDMmTsy::SendMessage called"));
+	RMobileUssdMessaging::TMobileUssdAttributesV1Pckg* attsPckg = REINTERPRET_CAST(RMobileUssdMessaging::TMobileUssdAttributesV1Pckg*,aMsgAttributes);
+	RMobileUssdMessaging::TMobileUssdAttributesV1& atts = (*attsPckg)();
+		
+	if (atts.iFlags != DMMTSY_USSD_ATTRIBUTE_FLAGS || 
 		atts.iFormat != DMMTSY_USSD_ATTRIBUTE_FORMAT ||
 		atts.iType != DMMTSY_USSD_ATTRIBUTE_TYPE ||
 		atts.iDcs != DMMTSY_USSD_ATTRIBUTE_DCS)
@@ -1784,7 +1806,13 @@
 	ReqCompleted(aTsyReqHandle,KErrCancel);
 	return KErrNone;
 	}
-
+TInt CUssdMessagingDMmTsy::SendMessageCancelDefaultHandler(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CUssdMessagingDMmTsy::SendMessageCancelDefaultHandler called"));
+	iPhone->RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
 TInt CUssdMessagingDMmTsy::SendMessageNoFdnCheck(const TTsyReqHandle aTsyReqHandle, TDesC8* aMsgData, TDesC8* aMsgAttributes)
 	/**
 	* This method sends an outgoing SMS to the network. The number used for sending the SMS