Показаны различия между двумя версиями страницы.
— |
pushxmlfanvil [2021/04/27 04:10] (текущий) sector создано |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== Регистрация пользователя на IP телефоне Fanvil при смене пользователя в 1С ====== | ||
+ | |||
+ | Осторожно ! ГОВНОКОД =) | ||
+ | |||
+ | php скрипт который ловит запрос от 1с и отправляет рег. данные на телефон: | ||
+ | |||
+ | <code | ini> | ||
+ | |||
+ | <?php | ||
+ | # | ||
+ | $tel=($_GET[" | ||
+ | $password=($_GET[" | ||
+ | $ipTel=($_GET[" | ||
+ | $regEnable=($_GET[" | ||
+ | |||
+ | if (empty($ipTel)){ | ||
+ | //echo " | ||
+ | } | ||
+ | else{ | ||
+ | function push2phone($server, | ||
+ | { | ||
+ | $xml = $data; | ||
+ | $post = "POST / | ||
+ | $post .= "Host: $phone\r\n"; | ||
+ | $post .= " | ||
+ | $post .= " | ||
+ | $post .= " | ||
+ | $post .= " | ||
+ | $fp = @fsockopen ( $phone, 80, $errno, $errstr, 5); | ||
+ | if($fp) | ||
+ | { | ||
+ | fputs($fp, $post.$xml); | ||
+ | flush(); | ||
+ | fclose($fp); | ||
+ | } | ||
+ | } | ||
+ | ############################## | ||
+ | $xml = "<? | ||
+ | $xml .="< | ||
+ | $xml .="< | ||
+ | $xml .="< | ||
+ | $xml .="< | ||
+ | $xml .="< | ||
+ | $xml .="< | ||
+ | $xml .="< | ||
+ | $xml .="</ | ||
+ | |||
+ | //echo "$tel $password $ipTel"; | ||
+ | |||
+ | push2phone(" | ||
+ | } | ||
+ | ?> | ||
+ | </ | ||
+ | |||
+ | Код в 1С который берет данные из AD и отправляет их на веб сервер где лежит скрипт приведенный выше. | ||
+ | |||
+ | <code | ini> | ||
+ | |||
+ | илУчетнаяЗаписьТелефонии = 0; | ||
+ | Если ПараметрыПриложения[" | ||
+ | илУчетнаяЗаписьТелефонии = ПараметрыПриложения[" | ||
+ | КонецЕсли; | ||
+ | |||
+ | Если НЕ ЗначениеЗаполнено(илУчетнаяЗаписьТелефонии) Тогда | ||
+ | илУчетнаяЗаписьТелефонии = 0; | ||
+ | КонецЕсли; | ||
+ | |||
+ | ИмяКомпьютера=ИмяКомпьютера(); | ||
+ | |||
+ | Если ИмяКомпьютера = " | ||
+ | АйПиАдресТелефона=" | ||
+ | ИначеЕсли ИмяКомпьютера = " | ||
+ | АйПиАдресТелефона=" | ||
+ | ИначеЕсли ИмяКомпьютера = " | ||
+ | АйПиАдресТелефона=" | ||
+ | ИначеЕсли ИмяКомпьютера = " | ||
+ | АйПиАдресТелефона=" | ||
+ | Иначе | ||
+ | АйПиАдресТелефона=0; | ||
+ | КонецЕсли; | ||
+ | |||
+ | Если илУчетнаяЗаписьТелефонии <> 0 И АйПиАдресТелефона <> 0 Тогда | ||
+ | Попытка | ||
+ | ИмяДомена=" | ||
+ | ws = новый COMОбъект(" | ||
+ | |||
+ | АДОКоннектор = Новый COMОбъект(" | ||
+ | АДОКоннектор.ConnectionString = " | ||
+ | АДОКоннектор.Open(); | ||
+ | |||
+ | ТекстЗапроса = " | ||
+ | |SELECT AdsPath | ||
+ | |FROM ' | ||
+ | |WHERE | ||
+ | | objectCategory = ' | ||
+ | | and objectClass = ' | ||
+ | | and SAMAccountName = '" | ||
+ | |ORDER BY sn | ||
+ | |"; | ||
+ | |||
+ | ВыборкаАДО = АДОКоннектор.Execute(ТекстЗапроса); | ||
+ | |||
+ | Если НЕ ВыборкаАДО.EOF Тогда | ||
+ | ПутьОбъекта = ВыборкаАДО.Fields(" | ||
+ | ОбъектАД = ПолучитьCOMОбъект(ПутьОбъекта); | ||
+ | НомерТелефона=ОбъектАД.telephoneNumber; | ||
+ | Почта=ОбъектАД.mail; | ||
+ | КонецЕсли; | ||
+ | |||
+ | СерверДляЗапроса = " | ||
+ | ТекстДляЗапроса = " | ||
+ | |||
+ | Соединение = Новый HTTPСоединение(СерверДляЗапроса); | ||
+ | Запрос = Новый HTTPЗапрос(ТекстДляЗапроса); | ||
+ | |||
+ | Результат = Соединение.Получить(Запрос); | ||
+ | Исключение | ||
+ | КонецПопытки; | ||
+ | КонецЕсли; | ||
+ | |||
+ | </ | ||
+ | |||