Начните здесь
KatoCall — это телефонный коммутатор со встроенным биллингом. Ваши клиенты звонят через него; он проверяет их баланс, выбирает самый дешёвый маршрут, засекает время звонка и тарифицирует его — автоматически.
Вы покупаете минуты у оператора по одной цене и продаёте клиентам дороже. KatoCall хранит обе цены и удерживает разницу на каждом звонке.
Полезно знать: KatoCall не конвертирует валюты. Выберите одну валюту в Настройках (доллар США по умолчанию) и используйте её для покупки и продажи, чтобы каждая маржа была простым вычитанием.
Часть 1
Это делается один раз, на новом сервере. Если сервер настраивает технический специалист, отдайте ему эту часть.
| Сервер | Debian 12 (Bookworm), 64-бит — чистый. Подойдёт любой приличный VPS (OVH, Hetzner, DigitalOcean, Vultr). |
|---|---|
| Размер | 2 ядра CPU, 4 ГБ ОЗУ, 20 ГБ диска. 2 ГБ ОЗУ — минимум. |
| Публичный IP | Серверу нужен собственный адрес в интернете — его даёт ваш провайдер. |
| Доступ к серверу | Пароль root или пользователь с sudo. |
| От вашего оператора | SIP-транк (его хост и разрешённый IP или логин/пароль), плюс номера (DID), если есть. |
| Доменное имя (необязательно) | Только если нужен замок https. Можно начать без него и добавить позже. |
Скопируйте katocall-1.0.0.tar.gz на сервер и выполняйте эти команды по одной. Каждая показывает, что делает, и останавливается с понятным сообщением, если чего-то не хватает.
Первая команда ничего не меняет — она подтверждает, что сервер готов, и сообщает, если чего-то не хватает.
# unpack the package tar -xzf katocall-1.0.0.tar.gz cd katocall-1.0.0 # проверяет сервер (безопасно — ничего не меняет) sudo bash install/00-preflight.sh
Запускайте по одному. Номер 01 собирает телефонный движок и занимает 10–20 минут; остальные быстрые.
sudo bash install/01-install-asterisk.sh # телефонный движок (10–20 мин) sudo bash install/02-install-base-stack.sh sudo bash install/03-setup-admin-panel.sh sudo bash install/04-configure-ami.sh sudo bash install/05-production-hardening.sh sudo bash install/06-configure-did-forwarding.sh sudo bash install/07-configure-fail2ban.sh sudo bash install/08-configure-nat.sh sudo bash install/09-configure-outbound.sh sudo bash install/11-configure-backups.sh sudo bash install/12-configure-dialer.sh # только если нужен обзвонщик
С 01 по 09 обязательны. Шаг 12 нужен только для обзвонщика — пропустите его, и всё остальное всё равно работает.
Выполняет около 65 проверок — каждую службу, файрвол, бэкапы, безопасность — и называет, что исправить при сбое.
sudo bash install/verify.sh PASS 66 WARN 1 FAIL 0
Откройте адрес сервера в браузере и войдите. Система сразу потребует новый пароль — ничего не работает, пока вы его не зададите.
http://your-server-address/adminKatocallПеред реальными звонками: включите HTTPS. Пока не включите, панель работает по обычному http, и вход путешествует по интернету незащищённым. Как только домен указывает на сервер, выполните:
sudo bash install/10-configure-tls.sh panel.yourcompany.com you@yourcompany.com
Часть 2
Теперь вы в панели. Создайте эти шесть вещей в таком порядке — каждая использует предыдущую. Всё в левом меню.
Поставщик (Supplier) — это оператор, у которого вы покупаете минуты. Начните здесь, потому что всё остальное ссылается на него. Откройте Suppliers → New Supplier и дайте имя.
Тарифная карта (Rate Card) — это прайс-лист, по строке на направление (префикс, например 1 для США или 44 для Великобритании). Создайте два вида:
Не вводите сотни префиксов вручную: откройте карту и нажмите Import CSV, чтобы загрузить прайс оператора разом.
Полезно знать: Тарифы хранятся с 4 знаками после запятой; файл с 5 знаками округляется при импорте.
Транк (Trunk) — это активное соединение с поставщиком. Откройте Trunks → New Trunk. Важны две вещи:
После сохранения используйте Test Call, чтобы убедиться, что он набирает, прежде чем направлять клиентов.
Имя транка не может содержать пробелы — используйте IDT-GOLD, а не IDT GOLD.
Группа маршрутизации говорит: для такого номера пробуй эти транки, в таком порядке. Две настройки:
Если первый транк занят или недоступен, KatoCall переходит к следующему. Используйте Preview, чтобы ввести номер и увидеть, какой транк будет выбран.
Аккаунт (Account) — это один клиент. Откройте Accounts → New Account. Важные выборы:
Полезно знать: Каждому аккаунту, совершающему исходящие звонки, нужна клиентская Rate Card, покрывающая продаваемые вами префиксы — иначе эти звонки отклоняются (никогда не тарифицируются по нулю).
DID — это номер, по которому звонят, чтобы связаться с одним из ваших клиентов. Откройте аккаунт, перейдите в DIDs → Add DID, введите номер и куда переадресовать. (Сначала сохраните аккаунт.)
У каждого поля в панели есть маленький ? рядом, объясняющий его назначение, на всех десяти языках. Settings → Network отправляет вашу конфигурацию в телефонный движок после крупных изменений.
Часть 3
Обзвонщик набирает список номеров, проигрывает записанное сообщение и позволяет людям нажать клавишу, чтобы соединиться, заказать обратный звонок или отписаться. Сначала нужно выполнить шаг 12 установки.
Поймите, что это: это силовой обзвонщик (power dialer), не предиктивный. Нет определения автоответчика (голосовая почта считается отвеченной) и нет автотемпа — вы задаёте фиксированное число одновременных звонков. Работает на одном сервере за раз.
Откройте Dialer Campaigns → New Campaign. Выберите тарифицируемый аккаунт, назовите её, задайте темп: Max Concurrent Calls, Max Attempts и Retry gap.
Загрузите Prerecorded Message, проигрываемое при ответе. Затем соберите IVR Menu — что делает каждая клавиша:
В разделе Contacts кампании нажмите Upload CSV — простой файл с номерами телефонов.
Нажмите Start, и обзвон начнётся за секунды; Pause останавливает так же быстро. По завершении Download Results даёт файл с тем, что случилось с каждым номером.
Часть 4
Четыре команды покрывают почти всё, что вы делаете на сервере.
sudo bash install/verify.sh # всё исправно? sudo /usr/local/sbin/katocall-backup # сделать бэкап сейчас sudo bash install/upgrade.sh # применить новую версию sudo bash install/uninstall.sh # удалить (данные сохраняются)
Ваши бэкапы лежат на том же диске, который защищают. Регулярно копируйте их в другое место, иначе сбой диска унесёт данные и их единственный бэкап вместе.
Прежде чем доверять отчёту о выручке, вы можете доказать, что баланс сходится до копейки:
sudo -u softswitch admin/backend/venv/bin/python admin/backend/manage.py verify_ledger
Часть 5
Какой бы ни была проблема, sudo bash install/verify.sh — первое, что нужно запустить. Он проверяет ~65 вещей и называет скрипт для повторного запуска.