Здравствуйте.
Представляю вашему вниманию внешнюю компоненту для 1С: 8.x, позволяющую производить звонки и получать оповещения о входящих через 3CXPhone.
В отличие от существующей разработки //infostart.ru/public/115942/ имеет как плюсы
- отсутствие необходимости постоянно проверять лог АТС по таймеру
- более быстрое реагирование на входящие
- перевод входящих
- сброс входящих
- возможность активации окна 3CXPhone
так и минусы:
- нужна активированная демо ключем версия 3CX Phone System, как следствие — количество одновременных подключений всего 2
Решение представляет собой внешнюю компоненту со следующими методами:
- string Call(string args); Производит звонок, аргумент — исходящий номер
- string Drop(string args); Сброс входящего, аргумент — ИД входящего звонка
- string Activate(string args); Прием входящего, аргумент — ИД входящего звонка
- string BlindTransfer(string id,string destination); Перевод входящего, аргумент 1 — ИД входящего звонка, аргумент 2 — номер внутренниего адресата
- string Listen(); — включение «прослушки» на предмет входящих звонков
- string ActiveCalls(); — возвращает список активных звонков.
Подключение в 1с производится таким образом:
Регистрируется внешняя компонента (файл прилагается)
ПодключитьВнешнююКомпоненту("AddIn.Caller")
Запуск «прослушки»:
глТелефон=новый ("AddIn.Caller");
глТелефон.Listen();
Также прилагаю внешнюю обработку, которая реализует весь базовый функционал, но написана под конфигурацию Альфа-авто:Автосервис, соответственно для работы на стандартных конфигурациях от 1С потребуется небольшая доработка.
Доброго дня.
При использовании метода Listen() вываливается ошибка
at AddIn.Caller.Listen()
— End of inner exception stack trace —
at System.RuntimeMethodHandle._InvokeMethodFast(IRuntimeMethodInfo method, Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeType typeOwner)
at System.RuntimeMethodHandle.InvokeMethodFast(IRuntimeMethodInfo method, Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeType typeOwner)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
at AddIn.AddIn.CallAsFunc(Int32 methodNum, Object& retValue, Object[]& pParams)
Софтфон 3cx установлен, библиотека, на которую ругается лежит.
Возможно проблема с версией данной длл? Прилагаю работающую.
C какой версией 3CX будет работать?
С 14 работает точно.
Здравствуйте, 15 версия поддерживается? Скачал обработку, зарегистрировал компоненту, не отрабатывают глТелефон.Call(НомерИсх); глТелефон.Show(«DialPad»);
Здравствуйте.
Насчет 15 версии — пока не знаю. Возможно скоро уточню, а пока проверьте следующее:
1. регистрация должна быть строкой типа «C:WindowsMicrosoft.NETFrameworkv4.0.30319
egasm.exe» «C:ProgramData3CXPhone for WindowsPhoneAppRBSCaller.dll» /codebase
адрес regasm.exe у вас конечно будет свой. Запускать с правами администратора.
2. В 15 версии вроде бы добавлено следующее требование к плагину
Deploying Your Plugin
When you have the .NET library ready, just drop it into the 3CXPhone for Windows installation folder. Then open the configuration file “3CXWin8Phone.user.config” using a text editor, and add the following configuration setting:
<add key=”CRMPlugin” value=”CallNotifier,3CXPhoneTapiPlugin,MyCRMPlugin“/> where “MyCRMPlugin” is the name of the DLL, without the extension.
Save “3CXWin8Phone.user.config” and restart 3CXPhone for Windows. Upon launch, your new plugin will be loaded.
3. должен быть запущен софтфон и он должен пройти регистрацию на АТС, т.е. способен принимать и отправлять звонки.
RBS ,
зарегистрировал DLL Вашей строкой, под администратором,
добавил в конец файла конфиг 3CX указанную Вами строку, перезапустил.
Не помогло.
Добрый день. при регистрации компоненты CallTriggerCmdServiceProvider.dll или RBSCaller.dll пишет такую ошибку. Ума не приложу что ему нужно.