1С Предприятие и TCP/UDP. #8234


#0 by Halluc
В офисе развернута IP телефония. Сама по себе задача такая - есть Cisco CallManager (программная АТС), есть шлюз в городскую телефонную сеть - Cisco 1760V, из города приходят линии ISDN, соответственно, по ним к нам приходит CallerID (т.е. АОН, грубо говоря). В офисе все телефоны - Cisco IP Phone разных модификаций. Задача - оператор сидит в 1С, разговаривает с клиентом. Номер клиента известен. CallManager через JTAPI может его сказать нам. Оператор тыкает кнопку где-то в форме выписки документа  работая в 1С, и в счет/накладную и т.п. вставляются реквизиты абонента (если он в базе уже есть). Но необходимо чтобы кнопка получить реквизити по номеру телефона была активна только в том случае когда оператор разговаривает с клиентом. И как только он ложит трубку кнопка становилась неактивной. Когда поднимает вновь активной. На сервере где установлен CallManager есть программа на Java которая обрабатывает события от CallManager\\\'a и может по UDP отдать в сеть номер телефона, или событие нового звонка, или событие окончания звонка. Как в 1С реализовать прослушивание UDP порта? Возможен конечно вариант с ActiveX компонентой но как можно обрабатывать события в 1С поступившие от нее? Рассматривался так же вариант забирать номер по HTTP протоколу, но в этом случае теряется динамичность, придется каждый раз делать запросы чтобы отслеживать состояние телефонной линии. Возможно будут другие пути реализации... Подскажите!
#1 by ErichKrause
Вопрос конешно интересный, но боюсь на ЭТОМ форуме никто не знает ответ на него :)
#2 by skunk
смотреть книжку "технология создания внешних компонент"
#3 by skunk
+2
#4 by HideMan
Причем здесь "ни кто не знает"? Просто данный вопрос решается либо через DDE либо внешней компонентой. А для этого нужно это уметть делать.
#5 by BorisG
Если сам не знаешь, вовсе не значит, что никто не знает ;-) И совсем другой вопрос... а интересно ли сей весьма специфический вопрос тут обсуждать... Скорее нет...
#6 by Z1
В 1с ассоциируй справочник сделай спр компьютер ( можно сотрудник ) подчиненый справочник  ВнутрениеТелефоны. К спр клиенты хранишь подчиненный спр телефоны клиента Есть специал директорий скажем call от каталога базы. Пришел  звонок. Твоя компонента ( вообще отдельный процесс вне 1с) кладет в эту директокторию файл с именем файла внутрений номер. При разрыве соеденения файл удаляешь. Внутри файла храниться внешний номер абонента. При нажатии на свою кнопку в 1с определяешь компьютер. Смотришь подчиненные внутр телефоны и находишь или нет соответствующий файл. По содержимому файла востанавливаешь клиента. Если сотрудник умудряется разговаривать одновременно по двум телефонам то можешь выдать список из двух клиентов. Вроде бы все. У меня все это решено на порядок проще. Все это я могу вытащить из базы тарификатора ( без всякой ip телефонии) одним sql запросом
#7 by Лось
HideMan, мыло дай , общение на тему DDE.
#8 by ErichKrause
вопщим от по ничего не изменилось.. разве что исключение... BorisG как всегда выебнулся, но помочь ниче не смог)) это и понятно) ацтой
#9 by MMF
Подобного UDP-клиента сделать очень просто. Взять готовую Дельфи-компоненту от NetMasters, Indy или простой UDPSocket и встроить во внешнюю компоненту. Компоненту с UDP я делал, проблем не было.
#10 by Лось
Отлично! В Acsess 95/97 был пример дозвона из адресной книги на VB 6.0, при желании... внешнюю компоненту с 1С вызовом?
#11 by Halluc
На и отвечаю: Я все это прочитал до того как писать сюда, поэтому и интересуюсь реально ли сделать все это на средствах 1C. Я прекрасно понимаю что можно написать софтину запускать ее на этом же компе где сидит 1С и по DDE, OLE и т.д. и т.п. коннектится с 1С и все это рулить. Я имел в виду без промежуточных звений решить данную проблему. Для : Делать это можем вопрос другой стоит см. выше. Для : Идея ясна, но опять же мы ухищряемся с помощью дополнительной софтины... Для : Вопрос не стоит в реализации этой внешней компоненты в какой либо среде разработки, просто не хочется никаких дополнительных компонент. Всем ОГРОМНОЕ спасибо... Вот только для меня остался всего один открытый вопрос. Подскажите как из внешней компоненты сказать 1С-ке какое нить событие. Допустим чтобы кнопка на панели стала активной (не активной). Куда у нас в 1С-ке цепляется это событие???
#12 by MMF
средствами 1С не прослушать UDP-порт. Поэтому все-равно нужно писать внешнюю компоненту. Событие цепляется на ОбработкаВнешнегоСобытия, либо возможно вызвать из ВК экспортируюмую процедуру глобального модуля.
#13 by romix
Прослушивание сокета - крайне интересная тема. Можно либо через ВК, либо запускать в ЖДУЩЕМ РЕЖИМЕ внешнюю софтину.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С