Осторожно ! ГОВНОКОД
php скрипт который ловит запрос от 1с и отправляет рег. данные на телефон:
<?php # $tel=($_GET["TelephoneNumber"]); $password=($_GET["email"]); $ipTel=($_GET["IpTelephone"]); $regEnable=($_GET["regEnable"]); if (empty($ipTel)){ //echo "Empty"; } else{ function push2phone($server,$phone,$data) { $xml = $data; $post = "POST /xmlService? HTTP/1.1\r\n"; $post .= "Host: $phone\r\n"; $post .= "Referer: $server\r\n"; $post .= "Connection: Keep-Alive\r\n"; $post .= "Content-Type: text/xml\r\n"; $post .= "Content-Length: ".strlen($xml)."\r\n\r\n"; $fp = @fsockopen ( $phone, 80, $errno, $errstr, 5); if($fp) { fputs($fp, $post.$xml); flush(); fclose($fp); } } ############################## $xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n"; $xml .="<FanvilIPPhoneConfiguration Beep=\"yes\" setType=\"config\">\n"; $xml .="<Item>sip.line.1.PhoneNumber = $tel</Item>\n"; $xml .="<Item>sip.line.1.DisplayName = $tel</Item>\n"; $xml .="<Item>sip.line.1.RegAddr = 192.168.1.5</Item>\n"; $xml .="<Item>sip.line.1.RegUser = $tel</Item>\n"; $xml .="<Item>sip.line.1.RegPswd = $password</Item>\n"; $xml .="<Item>sip.line.1.RegEnabled = $regEnable</Item>\n"; $xml .="</FanvilIPPhoneConfiguration>"; //echo "$tel $password $ipTel"; push2phone("192.168.1.5","$ipTel",$xml); } ?>
Код в 1С который берет данные из AD и отправляет их на веб сервер где лежит скрипт приведенный выше.
илУчетнаяЗаписьТелефонии = 0; Если ПараметрыПриложения["СтандартныеПодсистемы.ПараметрыКлиента"].Свойство("илУчетнаяЗаписьТелефонии") Тогда илУчетнаяЗаписьТелефонии = ПараметрыПриложения["СтандартныеПодсистемы.ПараметрыКлиента"].илУчетнаяЗаписьТелефонии; КонецЕсли; Если НЕ ЗначениеЗаполнено(илУчетнаяЗаписьТелефонии) Тогда илУчетнаяЗаписьТелефонии = 0; КонецЕсли; ИмяКомпьютера=ИмяКомпьютера(); Если ИмяКомпьютера = "comp1" Тогда АйПиАдресТелефона="192.168.1.1"; ИначеЕсли ИмяКомпьютера = "comp2" Тогда АйПиАдресТелефона="192.168.1.2"; ИначеЕсли ИмяКомпьютера = "comp3" Тогда АйПиАдресТелефона="192.168.1.3"; ИначеЕсли ИмяКомпьютера = "comp4" Тогда АйПиАдресТелефона="192.168.1.4"; Иначе АйПиАдресТелефона=0; КонецЕсли; Если илУчетнаяЗаписьТелефонии <> 0 И АйПиАдресТелефона <> 0 Тогда Попытка ИмяДомена="corp.local"; ws = новый COMОбъект("WScript.Network"); АДОКоннектор = Новый COMОбъект("ADODB.Connection"); АДОКоннектор.ConnectionString = "Provider=""ADsDSOObject"""; АДОКоннектор.Open(); ТекстЗапроса = " |SELECT AdsPath |FROM 'LDAP://" + ИмяДомена + "' |WHERE | objectCategory = 'user' | and objectClass = 'person' | and SAMAccountName = '" + илУчетнаяЗаписьТелефонии + "' |ORDER BY sn |"; ВыборкаАДО = АДОКоннектор.Execute(ТекстЗапроса); Если НЕ ВыборкаАДО.EOF Тогда ПутьОбъекта = ВыборкаАДО.Fields("AdsPath").Value; ОбъектАД = ПолучитьCOMОбъект(ПутьОбъекта); НомерТелефона=ОбъектАД.telephoneNumber; Почта=ОбъектАД.mail; КонецЕсли; СерверДляЗапроса = "push.corp.local"; ТекстДляЗапроса = "phoneNumberChanger.php?TelephoneNumber="+НомерТелефона+"&email="+Почта+"&IpTelephone="+АйПиАдресТелефона+"®Enable="+РегаАйПиТелефона+""; Соединение = Новый HTTPСоединение(СерверДляЗапроса); Запрос = Новый HTTPЗапрос(ТекстДляЗапроса); Результат = Соединение.Получить(Запрос); Исключение КонецПопытки; КонецЕсли;