Base on Wince6.0 RIL Driver ,Calling TAPI APIs "lineMakeCall" secondly,lineMakeCall return LINEERR_OPERATIONFAILED RRS feed

  • 问题

  • Hello All:
    Base on Wince6.0 ,we have port RIL driver at our platform ,after RIL Driver has been successfully be loaded by
    DM(Device Manager) ,
    1)we start to use SIM Manager APIs to access SIM CARD phonebook,read SMS in SIM card ,and this can work finely ,
    2)using SMS APIs to send short message is Also working finely ,
    3)"but" when we use TAPI APIs to verify the telephony part of RIL ,we have the following issue:


    Easily way to say is that Calling TAPI APIs "lineMakeCall"  secondly,lineMakeCall return "LINEERR_OPERATIONFAILED" but when we Calling TAPI APIs "lineMakeCall" first time ,we can really make a outgo call ,and speak/listen to the other side    


    the detail description -->
    our Environment and issue:

    S3C6400 (CPU)
    Sim300D (GSM module)

    RIL related component (choice "All Modules" in "Catalog Items" under Platform Builder,
    include Cellular TAPI Service Provider/RIL Proxy/SIM Manager/SIM Toolkit/SMS/WAP/Wireless WAN)

    known condition:
    base on Hardware (S3C6400+SIM300D) and Software(Wince6.0+ RIL related component) ,
    we can use SIM Manager APIs via RIL Driver to Access SIM CARD,and
    we can use SMS API to Send the SMS ,so ,we make sure the RIL work fine

    when we use TAPI APIs lineMakeCall,we can make succussfully a phone call ,after calling lineMakeCall ,
    we use TAPI APIs "lineDrop" ,we also can drop this phone call ,but ,at this time ,
    using "lineMakeCalls" again(2nd times),lineMakeCall return "LINEERR_OPERATIONFAILED" ,the make a out call flow is following:

    1)lineInitializeEx , is ok, and get how many line devices available
    2)write a for loop , to check line device capability ,if "dwMediaModes" of this line device support
      use this line to do Dial out (i.e. in this case ,this line is Cellular TAPI Service Provider)
    3)lineOpen         , is ok
    4)lineMakeCall     , this step is also ok ,and we can receive a Evnet "LINE_REPLY" (we put GSM talking audio route here) ,here,we can make a outgo phonecall ,listen and speak to other side voice ,in this step ,we also can receive 2 Event i.e. "LINECALLSTATE_DIALING","LINECALLSTATE_PROCEEDING",but not "LINECALLSTATE_CONNECTED"(i.e. something stranger here!!,the line call state can't change to  "LINECALLSTATE_CONNECTED")
    5)lineDrop         drop the call successfully,we can receive a Evnet "LINE_REPLY" (put original system route here) ,
                       after this step ,we also call the TAPI API "lineGetCallStatus" ,and return "LINECALLSTATE_PROCEEDING"
                       in dwCallStateMode of LPLINECALLSTATUS structure

    6)lineMakeCall     when we need to make a dial out call again ,lineMakeCall return LINEERR_OPERATIONFAILED
                       in this step ,the Call State keeping "LINECALLSTATE_PROCEEDING"
    Doubt Point:
    1)from our tracing wince6.0,The Cellular TSP (celltsp.dll) is not open source in Wince6.0,so we tracing the silimar sample TSP (telephony service provider) 1)unimodem and 2)samptspi ,and we occur that there is a doubt point ,whether BearerMode of   this line support "LINEBEARERMODE_PASSTHROUGH" deciding whether we can change the LINE CALL STATE (from/to LINECALLSTATE_CONNECTED to/from
      LINECALLSTATE_DISCONNECTED) ,is this right ?
    2)if Doubt Point 1) is right ,how can I change the Cellular TSP (celltsp.dll) Bearer Mode Capabitily from don't support LINEBEARERMODE_PASSTHROUGH to support LINEBEARERMODE_PASSTHROUGH,because this line Bearer Mode seems don't support LINEBEARERMODE_PASSTHROUGH
    3)Celltsp.dll !? Because we have no source code to trace ,but contrast with unimodem or sampletspi ,
      we make sure the place of the line call state changed is in tsp(Celltsp.dll)

    4)Others ? (i.e. RIL driver or other ex: RIL PDD) 


    Best Regards

    2008年9月10日 11:12



    Hello All:

    We have already open debug mode of celltsp.dll when we Call the lineMakeCall secondly,

    the following debug message -->


    CellTSP : i : CallManager::CreateNewCall : htCall=0xd4486860 has CALL_ID 0x00000002
    CellTSP : E : CallRIL_Dial : Not calling RIL_Dial because call is already in LIN


    could any one can explain this debug message ?


    Thanks a lot

    2008年9月12日 10:20