{% extends 'base.html' %} {% from '_partials/page_header.html' import page_header %} {% block title %}Networking · 4G/3G{% endblock %} {% block content %} {{ page_header('Networking', tabs=tabs, active_tab='mobile') }} {% if not modem.present %}
No modem detected. No cellular module can be seen right now — check that it's seated and powered. Settings saved here apply as soon as one appears.
{% endif %}

Modem status

{% for i in range(5) %}
{% endfor %}
{{ modem.signal }}%
State
{{ modem.state }}
Carrier
{{ modem.carrier or '—' }}{% if modem.tech %} {{ modem.tech }}{% endif %}
Modem
{{ modem.model or '—' }}
APN
{{ modem.apn or '—' }}
IP
{{ modem.ip or '—' }}
{% if modem.active_slot %}
Active SIM
slot {{ modem.active_slot }}
{% endif %}
{% if modem.slots %} {# Per-SIM panels. Each slot is its own form: they write separate settings, and saving one must not silently rewrite the other. #} {% for slot in modem.slots %}

SIM {{ slot.slot }} {% if slot.active %} active {% elif not slot.present %} empty {% else %} standby {% endif %}

{% if slot.operator_name %}{{ slot.operator_name }}{% endif %}
IMSI
{{ slot.imsi or '—' }}
ICCID
{{ slot.iccid or '—' }}
Operator
{{ slot.operator_id or '—' }}
{% if not slot.active %}

Only the active SIM can be read — the other is powered down — so identifiers stay blank until this slot is in use. Its APN can still be set now, which is what makes a failover to it work.

{% endif %}
{% if slot.apn_help and slot.apn_help.suggested %} {% for alt in slot.apn_help.alternatives %}{% endfor %}

{{ slot.apn_help.suggested.name }} uses — from the carrier database. Type your own to override.

{% elif slot.apn_help and not slot.apn_help.db_available %}

Carrier database not installed, so no APN suggestion — enter the one your provider gave you.

{% endif %}
{% endfor %} {% if modem.dual_sim %}

Switching between SIMs is handled by SIM failover — turn it on under Admin → System — rather than from this page. The switch has to re-initialise the modem in a particular order, and doing it by hand is how a modem ends up needing a power cycle.

{% endif %} {% else %} {# No modem, or one that reports no slots: the original single-APN form. #}

Modem configuration

{% endif %}
{% endblock %}