SIM800L microphone connection and call in progress

Hello all

I havea SIM800L all working fine.

I can dial out using: Serial2.println("ATD+ +44##########;");
I can end the call using: Serial2.println("ATH");

Fine.

However, I would first of all like wait until the phone has been answered, before my routine continues.

Also, I would like to wait for the phone user to hang up before the routine continues.

Does anyone know the commands for this? I cannot find them in the world of Google (or the madly huge SIM800L data sheet) anywhere.

Also, the microphone makes an appalling noise over the phone line when it's answered.
I have tried having a microphone attached and also unattached... both very noisy. Ideas?

Eventually, I am hoping to pipe the PWM output (through a filter) from the Talkie.h library into the SIM800L, but small steps and all that.

Thanks

It's the result codes that tell you that, not any command. Look at the entry for ATD and the result codes are listed there.

You would have to describe "appalling noise" in more detail to get advice about that.

Hmm. The white noise I think is because we need A LOT of suppression according to the data sheet. I'll work on that later this week.

Not found the correct command yet. I am assuming I will have to issue a command to the Sim800L and then await the correct response. What those command are ... not sure yet.
380 page data sheet! Can't find it in the ATD part yet.

I saw the responses listed about a page down from the beginning of the section detailing ATD. There are no other commands that you need or even can use for this - ATD is the one.

I have the ATD responses listed. Not quite sure I understand how they work however.

ATD[<mgsm][; Anyway, got a new problem this morning.

Module doesn't even dial out any more. NO idea what has changed since last night.
Doesn't receive texts either. Boots up and reposts signal strength etc correctly, but the command to dial does nothing, and it cannot receive my texts either.

Possible I suppose my playing around has changed it's mode or something? I cannot find any instructions to factory reset the module. The reset pin just reboots it.

AT&F appears to be factory reset, but it doesn't do anything.

How do I send that?

AT&F[value] is the syntax. I don't get 'OK' or anything back.

For instance, to put the module in recevie text mode, I send: Serial2.println("AT+CMGF=1");

So how do I send the AT&F command? No combinations seem to work.

Think my project is now dead in the water, which sucks

Reset the module. Sent AT&W which I believe stores the settings?

Anyway, the module receives texts now, but still will not call out.

But, Serial2.println("AT+COPS?"); returns COPS 0,0,"O2". Pretty sure that the first digit should be 1.

Anyway, not wasting any more of my day on this.