×

Discussion Board

Results 1 to 4 of 4

Hybrid View

  1. #1
    Regular Contributor
    Join Date
    Mar 2004
    Location
    Novi Sad - Serbia
    Posts
    63

    Problems with call hang up

    Hello everyone,

    I'm developing an application for a Series 60 devices (I use Nokia 6600 for test) that communicates using the data calls.

    When I answer the phone call using the AnswerIncomingCall(...) function I can hang up that call using the HangUp(...) function.

    But, when I want to make a call I can't use Dial(...) function (don't work on this phone) so I use AT commands. When I try to terminate that call with HangUp() function, I get the KErrNotReady error code. I think that is because HangUp() function terminates an active call established with the Dial(), Connect() or AnswerIncomingCall() functions.
    Then I tried to switch to command mode (+++) and to send ATH command to modem but that didn’t worked also.

    Here is the code I tried:
    Code:
    _LIT8(atcommand, "+++");
    comm.Write(iStatus, atcommand);
    User::WaitForRequest(iStatus);
    			
    _LIT8(hangup8, "ATH\r\n");
    comm.Write(iStatus, hangup8);
    User::WaitForRequest(iStatus);
    I even tried to wait for 3 seconds after sending the "+++" command (to be sure that the modem is in command mode).

    Am I doing something wrong or is there anything else I should do?

    Thanks in advance,
    Sasa

  2. #2
    Regular Contributor
    Join Date
    Mar 2004
    Location
    Novi Sad - Serbia
    Posts
    63

    Another try

    I have found some undocumented stuff that can be a solution to my problem.
    Here is the code:

    Code:
    RGsmCallGroup callGroup; 
    callGroup.Open(gsmphone, RGsmCallGroup::ECallGroupMain); 
    callGroup.HangUp();
    I had to copy gsmadv.lib and etelagsm.h files from some older SDK’s and my application compiles without any error.
    When I try to start the application, nothing happens.

    Does anyone know if this functionality is still supported in Nokia 6600?

    Thanks in advance,
    Sasa

  3. #3
    Regular Contributor
    Join Date
    Mar 2004
    Location
    Novi Sad - Serbia
    Posts
    63

    Unable to switch to command mode

    Because I can't hang-up using the "+++" and "ATH" commands from my source code, I tried next:

    I connected one Nokia 7210 phone to PC (over the IrDA) and Nokia 6600 to other PC (over the Bluetooth).
    I started HyperTerminal on both devices and started new data call (ATDT…).
    I answered the call on the other side (ATA) and have sent some data.

    When I sent “+++” and after that “ATH” command from Nokia 7210, the call was regularly closed. I tried the same think on the other side (sending commands from the other PC’s HyperTerminal to Nokia 6600) but the call wasn’t finished.
    When I send “+++” (to bring modem to command mode again) and after that “ATH” I get the “ATH” command on the other side (this happens only when I try this with Nokia 6600).
    So, my conclusion is that I can’t bring Nokia 6600’s modem to command mode.

    Is this a known bug or am I doing something wrong?

    I would appreciate any kind of help!

    Thanks in advance,
    Sasa

  4. #4
    Regular Contributor
    Join Date
    Mar 2004
    Location
    Novi Sad - Serbia
    Posts
    63
    I tried a few more situations and succeeded in hanging-up the call that was established with AT commands.
    I accidentally figured that I should wait between 5 and 10 seconds after I send the “+++” command to modem and before the modem goes to command mode.
    Now I can hang-up the call if I send the “+++” command, wait for about 10 seconds and than send the “ATH” command.

    The problem I have now is that I would like to know when the phone is in command mode and not to wait all 10 seconds.
    There is a function “GetStatus” in RPhone class that should return the TStatus instance (contains all the data I need).
    So, the idea I have is to send the “+++” command and to start the timer that will check the phone status every second until the iMode becomes “EModeOnlineCommand”.
    I tried the GetStatus function and it works fine when I answer an incoming call using the ETel API but it always returns “EModeIdle” when the phone call was started sending the ATDT… command.

    Is there any other way I can check the modem state (whether it is online or “online command”)?

    I reed that it’s not possible to get the answer from the modem after sending an AT command. Is there any way I can get some answer from modem when I work with AT commands?

    I would appreciate any help!

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •