Pages: [1]   Go Down
Author Topic: Example code ReceiveVoiceCall problem on official Arduino GSM Shield R3  (Read 1865 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 3
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello,

I have problem with example code ReceiveVoiceCall from the official GSM library. Other sending and receiving SMS examples works well, MakeVoiceCall is also working well.
Problem seems to be in non functional function vcs.getvoiceCallStatus(). This function ALWAYS returns IDLE_CALL (0), even if I am calling from other telephone to the shield phone number. On the ammeter connected to pwr I can see increased current when I am calling, this indicates that modem is receiving call from gsm network. But, because function vcs.getvoiceCallStatus() returns IDLE_CALL, the modem cannot answer the call.

Do somebody have an idea? Are this example working on other Arduino GSM Shield users?
Thank you for reply

Arduino Uno R3, Arduino IDE 1.0.4, Arduino GSM Shield R3, fully functional voice enabled SIM in the shield.
Logged

Madrid (Spain)
Offline Offline
Full Member
***
Karma: 0
Posts: 137
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi!,

Please. Could you check that the modem receives a call, and is notified via the software serial connection?

Use this sketch for communicate with modem directly:
Code:
#include <SoftwareSerial.h>
#include <string.h>

char incoming_char = 0;

SoftwareSerial cell(2, 3);

void setup()
{
  Serial.begin(9600);
 
  Serial.println("Start Reset");
  pinMode(7, OUTPUT);
  digitalWrite(7, HIGH);
  delay(1500);
  //digitalWrite(7, LOW);
  delay(1000);
  Serial.println("End Reset"); 

  cell.begin(9600);

  Serial.println("Introduce your AT commands now!:");
}

void loop()
{

  if(cell.available() >0)
  {
    incoming_char=cell.read();
    if((incoming_char >= ' ')&&(incoming_char<='z'))
      Serial.print(incoming_char);
    else
    {
      Serial.print("%");
      Serial.print((int)incoming_char);
      Serial.print("%");
      if(incoming_char==10)
        Serial.println();
    }
  }

  if(Serial.available() >0)
  {
    incoming_char=Serial.read();
    cell.print(incoming_char);
  }
}

You can enter AT commands via Serial Monitor with "Both NL & CR" configuration.
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 3
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Thank you for answer!

Interesting. When I first time load your code into Arduino, there was no responese to call and no response to AT command (I have sent AT+CNUM via terminal). Then I have load ReceiveSMS example, to check again serial communication between modem and Arduino - it was OK, received massage was printed on terminal. Then I have again loaded your code - and OOH-LA-LA it starts to answer to sending AT commands and send response when I called. Then, I have loaded ReceiveVoiceCall and it works!

Mysterious :-). Thank you for a nice piece of code, it was good medicine! Do you have an idea where was the problem?

Thank you!
Vlad
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 1
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I have exactly the same problem (gsm network in austria).
sms incoming and outgoing is working fine with the example program.
also outgoing voice calls (example program) is ok.
incoming voice calls are not recognized by the example program.

connecting via a terminal and sending at commands:
at+cpin="xxxx"
at+clip=1
shows incoming calls - so the gsm module is working

i agree with your suspiction that the library function getVoiceCallStatus() has a bug

can anybody out in the arduino universe help and/or fix this error

thanks in advance
walter
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 5
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi!

Are there any new solutions? Stuck on the same problem!

Bg
Noel
Logged

Pages: [1]   Go Up
Jump to: