Asterisk 与 Symfony2 应用程序的集成
Asterisk Integration with Symfony2 application
我是 Asterisk 的新手,它已经安装并且我有所有主机详细信息,我需要的是如何在我的 symfony2 web 应用程序中使用 Asterisk;有人有想法或者他以前做过这个?
编辑
这是我应该在我的网络应用程序中做的事情的列表:
- 创建 Stasis 应用程序
- 接听电话。
- 播放已经安装在asterisk服务器上的“哔”声
- 允许用户输入美国格式的 phone 号码。
- 创建一个方法来验证 phone 号码。
- 挂断。
编辑 1
我从控制器中的那个小代码开始:
use Pastum\Component\PAMI\Client\Client;
/* These are (in order) the options we can pass to PAMI client:
*
* The hostname or ip address where Asterisk AMI is listening
* The scheme can be tcp:// or tls://
* The port where Asterisk AMI is listening
* Username configured in manager.conf
* Password configured for the above user
* Connection timeout in milliseconds
* Read timeout in milliseconds
*/
$options = array(
'host' => '127.0.0.1',
'scheme' => 'tcp://',
'port' => 9999,
'username' => 'admin',
'secret' => 'mysecret',
'connect_timeout' => 10000,
'read_timeout' => 10000
);
$client = new Client($options);
// Open the connection
$client->open();
// Close the connection
$client->close();
但我不知道在查看页面或连接后可以做什么?
以及如何使用代码执行需要的命令?!
请看一下AGI, AMI and ARI界面。它们是 language/platform 不可知论者的方式 communicate/integrate 来自外部应用程序的星号。
也有一些很棒的 PHP 星号库。
所有这些库都可以通过 composer 获得。您可以像其他 PHP 包一样将它与 Symfony2 一起使用。
我在 Symfony 应用程序中使用了 Asterisk。我们是如何做到的:
- 自定义 class 用于连接到 AMI 并执行所需的命令,例如发起呼叫、耳语、挂断或收听
- 如果需要,将您的星号数据库添加为第二个数据库,生成实体。
你最大的问题是如何传输声音,一种方法是使用flash。
Phone 数字验证 - 你会在 GOOGLE.
上找到很多解决方案
更详细的说明:
- 为 Asterisk 创建一个包,在那里创建您的实体和 Asterisk 服务 Class
您需要一个控制器 - 它将处理您的请求并调用服务。例如,您必须挂断电话,您需要控制器中的操作和服务中的操作。在控制器中,您初始化服务并从将挂断电话的服务中调用挂断操作。
public function hangupAction(Request $request)
{
$asteriskService = // Get the asterisk service
$asteriskService->hangup();
return new JsonReponse();
}
// 来自服务的代码
public function hangup($agent)
{
fputs($this->getSocket(), "Action:Hangup\r\n");
fputs($this->getSocket(), "Channel:/^SIP/".$agent."-.*$/\r\n\r\n");
fclose($this->getSocket());
}
您可以尝试这个包 https://github.com/ryzhov/asterisk-bundle,但它通过 asterisk AMI 接口(5038 tcp 端口)连接用于请求和事件,而不是 stasis。
我是 Asterisk 的新手,它已经安装并且我有所有主机详细信息,我需要的是如何在我的 symfony2 web 应用程序中使用 Asterisk;有人有想法或者他以前做过这个?
编辑
这是我应该在我的网络应用程序中做的事情的列表:
- 创建 Stasis 应用程序
- 接听电话。
- 播放已经安装在asterisk服务器上的“哔”声
- 允许用户输入美国格式的 phone 号码。
- 创建一个方法来验证 phone 号码。
- 挂断。
编辑 1
我从控制器中的那个小代码开始:
use Pastum\Component\PAMI\Client\Client;
/* These are (in order) the options we can pass to PAMI client:
*
* The hostname or ip address where Asterisk AMI is listening
* The scheme can be tcp:// or tls://
* The port where Asterisk AMI is listening
* Username configured in manager.conf
* Password configured for the above user
* Connection timeout in milliseconds
* Read timeout in milliseconds
*/
$options = array(
'host' => '127.0.0.1',
'scheme' => 'tcp://',
'port' => 9999,
'username' => 'admin',
'secret' => 'mysecret',
'connect_timeout' => 10000,
'read_timeout' => 10000
);
$client = new Client($options);
// Open the connection
$client->open();
// Close the connection
$client->close();
但我不知道在查看页面或连接后可以做什么?
以及如何使用代码执行需要的命令?!
请看一下AGI, AMI and ARI界面。它们是 language/platform 不可知论者的方式 communicate/integrate 来自外部应用程序的星号。
也有一些很棒的 PHP 星号库。
所有这些库都可以通过 composer 获得。您可以像其他 PHP 包一样将它与 Symfony2 一起使用。
我在 Symfony 应用程序中使用了 Asterisk。我们是如何做到的:
- 自定义 class 用于连接到 AMI 并执行所需的命令,例如发起呼叫、耳语、挂断或收听
- 如果需要,将您的星号数据库添加为第二个数据库,生成实体。
你最大的问题是如何传输声音,一种方法是使用flash。
Phone 数字验证 - 你会在 GOOGLE.
上找到很多解决方案更详细的说明:
- 为 Asterisk 创建一个包,在那里创建您的实体和 Asterisk 服务 Class
您需要一个控制器 - 它将处理您的请求并调用服务。例如,您必须挂断电话,您需要控制器中的操作和服务中的操作。在控制器中,您初始化服务并从将挂断电话的服务中调用挂断操作。
public function hangupAction(Request $request) { $asteriskService = // Get the asterisk service $asteriskService->hangup(); return new JsonReponse(); }
// 来自服务的代码
public function hangup($agent) { fputs($this->getSocket(), "Action:Hangup\r\n"); fputs($this->getSocket(), "Channel:/^SIP/".$agent."-.*$/\r\n\r\n"); fclose($this->getSocket()); }
您可以尝试这个包 https://github.com/ryzhov/asterisk-bundle,但它通过 asterisk AMI 接口(5038 tcp 端口)连接用于请求和事件,而不是 stasis。