Pull to refresh

Comments 56

Интересная статья, пользуюсь регулярно данной фичей на МТС, никогда не задумывался о том что там под капотом у данной на вид очень простой технологии. Но в роуминге лучше звонить по wa/tg имхо

Ну это как посмотреть. Если друзьям и родным, то да, звонков через мессенджеры более чем хватает. Но вот недавно был в роуминге и у банка сработала антифрод-система на мои "махинации" со счётом, они мне позвонили и вот оно, то самое, ради чего всё затевалось)

Теперь особо не позвонишь так :(

Есть устройства, которые поддерживают VoWiFi, но, для определённых операторов, VoWiFi, из коробки, не работает (при том, что оператор сети его тоже поддерживает). Получается база MCC/MNC кодов хранится локально на устройстве и отсутствие в ней кодов конкретного оператора ломает VoWiFi для этого оператора?

Да, так и есть. Крупные производители телефонов (Appleç Samsung) даже вначале сертефицируют сеть оператора для своих устройст и только потом добавляют ее поддержку в прошивку.

Технически, устройство берет MCC/MNC с SIM карты.  Они являются частью идентификатора IMSI, который нужен для идентификации абонента в сотовой сети. Это прописано в стандарте.  Поэтому у устройства всегда есть MCC/MNC для используемого оператора.

Для того чтобы разобраться, на каком этапе ломается процесс регистрации VoWiFi, нужно собрать дополнительные данные:

·        Отправляет ли устройство DNS-Request с FQDN с этими MCC/MNC?

·        Получает ли ответ?

·        Инициирует ли устройство создание IPsec туннеля до ePDG шлюза?

·        Получает ли ответ?

·        Как происходит обмен трафиком с оператором с которым VoWiF работает успешно?

И так далее.

добрый вечер ! понимаю что с момента написания статьи прошло много времени и у вас могли смениться интересы приоритеты , но ваша статья единственная которая подробно показывает работу этой функции и поэтому я решил обратиться к вам с вопросом - у меня мото edge 2022 сделанный только для Америки и в нем wifi calling реализован только для некоторых операторов ( volte работает для всех) . у меня в телефоне работают volte и видеосвязь без проблем . перечитав характеристики телеффона на сайте мото подметил что wifi calling должен работать только в сетях 5g . у меня 4g и при включении 5 g в момент когда я подключен к вайфаю на полсекунды появляется значек wifi calling и пропадает , через время повляется volte значек в строке состояния. посмотрев в bild.prop увидел такой пункт (на скриншоте выделен зеленым) , может это изза него происходит отключение wifi calling?

wfc
wfc

все ползунки в меню *#*#4636#*#* включены и звонки по вайфай тоже. со стороны оператора услуга подключена и работает(проверял в другом аппарате). не могли бы вы подсказать есть ли решение этой проблемы или оставить все как есть и изменить ничего нельзя? рут есть , т.е.что возможно отредактировать в системе - сделаю ... прочитал через переводчик много инфы об этом вопросе ,но с такой ситуацией как у меня никто не сталкивался и все пишут(если вообще пишут ) чтобы я забил на это и все... но я чувствую что решение есть и оно где то рядом ,но вот где? в билд.пропе три пункта отвечают именно за wifi calling , два первых - включены а вот третий,выделенный меня смущает тем что если перевод не врет , то при включении перечисленных частот wifi calling или отключается или включается ( я точно не понял перевода)... не могли бы вы мне помочь в этом вопросе ?

В статье не указано, что должны быть обязательные настройки под каждого оператора!
В телефонах Samsung и LG например стек программный и файлики можно в андроиде поковырять.
На Qualcomm например все настройки лежат в EFS и теоретически их тоже можно поковырять.

Но в большинстве китайских телефонов EFS никогда не получит обновлении, сейчас это наверное не актуально, потому что период запуска прошел, и всё что выпускается пару-тройку лет уже имеет настройки под российских операторов.

Кстати не обязательно `epdg.epc.mncХХХ.mccХХХ.pub.3gppnetwork.org` а вообще любой адрес, какой оператор сообщил вендору.

Пример из /etc/epdg_apns.conf

```
<!-- United States : AT&T : ATT --> <settings mnoname="ATT_US" smartwifirssia="-74" smartwifirssib="-80" smartwifirssiroveinvoice="-74" smartwifirsrp1="-108" smartwifirsrp3="-90" smartwifisnrrovein="20" smartwifisnrroveout="-30" smartwifigsmeciorovein="-11" threshold5grovein="90" threshold5groveout="108" threshold4grovein="90" threshold4groveout="108" threshold3grovein="73" threshold3groveout="93" threshold2grovein="85" threshold2groveout="30" hodelaytimer="1" epdgserverip="epdg.epc.att.net" pcscfv4vendorattr="20" pcscfv6vendorattr="21" certi_path="ca.crt" roaming_handover_support="0" wfc_call_menu="1" wfc_setting_menu="1" wfc_quicksetting_menu="1" />
```

А еще там задаются параметры IPSec

<apn mnoname="ATT_US" connname="imsApn" apnname="ims" subnettype="IPV4V6" ownidentity="023430123456701@nai.epc.mnc030.mcc310.3gppnetwork.org" remoteidentity="ims" ipsecintegrity="IPSEC_INTEGRITY_HMAC_SHA_256_128" ipsecgroup="IPSEC_GROUP_MODP_2048" ikeintegrity="IKE_INTEGRITY_HMAC_SHA_256_128" ikegroup="IKE_GROUP_MODP_2048" vendorattribute="P-CSCF-V4V6" periodicdpdtimer="300" mtu="1300" />

А возможен ли MiTM этого IPsec трафика?

По конфигу мне непонятно

VoWiFi - это способ заставить платить дважды: и за WiFi, и за голос - оператору...

Нет, это способ связи, например, если на вашей стороне только Wi-Fi, а на другой стороне только голос (человек с кнопочным телефоном или человек со смартфоном, не подключённым к интернету — например, у меня не подключён мобильный интернет, и когда я где-то, где нет домашнего или бесплатного Wi-Fi, то со мной можно связаться только через мобильный звонок).


А за Wi-Fi большинство людей и не платят. А платят за проводной интернет дома, который затем роутер раздаёт совершенно бесплатно.

Смотрите, логика простая. Там где есть wifi там я могу связаться со 100% своих контактов, без опсоса, бесплатно. А с этой функцией за деньги и с опсосом. Это же "я понесу чемодан, а ты - меня" в чистом виде. Поэтому я рад Вашим -4. Всего дебилов на хабре немного, и те возможно наоборот, лоббисты. И все таки жаль, когда худенький, маленький Гена, которому в детстве читали сказку про лису, готов тащить гигантских Чебурашек, под песню "Битый не битого везет".

Вы не подумали, что бывают случаи, когда сценарий немножечко так отличается от вашего? Ваши-то контакты, может, и могут получить звонки через мессенджер, но не всем так повезло.

Я жила в отдалённом НП. Есть модем и тарелка-усилитель от МТС на крыше, но у меня-то теле2. В доме не ловит вообще ничего. И, чтобы позвонить человеку, которого нельзя просто набрать в телеграме, мне бы очень пригодились wi-fi звонки. Вот только теле2 их не поддерживает, к сожалению

Или описанный ТС сценарий - когда ты находишься за рубежом, в дичайшем роуминге, но у тебя есть местный интернет (да хоть wifi в гостинице) и тебе нужно совершить или принять звонок.

Третий уже сценарий - отлично помогает, когда работаешь в подвале, полуподвале или просто в глубине здания, но тебе нужно позвонить через сотовую сеть. Начинается цирк с кучей телефонов на полочке у тех, кому такие вызовы настолько необходимы. Либо можно просто протянуть wifi.

Вы же в курсе, что большинство всё равно платит дважды? Один раз за мобильный интернет, чтобы была возможность пользоваться им вне дома, и второй раз за домашний wifi, чтобы всё работало быстро, стабильно, и, главное, безлимитно дома.

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

любопытного в тему vowifi:
пишут, что если mac dns-сервера не совпадает с mac шлюза (что бывает редко, но не невозможно: dns-сервер должен отличаться от шлюза, и быть в той же сети, что клиент), то на квалкоммах vowifi не будет работать.


взято отсюда

вы как-то странно смогли переврать цитату с превращением ip в mac: "... Если в Wi-Fi сети default gateway и DNS server имеют разные IP-адреса, то VoWiFi работать не будет. Это такой замшелый баг в Qualcomm-овских чипах, который уже два года как никто не хочет исправлять. Смешно."

так я специально оставил ссылку на англоязычный источник:
Configure a Network (at least IPv4, IPv6 presence does not matter) 192.168.1.0/24 with the Gateway at 192.168.1.1, DNS server at 192.168.1.2 (these need to be on different machines / have different MAC addresses). The Gateway hands out IPv4 addresses in the 192.168.1.0/24 with the DNS server at 192.168.1.2 propagated to clients.


написано именно то, что в том случае, если dns-сервер за роутером (или совпадает с роутером), баг проявляться не будет.
для его проявления нужно, чтобы телефону dns-сервер был виден с маком отличным от мака шлюза.

Есть несколько "наивных" вопросов, которые хотелось бы прояснить. Если Вас не затруднит...

  1. Какова роль именно SIM-карты оператора для этой технологии? Используется ли какой-то ключ шифрования из неё, или в определённой ячейке хранится особый идентификатор? Если знать цифры MSIDN и MCC/MNC нужной сети - что ещё нужно из реквизитов чтобы "залогиниться"?

  2. "...мобильное устройство определяет IP-адрес ePDG-шлюза сотового оператора, обслуживающего SIM-карту. Для этого используетcя FQDN (доменное имя) специального вида, регламентированное стандартами 3GPP. "

    Кому принадлежит домен *3gppnetwork.org и почему все операторы ломятся именно на него, а не на какой-нибудь условный vowifihub.mts.ru (от балды)?
    Получается очевидная точка отказа, как и в случае c A-GPS, когда Qualcomm может решить больше не отдавать альманахи определённым диапазонам IP, странам, провайдерам.

  3. Где прописан этот адрес, куда телефон должен ломиться для идентификации? Конфигурационный файл? Прошивка? Ячейка SIM-карты?

  4. Всё же, что ещё необходимо для авторизации телефона у оператора через WiFi при отсутствии сигнала сотовой сети?
    Реально ли зная MSIDN, MCC, MNC и адрес, куда нужно ломиться, написать например клиентское приложение для VoWiFi под Win32 по типу SIP-клиента, и "выйти в онлайн" со своего мобильного номера, к примеру с ноутбука на Ethernet (окей, можно с WiFi вместо Ethernet если это принципиально)?

  5. Есть ли какой-то тайм-аут авторизации, после которого абонента "разлогинит" и потребуется повторная проверка чтобы заветный значок "в сети с использованием WiFi" появился?

  6. Сперва небольшая предыстория.
    В некоторых ранних флагманах HTC и Samsung был встроенный SIP-клиент. Ещё до того, как это стало мэйнстримом. Понятное дело что его можно было использовать за границей, самостоятельно вписав туда сервер, логин и пароль, не обязательно от своего сотового оператора, а вообще от любого SIP-провайдера. Но самый шик был именно в сочетании со своим сотовым оператором. В РФ до сих пор можно извлечь логин и пароль на SIP у оператора "МегаФон", т.е. услуга "МультиФОН" ещё работает, а не только своё фирменное приложение. У МТСа извлечь реквизиты от SIP было нельзя, как и у Теле2, а их говённое приложение ещё требовало SIM-карту в слоте для работы.
    Так вот, вопрос - в тех флагманах была возможность получать реквизиты для SIP-клиента откуда-нибудь. Своего рода реализация Auto-Provision, только не от DHCP, а то ли с SIM-карты, то ли от ОПСоСа.
    Вопрос - является ли процесс авторизации в VoWiFi чем-то сродни этому?

Какова роль именно SIM-карты оператора для этой технологии?

Используется для аутентификации. SIM-AKA называется. Деталей не знаю, но интуиция подсказывает, что должно быть похоже на аутентификацию в мобильной сети.

Не уверен, но. SIM-AKA это для так называемого Carrier WiFi, когда ключи с сим карты используются для аутентификации при подключении к WiFi. При VoWiFi этап подключения к WiFi не рассматривается, подразумевается, что устройство уже как-то подключилось. И данные с sim используются для аутентификации при установлении туннеля до ePDG.

Оно там как-то в EAP заворачивается и IKE аутентифицирует. Для strongswan даже плагин специальный есть eap-aka-3gpp.

  1. Авторизация в IMS осуществляется по протоколу Diameter задействуя функционал симкарты. Не знаю, просто ключи или какие-то криптопреобразования.

    2. Я выше уже описал, что адрес может быть любой, какой захочет оператор, другой вопрос, что это адрес нужно как-то сообщить всем вендорам телефонов.
    Есть некий профиль по умолчанию, в котором прописан алгоритм из статьи. Операторы могут использовать его, а могут задать свой адрес.

    3. В настройках телефона

    4. В общем случае нужна симка, в моменты тестирования операторы могли снижать требования и к шифрованию IPSec и к авторизации. (я расшифровывал в своё время WireShark трафик VoLTE одного оператора в период тестирования) наверное и авторизация была упрощенная. Но я думаю у них Реглятор не примет такое, да и уязвимости были...

    5. Есть, задаётся в настройках (профиле)

    6. Нет

я расшифровывал в своё время WireShark трафик VoLTE одного оператора в период тестирования

Интересны детали

  1. Для авторизации используется imsi и ключи, хранящиеся на симкарте.

  2. Этот домен принадлежит 3gpp. Но физически через него ничего не ходит, трафик идет сразу на ip ePDG

  3. Адрес нигде не хранится и поменять его нельзя. Он формируется в соответсии со стандартом с использованием MCC и MNC прописанных в симкарте

  4. Нереально. Для подключения устанавливается IPsec туннель с аутентификацией через IKEv2 с использованием крипты с симкарты.

  5. Какойто таймаут определенно есть. После каждого обрыва Ipsec идет повторная аутентификация.

Адрес нигде не хранится и поменять его нельзя Он формируется в соответсии со стандартом с использованием MCC и MNC прописанных в симкарте

Я же выше приводил путь где лежит этот адрес на телефонах Samsung и что он может быть любым.

На Xiaomi вот сейчас смотрю, такого файла нет, видимо в EFS лежит.

Кстати, дамп EFS средствами самого телефона можно как то посмотреть?

Это не из EFS а из самого android. На самсунге стек IMS программный.

Я не знаю таких инструментов.

Я только вчера начал плотно читать про технологию, как понял это я:

Есть 2 этапа. Первый: Устройство устанавливает шифрованный канал до ePDG. Насколько я понял, авторизация происходит с помощью предустановленного сертификата. Второй: Устройство регистрируется в системе IMS. Вот этот этап полностью SIP подобный.

Как извлечь пароль из мультифона?

Насколько я помню прыжок возможен только VoWiFI -> VoLTE -> 3G/2G

А еще многие операторы требуют местоположение отправлять им. У некоторых операторов VoWiFi работает только внутри страны, а за извне берут денег :)

