Предлагаю вашему вниманию обработку экспорта данных из 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");
необходимо указать ваши реквизиты подключения.
Так же потребуется изменение диалплана на Астериск.
На этом все. Спасибо за внимание!
Если статья оказалась полезной - поделись ссылкой с друзьями - кнопки ниже!
