Add support for newer SIMCom devices #111
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This patch adds support to event driven calls for newer SIMCom devices such as the SIM7100, SIM7500, and SIM7600.
These devices support the command "AT+CLCC=1" which sets the modem to print the CLCC output on every call status change. I made an effort to to probe modem upport for automatic reporting by trying setting AT+CLCC to 1. The untested assumption is that the command will fail if the modem does not support it.
The regular expressions used for _handleCallAnswered, _handleCallInitiated, and _handleCallEnded are simply a copy and paste from the regular expression used for CLCC, replacing what was on the third group by a fixed number representing the call status. For example, using the number 6 to indicate that the call was disconnected.
To detect the newer devices I used the availability of the +SIMCOMATI command but I am not really sure how reliable this is. My concern is of false positives for devices that could support the +SIMCOMATI and not support the automatic reporting of "AT+CLCC=1".
This was tested on an SIM7600G.
Signed-off-by: Peter Senna Tschudin [email protected]