Комментарии 52
Интересная статья, пользуюсь регулярно данной фичей на МТС, никогда не задумывался о том что там под капотом у данной на вид очень простой технологии. Но в роуминге лучше звонить по 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?

все ползунки в меню *#*#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"
/>
VoWiFi - это способ заставить платить дважды: и за WiFi, и за голос - оператору...
Нет, это способ связи, например, если на вашей стороне только Wi-Fi, а на другой стороне только голос (человек с кнопочным телефоном или человек со смартфоном, не подключённым к интернету — например, у меня не подключён мобильный интернет, и когда я где-то, где нет домашнего или бесплатного Wi-Fi, то со мной можно связаться только через мобильный звонок).
А за Wi-Fi большинство людей и не платят. А платят за проводной интернет дома, который затем роутер раздаёт совершенно бесплатно.
Смотрите, логика простая. Там где есть wifi там я могу связаться со 100% своих контактов, без опсоса, бесплатно. А с этой функцией за деньги и с опсосом. Это же "я понесу чемодан, а ты - меня" в чистом виде. Поэтому я рад Вашим -4. Всего дебилов на хабре немного, и те возможно наоборот, лоббисты. И все таки жаль, когда худенький, маленький Гена, которому в детстве читали сказку про лису, готов тащить гигантских Чебурашек, под песню "Битый не битого везет".
Вы не подумали, что бывают случаи, когда сценарий немножечко так отличается от вашего? Ваши-то контакты, может, и могут получить звонки через мессенджер, но не всем так повезло.
Я жила в отдалённом НП. Есть модем и тарелка-усилитель от МТС на крыше, но у меня-то теле2. В доме не ловит вообще ничего. И, чтобы позвонить человеку, которого нельзя просто набрать в телеграме, мне бы очень пригодились wi-fi звонки. Вот только теле2 их не поддерживает, к сожалению
Или описанный ТС сценарий - когда ты находишься за рубежом, в дичайшем роуминге, но у тебя есть местный интернет (да хоть wifi в гостинице) и тебе нужно совершить или принять звонок.
Третий уже сценарий - отлично помогает, когда работаешь в подвале, полуподвале или просто в глубине здания, но тебе нужно позвонить через сотовую сеть. Начинается цирк с кучей телефонов на полочке у тех, кому такие вызовы настолько необходимы. Либо можно просто протянуть wifi.
Вы же в курсе, что большинство всё равно платит дважды? Один раз за мобильный интернет, чтобы была возможность пользоваться им вне дома, и второй раз за домашний wifi, чтобы всё работало быстро, стабильно, и, главное, безлимитно дома.
Вам, может быть, оно не нужно, и вы можете раздать свой безлимитный интернет с телефона на любое количество устройств, но в современных реалиях это скорее выходящий за рамки обычного случай. Особенно нереален он для новых абонентов
вы как-то странно смогли переврать цитату с превращением 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-сервер был виден с маком отличным от мака шлюза.
Есть несколько "наивных" вопросов, которые хотелось бы прояснить. Если Вас не затруднит...
Какова роль именно SIM-карты оператора для этой технологии? Используется ли какой-то ключ шифрования из неё, или в определённой ячейке хранится особый идентификатор? Если знать цифры MSIDN и MCC/MNC нужной сети - что ещё нужно из реквизитов чтобы "залогиниться"?
"...мобильное устройство определяет IP-адрес ePDG-шлюза сотового оператора, обслуживающего SIM-карту. Для этого используетcя FQDN (доменное имя) специального вида, регламентированное стандартами 3GPP. "
Кому принадлежит домен *3gppnetwork.org и почему все операторы ломятся именно на него, а не на какой-нибудь условный vowifihub.mts.ru (от балды)?
Получается очевидная точка отказа, как и в случае c A-GPS, когда Qualcomm может решить больше не отдавать альманахи определённым диапазонам IP, странам, провайдерам.Где прописан этот адрес, куда телефон должен ломиться для идентификации? Конфигурационный файл? Прошивка? Ячейка SIM-карты?
Всё же, что ещё необходимо для авторизации телефона у оператора через WiFi при отсутствии сигнала сотовой сети?
Реально ли зная MSIDN, MCC, MNC и адрес, куда нужно ломиться, написать например клиентское приложение для VoWiFi под Win32 по типу SIP-клиента, и "выйти в онлайн" со своего мобильного номера, к примеру с ноутбука на Ethernet (окей, можно с WiFi вместо Ethernet если это принципиально)?Есть ли какой-то тайм-аут авторизации, после которого абонента "разлогинит" и потребуется повторная проверка чтобы заветный значок "в сети с использованием WiFi" появился?
Сперва небольшая предыстория.
В некоторых ранних флагманах 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.
Авторизация в IMS осуществляется по протоколу Diameter задействуя функционал симкарты. Не знаю, просто ключи или какие-то криптопреобразования.
2. Я выше уже описал, что адрес может быть любой, какой захочет оператор, другой вопрос, что это адрес нужно как-то сообщить всем вендорам телефонов.
Есть некий профиль по умолчанию, в котором прописан алгоритм из статьи. Операторы могут использовать его, а могут задать свой адрес.
3. В настройках телефона
4. В общем случае нужна симка, в моменты тестирования операторы могли снижать требования и к шифрованию IPSec и к авторизации. (я расшифровывал в своё время WireShark трафик VoLTE одного оператора в период тестирования) наверное и авторизация была упрощенная. Но я думаю у них Реглятор не примет такое, да и уязвимости были...
5. Есть, задаётся в настройках (профиле)
6. Нет
я расшифровывал в своё время WireShark трафик VoLTE одного оператора в период тестирования
Интересны детали
Там были Null encrypted ESP payloads никакие ключи не вводил.
Трафик захватывал с помощью https://github.com/fgsect/scat
Для авторизации используется imsi и ключи, хранящиеся на симкарте.
Этот домен принадлежит 3gpp. Но физически через него ничего не ходит, трафик идет сразу на ip ePDG
Адрес нигде не хранится и поменять его нельзя. Он формируется в соответсии со стандартом с использованием MCC и MNC прописанных в симкарте
Нереально. Для подключения устанавливается IPsec туннель с аутентификацией через IKEv2 с использованием крипты с симкарты.
Какойто таймаут определенно есть. После каждого обрыва Ipsec идет повторная аутентификация.
Я только вчера начал плотно читать про технологию, как понял это я:
Есть 2 этапа. Первый: Устройство устанавливает шифрованный канал до ePDG. Насколько я понял, авторизация происходит с помощью предустановленного сертификата. Второй: Устройство регистрируется в системе IMS. Вот этот этап полностью SIP подобный.
Как извлечь пароль из мультифона?
Del
Насколько я помню прыжок возможен только VoWiFI -> VoLTE -> 3G/2G
А еще многие операторы требуют местоположение отправлять им. У некоторых операторов VoWiFi работает только внутри страны, а за извне берут денег :)
Оператор Билайн, iPhone 13 Pro Max, дошел до "Вызовы по Wi-Fi" там можно включить или выключить, никаких VoWiFi нет, что-то не так?
А это скажи эпплам спасибо, за то, что не могут отдать выбор приоритета пользователю, а сами решили, что звонки через мобильную сеть более приоритетны :)
https://www.reddit.com/r/ios/comments/p4fymd/is_there_any_way_to_prioritize_wifi_over_cellular/
А что там с смсками?
"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 есть видеозвонки
На устройствах микротик достаточно
ip -> firewall -> service ports -> set sip ports=500,4500,5060,5061,5080,5081,5082
В смартфонах Samsung одна из сим-карт может быть подключенной к своему оператору через мобильный интернет второй сим-карты, на которой активен интернет. Значок будет такой же, как у VoWiFi
Думаю, что если получится подключить к смартфону сетевую карту (через usb, например), то vowifi тоже будет работать.
В Настройках написано, что только если симка находится вне действия сети.
Самый интересный вопрос будет ли это работать в роуминге. Второй вставляешь местную симку и с первой звонишь через передачу данных второй.
Мне как-то сложно найти место где у меня не работает первый оператор и работает второй...
Теоретически да, но зависит от реализации.
У меня если зарегистрироваться в wowifi через wifi и подключиться по проводу, то какбы работает, но достоверно проверить невозможно, потому что как только я отключаю wifi то сразу пропадает значок. А сразу через провод он не регистрируется в wowifi.
Где эта настройка? У меня самсунг, но vowifi отваливается при отключении вайфая, хотя LTE стабильный на другой симке.
у МТС есть мобильное приложение МТС-Коннект или Мой-Коннект
у Мегафона - eMotion
работают и по вафле и по мобильному трафику любой сторонней сим-ки
(на всякий случай)
У меня происходит отвал vowifi при включении сим-модуля (выключение режима полета). Если симка не видит сеть в роуминге, то vowifi работает. На более современной прошивке тела vowifi работает в обоих режимах, но прошивка тормозит, поэтому я откатил. Пробовал прошивать разные версии модемов, но проблема не решается. Видимо, надо где-то ковырять конфиги, хотелось бы узнать, где :)
Технология VoWiFi с точки зрения Wi-Fi