1 | изначальная версия редактировать | |
По мотивам темы: подключился к одному из серваков и вспомнил что он с 1С связан по SOAP. Привожу код, может кому-то пригодится:
Скрипт, который делает SOAP запрос
<?php
//$anum=111;
//$bnum=222;
$data= '<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header/>
<soap:Body>
<m:WebLNR xmlns:m="http://www.sample-package.org">
<m:pn xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">'.$bnum.'</m:pn>
<m:id xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">'.$anum.'</m:id>
</m:WebLNR>
</soap:Body>
</soap:Envelope>';
$host = "192.168.1.12";
$url = "WebLNR.1cws";
$opts = array('http' =>
array(
'method' => 'POST',
'header' => 'Content-type: text/xml',
'content' => $data
)
);
$context = stream_context_create($opts);
$result = file_get_contents("http://$host/$url", false, $context);
echo $result;
Так он используется в диалплане
[macro-url-call]
exten => s,1,noop(${CURL(http://127.0.0.1/soap.test.php?anum=${ARG2}&bnum=${ARG1})})
2 | No.2 Revision редактировать |
По мотивам темы: подключился к одному из серваков и вспомнил что он с 1С связан по SOAP. Привожу код, может кому-то пригодится:
Скрипт, который делает SOAP запрос
<?php
//$anum=111;
//$bnum=222;
$data= '<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header/>
<soap:Body>
<m:WebLNR xmlns:m="http://www.sample-package.org">
<m:pn xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">'.$bnum.'</m:pn>
<m:id xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">'.$anum.'</m:id>
</m:WebLNR>
</soap:Body>
</soap:Envelope>';
$host = "192.168.1.12";
$url = "WebLNR.1cws";
$opts = array('http' =>
array(
'method' => 'POST',
'header' => 'Content-type: text/xml',
'content' => $data
)
);
$context = stream_context_create($opts);
$result = file_get_contents("http://$host/$url", false, $context);
echo $result;
Так он используется в диалплане
[macro-url-call]
exten => s,1,noop(${CURL(http://127.0.0.1/soap.test.php?anum=${ARG2}&bnum=${ARG1})})
[from-internal-custom]
exten => _00XXX,1,Macro(url-call,${EXTEN:2},${CALLERID(num)})
exten => _00XXX,n,Dial(LOCAL/${EXTEN:2}@from-internal,30,T)
exten => _00XXXX,1,Macro(url-call,${EXTEN:2},${CALLERID(num)})
exten => _00XXXX,n,Dial(LOCAL/${EXTEN:2}@from-internal,30,T)
В группах или очередях FreePBX перед нужным номером подставляем 00 и тогда звонок направляется с вызовом CURL
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.