Discussion Board

Results 1 to 9 of 9
  1. #1
    Registered User SQR's Avatar
    Join Date
    Mar 2009
    Posts
    65
    Здравствуйте. Пишу тут небольшое приложение, оно должно по тапу на небольшое окошко с текстом сбрасывать входящий вызов, и перезванивать на номер, с которого и был входящий вызов.
    Перезванивать она должна по тапу на окно (отрисовываю поверх всех окон).
    Наткнулся тут на пару подводных булыжников:
    1) При входящем звонке на 5530 (на других нет возможности протестировать, в основном гоняю на N73, на нём всё отлично) моё окно перекрывает окно входящего звонка. Никто не знает почему? Своё окно отрисовываю с ECoeWinPriorityAlwaysAtFront.
    2) Самое неприятное. Для отбоя звонка использую RCall, т.к. сбросить звонок надо без поднятия трубки. И с ним вот какая проблема.
    Использую следующие коды:
    Code:
    void CCaller::CallL()
    	{
    	__LOGSTR("CallL");
    	HangUp();
    	iFile.Open(iFs,KFileConfig,EFileRead);
    	iText.Set(iFile);
    	TBuf<128> buf;
    	iText.Read(buf);
    	iFile.Close();
            CTelephony::TTelNumber number(buf);
            CTelephony::TCallId callid;
            CTelephony::TCallParamsV1 callparams;
            CTelephony::TCallParamsV1Pckg callparamspckg(callparams);
            callparams.iIdRestrict = CTelephony::ESendMyId;
    
            iTelephony->DialNewCall(iStatus,callparamspckg,number,callid);
            SetActive();
    	}
    Code:
    void CCaller::HangUp()
    	{
    	__LOGSTR("HangUp");
    	TName callName;
    	RTelServer::TPhoneInfo phoneInfo;
    	RTelServer telServer;
    	RLine::TLineInfo lineInfo;
    	RPhone::TLineInfo plineInfo;
    	RPhone phone;
    	RLine::TCallInfo callInfo;
    	RLine line;
    	RCall call;
    
    	__LOGSTR1("iTelServer.Connect():%d",telServer.Connect());
    	__LOGSTR1("iTelServer.GetPhoneInfo:%d",telServer.GetPhoneInfo(0, phoneInfo));
    	__LOGSTR1("iPhone.Open:%d",phone.Open(telServer, phoneInfo.iName));
    	__LOGSTR1("iPhone.GetLineInfo:%d",phone.GetLineInfo(0, plineInfo));
    	__LOGSTR1("iLine.Open:%d",line.Open(phone, plineInfo.iName));
    	__LOGSTR1("iLine.GetCallInfo:%d",line.GetCallInfo(0,callInfo));
    	__LOGSTR1("iLine.GetInfo:%d",line.GetInfo(lineInfo));
    	callName.Copy(lineInfo.iNameOfCallForAnswering);
    	__LOGSTR1("iCall.OpenExistingCall:%d",call.OpenExistingCall(line, callName));
    	__LOGSTR1("iCall.HangUp:%d", call.HangUp() );
    	call.Close();
    	line.Close();
    	phone.Close();
    	telServer.Close();
    	}
    Первым вызывается CallL(), которая должна вызвать HangUp(), и после этого совершить звонок. Только вот этого не происходит. Как видно, я использую макросы для логгирования происходящего, в логи падает только следующее:
    Code:
    06.07.2011   21.42.07 CallL
    И всё. После этого программа падает с KERN-EXEC 3, т.е. в HangUp не выполняется ни одной строки кода. Никак не могу понять, в чём же дело?
    Если не решится, придётся использовать костыль с посылкой EStdKeyNo для отбоя вызова ...

  2. #2
    Registered User SiNoptik's Avatar
    Join Date
    Dec 2005
    Posts
    93
    Как минимум, нужно следить за статусом линии. Вызов iCall.HangUp() не мгновенно прекращает звонок. Надо дождаться, когда линия перейдет в состояние ilde. После этого уже можно совершать звонок.
    Хотя это не объяснение Kern-Exec 3. Как вариант: объект твоего класса, у которого вызывается CallL и HangUp, забыли создать.

  3. #3
    Registered User SQR's Avatar
    Join Date
    Mar 2009
    Posts
    65
    Дак обе функции члены одного и того же класса.
    В общем объяснения я не нашёл, но при замене сброса вызова на посыл красной клавиши всё стало работать.

  4. #4
    Registered User SQR's Avatar
    Join Date
    Mar 2009
    Posts
    65
    А в RDA как-то можно симитировать входящий вызов?
    А ещё на N8 посылка команды AT+CHUP не вешает трубку. Никто не знает, в чём проблема? На других нормально вешает ...
    Last edited by SQR; 2011-07-12 at 08:18.

  5. #5
    Nokia Developer Moderator A.A.M.'s Avatar
    Join Date
    Jan 2008
    Location
    Moscow, Russia
    Posts
    3,308
    Можно просто позвонить на номер зарезервированного в RDA устройства, он указан в краткой информации на главной странице сервиса (над версией прошивки).


    Quote Originally Posted by SQR View Post
    А ещё на N8 посылка команды AT+CHUP не вешает трубку. Никто не знает, в чём проблема? На других нормально вешает ...
    Попробуйте использовать команду ATH.
    Attached Images Attached Images
    Last edited by A.A.M.; 2011-07-12 at 11:27.

  6. #6
    Registered User SQR's Avatar
    Join Date
    Mar 2009
    Posts
    65
    А чёрт, не заметил как-то. Спасибо. Насчёт ATH надо попробовать.

  7. #7
    Registered User SQR's Avatar
    Join Date
    Mar 2009
    Posts
    65
    Бесполезно. На всех смартах до S^3 CHUP вешает нормально, но вот на N8 никакой реакции вообще нет. Может ещё идеи есть?
    На ATH вообще никакие смарты не реагируют, хотя ответ приходит OK.

  8. #8
    Nokia Developer Expert Trufanov's Avatar
    Join Date
    Mar 2010
    Location
    Moscow
    Posts
    34
    На всех смартах до S^3 CHUP вешает нормально, но вот на N8 никакой реакции вообще нет.
    Это известная проблема: CHUP вешает звонок, если он инициирован ATD1234; и не вешает вручную выполняемый звонок.
    Она должна быть пофиксена в последней прошивке n8.

  9. #9
    Registered User SQR's Avatar
    Join Date
    Mar 2009
    Posts
    65
    Ага, понятно. В общем заработало в изначальном варианте с RCall, как это ни странно.

Similar Threads

  1. Active Object and RCall::Dial() and RCall::Hangup()
    By alpha.beta10 in forum Symbian C++
    Replies: 3
    Last Post: 2010-04-03, 05:20
  2. Replies: 4
    Last Post: 2007-09-30, 04:46
  3. RCall::dial -9 error
    By raulftang in forum Symbian C++
    Replies: 2
    Last Post: 2007-02-02, 17:22
  4. RCall::EStatusAnswering
    By say2paul in forum Symbian C++
    Replies: 1
    Last Post: 2006-05-11, 04:36
  5. RCall::AnserIncomingCall???
    By chinazou305 in forum Symbian C++
    Replies: 1
    Last Post: 1970-01-01, 02:00

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Nokia Developer aims to help you create apps and publish them so you can connect with users around the world.

京ICP备05048969号  © Copyright Nokia 2013 All rights reserved