问题标签 [asteriskami]

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.

0 投票
4 回答
12870 浏览

sip - 如何在星号中记录呼叫(SIP)请求?

是否可以将 SIP 请求记录到星号中的数据库?我对这些细节感兴趣:

  • 时间戳
  • SIP方法
  • 状态码
  • 来源号码/分机
  • 目的地号码/分机

我很确定可以将 queue_log 事件转换为 SIP 请求并从中获取上述信息。但是,由于并非每个呼叫都经过呼叫队列,因此此解决方案不适用于我。

也许可以通过使用AMI来实现?或者编写自定义拨号方案?请分享您对这个问题的看法。

0 投票
1 回答
893 浏览

asterisk - 如何通过 agi 通道发送文本数据

我正在尝试在星号中的两个 Java 应用程序之间进行通信。现在我需要在通话中的两个通信通道之间共享一些文本数据。我已尝试遵循 Manager API 命令请帮助我在通话中的两个通道之间共享一些字符串/消息。

我试过以下

并且

如果要添加任何行或可以使用任何新类,请建议我

0 投票
2 回答
4334 浏览

c# - 使用 C# 和 Aster.NET 可靠地识别和跟踪 Asterisk 调用

我一直在使用 C# 构建一个 WinForms 桌面应用程序,该应用程序使用 Aster.NET(以前/从 Asterisk.NET 派生)与 Asterisk 接口。我们在可靠地识别和跟踪与单个分机/用户相关的呼叫时遇到了真正的麻烦。

我们遇到的问题是由于 Asterisk 触发/触发的事件的不可预测性/模糊性,它们的变化很大,具体取决于呼叫在到达扩展之前的路由方式。

例如,在以下情况下,事件顺序/格式会有所不同: 呼叫在盲转之前到达 IVR;如果呼叫在有人转接之前到达 IVR;如果呼叫直接转到用户的分机。

Asterisk 使用不同的唯一 ID 跟踪呼叫的每一方的方式进一步阻碍了这一点(例如,呼叫的传入侧与呼叫的接收侧具有不同的 UID)。虽然我们已经设法在(随后变得丑陋!)代码中考虑到这一点,但我们仍然遇到了考虑调用可以采用的不同路由路径的问题。

因此,我正在寻找有关我们如何执行以下操作的任何建议:

  1. 可靠地识别用户分机的来电
    • 我们需要能够识别被呼叫的分机和主叫方 ID(在盲转或有人值守转接和来自外部的直接呼叫之后)
    • 可靠地跟踪来电的唯一 ID,因为它用于链接到通话记录
  2. 可靠地识别来自用户分机的拨出电话
    • 考虑到与上述相同的警告

就目前而言,我们有一个极其复杂的事件处理程序链,它们的操作方式取决于应用程序的“当前状态”。

举一个例子:如果我们检测到一个 ChannelState 为 6 ('Up') 的 NewStateEvent,我们检查是否有正在进行的呼叫,并且UID 匹配,如果是,则当前呼叫已被应答。如果 UID 不匹配,但其他因素匹配(例如 channel、connectedlinenum 等),那么我们将其视为呼叫的“另一端”(即接收端或传入端)。

我不确定问题出在 API 上还是 AMI 上——但不管是哪一个,它都让我们非常头疼。

非常感谢任何建议。

0 投票
2 回答
3534 浏览

java - 如何在 AsteriskNow 中使用带有 Java 的 Asterisk AMI 进行出站呼叫

我想从分机号码向局域网中的另一个号码发起呼叫。我已经通过 FreePBX GUI 完成了这项任务。现在我正在尝试通过使用带有 Java 代码的 Asterisk AMI 来执行此任务。下面的 Java 代码在调试时显示了一些异常。

例外:

注意:这里我使用的是 FreePBX 中的凭据。这是访问权ConnectionManager吗?

0 投票
1 回答
845 浏览

java - 如何在星号java中进行入站呼叫

我已经使用带有 XLite 软件的星号 java 成功完成了出站呼叫。这次我想在没有 XLIte 的情况下拨打呼入电话。

在上面的代码中,'originateResponse.getResponse()' 函数有助于发起出站呼叫。您知道我们如何实现由 AMI 发起的入站呼叫吗?是否需要 Asterisk AGI 来进行入站呼叫?

0 投票
1 回答
68 浏览

node.js - node.js ChildProcess.fork() 中的字符编码

我不得不将 app.js 文件中的代码移到另一个文件中,然后使用 childProcess.fork()。现在我必须在子进程中捕获来自 ami-asterisk 的消息,但我注意到像“à,è,ò,..”这样的特殊字符被转换为像“h,l,..”这样的其他字符。Asterisk 将正确的字符发送到应用程序,但是叉子会发生一些变化。谁能帮我?

0 投票
1 回答
783 浏览

java - 通过 Asterisk Java 检测到 Asterisk 的连接状态

在 Asterisk 中有没有办法,如何检测管理器与 Asterisk 的连接的正确状态?(我的观点是关于与星号的连接失败的通知)我正在为我们的 Java 应用程序实现视觉指示(使用 Asterisk Java 库),但是从我的角度来看,它并没有像预期的那样工作。

上有一个方法getStatus()ManagerConnection但是即使我断开网线,结果总是CONNECTED。而且我还没有观察到任何类似的东西我可以使用。

0 投票
2 回答
2145 浏览

c# - 如何从我刚刚发起的呼叫中获取 UniqueId 和 Channel Name?

我正在尝试从 Asterisk.Net 的旧副本升级到最新版本的 AsterNet。我们曾经使用 AsteriskManager.OriginateCall() 发起调用,它返回一个 Call 对象。该调用对象有一个 UniqueId 和 ChannelName。

现在我使用 SendAction() 发起呼叫并向其发送 OriginateAction。所以我的第一个问题是:这是正确的做法吗?因为在我得到的结果中,UniqueId 为空并且它没有 ChannelName。我认为频道名称可能在一个属性中,但 Attributes 也是空的。

那么如何获取我刚刚发起的呼叫的频道名称和唯一 ID?

0 投票
1 回答
198 浏览

java - 编写用于检索 sip 用户列表的 java 代码

我想将 SIP 用户列表从 Asterisk 服务器检索到 SIP 客户端。Asterisk-java API 可用于此目的,但我不清楚我应该怎么做?我需要向 Asterisk AMI 发送操​​作“SIPpeers”,然后它会返回 SIP 对等方列表。我很困惑是否应该在 Asterisk 服务器或客户端计算机上运行触发“SIPpeers”操作的 Java 程序?

请帮帮我。谢谢你!

0 投票
1 回答
239 浏览

javascript - Asterisk PBX Web 服务器中的 CORS 支持

Aterisk PBX 有一个内置的网络服务器,我正在尝试从我的本地计算机通过 AMI over HTTP 登录到 My Asterisk PBX。我的问题是,当我通过 HTTP 调用登录操作时,管理器已连接,但响应的 MIME 类型为“text/plain”,但我需要 MIME 类型为“text/javascript”。Chrome 开发者工具中出现以下错误: