Tamkovich.com: Телеком/VoIP блог
Современные технологии: Asterisk, SIP, Kamailio, Linux, Cisco, Linksys
SIP + H.264 для iPhone4 (Apple FaceTime)
22 июня, 2010 by Сергей Тамкович
Железо iPhone, SIPС момента презентации iPhone4, в интернете появилась масса спекуляций на тему того, что такое FaceTime и как оно работает. Пишут разное, в основном, как водится, глупости. Что же показал Джобс? Джобс показал набор технологий, скрывающихся за названием FaceTime:

Как говорится: имеющий глаза да увидит! Тем не менее коротко пробежимся по перечисленным технологиям. H.264 и AAC — кодеки для видео и аудио. Многие блогеры пишут про H.263 — нагло врут. Другая часть блогеров распинается в стенаниях по поводу несвободности H.264 — полностью игнорируя несвободный AAC. SIP — малоизвестный протокол сигнализации IP телефонии. STUN, TURN и ICE — технологии для работы с NAT-ом. Кстати то, как связываются два iPhone4, находящиеся за NAT-ом — большая загадка, но об этом позже. RTP и SRTP — протоколы передачи медиа (звук и видео) — обычный и «безопасный» — с поддержкой шифрования.
Смешно читать комментарии вроде «FaceTime — бяка, лучше буду пользоваться IP телефонией». Друзья, FaceTime это и есть IP телефония. Другой смешной шуткой является сравнение 3G видео звонков, которые действительно не новы и FaceTime от Apple. Это технологии разного уровня и разного времени. 3G видео звонки это H.324M — наследие ISDN видеоонференций разработанных в 90е. FaceTime это SIP и H.264 — наиболее прогрессвиные технологии связи и кодирования видео на сегодня.
Таким образом, мы имеем SIP телефон интегрированный в iOS4 — и это замечательно! Да, сегодня в AppStore существует большое количество SIP телефонов в т.ч. и бесплатных. Лично мне нравится Adore SIP Client. Но у всех этих приложений есть один общий недостаток — они не интегрированы в iOS, а значит нельзя позвонить из стандартной телефонной книги через SIP, для входящих звонков не отображаются фото и имя звонящего и т.п. Неизвестно, будут ли все эти возможности реализованы в новом iPhone4, ведь распространятся он будет как и предыдущие — залоченым на AT&T. Оператор врядли обрадуется уводу дорогого трафика в VoIP сети. Однако, раз SIP video клиент уже в iPhone4, не составит никакого труда интегрировать его с телефонной книгой и с другими базовыми возможностями iPhone — надеюсь так и будет сделано.
Пока нет данных о том, как именно взаимодействуют данные технологии под общим названием FaceTime — попробуем пофантазировать. Для того что бы совершить SIP звонок надо во-первых, передать SIP сообщение от абонента A к абоненту B, а во-вторых установить передачу медиа (звук и видео) между абонентами. Для усложнения задачи, предположим что каждый абонент сидит за NAT-ом на своей точке доступа. Основные вопросы к Facetime: Как устанавливается прямая медиа-сессия между абонентами за NAT-ом?, Каким образом абонент А, узнаёт IP адрес абонента B?, Если в схеме связи участвует SIP сервер (proxy или registrar) — каким образом происходит авторизация?
Для преодоления NAT-а, iPhone4 поддерживает такие замечательные технологии как STUN, TURN и ICE. Последняя, к примеру, позволяет устанавливать прямой обмен данными между абонентами, находящимися за NAT-ом. Вариант передачи медиа-трафика, с помощью третьих лиц (абонентов имеющих реальный IP адрес) — по аналогии со Skype — маловероятен. Во-первых, процессор A4, используемый в iPhone4, откровенно слаб для подобных фокусов. Во-вторых Apple заявляет о своем желании сделать FaceTime индустриальным стандартом и привлечь других вендоров. Надеяться что все вендоры которые будут использовать FaceTime — будут по честному пропускать трафик NAT-абонентов через абонентов с реальными IP — было бы слишком наивно.
Каким образом абоненты узнают адреса своих контрагентов для установки видео соединения? Первое, что приходит в голову, это специальная посылка, с помощью обычного модема своих сетевых параметров противоположной стороне. А затем попытка прямого SIP соединения двух абонентов по Wi-Fi (IP) сети.
Другой альтернативой данному подходу, может быть использование централизованного SIP сервера. Как известно протокол SIP обладает потрясающей масштабируемостью. По заявлениям автора Kamailio, их программный продукт, работающий на средненьком по современным меркам сервере, способен обслужить звонки от SanFrancisco Bay Area (население 7.5 млн чел). Компании уровня Apple не составит труда разместить десяток SIP серверов работающих в качестве регистраторов, для сообщения IP адресов абонентам, желающим установить видеосоединение.
Однако использование SIP серверов поднимает несколько вопросов. Прежде всего это авторизация. Для того что бы телефон зарегистрировался на SIP сервере, ему необходимо использовать для этого некий уникальный идентификатор. Идентификатор не проблема с ходу в голову приходят: AppleID, MAC, IMEI или, например, серийный номер SIM карты. Сложность состоит в том, что тот кто пытается установить соединение с вами, должен знать ваш идентификатор. Ситуация ещё более усложняется возможным участием других вендеров.
Некоторые обозреватели, предполагают что, для локации абонента будет использована технология ENUM. Отвечу коротко: ENUM-а не будет. ENUM, это технология заточенная под оператора связи. Вставить свою запись в DNS, без разрешения оператора, которому пренадлежит ваш номер — не получится. Даст ли мобильный оператор такое разрешение — помоему очевидно, что нет.
Что ж, ждать осталось не долго, через 2 дня iPhone4 официально поступит в продажу и мы получим возможность изучить, насколько элегантно (я надеюсь) компания Apple реализовала SIP видео телефон.
Железо iPhone, SIP
Давно ждал, пока кто-нибудь разберет эту новость подробнее. Спасибо.
Осталось увидеть девайс и надеяться, что Apple поспособствует популяризации SIP.
Большое спасибо за интересную статью! Apple как всегда молодцы.
Н-да, если написанное на http://www.addictivetips.com/mobile/apple-gathering-facetime-information-ability-to-see-video-calls/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Addictivetips+%28AddictiveTips%29&utm_content=Google+Reader правда, то все не так хорошо.
Дмитрий, что конкретно вас заинтересовало/возмутило в статье по ссылке? давайте обсудим.
Если я правильно понял статью, то для создания FaceTime сокдинения требуется отправка аппаратом SMS в Apple. Это интересный способ прохождения NAT, но вопрос о стоиомсти SMS и передачи личных данных так пока и не раскрыт.
Дмитрий, разделим вопрос на 2 части: 1. Apple собирает в тихую какую-то информацию с iPhone. 2. отправляется SMS для установления видеосвязи.
1. этот вопрос наивен. вр-первых собирать информацию по SMS неудобно, и не нужно ведь большинство телефонов подключены к интернету. Во-вторых я уверен Apple итак собирает всю необходимую ему информацию — хотя бы при подключении к appstore.
2. Маловероятно. Дело в том, что цель Apple — международные рынки (88 стран к концу сентября). SIP уже содержит средства для распределения нагрузки, прохождения через NAT и т.п. Неудобно из 88 стран отправлять смс в штаты. Организовывать бесплатный номер в каждой стране тоже неудобно. По поводу цены SMS — В статье указывается что СМС отправляется на бесплатный номер (+1-800…).
В статье очень много неверных предположений. Например о том, что трафик не шифруется. Это противоречит слайду с WWDC2010, на котором в списке технологий FaceTime указана SRTP.
Итого, о сборе личной информации следовало задуматься впервык подключаясь к AppStore. Схема с SMS сложна, дорога (для Apple) и неудобна. В статье преведены лишь слухи и предположения. Никаких технических доказательств — нет. Реальное использование подобной схемы мне кажестя маловероятным.