- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在使用 PHP 和 Asterisk 服务器开发应用程序。该应用程序的功能之一是检查特定调用者 ID 的调用状态(振铃、应答、挂起...),所以我想知道如何执行此操作,因为我正在尝试使用套接字和命令状态,但我认为它必须是一种更好的方法。
提前致谢。
最佳答案
您使用什么 API 编写此程序?阿美?通用人工智能?快速通用人工智能?死AGI?调用文件?有很多方法可以获取此信息。
注意:除非您使用调用文件和/或 CDR 访问,否则您无法判断 channel 是否已挂断。
借助 AMI,您可以使用 Status 命令(记录在此处:http://www.voip-info.org/wiki/view/Asterisk+Manager+API+Action+Status)。
使用 AGI,您将了解由您的程序确定的状态。如果您仍在 AGI 脚本中,则调用仍在进行中并且已接听。
如果您正在使用调用文件,并且将存档属性设置为"is",那么一旦调用完成,您就可以检查调用的 outoing_done 目录(通常是/var/lib/asterisk/outgoing_done/)文件。当您阅读调用文件时,您会注意到 Asterisk 在调用文件的底部附加了一个状态,它将告诉您调用的最终状态。
获取此信息的最佳方法是让您的 PHP 脚本从 Asterisk 服务器上的 CDR 记录中读取。将您的 CDR 记录记录到 MySQL 数据库,然后从数据库中提取您的调用记录。
关于php - 我如何知道调用的状态 - Asterisk 和 PHP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2315744/
我的 asterisk 安装(1.8.12.0,mac osx 10.8.2)有这些默认目录: * Directories ------------- Configuration file:
Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想改善这个问题吗?更新问题,以便将其作为on-topic
我知道 Asterisk 拨号计划中的单行注释是“;”例如 ;exten => s,1,Playback(project/eligibility_points_msc) 但是拨号方案中的多行注释是用
我已经安装了 asterisk 我想测试我是否能够登录。我有 Go GoGrid。当我设置IP时,我得到的分机和密码无法到达服务器。我能够ssh进入机器。 有没有办法从控制台测试 asterisk 正
我尝试通过手机输入出生日期 11211971,但 IVR(交互式语音应答)输入为 11121197。 请告诉任何人此问题的根本原因是什么 这是我的代码 exten => s,n,Read(dateof
由于我没有收到来自 freepbx 社区的确认邮件,我不得不在这里发布我的问题。 正如标题所说,我正在尝试安装 freepbx。错误信息是:错误!与 Asterisk 通信时出错。确保 Asteris
我想为一个项目开发一个预测拨号模块。我有一个非常关键的疑问,实际的预测拨号过程应该在哪里运行?它不应该在 Asterisk 服务器上运行吗?如果是这样,请您指导我获取对我的开发过程有帮助的文档。 谢谢
在我的拨号方案中,保持音乐在早些时候工作但现在不工作。我的 musiconhold.conf ; ; Music on Hold -- Sample Configuration ; [old-
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
我有自己的数据库来记录 Asterisk 中的调用。我需要将每次通话的通话持续时间插入表中。我怎样才能做到这一点?我可以在我的拨号方案中执行此操作吗? 最佳答案 您没有提供太多有关您想要使用的数据库后
因此,如果我键入 sip show peers,我会得到一个表,告诉我中继的状态是“OK”,但我认为它不会测试验证是否有效。有没有办法测试中继线是否正常以及调用是否可以通过? 最佳答案 您可以通过检查
我已经创建了一个 Asterisk 服务器。我能够从一个拨号器向另一个拨号器调用电话并且它工作正常。当两个拨号器之间建立连接时,我需要播放一个语音脚本,由 Asterisk 提供。 我需要在 Aste
这是我的 Asterisk 拨号计划: [main-context] exten => s,1,Gosub(subcontext,s,1) exten => s,n,NoOp(End Main) [s
我一直在来回尝试想要找到一种通过 LAN/WiFi 轻松通信的方法,通过 LAN 网络调用电话会很棒,所以我尝试了几次 Asterisk 并迷失了方向,我似乎无法让它工作,我购买的电子书支持我购买 D
我正在使用 Asterisk 11。当我试图呼出时,我在获取 channel 名称时遇到了问题。通常,当被叫方拿起他/她的电话时,我可以得到 channel 名称。但是现在,我想在拨出后立即获取 ch
Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想改善这个问题吗?更新问题,以使为on-topic。 2
我正在 PHPAGI 中为 Asterisk 编写 IVR 脚本,并尝试使用 Cepstral 进行 TTS。尽管我已经获得了该产品的许可,但当我调用 $agi->swift() 时,在我的文本被“读
有人可以给我指出一个方向、示例代码或在线资源来完成以下任务吗: 要求:我想编写一个简单的 IVR 菜单选项来运行脚本(Bash 或 Python)。例如,给 Asterisk 机器打电话并请求重新启动
我想在我使用的 Asterisk 中设置直接点对点媒体设置 directrtpsetup=yes 我也想在不重新邀请的情况下实现它。所以我使用了这个参数。在 sip.conf 中写到它不需要重新邀请就
Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想改善这个问题吗?更新问题,以便将其作为on-topic
我是一名优秀的程序员,十分优秀!