When I use my smartphone, the dialing screen turns green when the number I called answers, how that’s accomplished? Do you know if your chipset has the hardware ability to determine when the call is connected, like via the gsm protocol stack?
That can’t catch the automated voice messages from the phone company (like “the number you are calling is unreachable”) but it can eliminate the ringing tone and that would be sufficient.
DSP would be better but as you say it can’t be readily nor easily done.
[Note: the customer would like us to stop the 400Hz ringing tone from being audible during a call]
The network will tell you some things about the call but often (especially when you use a network reseller’s SIM card) it does not give accurate information.
For example, in the UK a company called Lyca resell the O2 network airtime. When using their SIMs the CLCC data in invalid. This is why we had to offer an option to turn off the voicemail divert command. Normally we detect voicemail diversion by noting when the phone does not ring. If the phone is switched off it will dial then instantly connect to the voicemail service which we can see happening from the CLCC command. We see it going to status 2 to 0 and never getting to 3 which is the ringing status. However, Lyca always show transition from 2 to 0 regardless of whether the phone rings or not and never give a status 3 when the phone is ringing. Basically the network notifications are unreliable.
Our intercom (available here) unit has a connection to the microprocessor from the audio circuit so we can digitize the audio and detect frequencies and whether there is audio or not. This is how we implement the SILENCE command functions.
We could switch the volume down to 0 during status 3 on a CLCC request but this may not work with some networks. That would be the easiest way to do what you require. I’ll look into it
Reply from AT+CLCC NB: <call state> is of interest here
+CLCC: <idx>,<dir>,<call state>, <mode>,<mpty>,<number>,<type>[,<alpha>] [<CR><LF>]
|<state>||0 Disable CLCC unsolicited indication1 Enable CLCC unsolicited indication|
|<idx>||Integer type, call identification number|
|<dir>||0 Mobile originated call (MO)1 Mobile terminated call (MT)|
|<call state>||The state of the call0 Active1 Held
2 Dialing (MO call)
3 Alerting (MO call)
4 Incoming (MT call)
5 Waiting (MT call)
|<mode>||Bearer/Teleservice0 Voice Call1 Data
|<mpty>||Multiparty status0 Call is not part of a multiparty call1 Call is one of multiparty call parties|
|<number>||Phone number in the format specified by <type>. Contains a string of up to 32 characters.|
|<type>||Phone number display format. Type of address octet in integer format (refer to GSM 04.08  subclause 10.5.4.7) 129 Local number|