我正在使用星号与 PBX 通信并想接听来电,但我需要的是:
假设我们是 101 并拨打 102。我们可以毫无问题地查看/监控来电。
在接收方(102),用户看到来电的通知。我希望答案由客户端 gui 触发,一旦用户在 gui(软件)上执行了一些按钮操作,答案事件应该传播到 asterix/pbx,然后系统应该处于已回答状态和通话状态。当我在 102 上为来电定义一些 AGI 脚本并定义应答时,主叫方 (101) 进入通话状态,但我们看不到接收方 102 的电话设备(被叫方)有任何动作。当接收方执行一些动作、脚本等(等到接收方执行一些应答/接听动作)然后进入通话状态时,有没有办法让双方都进入通话状态?并且动作应该由一些脚本(基于java的agi/ami脚本)启动
综上所述,我想使用电话硬件设备和软件同步工作。该要求可以使用 TAPI/JTAPI/GJTAPI 来完成,但我想了解是否可以通过替换 TAPI 来使用 asterix 来实现。目前,我们可以从基于 java 的客户端启动呼叫,向电话硬件发送操作并使用 gjtapi 监控呼叫。我们还可以在我们的 java 客户端上看到来电,用户可以通过一些 gui 按钮操作来接听,gjtapi 将回答发送到线路,然后电话设备进入通话状态。我想用软件管理电话设备,但我不想要任何软件电话。我想控制电话并触发makecall,使用软件接听动作。
TAPI 是满足此要求的唯一解决方案吗?尝试星号是错误的方法吗?
示例extensions.conf行
exten => 102,1,Agi(agi://192.168.0.X/answer.agi)
fastagi.properties:
answer.agi = org.asteriskjava.examples.fastagi.ExampleCallIn
示例调用:
public class ExampleCallIn extends BaseAgiScript {
public void service(AgiRequest request, AgiChannel channel) throws AgiException {
answer();
我从101开始通话,通过电话设备或软件(拨号),触发服务方法并调用应答,在电话101上我看到它因为接听电话而进入通话状态,但在102(电话设备)没有任何反应,它仍在响铃(来自 101 的呼入电话)。