Осторожно ! ГОВНОКОД
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Запрос(ТекстДляЗапроса);
Результат = Соединение.Получить(Запрос);
Исключение
КонецПопытки;
КонецЕсли;