Оператор Билайн, iPhone 13 Pro Max, дошел до "Вызовы по Wi-Fi" там можно включить или выключить, никаких VoWiFi нет, что-то не так?

"name": "MTS IMS",
"network": [
        {
          "type": "lte,wifi",
          "services": [
            "mmtel",
            "mmtel-video",
            "smsip"
          ],
          "enabled": true,
          "dereg_timeout": 8000
        }

"name": "Sberbank RUSSIA IMS",
"network": [
        {
          "type": "wifi",
          "services": [
            "mmtel",
            "smsip"
          ],
          "enabled": true
        }
      ]
"name": "TELE2 Russia IMS"
"network": [
        {
          "type": "lte,wifi",
          "services": [
            "mmtel",
            "mmtel-video",
            "smsip"
          ],
          "enabled": true
        }
      ]
"name": "Beeline VoLTE",
"network": [
        {
          "type": "lte,wifi",
          "services": [
            "mmtel",
            "smsip"
          ],
          "enabled": true
        }
      ]
"name": "Megafon VoLTE",
"network": [
        {
          "type": "lte,wifi",
          "services": [
            "mmtel",
            "smsip"
          ],
          "enabled": true,
          "dereg_timeout": 8000
        }
      ]
"name": "Letai Tattelecom IMS",
"network": [
        {
          "type": "lte,wifi",
          "services": [
            "mmtel"
          ],
          "enabled": true
        }
      ]
"name": "Motiv IMS",
"network": [
        {
          "type": "lte,wifi",
          "services": [
            "mmtel",
            "smsip"
          ],
          "enabled": true
        }
      ]


Как видите у всех кроме Летая есть.
А еще можно заметить что у МТС и Теле2 есть видеозвонки

Маленький кусочек imsprofile.json из приложения imsservice.apk из телефона Samsung.

На устройствах микротик достаточно

ip -> firewall -> service ports -> set sip ports=500,4500,5060,5061,5080,5081,5082

А для чего достаточно?

для создания комментария под комментарием.

Что это даёт, если и без этого нет проблем? И при чём тут sip?

В смартфонах Samsung одна из сим-карт может быть подключенной к своему оператору через мобильный интернет второй сим-карты, на которой активен интернет. Значок будет такой же, как у VoWiFi

Думаю, что если получится подключить к смартфону сетевую карту (через usb, например), то vowifi тоже будет работать.

В Настройках написано, что только если симка находится вне действия сети.
Самый интересный вопрос будет ли это работать в роуминге. Второй вставляешь местную симку и с первой звонишь через передачу данных второй.

Мне как-то сложно найти место где у меня не работает первый оператор и работает второй...

Теоретически да, но зависит от реализации.
У меня если зарегистрироваться в wowifi через wifi и подключиться по проводу, то какбы работает, но достоверно проверить невозможно, потому что как только я отключаю wifi то сразу пропадает значок. А сразу через провод он не регистрируется в wowifi.

Где эта настройка? У меня самсунг, но vowifi отваливается при отключении вайфая, хотя LTE стабильный на другой симке.

Нашёл, работает. Я в восторге ☺️

Как заставил работать Backup Calling?

у МТС есть мобильное приложение МТС-Коннект или Мой-Коннект
у Мегафона - eMotion
работают и по вафле и по мобильному трафику любой сторонней сим-ки
(на всякий случай)

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

У меня происходит отвал vowifi при включении сим-модуля (выключение режима полета). Если симка не видит сеть в роуминге, то vowifi работает. На более современной прошивке тела vowifi работает в обоих режимах, но прошивка тормозит, поэтому я откатил. Пробовал прошивать разные версии модемов, но проблема не решается. Видимо, надо где-то ковырять конфиги, хотелось бы узнать, где :)

