Имеется достаточно простой и удобный способ звонить из 1С и других систем при наличии у сотрудника телефона Yealink, далее на примере Yealink T20. В интернете можно легко найти способы работы с данным телефон, тут описывается приминительно к 1С.
На данных телефонах функционирует полноценный Web-интерфейс настройки и управления, одной из возможностью которого является набор номера телефона:
А раз есть способ вызвать из Web-интерфейса номер телефона, то мы может им воспользоваться и сформировать свой HTTP – запрос. Чтобы правильно сформировать запрос можно ознакомиться с документацией, а можно просто посмотреть, какой будет отправлен запрос из самой системы. Для этого воспользуемся программой Fiddler. Заполнив поле «Номер» и нажав кнопку на набор, мы увидим:
В данном запросе параметр sid можно отбросить и тогда получим относительный путь:
/cgi-bin/ConfigManApp.com?Id=34&Command=1&Number=897854&Account=0,
где Number — номер вызываемого абонента, остальное оставляем как есть, тогда сам код будет выглядеть так:
Соединение = Новый HTTPСоединение(IPАдресВашегоТелефона, 80, Логин, Пароль);
Номер = "Любой номер телефон";
Запрос = Новый HTTPЗапрос("/cgi-bin/ConfigManApp.com?Id=34&Command=1&Number="+Номер+"&Account=0");
Соединение.Получить(Запрос);
Используя другие параметры, можно вешать трубку и многое другое. Так же описанный подход подойдет и для других подобных телефонов.
Прикрепленная обработка является примером использования описаного способа. Обработка сделана как внешняя обработка заполнения объекта для конфигурации Управление Торговлей 11 и привязывается к справочнику Партнеры, позволяя звонить Контактным лицам партнеров. При минимальных изменениях можно адаптировать к любой конфигурации.
После подключения обработка доступна из пункта меню Заполнение справочника Партнеры. Для работы обработки необходимо в режиме предприятия создать для справочника Пользователи дополнительный реквизит «Настройки телефона». В этом реквизите указать параметры соединения с телефоном конкретного пользователя в формате: ip телефона; порт; логин; пароль. Пример: 192.168.200.10;80;admin;admin
А как дела обстоят с записью звонков, просмотра длительности разговора и т.д.?
Ай да свой IP АТС — сервер на 1С.
(1) baracuda, запись звонков, их длительность и т.д. — это все-таки функция АТС. Тут придется работать с АТС, например, у Asterisk есть разные интерфейсы для взаимодействия, например,AMI , через него уже можно делать то, что вы хотите. Для работы с этим интерфейсом придется использовать какие-нибудь внешние компоненты, например, ROM-Asterisk , данную компоненту использую на одном из проектов, правда там мне нужно только перехват входящего вызова, для определения номера телефона. Но обычно это делается не через 1С ,а ставиться уже готовый пакет для Asterisk, который это все уже умеет и с Web-интерфейсом, и отдельно это все анализируется.
А описанную в статье возможность использую для себя, правда не из 1С, а из Firefox.
(2) понятно. У нас железка MyPBX U100 и телефоны Yealink. Есть коннектор МИКО, но цена вопроса смущает.
(3) baracuda, в этой железки на борту стоит Asterisk, а это теоритечески значит, что можно использовать бесплатную компоненту ROM-Asterisk, в которой есть ключевая функция ВыполнитьКоманду (произвольную команду), с которой можно любую функцию использовать. Так в общем комплексно решить проблему — это много кода. А если по отдельности, то можно разные вещи сделать, например, запись и прослушивание разговора — это можно в самом asterisk настроить, он будет куда-то класть файлы, а с скажем из 1С читать эту папку и исполнять (прослушивать) файлы. Так же к Asterisk можно поднять FreePBX, тогда будет удобная панель управления, разная статистика и т.д.
(4)
Поддержка бесплатных версий ROM-Asteriskпрекращена .