示例#1
0
        /*******************************************************************************/
        /*                                                                             */
        /*                    Ловушка события трансфера звонка                         */
        void iOnTransferCallResponse(object sender, ThirdPartyCallController.TransferCallResponseArgs e)
        {
            string  Error ;
             int  i ;

            iLog("OnTransferCallResponse - check reference "+e.getInvokeId+"?"+mWaitID+"");

              if(e.getError!="")
            iLog("      Error:"+e.getError + "");

               for(i=0 ; i<mPHONES_MAX ; i++)
             if(mPhones[i]!=null)
              if(mPhones[i].InvokeId==e.getInvokeId)  break ;

               if(i>=mPHONES_MAX)  iLog("WARNING! Unexpected response!");
               else
               {
             if(e.getError!="") {
                               Error=iExtract(e.getError, "<systemResourceAvailability>", "</systemResourceAvailability>") ;
              if(Error==null)  Error="Undefined error" ;

                             mPhones[i].LastError= Error ;
                        }
             else               {
                        }
               }

             if(mWaitReply==true && e.getInvokeId==mWaitID)  mWaitReply=false ;
        }
示例#2
0
        void iOnTransferredEvent(object sender, ThirdPartyCallController.TransferredEventArgs e)
        {
            int  i ;

            iLog("CALL - TransferredEvent " + e.getMonitorId);

               for(i=0 ; i<mPHONES_MAX ; i++)
             if(mPhones[i]!=null)
              if(mPhones[i].CallMonitorId==e.getMonitorId)  break ;

               if(i>=mPHONES_MAX)  iLog("WARNING! Unexpected call event!");
               else              {
                        mPhones[i].CallStatus       ="Transfered" ;
                        mPhones[i].Events.Transfered= true ;
                     }
        }
示例#3
0
        void iOnRetrievedEvent(object sender, ThirdPartyCallController.RetrievedEventArgs e)
        {
            iLog("CALL - RetrievedEvent " + e.getMonitorId);

            iLogAndWait("\nUNHANDLED");
        }
示例#4
0
        void iOnServiceInitiatedEvent(object sender, ThirdPartyCallController.ServiceInitiatedEventArgs e)
        {
            iLog("CALL - ServiceInitiatedEvent " + e.getMonitorId);

            iLogAndWait("\nUNHANDLED");
        }
示例#5
0
        /*******************************************************************************/
        /*                                                                             */
        /*                 Ловушка события выполнения звонка 3-rd party                */
        void iOnMakeCallResponse(object sender, ThirdPartyCallController.MakeCallResponseArgs e)
        {
            string  Error ;
             int  i ;

            iLog("OnMakeCallResponse - check reference "+e.getInvokeId+"?"+mWaitID+"");

              if(e.getError!="")
            iLog("      ERROR! "+e.getError + "");

               for(i=0 ; i<mPHONES_MAX ; i++)
             if(mPhones[i]!=null)
              if(mPhones[i].InvokeId==e.getInvokeId)  break ;

               if(i>=mPHONES_MAX)  iLog("WARNING! Unexpected response!");
               else
               {
             if(e.getError!="") {
                               Error=iExtract(e.getError, "<systemResourceAvailability>", "</systemResourceAvailability>") ;
              if(Error==null)  Error="Undefined error" ;

                             mPhones[i].LastError= Error ;
                        }
             else               {

            if(mPhones[i].transfer==false) {
                             mPhones[i].ConLocalId    =e.getCallingDeviceConnectionId ;
                             mPhones[i].ConGlobalId   =e.getGloballyUniqueCallLinkageId ;
                             mPhones[i].Times.InitTime=DateTime.Now ;
                                          }
            else                          {
                             mPhones[i].ConLocalId_t  =e.getCallingDeviceConnectionId ;
                             mPhones[i].ConGlobalId_t =e.getGloballyUniqueCallLinkageId ;
                                          }
                        }
               }

             if(mWaitReply==true && e.getInvokeId==mWaitID)  mWaitReply=false ;
        }
示例#6
0
        void iOnMonitorStopEvent(object sender, ThirdPartyCallController.MonitorStopEventArgs e)
        {
            int  i ;

            iLog("OnMonitorStopEvent - "+e.getMonitorId);

               for(i=0 ; i<mPHONES_MAX ; i++)
             if(mPhones[i]!=null)
              if(mPhones[i].CallMonitorId==e.getMonitorId)  break ;

               if(i>=mPHONES_MAX)  iLog("WARNING! Unexpected monitor event!");
               else              {
                                               mPhones[i].CallStatus           ="MonitorStopped" ;
                                               mPhones[i].Events.MonitorStopped= true ;
                                               mPhones[i].CallMonitorId        = null ;
            if(mPhones[i].CallMonitorId==null &&
               mPhones[i].ConGlobalId  ==null   )  mPhones[i].CallStatus    ="ReadyForNext" ;
                     }
        }
