Към съдържанието
N1
Интеграции · телефония · Grandstream AMI · WebRTC

Собствена централа Grandstream в on-premise Bitrix24 без платен SIP конектор

Клиент: Застрахователна компания, NDA Категория: Интеграции Стек: PHP 8.4, Bitrix24 D7 (телефония на ядрото), Asterisk AMI, Grandstream UCM API, JsSIP (WebRTC), Vue, nginx, Docker Срок: около седмица
Проблем

Компанията работи със собствена телефонна централа Grandstream, а on-premise Bitrix24 не знаеше нищо за обажданията: при входящо обаждане няма карта на клиента, разговорите не влизат в CRM, а номерът на клиента трябва да се набира ръчно от слушалката. Стандартният път е платен SIP конектор с облачна телефония.

Ограничения

По време на разработката нямаше жива централа — нито мрежов достъп до нея, нито акаунти. Обажданията трябваше да се записват чрез стандартната телефония на ядрото, за да работят обичайните карти, отчети и детайлизация, а прекъсването на връзката с централата не биваше да губи събития.

Какво направих
  • AMI слушателят поддържа постоянна връзка с централата, поставя събитията в опашка и сглобява обаждането по Linkedid: входящи, изходящи, прихващане, прехвърляне
  • Обажданията се записват чрез стандартната телефония на ядрото: карта на обаждането при служителя, дейност „Обаждане“, детайлизация на обажданията, лийд за непознат номер
  • „Обади се“ от CRM звъни от браузърния софтфон, а ако той е затворен — през AMI първо към настолния телефон на служителя, после към клиента
  • WebRTC софтфон на JsSIP през nginx на портала: входящи, задържане, тонално набиране, прехвърляне; SIP паролите се пазят в базата криптирани
  • Записите на разговорите се изтеглят от централата като поток; пропуснатото по време на прекъсване се довзема от дневника на обажданията на централата с повторни опити
  • Админ панел за състоянието на слушателя и опашките, симулатор на централа на Asterisk 20 в Docker и тестове върху записани AMI вериги
Архитектура
Grandstream UCM (AMI + HTTPS API) → AMI слушател → опашка от събития → Сглобяване на обаждането по Linkedid → Телефония на ядрото → CRM → WebRTC софтфон през nginx
Резултат

Модулът (около 5,1 хил. реда) е проверен от край до край на симулатора на централата — входящи, изходящи, пропуснати, записи, довземане, бутон „Обади се“ — и мина през няколко кръга ревю. Свързването с жива централа е през септември 2026.

Какво може да се преизползва
AMI слушател с опашка от събития и сглобяване на обаждането по Linkedid Свързване на външна централа към стандартната телефония на on-premise Bitrix24 без SIP конектор Симулатор на централа на Asterisk в Docker за тестове на телефонията от край до край