Каким образом можно отловить завершение второго звонка ?
Printable View
Каким образом можно отловить завершение второго звонка ?
Что значит "второго звонка"?
Второй звонок в том смысле, что он появляется вторым во время разговора. Некоторые его называют как "Вторая линия"
Ну хоть кто-нибудь может поведать тайну работы класса СTelephony. Я могу нормально отловить событие начала и конца только одного звонка на линии, когда на появляется второй получаю событие о самом звонке о соединении но ни никак не могу определить когда завершился первый и когда второй.
Да получения событий использую следующий код:
[CODE]
iTelephony->NotifyChange(iStatus, CTelephony::EVoiceLineStatusChange, iCallStatusV1Pckg);
...
//получение информации о звонке
iCallSelectionV1.iLine = CTelephony::EVoiceLine;
iCallSelectionV1.iSelect = CTelephony::EInProgressCall;
iErr = iTelephony->GetCallInfo(iCallSelectionV1Pckg, iCallInfoV1Pckg, iRemotePartyInfoV1Pckg);
[/CODE]
Лог созданный с использованием класса С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 сделать это и нельзя - [URL="http://wiki.forum.nokia.com/index.php/KIS000737_-_No_notification_received_from_CTelephony_for_a_second_incoming_call"]KIS000737 - No notification received from CTelephony for a second incoming call[/URL]
Попробуйте использовать класс RMobileCall
Но проблема остается ведь функция
[CODE]void RLine::NotifyIncomingCall( TRequestStatus& aStatus, TName& aName); [/CODE]
ловит только входящие звонки, а как быть с исходящими ?