Определение сим карт и оператора

Добрый вечер!

Как из терминала определить наличие двух симок и их параметы? Например имя оператора и ID сим.

mmcli -m 0 выводит для текущей, не хотелось бы переключаться на другую сим только ради получения информации о симке. Это же приведет к подключению к другой сети?

Модем не может одновременно работать с двумя картами. Собственно у модема такой функции вообще нет, это внешний по отношению к нему мультиплексор переключает линии данных к разъемам карт. Так что переключение на вторую для получения каких-то параметров обязательно, без этого работа с другой sim невозможна.
А разве недостаточно получить параметры один раз?

Я понимаю, что контроллер стоит неподвижно, но может же быть технический сбой у оператора и уровень сети может упасть, тогда выгоднее переключаться на другую сим?

Возник еще вопрос по ходу дела.
Можно ли помимо встроенного механизма переключения сим, переключать вручную, ориентируясь на информацию о типе сети и уровне сигнала?
Например, выбирать предпочтение LTE? Не сломает ли это встроенный механизм работы с сим и выбора сети?

Используем такой конфиг:

cat /etc/wb-connection-manager.conf
{
    "connectivity_check_url": "http://network-test.debian.org/nm",
    "tiers": {
        "high": [
            "wb-eth0"
        ],
        "low": [
            "wb-gsm-sim1",
            "wb-gsm-sim2"
        ],
        "medium": []
    },
    "debug": false
}

Плюс могут быть wi-fi сети в medium.

К сожалению, сейчас нет механизма выбора симкарты по уровню сигнала и т.п. В вашем варианте настроек выбирается первая попавшаяся, которая сможет зарегистрироваться и получить доступ в интернет. Если более приоритетные соединения не имеют выхода в интернет, ручное переключение карт может конфликтовать с логикой нашего сервиса. В этом случае вам надо остановить wb-connection-manager, переключить карту, активировать соединение и снова запустить wb-connection-manager. Если доступ в интернет будет, то наш сервис не переключит карту. Решение не очень элегантное.

Согласен.

Нету ли планов вынести функцию проверки сети для возможности переопределения? Или добавить больше метрик качества сигнала?

Конкретных планов нет. Но если предложите своё видение, обсудим.

Тут надо подумать.

Изначально стоит задача отправлять на сервер информацию о SIM картах (imei, оператор и качество сигнала).
Было бы неплохо, если бы софт WB кешировал эту информацию где-то в топиках.
Если правильно понимаю, сейчас можно получить все данные, но только по одной симке через mmcli -m wbc. При этом вмешиваться в wb-connection-manager просто чтобы определить imei второй выглядит костильно, а ждать когда симка переключится можно вечно.

Андрей уже писал выше. У нас стоит мультиплексор, и в каждый момент времени физически работает только одна симка. Чтобы проверить, что во втором слоте, надо отключить текущую симку, переключить мультиплексор и активировать вторую. В этот момент, соединение через первую симку будет разорвано. Если надо периодически отправлять информацию об обеих симках, вероятно, лучше сделать свой сервис вместо нашего wb-connection-manager.

1 лайк

Нет, периодически отправлять не надо. Речь о том, чтобы на старте контроллера (сервиса) проверить обе сим и закешировать их ID, оператора и уровень сигнала.
Можно даже без уровня сигнала.

Всё же это лучше через wb-rules сделать. При старте отключить wb-connection-manager, попереключать симки, запомнить всё в виртуальном устройстве и снова включить wb-connection-manager.

1 лайк