我想用PHP做一个web界面来查看FreeSWITCH活动(调用等),可能托管在一个不同的服务器上,而不是运行FS的服务器上。
我已经使用命令行(php single_command.php status)查看了FS服务器上的服务器状态,但现在我想从另一台服务器上查看此状态。
当我尝试将ESL.php文件复制到此远程服务器并尝试检查状态时,我收到以下错误消息:
Fatal error: Call to undefined function new_ESLconnection() in
/var/www/freeswitch/ESL.php on line 127这是我的index.php文件:
<?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());
}
?>我了解到see服务器没有安装FreeSWITCH,所以错误消息很明显,但我不知道如何从此see服务器访问此信息。
谢谢你的帮助。
发布于 2015-03-25 21:43:09
根据您的需要,您可以使用入站套接字或出站套接字。我对PHP和FS事件套接字了解不多,但是我已经用python尝试了很多。我极力推荐你通过这个link。
所以如果你只是想做一些小的任务,比如发起一个呼叫,桥接任何两个给定的数字等等,我认为你应该使用入站套接字(从你的web服务器向freeswitch服务器发出cli命令)或mod_xml_rpc。
如果你想完全控制FS服务器上发生的所有事情,比如显示实时通话状态和修改状态,或者说是一个完整的交互式电话仪表板,那么你应该使用Outbound socket。(你的FS服务器会将所有事件发送到你的web服务器。)
然而,在你的案例中,问题是我认为你没有正确地构建php ESL模块。此链接可能会帮助您installing ESL
发布于 2014-09-19 01:10:35
您可能希望考虑使用XMLRPC,而不是使用ESL。这种联系是非常直接的:
https://wiki.freeswitch.org/wiki/Freeswitch_XML-RPC
XMLRPC的凭据位于autoloads_configs/xml_rpc.conf.xml中
https://stackoverflow.com/questions/23823778
复制相似问题