mmserv/tms/tmscallserver/src/tmscallsession.cpp
changeset 55 e267340986c9
parent 42 1fa3fb47b1e3
--- a/mmserv/tms/tmscallserver/src/tmscallsession.cpp	Fri Sep 17 08:33:15 2010 +0300
+++ b/mmserv/tms/tmscallserver/src/tmscallsession.cpp	Mon Oct 04 00:51:56 2010 +0300
@@ -21,6 +21,8 @@
 #include "tmscallserver.h"
 #include "tmscallclisrv.h"
 #include "tmscallsession.h"
+#include "tmscallipadpt.h"
+#include "tmscallcsadpt.h"
 
 using namespace TMS;
 
@@ -103,6 +105,12 @@
 void TMSCallSession::HandleMessageL(const RMessage2& aMessage)
     {
     TRACE_PRN_FN_ENT;
+
+     if(iCallAdpt)
+         {
+         iCallAdpt->GetCallType(iActiveCallType);
+         }
+
     switch (aMessage.Function())
         {
         case TMS_CREATE_CALL:
@@ -228,6 +236,10 @@
         case TMS_GET_ACTIVE_CALL_PARAMS:
             HandleGetActiveCallL(aMessage);
             break;
+        case TMS_TERM_CALL_SRV:
+            aMessage.Complete(TMS_RESULT_SUCCESS);
+            iTMSCallServer.TerminateServer();
+            break;
         default:
             User::Leave(TMS_RESULT_ILLEGAL_OPERATION);
             break;
@@ -294,22 +306,28 @@
         TMSCliSrvStreamInitDataStructBufPckg pckg;
         aMessage.ReadL(0, pckg);
         status = iCallAdpt->InitStream(pckg().CallType, pckg().StreamType,
-                pckg().StreamId, pckg().FormatType, pckg().RetryTime, aMessage);
+                pckg().StreamId, pckg().FormatType, pckg().RetryTime,
+                aMessage);
 
-        switch (pckg().StreamType)
+        if (iActiveCallType == TMS_CALL_CS)
             {
-            case TMS_STREAM_DOWNLINK:
+            switch (pckg().StreamType)
                 {
-                iCallAdpt->SetGlobalVolume(iGlobalVol);
+                case TMS_STREAM_DOWNLINK:
+                    {
+                    static_cast<TMSCallCSAdpt*> (iCallAdpt)->SetGlobalVolume(
+                            iGlobalVol);
+                    }
+                    break;
+                case TMS_STREAM_UPLINK:
+                    {
+                    static_cast<TMSCallCSAdpt*> (iCallAdpt)->SetGlobalGain(
+                            iGlobalGain);
+                    }
+                    break;
+                default:
+                    break;
                 }
-                break;
-            case TMS_STREAM_UPLINK:
-                {
-                iCallAdpt->SetGlobalGain(iGlobalGain);
-                }
-                break;
-            default:
-                break;
             }
         }
     aMessage.Complete(status);
