/*******************************************************************************/ /* */ /* Ловушка события трансфера звонка */ 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 ; }
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 ; } }
void iOnRetrievedEvent(object sender, ThirdPartyCallController.RetrievedEventArgs e) { iLog("CALL - RetrievedEvent " + e.getMonitorId); iLogAndWait("\nUNHANDLED"); }
void iOnServiceInitiatedEvent(object sender, ThirdPartyCallController.ServiceInitiatedEventArgs e) { iLog("CALL - ServiceInitiatedEvent " + e.getMonitorId); iLogAndWait("\nUNHANDLED"); }
/*******************************************************************************/ /* */ /* Ловушка события выполнения звонка 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 ; }
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" ; } }
/*******************************************************************************/ /* */ /* Ловушка события запроса идентификатора 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 ; }
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 ; } } }
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" ; }
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 ; } }
/*******************************************************************************/ /* */ /* Ловушки событий мониторинга звонка 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" ; } }