Инструменты пользователя

Инструменты сайта


Боковая панель

Навигация

unix
notes
firmware
windows
Говнокод

Внешние ссылки

Внешняя ссылка

pushxmlfanvil

Регистрация пользователя на IP телефоне Fanvil при смене пользователя в 1С

Осторожно ! ГОВНОКОД =)

php скрипт который ловит запрос от 1с и отправляет рег. данные на телефон:

ini
<?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 и отправляет их на веб сервер где лежит скрипт приведенный выше.

ini
	илУчетнаяЗаписьТелефонии = 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="+АйПиАдресТелефона+"&regEnable="+РегаАйПиТелефона+"";
			
			Соединение = Новый HTTPСоединение(СерверДляЗапроса);     
			Запрос = Новый HTTPЗапрос(ТекстДляЗапроса);
			
			Результат = Соединение.Получить(Запрос);
		Исключение	
		КонецПопытки;
	КонецЕсли;
	
pushxmlfanvil.txt · Последнее изменение: 2021/04/27 04:10 — sector

Яндекс.Метрика