--- a/mmserv/tms/tmscallserver/src/tmscallsession.cpp Tue Feb 02 01:08:46 2010 +0200
+++ b/mmserv/tms/tmscallserver/src/tmscallsession.cpp Fri Apr 16 15:29:42 2010 +0300
@@ -224,6 +224,15 @@
case TMS_ROUTING_AVAILABLE_OUTPUT_GET:
HandleRoutingGetAvailableOutputsL(aMessage);
break;
+ case TMS_DTMF_START:
+ HandleDTMFStart(aMessage);
+ break;
+ case TMS_DTMF_STOP:
+ HandleDTMFStop(aMessage);
+ break;
+ case TMS_DTMF_CONTINUE:
+ HandleDTMFContinue(aMessage);
+ break;
default:
User::Leave(TMS_RESULT_ILLEGAL_OPERATION);
break;
@@ -244,7 +253,7 @@
{
// Get Call type
gint callType = aMessage.Int0();
- status = CallAdpt::CreateCallL(callType, iCallAdpt);
+ status = TMSCallAdpt::CreateCallL(callType, iCallAdpt);
}
aMessage.Complete(status);
TRACE_PRN_FN_EXT;
@@ -1109,4 +1118,68 @@
aMessage.Complete(status);
}
+void TMSCallSession::HandleDTMFStart(const RMessage2& aMessage)
+ {
+ TRACE_PRN_FN_ENT;
+ gint status(TMS_RESULT_DOES_NOT_EXIST);
+
+ if (iCallAdpt)
+ {
+ TMSStreamType strmtype;
+ gint len = 0;
+ strmtype = (TMSStreamType) aMessage.Int0();
+ len = aMessage.GetDesLength(1);
+ HBufC* tone(NULL);
+ if (len > 0)
+ {
+ delete tone;
+ tone = NULL;
+ TRAP(status,tone = HBufC::NewL(len));
+ if (status == KErrNone)
+ {
+ TPtr ptr = tone->Des();
+ status = aMessage.Read(1, ptr);
+ TRACE_PRN_N(ptr);
+ if (status == KErrNone)
+ {
+ status = iCallAdpt->StartDTMF(strmtype, ptr);
+ }
+ }
+ delete tone;
+ tone = NULL;
+ }
+ }
+
+ aMessage.Complete(status);
+ TRACE_PRN_FN_EXT;
+ }
+
+void TMSCallSession::HandleDTMFStop(const RMessage2& aMessage)
+ {
+ TRACE_PRN_FN_ENT;
+ gint status(TMS_RESULT_DOES_NOT_EXIST);
+ if (iCallAdpt)
+ {
+ TMSStreamType streamtype;
+ streamtype = (TMSStreamType) aMessage.Int0();
+ status = iCallAdpt->StopDTMF(streamtype);
+ }
+ aMessage.Complete(status);
+ TRACE_PRN_FN_EXT;
+ }
+
+void TMSCallSession::HandleDTMFContinue(const RMessage2& aMessage)
+ {
+ TRACE_PRN_FN_ENT;
+ gint status(TMS_RESULT_DOES_NOT_EXIST);
+ if (iCallAdpt)
+ {
+ TBool continuesending;
+ continuesending = (TBool) aMessage.Int0();
+ status = iCallAdpt->ContinueDTMF(continuesending);
+ }
+ aMessage.Complete(status);
+ TRACE_PRN_FN_EXT;
+ }
+
// End of file