selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

GitHub
MDD Sim Gateway logo

Self-host MDD Sim Gateway

v1.14.0

Private VoWiFi and cellular gateway for SIMs and eSIMs

ReleaseOpen SourceGPL-3.0
Updated6 days ago
LanguagePython
Setup difficultyAdvanced
Stars
676
Storage
2 GiB free on root filesystem (8 GB+ recommended)
Port
10443 (HTTPS management UI (container deploy, host-mapped))
Requires
Docker Engine, ModemManager, NetworkManager, Pcscd
Install with Debian
Overview dashboard with fictional demo dataDevice management pageBrowser calling interfaceSMS messaging pageBalance and keep-alive monitoring pageSystem updates and settings page

What is MDD Sim Gateway?

MDD Sim Gateway is a self-hosted multi-SIM communication gateway that lets you use physical SIM cards and eSIMs for VoWiFi calling, SMS/MMS, and 4G cellular data on your own hardware. It supports cellular modems and USB PC/SC readers, handles EAP-AKA and IMS-AKA authentication entirely on the SIM (never extracting Ki/OP/OPc), and routes each SIM's ePDG traffic through a chosen country exit via independent TUN interfaces (host install) or SOCKS5 (container deploy). The web console provides a browser-based softphone, SMS/MMS messaging, call logs, missed-call notifications, per-line voicemail, balance/keep-alive monitoring, and automatic updates. It integrates with Telegram, PushPlus, Lark/Feishu, and generic webhooks for notifications. Two deployment modes are documented: a host-assisted install on Debian/Ubuntu/Armbian ARM64 that sets up systemd services and Docker engines, and a fully containerized Docker Compose deployment for any amd64/arm64 Linux including Synology NAS. The project is licensed GPL-3.0-only and builds on upstream components including pagecat/vowifi_gateway, sysmocom Asterisk, sing-box, and lpac.

Should you self-host MDD Sim Gateway?

MDD Sim Gateway scores 53/100 on selfhost.directory (how scoring works) and ranks #11 of 16 in VoIP. It has 676 GitHub stars.

It shipped 10 stable releases in the past year. The latest, v1.14.0, came out on 14 October 2026. New versions land roughly every 3 days.

Setup is advanced: plan for several services and some ongoing maintenance. It is GPL-3.0-licensed and written mostly in Python.

Its closest alternative on selfhost.directory is Mumble (71/100, 8 371 stars). It scores higher overall, so compare the two before you pick. See MDD Sim Gateway vs Mumble side by side.

Features

  • 4G cellular data management
  • Automatic updates with channels
  • Balance and keep-alive monitoring
  • Bilingual web UI (Chinese/English)
  • Call logs and missed call notifications
  • Carrier identification (offline AOSP Carrier ID)
  • eSIM profile management (lpac)
  • Hardware auto-detection
  • Multi-SIM management (up to 10 lines)
  • Notification channels (Telegram, PushPlus, Lark, Webhook)
  • Per-country network egress
  • Per-line voicemail
  • SIM authentication without key extraction
  • SMS and MMS messaging
  • VoWiFi calling via browser softphone

MDD Sim Gateway README

How to install MDD Sim Gateway

Install MDD Sim Gateway with Debian

Environment variables
MDD_PORT, MDD_DATA_DIR, MDD_BIND, MDD_ADVERTISE_ADDR, MDD_SINGBOX_VERSION, MDD_XRAY_VERSION, MDD_LPAC_VERSION, MDD_CELLULAR_SMS_STORAGE, MDD_CELLULAR_SMS_STORAGE_LIMIT, MDD_ENGINE_BASE_IMAGE, MDD_REUSE_WEBUI, MDD_BUILD_IMAGES, PJPROJECT_REPOSITORY, ASTERISK_REPOSITORY

git clone https://github.com/MddIdd/mdd-sim-gateway.git cd mdd-sim-gateway sudo ./install.sh install

Installs systemd services, configures pcscd, ModemManager, NetworkManager; uses Docker for engines

How to configure MDD Sim Gateway

  • ASTERISK_REPOSITORYAlternative HTTPS Git repo for Asterisk (pinned commit)

    Alternative HTTPS Git repo for Asterisk (pinned commit)

  • MDD_ADVERTISE_ADDRHost LAN address for browser call media (container deploy)

    Host LAN address for browser call media (container deploy)

  • MDD_BINDBind address for the management UI

    Bind address for the management UI

  • MDD_BUILD_IMAGESForce source build instead of using pre-built images

    Force source build instead of using pre-built images

    values: 1

  • MDD_CELLULAR_SMS_STORAGEdeleteSMS storage behavior: delete (default), when_full, or keep

    SMS storage behavior: delete (default), when_full, or keep

    values: delete, when_full, keep

  • MDD_CELLULAR_SMS_STORAGE_LIMIT20SMS count threshold for when_full mode

    SMS count threshold for when_full mode

  • MDD_DATA_DIRData directory path

    Data directory path

  • MDD_ENGINE_BASE_IMAGEPre-audited engine base image for offline builds

    Pre-audited engine base image for offline builds

  • MDD_LPAC_VERSION2.3.0lpac version to use

    lpac version to use

  • MDD_NAS_HOSTNAMENAS hostname for proxy subscription resolution in Egress container

    NAS hostname for proxy subscription resolution in Egress container

  • MDD_PORTManagement UI port (host install)

    Management UI port (host install)

  • MDD_REUSE_WEBUIReuse pre-built webui/dist from trusted build machine

    Reuse pre-built webui/dist from trusted build machine

    values: 1

  • MDD_SINGBOX_VERSION1.13.15sing-box version to use

    sing-box version to use

  • MDD_XRAY_VERSION26.3.27Xray-core version to use

    Xray-core version to use

  • PJPROJECT_REPOSITORYAlternative HTTPS Git repo for pjproject (pinned commit)

    Alternative HTTPS Git repo for pjproject (pinned commit)

MDD Sim Gateway releases & version history

FAQ

Why can't VoWiFi register even though the page loads?

Check the reader/SIM channel, country egress UDP, ePDG resolution, SWu and IMS status. Software support doesn't guarantee the carrier allows Wi-Fi Calling for that SIM, plan, region, or device identity.

Will enabling 4G affect my NAS network?

Verify the NAS default route still points to the original LAN gateway. Cellular profiles use never-default, allowing Hardware to manage only cellular interfaces. If other interfaces are taken over by NetworkManager, the system will disable cellular config.

Why can the NAS browser access a proxy subscription but Egress cannot?

If the subscription URL uses the NAS's public domain, set MDD_NAS_HOSTNAME to that domain so Egress resolves it to the Docker host gateway internally. Don't change the URL to a container IP or modify NAS global DNS.

Why doesn't my card reader appear?

Check if host pcscd or another container is using the device. The Hardware container includes pcsc-lite, libccid, and validated reader patches; host pcscd should not run simultaneously.

What does 'PIDs limit discarded' in startup logs mean?

DSM 7.4's 4.4 kernel doesn't support pids cgroup, so Docker ignores the pids_limit setting in Compose. This warning doesn't affect operation; memory limits still work.

Why does dependency fail to start with Hardware unhealthy after rebuilding the project?

New Hardware containers inherit residual QMI sessions from the modem. Wait 1-2 minutes for the modem to reset and re-enumerate, then click Start (not Build) in the project page.

Why is the Hardware container unhealthy?

Check that USB devices are enumerated on the host and required device nodes are present. Missing nodes indicate missing kernel drivers. After a system upgrade, drivers must be rebuilt for the exact kernel version.

More in VoIP

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…