Каким образом можно отловить завершение второго звонка ?
Каким образом можно отловить завершение второго звонка ?
Что значит "второго звонка"?
Второй звонок в том смысле, что он появляется вторым во время разговора. Некоторые его называют как "Вторая линия"
Ну хоть кто-нибудь может поведать тайну работы класса СTelephony. Я могу нормально отловить событие начала и конца только одного звонка на линии, когда на появляется второй получаю событие о самом звонке о соединении но ни никак не могу определить когда завершился первый и когда второй.
Да получения событий использую следующий код:
Code:iTelephony->NotifyChange(iStatus, CTelephony::EVoiceLineStatusChange, iCallStatusV1Pckg); ... //получение информации о звонке iCallSelectionV1.iLine = CTelephony::EVoiceLine; iCallSelectionV1.iSelect = CTelephony::EInProgressCall; iErr = iTelephony->GetCallInfo(iCallSelectionV1Pckg, iCallInfoV1Pckg, iRemotePartyInfoV1Pckg);
Лог созданный с использованием класса СTelephony
как на основании этого лога можно определить когда и какой звонок завершился ?
Входящий звонок с 1111111111111
1111111111111 на удержании
исходящий звонок на 22222222222
Исходящий звонок завершен
1111111111111 снят с удержания
входящий звонок завершен
-------------------------------
Status = KErrNone
iStatus = EStatusRinging,
iRemoteIdStatus = ERemoteIdentityAvailable,
iRemoteNumber = 1111111111111,
iDirection = EMobileTerminated,
iDialledParty.iTelNumber = ,
iDuration = 0,
iCallId = -1,
iStartTime = 00:00:00 01.01.0000
-------------------------------
Status = KErrNone
iStatus = EStatusAnswering,
iRemoteIdStatus = ERemoteIdentityAvailable,
iRemoteNumber = 1111111111111,
iDirection = EMobileTerminated,
iDialledParty.iTelNumber = ,
iDuration = 0,
iCallId = -1,
iStartTime = 00:00:00 01.01.0000
-------------------------------
Status = KErrNone
iStatus = EStatusConnected,
iRemoteIdStatus = ERemoteIdentityAvailable,
iRemoteNumber = 1111111111111,
iDirection = EMobileTerminated,
iDialledParty.iTelNumber = ,
iDuration = 0,
iCallId = -1,
iStartTime = 00:00:00 01.01.0000
-------------------------------
Status = KErrNone
iStatus = EStatusHold,
iRemoteIdStatus = ERemoteIdentityUnknown,
iRemoteNumber = ,
iDirection = EMobileOriginated,
iDialledParty.iTelNumber = 22222222222,
iDuration = 0,
iCallId = -1,
iStartTime = 00:00:00 01.01.0000
-------------------------------
Status = KErrNone
iStatus = EStatusDialling,
iRemoteIdStatus = ERemoteIdentityUnknown,
iRemoteNumber = ,
iDirection = EMobileOriginated,
iDialledParty.iTelNumber = 22222222222,
iDuration = 0,
iCallId = -1,
iStartTime = 00:00:00 01.01.0000
-------------------------------
Status = KErrNone
iStatus = EStatusConnecting,
iRemoteIdStatus = ERemoteIdentityUnknown,
iRemoteNumber = ,
iDirection = EMobileOriginated,
iDialledParty.iTelNumber = 22222222222,
iDuration = 0,
iCallId = -1,
iStartTime = 00:00:00 01.01.0000
-------------------------------
Status = KErrNone
iStatus = EStatusConnected,
iRemoteIdStatus = ERemoteIdentityUnknown,
iRemoteNumber = ,
iDirection = EMobileOriginated,
iDialledParty.iTelNumber = 22222222222,
iDuration = 0,
iCallId = -1,
iStartTime = 00:00:00 01.01.0000
-------------------------------
Status = KErrNone
iStatus = EStatusHold,
iRemoteIdStatus = ERemoteIdentityUnknown,
iRemoteNumber = ,
iDirection = EMobileOriginated,
iDialledParty.iTelNumber = 22222222222,
iDuration = 8,
iCallId = -1,
iStartTime = 19:49:15 25.02.2009
-------------------------------
Status = KErrNone
iStatus = EStatusConnected,
iRemoteIdStatus = ERemoteIdentityUnknown,
iRemoteNumber = ,
iDirection = EMobileOriginated,
iDialledParty.iTelNumber = 22222222222,
iDuration = 8,
iCallId = -1,
iStartTime = 19:49:15 25.02.2009
-------------------------------
Status = KErrNone
iStatus = EStatusDisconnecting,
iRemoteIdStatus = ERemoteIdentityAvailable,
iRemoteNumber = 1111111111111,
iDirection = EMobileTerminated,
iDialledParty.iTelNumber = ,
iDuration = 67,
iCallId = -1,
iStartTime = 19:48:46 25.02.2009
-------------------------------
Status = KErrNone
iStatus = EStatusIdle,
iRemoteIdStatus = ERemoteIdentityAvailable,
iRemoteNumber = 1111111111111,
iDirection = EMobileTerminated,
iDialledParty.iTelNumber = ,
iDuration = 67,
iCallId = -1,
iStartTime = 19:48:46 25.02.2009
--------------------------------------
Вероятно с помощью СTelephony сделать это и нельзя - KIS000737 - No notification received from CTelephony for a second incoming call
Попробуйте использовать класс RMobileCall
Но проблема остается ведь функция
ловит только входящие звонки, а как быть с исходящими ?Code:void RLine::NotifyIncomingCall( TRequestStatus& aStatus, TName& aName);