Перейти к содержимому

VoIP OCA в Odoo 17: программный телефон в браузере поверх Asterisk

Перевод интерфейса на русский и фикс бага с гудком в никуда при звонке без номера
2 июля 2026 г. от
VoIP OCA в Odoo 17: программный телефон в браузере поверх Asterisk

Настройка модуля VoIP OCA в Odoo 17: сервер АТС, пользователь VoIP, программный телефон в браузере

Для Odoo 17 подключили и настроили VoIP OCA — официальный модуль сообщества OCA, превращающий Odoo в программный телефон прямо в браузере: звонки идут через SIP.js по WebSocket на сервер Asterisk, без установки отдельного софтфона на рабочем месте.

Как это работает

Сервер Odoo не звонит сам — он только хранит логины и пароли пользователей. Реальное соединение устанавливает браузер: он подключается к Asterisk напрямую по защищённому WebSocket (WSS, тот же принцип, что описан в RFC 7118). Поэтому для работы нужен именно сервер АТС с поддержкой WebSocket-транспорта — протестировано на связке Asterisk + PJSIP WSS.

Настройка — два шага

  1. Сервер АТС (Настройки → Технические → VoIP → Серверы АТС): название, домен сервера Asterisk, адрес WebSocket-сервера (wss://ваш-домен/ws), окружение — «Продуктив»;
  2. Пользователь (Настройки → Пользователи → вкладка VoIP): выбрать созданный сервер АТС, указать логин VoIP (внутренний номер, например 1100) и пароль SIP-аккаунта. У каждого сотрудника — свои учётные данные.

После этого в правом верхнем углу появляется иконка телефона: виджет с тремя вкладками — недавние звонки, назначенные активности типа «звонок» и быстрый доступ к контактам. Позвонить можно кликом по номеру в карточке партнёра или набором на клавиатуре внутри виджета; во время разговора доступны удержание, отключение микрофона, перевод звонка и DTMF-клавиатура. Входящий звонок сам находит контакт по номеру и открывает всплывающее окно с кнопками «Принять»/«Отклонить».

Перевод интерфейса

Модуль ставится без русской локализации — перевели порядка 90% строк интерфейса, а заодно полностью переписали README на русском: вместо построчного перевода технического английского текста получилась пошаговая инструкция именно для администратора Odoo — что куда вводить и в каком порядке.

Найденный баг: гудок в никуда

При тестировании обнаружился неприятный сценарий: если инициировать звонок без фактического номера (например, у контакта не задан ни мобильный, ни городской телефон), виджет всё равно проигрывал гудок набора и пытался создать запись звонка — и только затем спотыкался о то, что поле номера телефона в модели было обязательным. Пользователь слышит гудок, но звонок никуда не уходит и тихо ломается на невидимой ему ошибке. Починили в двух местах: в JS-логике набора добавили ранний выход, если номера нет — гудок просто не начинает играть, — и убрали обязательность поля номера в самой модели звонка, чтобы это же не всплывало где-то ещё в похожем виде.

Итог

Тот же сервер Asterisk, что уже использовался для более старой телефонии на Odoo 8/10, — теперь ещё и с современным браузерным софтфоном на Odoo 17, полностью на русском и без тихих сбоев при звонке без номера.

Интеграция DaData в Odoo: автозаполнение по ИНН, адресу и БИК без нового интерфейса
Модуль перехватывает штатный механизм автодополнения Odoo, а не добавляет отдельное поле поиска

Похожая задача в вашей компании?

Напишите намСмотреть услуги