问题标签 [asterisk]
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.
php - 电话用户识别流程
我不知道从哪里开始,所以为可能是一个模糊的问题道歉。我想要一个像 elance.com 这样的电话验证系统,用户在接到电话时必须输入他电脑屏幕上显示的数字,或者他必须输入在电话上对他说的数字。
我需要这个,因为我希望我的应用程序验证用户在英国(并同时确认他的电话号码)。听起来很简单,我只需要一个应用程序来呼叫用户的号码并播放 mp3 文件(语音代码/数字)。但我不知道从哪里开始。我听说过一种叫做 Asterisk 的东西,并且我有一个 voip 帐户,但是我需要缺少的链接,就像如何将它们组合在一起一样。
php - 使用星号 PHP 脚本匹配电话前缀的最快方法
并提前感谢您的帮助。
背景- 我正在编写一个 PHP 脚本,该脚本需要找出调用者试图到达的目的地。电话前缀是标识目的地的字符串。对于每次调用,程序必须找到与字符串匹配的最长前缀。例如,数字 30561234567 将与 305 匹配,但不会与 3057 或 304 匹配。如果存在 3056,它将是首选匹配。
在研究了几种数据结构之后,每个节点存储一个数字并包含指向其他 10 个可能选择的指针的树似乎是理想的。这可以实现为数组数组,脚本可以在其中检查 3,在那里找到一个数组,然后在该新数组上检查 0,找到另一个数组,依此类推,直到找到一个值而不是数组。该值将是目标 id(脚本的输出)。
要求- 性能是绝对关键的。检查这些前缀所花费的时间会延迟调用,并且每个服务器都必须处理大量调用,因此必须将数据结构存储在内存中。目前大约有 6000 个前缀。
问题- 每次服务器收到调用时都会运行脚本,因此数据必须保存在某种缓存服务器中。在检查了 memcached 和 APC(高级 PHP 缓存)之后,我决定使用 APC,因为它[更快][3](它是一个本地内存存储)
我遇到的问题是数组的数组可以变成多达 10 个数组深,并且将是一个非常复杂的数据结构,如果我将其作为对象添加到缓存中,则需要很长时间才能反序列化。
但是,如果我将每个数组分别添加到缓存中(使用一些逻辑命名结构可以轻松找到它,例如数组 3 的 3,数组 30 的 30,补丁后的数组的 305 等)我将不得不多次从缓存中获取不同的数组(每次调用最多 10 个),这使我经常访问缓存。
我会以正确的方式解决这个问题吗?也许还有另一种解决方案?还是我提出的一种方法优于另一种?
谢谢你的输入,
亚历克斯
asterisk - Asterisk & IVR & 供应商
我正在尝试设置 IVR,或者更具体地说是使用 Asterisk 的自动接线员。除了简单的自动菜单系统之外,我不想要任何花哨的东西,而不是拨打分机(现在),如果按下 1,只需拨打同一条电话线 (POTS) 或按下 2 播放录音。运行 Asterisk 的服务器将是在一个偏远的地方。
我的问题是:
- 这个设置可行吗?
- 我需要注册 IAX VOIP 提供商吗?(不会拨打/接听 VOIP 电话)只会拨打普通的 POTS 电话。(其他国家可能)
- 我需要什么硬件?远程服务器端和客户端(POTS 电话线)
任何意见将不胜感激。
谢谢
php - 如何使用星号获取 Web 应用程序中任何呼叫的通话时长?
我已经使用 php 完成了一个网站,其中星号用作 Voip 系统。现在的问题是我想在“挂断”之后获取每个通话的通话持续时间。我搜索了很多并得到了一个名为 ${ANSWEREDTIME 的星号变量},但不知道如何从中获取价值以及如何启动它。请帮助并将我视为 PHP AGI 脚本的新手......!提前致谢。
java - 在 asterisk-java 中获取用户的活动频道
有没有办法使用 asterisk-java 获取 IAX 用户帐户的所有当前活动通道?
谢谢多米尼克
api - Asterisk Manager API - 扩展 -> ZAP 频道
有没有办法通过 Manager API 从分机号码中检索 ZAP 频道?
例如,这是我在运行“zap show channels”时看到的:
...
...
但 Manager API 仅返回以下内容(无扩展名):
asterisk - QueuePause 中的接口名称是什么
任何人都可以告诉我 QueuePause 操作(Asterisk Manager Interface)的接口名称是什么。 http://astbook.asteriskdocs.org/en/2nd_Edition/asterisk-book-html-chunk/asterisk-APP-F-30.html
我尝试“SIP/2222”(连接的扩展),但它总是抛出“找不到接口”。我不知道如何获得正确的界面,请告诉我如何使这个动作起作用?
谢谢你。
hook - 有没有什么办法可以让任何扩展程序的钩子闪现?
我喜欢按照此步骤进行电话会议。
- 2222拨打3333(电话)
- 3333接听电话(电话)
- 模拟按下闪光灯按钮到 2222 认为 AMI/?(软件)
- 通过 AMI(软件)发起对 4444 的呼叫
- 4444接听电话(电话)
- 模拟按下闪光灯按钮到 2222 认为 AMI/?再次(软件)
- 222 333 4444 同频道通话(电话)
我知道 AMI 不具备制作钩子闪光的确切功能。(一些技巧?)
是否有任何建议通过软件完成第 3 步和第 6 步,它可能是 AMI 或其他任何东西。
资源:
asterisk - 替换 Asterisk Dialplan 中的字符
我想为 A 和 P 更改几个字符 * # 以使监视器文件名的字符更友好。我能找到的唯一解决方案是在拨号计划中自己做,但它会产生很多冗长的输出,并且不像我想要的那样高效(快速)。我会把它贴在这里,以防有人想使用它。但我正在寻找一个星号函数,我可以编译一些我可以用拨号计划调用的东西,比如 ${REPLACE(${EXTEN},*,a)} 并转换 exten **123**456***到 AA123AA456AAA。
perl - 如何使用 Perl 在 AGI 中转发当前的 Asterisk 调用?
我有一个基于星号的 PBX,我已经能够从 PBX 的 Web 控制面板成功运行 AGI 脚本。
因为我从 Perl 调用 AGI(我都不知道)...
星号命令如下所示:
到目前为止,我不希望需要进行任何数据库查找等。我只想设置呼叫者 ID(我已经可以这样做) - 然后将呼叫转发到特定号码。
谁能告诉我如何使用上面显示的执行星号命令的 AGI/perl 样式转发当前呼叫?
仅供参考:我见过一些使用以下格式的示例:
但是,我不确定如何将其转换为 AGI/perl 格式。