2014-05-23 1 views
2

FreeSWITCH 활동 (호출 등)을 보려면 PHP에서 웹 인터페이스를 만들고 싶습니다. FS가 실행중인 서버와 다른 서버에서 호스팅 될 수도 있습니다.원격 서버에서 ESL에 연결하는 방법은 무엇입니까?

FS 서버에서 명령 줄 (php single_command.php status)을 사용하여 서버 상태를 확인했지만 다른 서버에서이 상태를보고 싶습니다. 내가 알아 보았

<?php 
ini_set('display_errors', 1); 
$password = "ClueCon"; 
$port = "8021"; 
$host = "192.168.2.12"; 

require_once('ESL.php'); 

set_time_limit(0); // Remove the PHP time limit of 30 seconds for completion due to loop watching events 

// Connect to FreeSWITCH 
$sock = new ESLconnection($host, $port, $password); 
// We want all Events (probably will want to change this depending on your needs) 
$sock->sendRecv("status"); 

// Grab Events until process is killed 
while($sock->connected()){ 
    $event = $sock->recvEvent(); 
    print_r($event->serialize()); 
} 
?> 

: 이것은 내 index.php 파일

Fatal error: Call to undefined function new_ESLconnection() in 
/var/www/freeswitch/ESL.php on line 127 

입니다 :이 원격 서버에 ESL.php 파일을 복사 상태를 확인하려고 할 때

, 나는이 오류 메시지가 웹 서버에 FreeSWITCH가 설치되어 있지 않으므로 오류 메시지가 분명하지만이 웹 서버에서이 정보에 액세스하는 방법을 볼 수 없습니다.

도움 주셔서 감사합니다.

+0

PHP로 작업 한 지난 번 이후로 꽤 오래되었지만 PHP 버전 문제가 아닙니까? 'ESL.php'와 마찬가지로 v5 생성자를 사용하고 있으며 php v4를 실행하고 있습니다. – Anto

답변

0

ESL을 사용하는 대신 XMLRPC를 사용하는 것이 좋습니다. 연결은 매우 정직 다음 XMLRPC에 대한

https://wiki.freeswitch.org/wiki/Freeswitch_XML-RPC

자격 증명 당신이 중 하나 인바운드 또는 아웃 바운드 소켓을 사용할 수 있습니다 당신의 필요에 따라 당신의 autoloads_configs/xml_rpc.conf.xml

2

에 있습니다. 나는 PHP와 FS Event Socket에 대해 많이 알지는 못했지만, 파이썬으로 충분히 시도했다. 나는이 link을 통해 갈 것을 적극 권장합니다.

그래서 전화를 걸기 같은 작은 작업을하고 싶다면 주어진 두 숫자를 연결하는 등 인바운드 소켓 (웹 서버에서 자유 서버로 cli 명령을 보내는) 또는 mod_xml_rpc를 사용해야한다고 생각합니다.

그리고 실시간 통화 상태 표시 및 상태 수정과 같은 대화 형 전화 대시 보드를 말하면 FS 서버에서 발생하는 모든 작업을 완벽하게 제어하려면 아웃 바운드 소켓을 사용해야합니다 (FS 서버는 모든 이벤트를 귀하의 웹 서버에 보내십시오.)

그러나 귀하의 경우 문제는 당신이 제대로 PHP ESL 모듈을 작성하지 않았다고 생각하는 것입니다. 이 링크는 도움이 될 수 있습니다. installing ESL