При добавлении работнику прав оператора (может пользоваться телефонией) в астериск должен регистрироваться номер для него. Номера для звонков операторам должны храниться вместе с идентификатором оператора и паролем для подключения к АТС. После входа в рабочий кабинет оператор должен видеть свой онлайн-статус. Например, красный/зелёный кружок в правом верхнем углу. Оператор должен видеть кнопку для смены своего онлайн-статуса на "готов к приёму звонков". При переключении на этот статус, встроенный в браузер SIP-клиент будет логиниться в астериск по данным, вытащенным из базы. При этом включается приём звонков. При проходе клиентом очереди на соединение, астериск звонит всем незанятым операторам со статусом "готов к приёму звонков". У каждого из них появляется кнопка "Принять звонок и вывести данные о клиенте/о последнем заказе клиента". Первый нажавший получает соединение, у остальных пропадает кнопка. У соединившегося выводится информация о собеседнике или его заказе. После завершения разговора онлайн-статус автоматически меняется на "не принимать звонки", оператор разлогиневается из астериска. Это позволяет работнику спокойно дозаполнять полученные от звонящего данные или довыполнить другие задачи. Также при работе оператора на страницах, касающихся информации о клиентах/заказах должны отображаться кнопки "открыть последний заказ и позвонить"/"позвонить". По нажатию на одну из них, должна выводиться соответствующая информация, происходить логин в астериск, производиться звонок этому клиенту. Соответственно, на астериске требуется реализовать весь стек обращений к сервису, записывающему информацию о звонках при звонках от операторов к клиентам. В этот сервис добавить их обработку, запись данных в базу. В базе данных в таблице звонков добавляется отдельное поле вроде IsItOutcommingCall, по которому можно судить, был ли этот звонок ОТ клиента или К клиенту. Это поле будет заполняться соответственно. Остальных граф хватит для хранения необходимой информации и об исходящих звонках. К каждому заказу могут быть присоединены несколько звонков, как входящих, так и исходящих. Вероятно, следует добавить возможность переноса привязок звонков от одного заказа к другому.