Предлагаю вашему вниманию обработку экспорта данных из Asterisk в 1С.
Телефония постепенно переходит на SIP-связь. Интеграция АТС с системой учета или CRM-системой просто необходима любому предприятию для успешного конкурирования на рынке.
Предлагаю вашему вниманию обработку экспорта данных из Asterisk в 1С.
К сожалению доступен пока только основной функционал, но его достаточно для реализации многих задач.
Для внедрения модуля необходимо внести изменения в глобальный модуль конфигурации. Код приведен ниже:
Процедура ПриНачалеРаботыСистемы() . . . // Запуск компонента Asterisk1C Попытка Asterisk1C = 0; ПодключитьВнешнююКомпоненту("Asterisk1C"); Если Asterisk1C = 0 Тогда Попытка Asterisk1C = ПолучитьCOMОбъект( , "Asterisk1C"); Исключение Asterisk1C = 0; КонецПопытки; КонецЕсли; Если Asterisk1C = 0 Тогда Попытка Asterisk1C = ПолучитьCOMОбъект( "", "Asterisk1C"); Исключение Asterisk1C = 0; Предупреждение(ОписаниеОшибки()); КонецПопытки; КонецЕсли; Если Asterisk1C <> 0 Тогда Asterisk1C.Connect("192.168.1.110", 5038, "client1C", "client1c8pass"); Asterisk1C.AgentLogin("201", "105"); // Если нужно дождаться завершения входа агента Пока Не(Asterisk1C.IsAgentLogin()) Цикл Asterisk1C.Sleep(500); КонецЦикла; // This is for test Asterisk1C.AgentPause(); Asterisk1C.AgentUnPause(); Asterisk1C.Originate("1234567", "internal", 20); Иначе Предупреждение("Компонент Asterisk1C не загружен"); КонецЕсли; Исключение Asterisk1C = 0; Предупреждение(ОписаниеОшибки()); КонецПопытки; КонецПроцедуры // ПриНачалеРаботыСистемы() Процедура ПриЗавершенииРаботыСистемы() . . . Если Asterisk1C <> 0 Тогда Попытка Asterisk1C.AgentLogoff(); // Если нужно дождаться завершения выхода агента Пока Asterisk1C.IsAgentLogin() Цикл Asterisk1C.Sleep(500); КонецЦикла; Asterisk1C.Disconnect(); Asterisk1C = 0; Исключение Asterisk1C = 0; Предупреждение(ОписаниеОшибки()); КонецПопытки; КонецЕсли; КонецПроцедуры Процедура ОбработкаВнешнегоСобытия(Источник, Событие, Данные) Если Источник = "Asterisk1C" Тогда // Событие – Звонок на зарегистрированного агента Если Событие = "Ringing" Тогда ЗаписьЖурналаРегистрации(Источник + " - " + Событие, УровеньЖурналаРегистрации.Информация, , , "From: " + Asterisk1C.GetField(Данные, "CallerID") + " To: " + Asterisk1C.GetField(Данные, "CallingNumber") ); Иначе ЗаписьЖурналаРегистрации(Источник + " - " + Событие, УровеньЖурналаРегистрации.Информация, , , Данные ); КонецЕсли; Возврат; КонецЕсли; . . . КонецПроцедуры // ОбработкаВнешнегоСобытия()
В строках:
Asterisk1C.Connect("192.168.1.110", 5038, "client1C", "client1c8pass"); Asterisk1C.AgentLogin("201", "105");
необходимо указать ваши реквизиты подключения.
Так же потребуется изменение диалплана на Астериск.
На этом все. Спасибо за внимание!
Если статья оказалась полезной - поделись ссылкой с друзьями - кнопки ниже!