问题标签 [fastagi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asterisk - 是否可以在准备好的输入 stram 上创建 php 回调?
我有在某些情况下循环的星号快速 AGI 应用程序。不同之处在于,如果频道挂断,本地启动的 AGI 脚本星号会下降。
在网络 AGI 的情况下,如果通道挂起,则 agi 脚本继续工作,通道循环等待完成此脚本。
当频道挂起时,星号将“挂断”消息发送到标准输出,但我使用了 synchronius phpagi lib,错过了它。所以我的问题是:
如何绑定准备读取标准输入事件并调用函数回调(这将检测可能的挂断)?
如果没有挂断检测,如何将数据返回到标准输入?
首先,我尝试找到一些简单的方法来解决这个问题
我的测试代码看起来像这样
eclipse - Asterisk-Java 无法加载属性文件
我正在开发一个非常简单的基于 Asterisk-Java IVR 的程序,它会迎接调用者,从 Web 服务中检索一些信息,将检索到的数据读取给调用者,最后挂断。
我遵循了哪些步骤:
在 extensions_custom.conf 中添加了以下行:
exten => 1000,n,Agi(agi://192.168.0.8/ivryobi.agi)
在 C:\Project\target\classes\ 中创建了以下文件结构
在 fastagi-mapping.properties 里面我有:
ivryobi.agi = main.IvrYobi
IvrYoby的内容是:
当它正常工作时
在控制台中运行以下命令
C:\Project\target\classes>java -cp asterisk-java.jar;commons-lang3-3.10.jar;commons-logging-1.2.jar;httpclient-4.5.12.jar;httpcore-4.4.13.jar; mysql-connector-java-8.0.20.jar;. org.asteriskjava.fastagi.DefaultAgiServer
正如您在以下控制台输出中看到的那样,完美运行
2020 年 6 月 30 日下午 6:09:04 org.asteriskjava.fastagi.DefaultAgiServer 启动 INFORMACIËN:监听 *:4573。2020 年 6 月 30 日下午 6:09:09 org.asteriskjava.fastagi.AbstractAgiServer getPool INFORMACIËN:线程池已启动。2020 年 6 月 30 日下午 6:09:09 org.asteriskjava.fastagi.ResourceBundleMappingStrategy loadResourceBundle INFORMACIËN:将“ivryobi.agi”的映射添加到类 IvrYobi ...
当问题出现时
当我运行相同的代码,但在控制台中插入时,我使用 Runnable.java
以下是 Runnable.java 的内容:
我们可以在 Eclipse 的控制台上观察到以下错误:
0 [main] DEBUG org.asteriskjava.fastagi.DefaultAgiServer - 使用 channelFactory org.asteriskjava.fastagi.internal.DefaultAgiChannelFactory 9 [main] INFO org.asteriskjava.fastagi.DefaultAgiServer - 监听 *:4573。4806 [main] DEBUG org.asteriskjava.fastagi.DefaultAgiServer - 收到来自 /192.168.0.254 的连接 4810 [main] INFO org.asteriskjava.fastagi.DefaultAgiServer - 线程池已启动。4849 [AJ DaemonPool-1.1] 调试 org.asteriskjava.fastagi.ClassNameMappingStrategy - 无法创建 ivryobi.agi 类型的 AgiScript 实例:找不到类,请确保该类存在并且在 CLASSPATH 中可用 4849 [AJ DaemonPool-1.1] 错误org.asteriskjava.fastagi.internal.FastAgiConnectionHandler - 没有为 URL 'agi://192.168.0.8/ivryobi.agi' 配置脚本(脚本'ivryobi.agi')
已尝试故障排除
- 我已经确定 fastagi-mapping.properties 在 CLASSPATH 上。
- 尝试了不同的名称和大小写
- 复制 java 执行路径上的 .properties 文件
- 将项目编译为可执行 jar
- 在 Eclipse 中添加/删除了包(例如:com.test.IvrYobi),并将更改应用于 .properties 文件。
- 我检查了 asterisk-java-3.5.0.jar 里面的代码,看起来如果没有找到配置文件,它会继续运行而不会发出任何警告。由于包装在罐子内,我无法修改该代码。
请问,你还有什么我可以尝试的想法吗?
asterisk - 什么是 Asterisk Dial() 选项来调用从被叫方收到的“正在振铃”状态的子程序?
当发生以下事件时,我需要执行 AGI 脚本:
- 来电(很简单,只是调用
AGI()
函数)。 - 当一个电话“响铃”时(我想不通!)。
<-- Problem, how to do this?
- 当呼叫“已接听”时(我使用 中
U(answer^${CALLID})
的选项Dial()
)。 - 当电话挂断时(我使用
h
特殊分机)。
我的拨号方案如下所示:
看,我已经调用3
fast-agi
了脚本incoming
:answered
和hangup
。现在我需要调用类似ringing
的脚本,比如被叫方“响铃”时。如何做到这一点?