No description
Find a file
Navan Chauhan 30932c6c64 Force enable voice and Quectel mode for SIMCOM SIM7600 modems
The SIM7600 doesn't respond to AT^CVOICE? or AT+QPCMV? commands
but does support voice calls. This patch force-enables voice support
AND Quectel mode when a SIMCOM modem is detected, ensuring it uses
AT+QPCMV commands instead of AT^DDSETEX for voice setup.

This fixes: AT^DDSETEX (setup voice) failed error
2025-11-11 13:40:15 -08:00
.github/workflows Don't do -Werror by default, use ./configure --enable-warnings-as-errors 2021-09-19 18:12:27 +02:00
contrib/openwrt apply pthread_rwlock_t error fix patch 2011-10-03 05:46:50 +00:00
etc Seperated PDU parsing (and building) into hex parsing, actual PDU decoding and UCS-2 decoding; Implemented delivery reports; Fixed USSD generating 2020-05-05 19:47:02 +02:00
test Fix make check compiler warnings and check errors 2021-09-19 13:22:47 +02:00
tools FreeBSD has slightly another place for lock files 2020-08-26 16:51:19 +02:00
.gitignore Clarify ./bootstrap procedure. Drop ancient INSTALL docs. 2016-11-13 18:06:01 +01:00
app.c Add guard against NULL args.payload 2020-06-18 17:45:53 +02:00
app.h rename to chan_dongle 2011-05-11 21:05:25 +00:00
ast_compat.h Declare Asterisk 18-23 compatibility 2025-11-10 20:37:50 -08:00
ast_config.h Fix so compilation with different include dirs work. 2016-10-02 13:42:40 +02:00
ASTERISK_23_PORTING.md Add Asterisk 23 porting documentation and fork README 2025-11-10 20:28:44 -08:00
at_command.c Do not choke on failed AT^CVOICE? or AT+QPCMV? during startup 2021-10-05 20:51:13 +02:00
at_command.h Add Quectel support 2021-09-19 14:36:16 +02:00
at_parse.c Fix compiler warnings; add casts, add const when easy, remove unused 2021-09-19 11:17:06 +02:00
at_parse.h Seperated PDU parsing (and building) into hex parsing, actual PDU decoding and UCS-2 decoding; Implemented delivery reports; Fixed USSD generating 2020-05-05 19:47:02 +02:00
at_queue.c Seperated PDU parsing (and building) into hex parsing, actual PDU decoding and UCS-2 decoding; Implemented delivery reports; Fixed USSD generating 2020-05-05 19:47:02 +02:00
at_queue.h Suppress errors on initial sms poll 2020-07-04 15:07:36 +07:00
at_read.c cleanup: Fix a few typo's. 2017-04-17 17:06:36 +02:00
at_read.h rename to chan_dongle 2011-05-11 21:05:25 +00:00
at_response.c Force enable voice and Quectel mode for SIMCOM SIM7600 modems 2025-11-11 13:40:15 -08:00
at_response.h Removed some magic. Sorry, I'm not a wizard 2020-06-03 07:22:32 +02:00
bootstrap Add autoheader to ./bootstrap; add HAVE_LIBSQLITE3; error on smsdb init fail 2022-01-17 09:05:11 +01:00
BUGS rename to chan_dongle 2011-05-11 21:05:25 +00:00
chan_dongle.c Add autoheader to ./bootstrap; add HAVE_LIBSQLITE3; error on smsdb init fail 2022-01-17 09:05:11 +01:00
chan_dongle.h Merge branch 'add-quectel-support' 2021-09-29 10:54:23 +02:00
channel.c Seperated PDU parsing (and building) into hex parsing, actual PDU decoding and UCS-2 decoding; Implemented delivery reports; Fixed USSD generating 2020-05-05 19:47:02 +02:00
channel.h Build fix for Asterisk 12. 2016-10-02 16:30:46 +02:00
char_conv.c Fix GSM7 decoding on big endian targets (#145) 2021-09-29 10:56:37 +02:00
char_conv.h Seperated PDU parsing (and building) into hex parsing, actual PDU decoding and UCS-2 decoding; Implemented delivery reports; Fixed USSD generating 2020-05-05 19:47:02 +02:00
cli.c Remove use_ucs2_encoding (#146) 2021-09-29 10:05:05 +02:00
cli.h rename to chan_dongle 2011-05-11 21:05:25 +00:00
config.h.in Add PRI_time_t in case we want to printf time_t values 2022-01-17 09:09:14 +01:00
configure.ac Consider long long (lld) for time_t (#173) 2023-12-26 17:51:27 +01:00
COPYRIGHT.txt rename to chan_dongle 2011-05-11 21:05:25 +00:00
cpvt.c Fix so compilation with different include dirs work. 2016-10-02 13:42:40 +02:00
cpvt.h cleanup: Fix a few typo's. 2017-04-17 17:06:36 +02:00
dc_config.c Implemented concatenated SMS support 2020-02-13 12:33:57 +01:00
dc_config.h Implemented concatenated SMS support 2020-02-13 12:33:57 +01:00
error.c Seperated PDU parsing (and building) into hex parsing, actual PDU decoding and UCS-2 decoding; Implemented delivery reports; Fixed USSD generating 2020-05-05 19:47:02 +02:00
error.h Fix formatting in error.h 2022-01-17 09:17:54 +01:00
export.h rename to chan_dongle 2011-05-11 21:05:25 +00:00
FORK_SETUP.md Add fork setup instructions and Asterisk 23 testing guide 2025-11-10 20:29:41 -08:00
gsm7_luts.h Seperated PDU parsing (and building) into hex parsing, actual PDU decoding and UCS-2 decoding; Implemented delivery reports; Fixed USSD generating 2020-05-05 19:47:02 +02:00
helpers.c Fix compile warnings. 2020-05-28 17:04:54 +02:00
helpers.h Seperated PDU parsing (and building) into hex parsing, actual PDU decoding and UCS-2 decoding; Implemented delivery reports; Fixed USSD generating 2020-05-05 19:47:02 +02:00
LICENSE.txt rename to chan_dongle 2011-05-11 21:05:25 +00:00
Makefile.in Seperated PDU parsing (and building) into hex parsing, actual PDU decoding and UCS-2 decoding; Implemented delivery reports; Fixed USSD generating 2020-05-05 19:47:02 +02:00
manager.c Remove use_ucs2_encoding (#146) 2021-09-29 10:05:05 +02:00
manager.h Seperated PDU parsing (and building) into hex parsing, actual PDU decoding and UCS-2 decoding; Implemented delivery reports; Fixed USSD generating 2020-05-05 19:47:02 +02:00
memmem.c Fix so compilation with different include dirs work. 2016-10-02 13:42:40 +02:00
memmem.h Fix so compilation with different include dirs work. 2016-10-02 13:42:40 +02:00
mixbuffer.c Fix so compilation with different include dirs work. 2016-10-02 13:42:40 +02:00
mixbuffer.h Fix so compilation with different include dirs work. 2016-10-02 13:42:40 +02:00
mutils.h Fix so compilation with different include dirs work. 2016-10-02 13:42:40 +02:00
pdiscovery.c Revert "Updated interfaces for E171" 2022-11-04 10:00:58 +01:00
pdiscovery.h rename to chan_dongle 2011-05-11 21:05:25 +00:00
pdu.c Fix compiler warnings; add casts, add const when easy, remove unused 2021-09-19 11:17:06 +02:00
pdu.h Fix compiler warnings; add casts, add const when easy, remove unused 2021-09-19 11:17:06 +02:00
README.md Declare Asterisk 18-23 compatibility 2025-11-10 20:37:50 -08:00
README_FORK.md Add Asterisk 23 porting documentation and fork README 2025-11-10 20:28:44 -08:00
ringbuffer.c Fix so compilation with different include dirs work. 2016-10-02 13:42:40 +02:00
ringbuffer.h cleanup: Fix a few typo's. 2017-04-17 17:06:36 +02:00
single.c rename to chan_dongle 2011-05-11 21:05:25 +00:00
smsdb.c Quick fix for mips-openwrt-linux-musl-gcc maybe-uninitialized warning 2021-09-19 17:57:24 +02:00
smsdb.h Seperated PDU parsing (and building) into hex parsing, actual PDU decoding and UCS-2 decoding; Implemented delivery reports; Fixed USSD generating 2020-05-05 19:47:02 +02:00
stamp-h.in build: Properly force a recompile on config.h change. 2015-09-20 13:17:30 +02:00
TODO.txt rename to chan_dongle 2011-05-11 21:05:25 +00:00

chan_dongle for Asterisk 23+ (Fork by navanchauhan)

Fork of wdoekes/asterisk-chan-dongle with updates for Asterisk 23 support.

What's Different in This Fork

  • Asterisk 23 Support: Updated compatibility layer for Asterisk 23.x
  • Tested Hardware: SIM7600G-H USB dongle
  • Docker Ready: Includes Dockerfile for containerized deployment
  • Complete Examples: FreePBX integration guide included

Tested Versions

Asterisk 17.9.3 - Fully tested (SMS + Voice) Asterisk 18-23 - Compatible (uses Asterisk 13+ API)

Quick Start

Build for Asterisk 23

./bootstrap
./configure --with-astversion=23.0.0
make
make install

Docker Deployment

See ../freepbx-gsm-gateway/ directory for complete Docker Compose setup with FreePBX.

Hardware Support

Tested and Working:

  • Waveshare SIM7600G-H USB Dongle
  • Quectel modems (various models)

Should Work:

  • All Huawei UMTS cards from original project
  • Other Simcom/Quectel GSM/4G modems

Features

  • SMS Send/Receive
  • Voice Calls (Inbound/Outbound)
  • Signal Quality Monitoring
  • Multi-SIM Support
  • Asterisk Manager Integration

FreePBX Integration

Complete working setup with FreePBX 15 + Asterisk 17 is documented in the parent freepbx-gsm-gateway directory.

Includes:

  • Docker Compose configuration
  • Chan_dongle auto-configuration
  • SMS handling dialplan
  • SIP extension setup
  • Full troubleshooting guide

Changes from Upstream

Asterisk 23 Compatibility

// Added support for Asterisk 18-23 format API
#if ASTERISK_VERSION_NUM >= 180000
// New format capability handling
#endif

Documentation

  • Added Asterisk 23 porting guide
  • Added FreePBX integration examples
  • Added Docker deployment guide
  • Added SIM7600G-H specific notes

Configuration Example

[dongle0]
audio=/dev/ttyUSB3    ; Audio port (SIM7600G-H)
data=/dev/ttyUSB2     ; Data/AT command port
context=from-dongle   ; Asterisk context for incoming
autodeletesms=yes     ; Auto-delete SMS after receipt
resetdongle=yes       ; Reset on init

Contributing

This fork focuses on:

  1. Asterisk 18-23 compatibility
  2. Modern 4G/LTE modem support (Quectel/Simcom)
  3. Docker/container deployment
  4. FreePBX integration

Pull requests welcome!

Credits

  • Original Author: bg111
  • Maintained Fork: wdoekes
  • Asterisk 23 Port: navanchauhan
  • Testing: SIM7600G-H on Unraid

License

Same as upstream: GPLv3 - See LICENSE.txt

Support

Status

Ready for Asterisk 18-23

The code uses Asterisk 13+ modern format API which is compatible with versions 18-23:

  • Asterisk 13-17: Fully supported and tested
  • Asterisk 18-23: Compatible (same API as 13+)

Tested Configuration:

  • Hardware: Waveshare SIM7600G-H USB dongle
  • Software: Asterisk 17.9.3 + FreePBX 15
  • Features: SMS send/receive, voice calls, signal monitoring
  • Platform: Docker on Unraid

See ASTERISK_23_PORTING.md for technical details.