@@ -440,12 +458,12 @@
     {
     TRACE_PRN_FN_ENT;
     gint status(TMS_RESULT_DOES_NOT_EXIST);
-    if (iCallAdpt)
+    if (iCallAdpt && (iActiveCallType == TMS_CALL_IP))
         {
         TMSCliSrvDataXferDataStructBufPckg pckg;
         aMessage.ReadL(0, pckg);
-        status = iCallAdpt->DataXferBufferEmptied(pckg().CallType,
-                pckg().StreamType, pckg().StreamId);
+        status = static_cast<TMSCallIPAdpt*>(iCallAdpt)->DataXferBufferEmptied(
+                pckg().CallType, pckg().StreamType, pckg().StreamId);
         }
     aMessage.Complete(status);
     TRACE_PRN_FN_EXT;
@@ -460,12 +478,13 @@
     {
     TRACE_PRN_FN_ENT;
     gint status(TMS_RESULT_DOES_NOT_EXIST);
-    if (iCallAdpt)
+    if (iCallAdpt && (iActiveCallType == TMS_CALL_IP))
         {
         TMSCliSrvDataXferDataStructBufPckg pckg;
         aMessage.ReadL(0, pckg);
-        status = iCallAdpt->DataXferBufferFilled(pckg().CallType,
-                pckg().StreamType, pckg().StreamId, pckg().DataSize);
+        status = static_cast<TMSCallIPAdpt*>(iCallAdpt)->DataXferBufferFilled(
+                pckg().CallType, pckg().StreamType, pckg().StreamId,
+                pckg().DataSize);
         }
     aMessage.Complete(status);
     TRACE_PRN_FN_EXT;
@@ -483,12 +502,13 @@
     gint status(TMS_RESULT_DOES_NOT_EXIST);
     RChunk chunk;
 
-    if (iCallAdpt)
+    if (iCallAdpt &&(iActiveCallType == TMS_CALL_IP))
         {
         TMSCliSrvDataXferChunkHndlDataStructBufPckg pckg;
         aMessage.ReadL(0, pckg);
-        status = iCallAdpt->GetDataXferBufferHndl(pckg().CallType,
-                pckg().StreamType, pckg().StreamId, pckg().Key, chunk);
+        status = static_cast<TMSCallIPAdpt*>(iCallAdpt)->GetDataXferBufferHndl(
+                pckg().CallType, pckg().StreamType, pckg().StreamId,
+                pckg().Key, chunk);
         }
 
     if (status == TMS_RESULT_SUCCESS && chunk.Handle() > 0)
@@ -513,10 +533,10 @@
     {
     TRACE_PRN_FN_ENT;
     gint status(TMS_RESULT_DOES_NOT_EXIST);
-    if (iCallAdpt)
+    if (iCallAdpt && (iActiveCallType == TMS_CALL_IP))
         {
         guint vol;
-        status = iCallAdpt->GetMaxVolume(vol);
+        status = static_cast<TMSCallIPAdpt*> (iCallAdpt)->GetMaxVolume(vol);
         if (status == TMS_RESULT_SUCCESS)
             {
             TPckgBuf<guint> pckg(vol);
@@ -536,11 +556,11 @@
     {
     TRACE_PRN_FN_ENT;
     gint status(TMS_RESULT_DOES_NOT_EXIST);
-    if (iCallAdpt)
+    if (iCallAdpt && (iActiveCallType == TMS_CALL_IP))
         {
         guint vol;
         vol = aMessage.Int0();
-        status = iCallAdpt->SetVolume(vol);
+        status = static_cast<TMSCallIPAdpt*> (iCallAdpt)->SetVolume(vol);
         }
     aMessage.Complete(status);
     TRACE_PRN_FN_EXT;
@@ -555,10 +575,10 @@
     {
     TRACE_PRN_FN_ENT;
     gint status(TMS_RESULT_DOES_NOT_EXIST);
-    if (iCallAdpt)
+    if (iCallAdpt && (iActiveCallType == TMS_CALL_IP))
         {
         guint vol;
-        status = iCallAdpt->GetVolume(vol);
+        status = static_cast<TMSCallIPAdpt*> (iCallAdpt)->GetVolume(vol);
         if (status == TMS_RESULT_SUCCESS)
             {
             TPckgBuf<guint> pckg(vol);
@@ -578,10 +598,10 @@
     {
     TRACE_PRN_FN_ENT;
     gint status(TMS_RESULT_DOES_NOT_EXIST);
-    if (iCallAdpt)
+    if (iCallAdpt && (iActiveCallType == TMS_CALL_IP))
         {
         guint gain;
-        status = iCallAdpt->GetMaxGain(gain);
+        status = static_cast<TMSCallIPAdpt*> (iCallAdpt)->GetMaxGain(gain);
         if (status == TMS_RESULT_SUCCESS)
             {
             TPckgBuf<guint> pckg(gain);
@@ -601,11 +621,11 @@
     {
     TRACE_PRN_FN_ENT;
     gint status(TMS_RESULT_DOES_NOT_EXIST);
-    if (iCallAdpt)
+    if (iCallAdpt && (iActiveCallType == TMS_CALL_IP))
         {
         guint gain;
         gain = aMessage.Int0();
-        status = iCallAdpt->SetGain(gain);
+        status = static_cast<TMSCallIPAdpt*> (iCallAdpt)->SetGain(gain);
         }
     aMessage.Complete(status);
     TRACE_PRN_FN_EXT;
@@ -620,10 +640,10 @@
     {
     TRACE_PRN_FN_ENT;
     gint status(TMS_RESULT_DOES_NOT_EXIST);
-    if (iCallAdpt)
+    if (iCallAdpt && (iActiveCallType == TMS_CALL_IP))
         {
         guint gain;
-        status = iCallAdpt->GetGain(gain);
+        status = static_cast<TMSCallIPAdpt*> (iCallAdpt)->GetGain(gain);
         if (status == TMS_RESULT_SUCCESS)
             {
             TPckgBuf<guint> pckg(gain);
@@ -644,10 +664,11 @@
     {
     TRACE_PRN_FN_ENT;
     gint status(TMS_RESULT_DOES_NOT_EXIST);
-    if (iCallAdpt)
+    if (iCallAdpt && (iActiveCallType == TMS_CALL_CS))
         {
         guint vol(0);
-        status = iCallAdpt->GetGlobalMaxVolume(vol);
+        status = static_cast<TMSCallCSAdpt*>(iCallAdpt)->GetGlobalMaxVolume(
+                vol);
         if (status == TMS_RESULT_SUCCESS)
             {
             TPckgBuf<guint> pckg(vol);
@@ -666,11 +687,12 @@
 void TMSCallSession::HandleGlobalEffectVolumeSetVolL(const RMessage2& aMessage)
     {
     TRACE_PRN_FN_ENT;
-    gint status(TMS_RESULT_SUCCESS);
+    gint status(TMS_RESULT_DOES_NOT_EXIST);
     iGlobalVol = aMessage.Int0();
-    if (iCallAdpt)
+    if (iCallAdpt && (iActiveCallType == TMS_CALL_CS))
         {
-        status = iCallAdpt->SetGlobalVolume(iGlobalVol);
+        status = static_cast<TMSCallCSAdpt*>(iCallAdpt)->SetGlobalVolume(
+                iGlobalVol);
         }
     aMessage.Complete(status);
     TRACE_PRN_FN_EXT;
@@ -685,10 +707,10 @@
     {
     TRACE_PRN_FN_ENT;
     gint status(TMS_RESULT_DOES_NOT_EXIST);
-    if (iCallAdpt)
+    if (iCallAdpt && (iActiveCallType == TMS_CALL_CS))
         {
         guint vol(0);
-        status = iCallAdpt->GetGlobalVolume(vol);
+        status = static_cast<TMSCallCSAdpt*>(iCallAdpt)->GetGlobalVolume(vol);
         if (status == TMS_RESULT_SUCCESS)
             {
             TPckgBuf<guint> pckg(vol);
@@ -709,10 +731,11 @@
     {
     TRACE_PRN_FN_ENT;
     gint status(TMS_RESULT_DOES_NOT_EXIST);
-    if (iCallAdpt)
+    if (iCallAdpt && (iActiveCallType == TMS_CALL_CS))
         {
         guint gain;
-        status = iCallAdpt->GetGlobalMaxGain(gain);
+        status = static_cast<TMSCallCSAdpt*>(iCallAdpt)->GetGlobalMaxGain(
+                gain);
         if (status == TMS_RESULT_SUCCESS)
             {
             TPckgBuf<guint> pckg(gain);
@@ -732,11 +755,12 @@
         const RMessage2& aMessage)
     {
     TRACE_PRN_FN_ENT;
-    gint status(TMS_RESULT_SUCCESS);
+    gint status(TMS_RESULT_DOES_NOT_EXIST);
     iGlobalGain = aMessage.Int0();
-    if (iCallAdpt)
+    if (iCallAdpt && (iActiveCallType == TMS_CALL_CS))
         {
-        status = iCallAdpt->SetGlobalGain(iGlobalGain);
+        status = static_cast<TMSCallCSAdpt*>(iCallAdpt)->SetGlobalGain(
+                iGlobalGain);
         }
     aMessage.Complete(status);
     TRACE_PRN_FN_EXT;
@@ -752,10 +776,10 @@
     {
     TRACE_PRN_FN_ENT;
     gint status(TMS_RESULT_DOES_NOT_EXIST);
-    if (iCallAdpt)
+    if (iCallAdpt && (iActiveCallType == TMS_CALL_CS))
         {
         guint gain;
-        status = iCallAdpt->GetGlobalGain(gain);
+        status = static_cast<TMSCallCSAdpt*>(iCallAdpt)->GetGlobalGain(gain);
         if (status == TMS_RESULT_SUCCESS)
             {
             TPckgBuf<guint> pckg(gain);
@@ -776,14 +800,15 @@
     TRACE_PRN_FN_ENT;
     gint status(TMS_RESULT_DOES_NOT_EXIST);
 
-    if (iCallAdpt)
+    if (iCallAdpt && (iActiveCallType == TMS_CALL_IP))
         {
         gint mode;
         TMSFormatType fmttype;
         TMSStreamType strmtype;
         fmttype = aMessage.Int0();
         strmtype = aMessage.Int1();
-        status = iCallAdpt->GetCodecMode(fmttype, strmtype, mode);
+        status = static_cast<TMSCallIPAdpt*>(iCallAdpt)->GetCodecMode(fmttype,
+                strmtype, mode);
         TPckgBuf<gint> pckg(mode);
         aMessage.WriteL(2, pckg);
         }
@@ -800,7 +825,7 @@
     {
     TRACE_PRN_FN_ENT;
     gint status(TMS_RESULT_DOES_NOT_EXIST);
-    if (iCallAdpt)
+    if (iCallAdpt && (iActiveCallType == TMS_CALL_IP))
         {
         gint mode;
         TMSFormatType fmttype;
@@ -808,7 +833,8 @@
         fmttype = aMessage.Int0();
         strmtype = aMessage.Int1();
         mode = aMessage.Int2();
-        status = iCallAdpt->SetCodecMode(fmttype, strmtype, mode);
+        status = static_cast<TMSCallIPAdpt*>(iCallAdpt)->SetCodecMode(fmttype,
+                strmtype, mode);
         }
     aMessage.Complete(status);
     TRACE_PRN_FN_EXT;
@@ -824,10 +850,11 @@
     {
     TRACE_PRN_FN_ENT;
     gint status(TMS_RESULT_DOES_NOT_EXIST);
-    if (iCallAdpt)
+    if (iCallAdpt && (iActiveCallType == TMS_CALL_IP))
         {
         guint count;
-        status = iCallAdpt->GetSupportedBitRatesCount(count);
+        status = static_cast<TMSCallIPAdpt*>
+                (iCallAdpt)->GetSupportedBitRatesCount(count);
         TPckgBuf<guint> pckg(count);
         aMessage.WriteL(0, pckg);
         }
@@ -845,11 +872,12 @@
     {
     TRACE_PRN_FN_ENT;
     gint status(TMS_RESULT_DOES_NOT_EXIST);
-    if (iCallAdpt)
+    if (iCallAdpt && (iActiveCallType == TMS_CALL_IP))
         {
         CBufFlat* brbuf = CBufFlat::NewL(KArrayExpandSize);
         CleanupStack::PushL(brbuf);
-        status = iCallAdpt->GetSupportedBitRates(brbuf);
+        status = static_cast<TMSCallIPAdpt*>(iCallAdpt)->GetSupportedBitRates(
+                brbuf);
         aMessage.WriteL(0, brbuf->Ptr(0));
         CleanupStack::PopAndDestroy(brbuf);
         }
@@ -866,10 +894,10 @@
     {
     TRACE_PRN_FN_ENT;
     gint status(TMS_RESULT_DOES_NOT_EXIST);
-    if (iCallAdpt)
+    if (iCallAdpt && (iActiveCallType == TMS_CALL_IP))
         {
         guint bitrate;
-        status = iCallAdpt->GetBitRate(bitrate);
+        status = static_cast<TMSCallIPAdpt*>(iCallAdpt)->GetBitRate(bitrate);
         TPckgBuf<guint> pckg(bitrate);
         aMessage.WriteL(0, pckg);
         }
@@ -886,11 +914,11 @@
     {
     TRACE_PRN_FN_ENT;
     gint status(TMS_RESULT_DOES_NOT_EXIST);
-    if (iCallAdpt)
+    if (iCallAdpt && (iActiveCallType == TMS_CALL_IP))
         {
         guint bitrate;
         bitrate = aMessage.Int0();
-        status = iCallAdpt->SetBitRate(bitrate);
+        status = static_cast<TMSCallIPAdpt*>(iCallAdpt)->SetBitRate(bitrate);
         }
     aMessage.Complete(status);
     TRACE_PRN_FN_EXT;
@@ -905,12 +933,12 @@
     {
     TRACE_PRN_FN_ENT;
     gint status(TMS_RESULT_DOES_NOT_EXIST);
-    if (iCallAdpt)
+    if (iCallAdpt && (iActiveCallType == TMS_CALL_IP))
         {
         gboolean vad;
         TMSFormatType fmttype;
         fmttype = (TMSFormatType) aMessage.Int0();
-        status = iCallAdpt->GetVAD(fmttype, vad);
+        status = static_cast<TMSCallIPAdpt*>(iCallAdpt)->GetVAD(fmttype, vad);
         TPckgBuf<gboolean> pckg(vad);
         aMessage.WriteL(1, pckg);
         }
@@ -927,13 +955,13 @@
     {
     TRACE_PRN_FN_ENT;
     gint status(TMS_RESULT_DOES_NOT_EXIST);
-    if (iCallAdpt)
+    if (iCallAdpt && (iActiveCallType == TMS_CALL_IP))
         {
         gboolean vad;
         TMSFormatType fmttype;
         fmttype = (TMSFormatType) aMessage.Int0();
         vad = (gboolean) aMessage.Int1();
-        status = iCallAdpt->SetVAD(fmttype, vad);
+        status = static_cast<TMSCallIPAdpt*>(iCallAdpt)->SetVAD(fmttype, vad);
         }
     aMessage.Complete(status);
     TRACE_PRN_FN_EXT;
@@ -948,12 +976,12 @@
     {
     TRACE_PRN_FN_ENT;
     gint status(TMS_RESULT_DOES_NOT_EXIST);
-    if (iCallAdpt)
+    if (iCallAdpt && (iActiveCallType == TMS_CALL_IP))
         {
         gboolean cng;
         TMSFormatType fmttype;
         fmttype = (TMSFormatType) aMessage.Int0();
-        status = iCallAdpt->GetCNG(fmttype, cng);
+        status = static_cast<TMSCallIPAdpt*>(iCallAdpt)->GetCNG(fmttype, cng);
         TPckgBuf<gboolean> pckg(cng);
         aMessage.WriteL(1, pckg);
         }
@@ -970,13 +998,13 @@
     {
     TRACE_PRN_FN_ENT;
     gint status(TMS_RESULT_DOES_NOT_EXIST);
-    if (iCallAdpt)
+    if (iCallAdpt && (iActiveCallType == TMS_CALL_IP))
         {
         gboolean cng;
         TMSFormatType fmttype;
         fmttype = (TMSFormatType) aMessage.Int0();
         cng = (gboolean) aMessage.Int1();
-        status = iCallAdpt->SetCNG(fmttype, cng);
+        status = static_cast<TMSCallIPAdpt*>(iCallAdpt)->SetCNG(fmttype, cng);
         }
     aMessage.Complete(status);
     TRACE_PRN_FN_EXT;
@@ -991,12 +1019,12 @@
     {
     TRACE_PRN_FN_ENT;
     gint status(TMS_RESULT_DOES_NOT_EXIST);
-    if (iCallAdpt)
+    if (iCallAdpt && (iActiveCallType == TMS_CALL_IP))
         {
         gboolean plc;
         TMSFormatType fmttype;
         fmttype = (TMSFormatType) aMessage.Int0();
-        status = iCallAdpt->GetPlc(fmttype, plc);
+        status = static_cast<TMSCallIPAdpt*>(iCallAdpt)->GetPlc(fmttype, plc);
         TPckgBuf<gboolean> pckg(plc);
         aMessage.WriteL(1, pckg);
         }
@@ -1013,13 +1041,13 @@
     {
     TRACE_PRN_FN_ENT;
     gint status(TMS_RESULT_DOES_NOT_EXIST);
-    if (iCallAdpt)
+    if (iCallAdpt && (iActiveCallType == TMS_CALL_IP))
         {
         gboolean plc;
         TMSFormatType fmttype;
         fmttype = (TMSFormatType) aMessage.Int0();
         plc = (gboolean) aMessage.Int1();
-        status = iCallAdpt->SetPlc(fmttype, plc);
+        status = static_cast<TMSCallIPAdpt*>(iCallAdpt)->SetPlc(fmttype, plc);
         }
     aMessage.Complete(status);
     TRACE_PRN_FN_EXT;