SIP
Phonebook
0— КАРРАМБА! СВИСТАТЬ ВСЕХ НАВЕРХ!100— Open Space101— WC102— Кухня103— Хардварошная104— Резидентская комната
SIP на Android
При всём богатстве выбора, Linphone — самая достойная опция. По состоянию на осень 2025 Android давно закопал встроенный SIP, поэтому если попробовтаь другие софтфоны, оказывается,
что… (aka. обзор софтфонов 2025)
🔴 X-Lite — увы, gone, “X-Lite is now Bria Solo”
🔴 CSipSimple — увы, “проект CSipSimple был закрыт“, в Google Play его нет
🔴 Bria - VoIP SIP Softphone — увы, vendor-only
🔴 Bria Mobile: VoIP Softphone — увы, “Google Play’s billing system is currently paused in Russia“
🔴 PortSIP Softphone — увы, сломан абсолютно, даже сигнальный трафик не генерирует
🔴 MizuDroid — увы, очень конфигурируем, но звонок с конфигом “по-умолчанию” сразу ловит
BYE🔴 Zoiper — кодеки и ZRTP за 💵, но, увы,
Registration failed (DNS Timeout (503))(?!)🟡 Sipdroid — “Works”, но старые кодеки, нет автоподстройки громкости (
tel:100“тихий”), UI доисторический, “сброс” звонка в UI не работает 🤣🟡 Sipnetic — “Works”, QR=data, ZRTP=💵, SIP URI 👌, ⚠️ использует
8.8.8.8вместо системного DNS, ⚠️ за ночь с настройками “по-умолчанию” съел батарейку в 0%, да ещё и очень назойливо требует permissions🟢 Linphone — “Works”, QR=URL, FOSS
⚠️ 3CX Phone — ONLY QR-code provisioning
⚠️ Telphin — ONLY QR-code provisioning
iOS & macOS
Linphone. For macOS you may also consider Telephone for its quick debugging capabilities.
Добавляем мобильный софтфон с TLS и SRTP
Добавляем учётную запись SIP — в Asterisk:
Идём в Teleport;
Через Teleport или ssh идём на
phonebooth.int.bksp.in;В
~/deployments/asterisk/conf/pjsip.confдобавляем номер телефона по образу и подобию тех, что с секцией(ext-tls-mandatory-srtp-client);cd ~/deployments/asterisk/ && docker compose restart
Настраиваем софтфон:
Устанавливаем Linphone;
Permissions:
Pictures & video — ни к чему;
Record audio — “while using the app”, конечно, нужно, никак иначе;
Contacts — без пользы;
Notifications — по вкусу;
“[Use a third party SIP account]” вместо
@linphone.org;“[I understand]”, что так и надо;
Account:
Username:
{номер телефона}Password:
********⚠️ Домен:
sip.bksp.in⚠️Транспорт:
TLS— неUDPи неTCP
⚙️ Settings 🔽
Calls 🔽 Enable Video — 🚫
Contacts 🔽 Subscribe to presence info — 🚫
User interface 🔽 Automatically open dialpad — ✅
Advanced settings 🔽
⚠️ Calls / Media encryption —
SRTP, иначе исходящие сломаютсяStart when device boots — 🚫
Keep app alive using Service — 🚫
Добавляем мобильный софтфон с WireGuard (без NAT)
Идём в Vaultwarden на https://passwd.bksp.in/ и берём пароль для
BKSP UxieИдём в OPNsense на
uxie.int.bksp.inв VPN / WireGuard / Peer GeneratorWireGuard даст IP-связность без NAT, добавляем в
2sp4ce:Endpoint:
lanskoe.loc.bksp.in:44392;Name:
{username}-{device}, {username} пусть совпадает с Username в Свинке;Смотрим уже выделенные адреса в
2sp4ceв VPN / WireGuard / Peers для устройства2sp4ceAddress: выбираем свободный из подсети
10.91.66.128/25(end2sp4ceв Networking),
например10.91.66.257/32;Pre-shared key не забыть сгенерировать;
Allowed IPs:
10.91.66.0/24, 10.0.2.0/23, 10.133.7.0/24(2sp4ce, Internal, SIPRNET)Keepalive interval оставляем пустым, чтоб не тратить батарейку
DNS Servers оставляем пустыми
Нажимаем [Store and generate next]
Нажимаем [Apply] ‼️
WireGuard — на телефон:
Устанавливаем WireGuard;
Сканируем QR-код из интерфейса OPNsense в приложении, добавляем тоннель
2sp4ce, тоннель можно держать включенным всегда
Учётную запись SIP — в Asterisk:
Идём в Teleport;
Через Teleport или ssh идём на
phonebooth.int.bksp.in;В
~/deployments/asterisk/conf/pjsip.confдобавляем номер телефона по образу и подобию тех, что с секцией(client);;cd ~/deployments/asterisk/ && docker compose restart
Настраиваем софтфон:
Устанавливаем Linphone;
Permissions:
Pictures & video — ни к чему;
Record audio — “while using the app”, конечно, нужно, никак иначе;
Contacts — без пользы;
Notifications — по вкусу;
“[Use a third party SIP account]” вместо
@linphone.org;“[I understand]”, что так и надо;
Account:
Username:
{номер телефона}Password:
********⚠️ Домен:
sip.svc.bksp.in⚠️ Транспорт:
UDP— неTLSи неTCP
⚙️ Settings 🔽
Calls 🔽 Enable Video — 🚫
Contacts 🔽 Subscribe to presence info — 🚫
User interface 🔽 Automatically open dialpad — ✅
Advanced settings 🔽
Start when device boots — 🚫
Keep app alive using Service — 🚫
Когда софтфон готов
Для работы sip URL на https://dial.bksp.in/ при клике из Telegram в Android необходимо добавить
dial.bksp.inв исключения встроенного в Telegram web-браузера, иначе Linphone будет открываться, но звонок не будет инициироваться, т.к. Telegram передаёт только схему URL’а.Let’s just make a normal call just to see that the system works... Hello, Mike! — Hello, Joe!
Creating a SIP account
This section is experimental and is subject to change.
Log-in to phonebooth instance using either Teleport CLI or Teleport Web.
# Connect using Teleport CLI
tsh ssh root@phonebooth
# Navigate to PBX directory
cd ~/deployments/asterisk
# Get list of all prefixes already used
./bin/list-prefixes
# Choose an unoccupied prefix.
# Let's assume that it's 1234.
# Then, determine how you'd connect to PBX:
# - (client-local) Local insecure (within B4CK network, or Uxie-based VPN).
# - (client-siprnet) Via SIPRNET Tunnel (Smol).
# - (client-ext-tls) Via Direct External TLS+SRTP (at sip.bksp.in:5061).
# Create a new prefix.
# ./bin/create-prefix -t <type> -u <user> -n <name> <prefix>
# -t / --type Connection type (client-local, client-siprnet, client-ext-tls)
# -u / --user Resident name for `pjsip_clients/{user}.conf` filename.
# -n / --name Caller ID name to be displayed during calls
# <prefix>
./bin/create-prefix -t client-ext-tls -u johndoe -n "John Doe" 1234
# Reload PJSIP to apply changes
./bin/pjsip-reload