示例#7
0
        /*******************************************************************************/
        /*                                                                             */
        /*                 Ловушка события запроса идентификатора 3-rd party           */
        void iOnGetThirdPartyDeviceIdResponse(object sender, ThirdPartyCallController.GetThirdPartyDeviceIdResponseArgs e)
        {
            string  Error ;
             int  i ;

            iLog("OnGetThirdPartyDeviceIdResponse - check reference "+e.getInvokeId+"?"+mWaitID+"");

              if(e.getError!="")
            iLog("      ERROR! "+e.getError + "");

               for(i=0 ; i<mPHONES_MAX ; i++)
             if(mPhones[i]!=null)
              if(mPhones[i].InvokeId==e.getInvokeId)  break ;

               if(i>=mPHONES_MAX)  iLog("WARNING! Unexpected response!");
               else
               {
             if(e.getError!="") {
                               Error=iExtract(e.getError, "<definedError>", "</definedError>") ;
              if(Error==null)  Error="Undefined error" ;

                             mPhones[i].LastError= Error ;
                        }
             else               {
                             mPhones[i].DeviceId_3=e.getDeviceIdAsString ;
                        }
               }

             if(mWaitReply==true && e.getInvokeId==mWaitID)  mWaitReply=false ;
        }
示例#8
0
        void iOnEstablishedEvent(object sender, ThirdPartyCallController.EstablishedEventArgs e)
        {
            int  i ;

            iLog("CALL - EstablishedEvent " + e.getMonitorId);

               for(i=0 ; i<mPHONES_MAX ; i++)
             if(mPhones[i]!=null)
              if(mPhones[i].CallMonitorId  ==e.getMonitorId ||
                 mPhones[i].CallMonitorId_t==e.getMonitorId   )  break ;

               if(i>=mPHONES_MAX)  iLog("WARNING! Unexpected call event!");
               else              {
             if(mPhones[i].CallMonitorId==e.getMonitorId) {
                                                                 mPhones[i].CallStatus        ="Established" ;
                                                                 mPhones[i].Events.Established= true ;
               if(mPhones[i].Times.ConnectTime ==DateTime.MinValue)  mPhones[i].Times.ConnectTime =DateTime.Now ;
               if(mPhones[i].Times.DeliveryTime==DateTime.MinValue)  mPhones[i].Times.DeliveryTime=DateTime.Now ;
                                                      }
             else                                         {
                                                          mPhones[i].Events.Established_t=true ;
                                                      }
                     }
        }
示例#9
0
        void iOnEnteredDigitsEvent(object sender, ThirdPartyCallController.EnteredDigitsEventArgs e)
        {
            int  i ;

            iLog("CALL - EnteredDigits " + e.getMonitorId);

               for(i=0 ; i<mPHONES_MAX ; i++)
             if(mPhones[i]!=null)
              if(mPhones[i].CallMonitorId==e.getMonitorId)  break ;

               if(i>=mPHONES_MAX)  iLog("WARNING! Unexpected call event!");
               else                mPhones[i].CallStatus="Failed" ;
        }
示例#10
0
        void iOnConnectionClearedEvent(object sender, ThirdPartyCallController.ConnectionClearedEventArgs e)
        {
            int  i ;

            iLog("CALL - ConnectionClearedEvent " + e.getMonitorId);

               for(i=0 ; i<mPHONES_MAX ; i++)
             if(mPhones[i]!=null)
              if(mPhones[i].CallMonitorId==e.getMonitorId)  break ;

               if(i>=mPHONES_MAX)   iLog("WARNING! Unexpected call event!");
               else               {
                                                           mPhones[i].CallStatus              ="ConnectionCleared" ;
                                                           mPhones[i].Events.ConnectionCleared= true ;
            if(mPhones[i].Times.ClearTime==DateTime.MinValue)  mPhones[i].Times.ClearTime         =DateTime.Now ;
                      }
        }
示例#11
0
        /*******************************************************************************/
        /*                                                                             */
        /*             Ловушки событий мониторинга звонка 3-rd party                   */
        void iOnCallClearedEvent(object sender, ThirdPartyCallController.CallClearedEventArgs e)
        {
            int  i ;

            iLog("CALL - CallClearedEvent " + e.getMonitorId);

               for(i=0 ; i<mPHONES_MAX ; i++)
             if(mPhones[i]!=null)
              if(mPhones[i].CallMonitorId==e.getMonitorId)  break ;

               if(i>=mPHONES_MAX)  iLog("WARNING! Unexpected call event!");
               else               {
                                               mPhones[i].CallStatus        ="CallCleared" ;
                                               mPhones[i].Events.CallCleared= true ;
                                               mPhones[i].ConGlobalId       = null ;
                                               mPhones[i].ConLocalId        = null ;
            if(mPhones[i].Times.ClearTime==null )  mPhones[i].Times.ClearTime   =DateTime.Now ;

            if(mPhones[i].CallMonitorId==null &&
               mPhones[i].ConGlobalId  ==null   )  mPhones[i].CallStatus        ="ReadyForNext" ;
                      }
        }