Спасибо автору за статью!

Прошу прощения за наивный вопрос т. к. не нашёл прямого ответа в комментариях. Если перевести смартфон в авиарежим (самолётик) и оставить подключение Wi-Fi то должен ли работать VoWi-Fi? Я пробовал - телефон становится недоступным.

Видимо для работы VoWi-Fi нужна активная SIM-карта (типа из неё берутся авторизационные данные, чтобы понимать, что за номер телефона). Т. е. условно в подземном бункере, куда не добирается сотовая связь, но есть Wi-Fi эта услуга будет работать.

На самсунге работает, в авиарежиме есть vowifi и можно дозвониться

У меня как раз Samsung - S23 Ultra. Не получилось запустить VoWi-Fi в авиарежиме. Видимо у ОпСоСа специфические условия - А1 (бывший Вэлкам) в РБ. Я побаловался и плюнул. Плюс где-то читал, что голосовой трафик по IP он пускает только в своей сети.

Я даже попробовал прокинуть VPN из одной своей Wi-Fi сети до Wi-Fi сети ОпСоСа - в обычном (не авиарежиме) не сработало. VoWi-Fi работает только если я действительно в их сети нахожусь.

Sign up to leave a comment.

Information

Website
www.cti.ru
Registered
Founded
Employees
201–500 employees
Location
Россия