On the topic of driver support written in C, for Arduino and friends, GitHub - vshymanskyy/TinyGSM: A small Arduino library for GSM modules, that just works is definitively the most popular and mature piece of software available as it also supports a wide range of other GSM modems beyond all of the SIMCom modules.
However, there is also GitHub - MaJerle/lwgsm: Lightweight AT commands parser for SimCOM GSM modules written in C99. By targeting different kinds of embedded system devices like ARM Cortex-M, AVR, PIC and others and also working on
MAC environments, its usability reaches beyond the Arduino ecosystem, so it is more universal on another angle. It supports
SIM800/SIM900 (2G) and
SIM7000/SIM7020 (NB-Iot LTE) modules and the documentation is available at https://docs.majerle.eu/projects/lwgsm/ .
With kind regards,