Работа с телефонией в тонком клиенте.
Решение сделано на основе внешней компоненты ROM-Asterisk.dll от simplit
Огромное спасибо пользователю Олег Ризванов за его труд и бесценные комментарии.
Итак, перейдем к делу.
В: что это такое ?
О: Подсистема на управляемых формах, которую можно интегрировать почти в любую конфигурацию (как в типовую, так и в самопал).
В: Как это работает?
О: При запуске конфигурации инициализируется внешняя dll, далее через неё идёт подключение к АТС Asterisk. Возможность хранить для каждого конкретного пользователя 1С свои настройки для подключения к АТС (которых может быть несколько)
В: а если я захочу что-то исправить?
О: Разработка не представляет из себя ничего сложного. Функционал бесплатной панели телефонии для 1С и Asterisk перекочевал в модуль упр.приложения, пару общих модулей, а также добавлен один справочник (настройки подключения к АТС) и один регистр сведений (настройки АТС для пользователей)
В: как установитьинтегрировать?
О: Как сказано выше — разработка не представляет из себя ничего сложного. Можете «сравнитьобъединить…», а можете и ручками. Последний вариант, конечно предпочтительнее. Т.к. будете знать, куда копать если захотите что-то допилить, а работы всего на пару минут
Рассмотрим интеграцию подсистемы «Телефония» на типовой УТ 11. Блок объединения конфигурации рассматривать не будем — там всё просто.
В панели разделов появится новая подсистема, а конфигурация встретит вас сообщением:
Далее, заходим в подсистему телефония и задаем настройки:
— в справочнике «Виды АТС» указываем настройки подключения к IP АТС
— в регистре сведений «Настройки пользователей АТС» указываем связку какой пользователь какую АТС использует, его персональный внутренний номер и контекст
После этого перезапускаем 1С.
Система попробует подключить внешнюю компоненту (dll). По умолчанию забит путь C:WindowsSystem32, если dll-ки там нет, то конфигурация попытается самостоятельно сохранить туда файлик ROM-Asterisk.dll
После этого, нужно запуститься в толстом клиенте. Это необходимо для того, чтобы 1C зарегистрировала внешнюю компоненту в реестре Windows (можете зарегить самостоятельно, тогда запуск в толстом клиенте не потребуется).
Опять запускаем 1С (теперь можно в тонком клиенте), если всё прошло успешно — вы увидите внизу всплывающие окна, о том что всё ОК 🙂
В противном случае, система выдаст вам сообщение об ошибке.
Алгоритм такой:
1) проверка настроек для данного пользователя
2) подключение внешней компоненты
3) инициализация объекта
4) подключение к АТС
Если какой-то этап завален, дальше не взлетит. О чём вам скажут сообщения об ошибке.
В: Как звонить (совершать исходящие вызовы)?
О: В общем модуле «вТелефонияКлиент» есть экспортная процедура «Звонить» с одним единственным параметром, куда передаётся номер телефона. Завязывайте на неё любую кнопку в вашей конфигурации
Обработку входящего звонка допиливайте самостоятельно в модуле упр.приложения через процедуру «ОбработкаВнешнегоСобытия»
Далее, обработка звонков ограничивается только вашей фантазией. Можно завязать любое логирование событий, вплоть до фиксирования длительности звонка и т.д. и т.п.
Enjoy 🙂
P.S. на самую лучшую в мире разработку не претендую, вполне возможны косячки
Вообще-то, я Олег Ризванов, а не
Олег Ривзанов🙂(1)упс, очепятался :[
исправил 🙂
Управляемые формы подразумевают работы и в Linux-клиенте в том числе. Ваша разработка работает в нем? А в браузере?
(3)
1 — управляемые формы работают в линухе и веб-клиенте
2 — внешняя компонента (она же ROM-Asterisk.dll) написана с помощью COM-технологии
3 — внешняя компонента не работает в веб-клиенте и в линухе тоже, потому что она COM
Надеюсь ответил на все вопросы 🙂
(4) В таком случае принципиальных отличий от прочих разработок на эту тему не вижу. Серьезное ограничение — работа только в винде. Плюса не заслуживает.
Вы кажется невнимательно читаете. Причем, очень часто. Внешняя компонента — не моя разработка.
А по поводу плюса — от Вас и не надо 😉
а что нового по сравнению с панелью от simplit, очередная гуёвая переработка?
(7) в описании к публикации есть вся необходимая информация. Гуёвая или негуёвая — каждый для себя решает сам. Качайте — смотрите.
Тихо и незаметноSimplit выпустил NativeAPI-версию ROM-Asterisk + новый релиз COM-версии
Из нового:
— Поддерживается сторона сервера
— Можно нарастить глубину очереди событий
— Можно перенаправлять ошибки во внешнее событие
Возможно, стоит пересобрать эту обработку под ROM-Asterisk-Native?
(9) oleg.rizvanov, ого-го! Нифигасебе 🙂
Вот это новость 🙂
Конечно стоит, ща шапку подредактирую и займусь в свободное время
Спасибо!
Доброй ночи!
Беру демо конфу — все работает. Встраиваю в свою (самописная) через сравнение и объединение и вылетает на Функция Login(Логин,Пароль), а именно при выполнении Если глТелефония.Подключено=1 Тогда
Показать
Буду благодарен за помощь!
(11) necsoft, видимо объединили так 🙂
Посмотрите отладчиком, что из себя представляет значение глТелефония во время ошибки
(0) добрый день. где можно скачать внешнюю компоненту ROM-Asterisk.dl ?
(13) Rustig, привет
компонента вшита в конфигурацию + в шапке есть ссылка на сайт разработчика компоненты
(11)Доброго дня, подскажите, не нашли ли вы решение вашей проблемы?
В моей конфигурации аналогичная проблема
Что за «профессионал» писал эту обработку? Ошибка на ошибке. ПодключитьОбработчикОжидания(«вТелефонияКлиент.Автоподключение»,30,Ложь); в глобальном модулe не работает.
ОтключитьОбработчикОжидания(«ПереподключитьТелефонию») — в модуле управляемого приложения это что вообще? Даже процедуры такой нет в конфе
(16) писал я. 5 лет назад.
Из всех скачавших, ошибка на ошибке, только у вас.
Если не нравится — сделайте сами.
Если можете сами — зачем вам чужое?
P.S. вежливость — залог успеха
P.P.S. не думал, что подобные вещи до сих пор актуальны
P.P.P.S. удачи вам в нелёгкой работе, дальше будет ещё «веселее» 🙂
(18) Самому и пришлось писать, потому — что в том виде, как это выложено — это не взлетит
(19) возьмите стержень кода, остальное доделаете, будьте Профи!
(11)Доброго дня удалось решить проблему? тоже самое зависает и все
Почему он не отрабатывает Если глТелефония.Подключено=1 Тогда изначально глТелефония — это наша dll, после того как отладчиком смотришь «глТелефония.Подключено» , глТелефония стает пустой.
Показать
Зависает dll зарег
Библиотека инициализируется на клиенте, т.е. клиент обязательно на Windows, а сервер 1с можно на Linux использовать? Или все только на Windows?