- •Тема: Функциональные спецификации приложений WhatsApp, Telegram и сервера обслуживания ip-телефонии
- •Основные термины
- •- Android os 2.3.3 , либо iOs 4.3, либо ос Windows Phone 7.5, либо BlackBerry os 4.6.
- •Текущие и исключённые возможности приложения
- •Uml диаграмма прецедентов (Use Case) приложения WhatsApp
- •- Android os 2.2 , либо iOs 6.0, либо ос Windows Phone 8.1, либо MacOs 10.8, либо наличие обновлённого интерент-браузера на пк.
- •Текущие и исключённые возможности приложения
- •Uml диаграмма прецедентов (Use Case) приложения Telegram
- •Uml диаграмма классов (Class Model) приложений WhatsApp, Telegram
- •Описание кода приложений WhatsApp, Telegram
- •Диаграмма коммуникации протоколов приложения WhatsApp
- •Описание кода взаимодействия протоколов приложения WhatsApp
- •Xmpp ServerRequestRef); /ссылка ServerRequest
- •Описание протоколов приложения Telegram
- •Диаграмма коммуникации протоколов приложения Telegram
- •Описание кода взаимодействия протоколов приложения Telegram
- •IncludePayload (ref /через скрипт mtproto
- •Invite (приглашение) — приглашает пользователя принять участие в сеансе связи (служит для установления нового соединения; может содержать параметры для согласования);
- •Диаграмма коммуникации сервера обслуживания ip-телефонии
- •Описание кода сервера обслуживания ip-телефонии
- •Список использованных источников
- •Приложение
- Android os 2.2 , либо iOs 6.0, либо ос Windows Phone 8.1, либо MacOs 10.8, либо наличие обновлённого интерент-браузера на пк.
- Наличие мобильного устройства с SIM-картой
- Доступ к интернет трафику.
Технические подробности
Первое, что должен делать клиент приложения, это создать ключ авторизации, который обычно генерируется в момент первого запуска и обычно никогда не меняется. По некоторым сведениям, в последних обновлениях этот ключ меняется через каждые 100 отправленных сообщений (https://twitter.com/durov/status/539489480676085760)
Сессия привязана к приложению клиента, а не к конкретному http/https/tcp соединению. Дополнительно, каждая сессия прикреплена к ID пользовательского ключа, которым собственно и завершается авторизация. Может быть открыто несколько соединений с сервером, сообщения могут быть отправлены в направлении любого из соединений (ответ на запрос необязательно возвращается через то же соединение, которое содержало оригинальный запрос, хотя чаще всего именно так). Когда используется протокол UDP, ответ на запрос должен быть отправлен с помощью другого IP адреса, а не с того, с которого был послан запрос.
При авторизации и аутентификации используются алгоритмы RSA-2048, DH-2048 для шифрования, при передаче сообщений протокола в сеть они шифруются AES с ключом, известным клиенту и серверу. Также применяются криптографические хеш-алгоритмы SHA-1 и MD5.
Режим «секретных» чатов (Secret Chats) реализует шифрование, при котором лишь отправитель и получатель обладают общим ключом (end-to-end шифрование). В отличие от обычного режима, сообщения в секретных чатах не расшифровываются сервером, история переписки сохраняется лишь на тех двух устройствах, на которых был создан чат.
При обмене файлами можно как отправить файлы с устройства, так и искать медиаконтент в интернете, в том случае, если используется мобильная версия для iOS или Android. Размер передаваемых файлов ограничен 1,5 Гб. Программа использует систему докачки файлов после обрыва связи. Имеется возможность организовывать мультичаты до 10000 участников. С помощью специального бота можно проверять орфографию.
Текущие и исключённые возможности приложения
Возможности приложения:
- Максимальное количество участников чата в Telegram — 5000 человек
- Встроенная функция поиска изображений в Интернете (для поиска используется сервис Bing)
- Режим чата «Каналы»
- Кроссплатформенность приложения
- Автоматическая регистрация аккаунта и привязка его к номеру телефона, настройка аккаунта.
- Просмотр и редактирование профиля (имя, статус, аватар).
- Возможность использования двухшаговой проверки для доступа к аккаунту.
- Возможность перемещения информации о аккаунте, группах, настройках на другой номер.
- Автоматическое добавление контактов с SIM-карты.
- Система поиска пользователей.
- Обмен текстовыми сообщениями с одним или с группой пользователей (чат).
- Поддержка смайлов, наличие большого базового набора.
- Сквозное шифрование сообщений.
- Отчёт о прочтении сообщения.
- Добавление контакта в чёрный список.
- Поддержка голосовой связи.
- Поддержка голосовых сообщений.
- Поддержка передачи файлов разных типов.
- Отображение и воспроизведение внутри приложения большинства форматов фото, видео, аудио и анимационных файлов.
- Использования камеры внутри приложения.
- Просмотр и настройка получения информации о других пользователях (время посещения, аватар, статус).
- Возможность включения/отключения push-уведомлений.
- Настройка ввода сообщений, выбор шрифта.
- Настройка обоев, звуковых уведомлений, вибрации.
- Настройка использования интернет трафика при подключении к мобильной сети/Wi-fi, а так же при нахождении в роуминге.
- Наличие внутри приложения FAQ, обратной связи и информации о версии программы и лицензиях.
- Поддержка стикеров (в т.ч. пользовательских).
- Настройка автоматического удаления сообщений.
- Ввод команд внутри чата при помощи «/»
Исключённые возможности:
- Конференция или голосовая связь между тремя и более пользователями.
- Возможность удаления аккаунта.
- Редактирование истории переписок, её резервное копирования, архивирование, отправки на email.
- Уведомление о изменении кода безопасности контакта.
- Автоматический поиск популярных gif-изображений
- Выбор русскоязычного интерфейса
