gpt4 book ai didi

asterisk - FreeSWITCH 最小安装和模块选择

转载 作者:行者123 更新时间:2023-12-04 14:46:16 29 4
gpt4 key购买 nike

作为一个对开源 PBX 项目(如 Asterisk)非常陌生的人和 FreeSWITCH ,我正在努力解决一些信息过载问题。已阅读 Wiki 上的基本 FreeSWITCH 文档,但仍有一些问题。由于我对术语不是很熟悉,因此我将尝试使用近似值。

尝试创建 FreeSWITCH 的小型/简约构建,需要在相当旧的笔记本电脑(Celeron 1GHz,512MB RAM,20GB HDD,已经运行 Debian“Wheezy”)上运行,并将其设置为 6 端口 GSM-SIP/Jabber 网关。因此,“小”和“简约”是指没有绝对必要的模块/可选软件(例如,不需要 IVR 公告或 Skype 集成)——以保持最小的内存占用,并且占用较少的硬盘空间。

粗略的想法是有6个GSM端口(通过'GSM-open module',类似于chan_dongle)到公共(public)电话网络,以及大约60个SIP分机,并支持多达6个涉及GSM端口的调用,以及大约6个SIP-SIP调用(内部 PBX),在此设置上。我读过 GSMopen 模块的 CPU 开销非常低,所以我猜这是可能的。

  • 有人可以确认这是一个现实的目标吗?
  • 为简约构建选择的最小模块集可能是什么?
  • 对于初始构建期间未选择的模块,以后可以添加吗?如果是这样,是否需要我完全重建 FreeSWITCH,只重建模块,或者构建所有内容,但只需要更改配置以确保加载和配置模块?
  • 有没有粗略估计在这种配置中可以支持的最大调用率是多少?对于 SIP-SIP 调用?鉴于处理器功率不足,RAM 很少(根据现代标准),我猜这两者都将成为瓶颈,但添加 RAM 仍然是可能的(即使成本高昂且困难重重)。
  • 我已经读过可以使用 Lua/Python/Java 等创建“钩子(Hook)”。但是,如果有人分享一些使用此类钩子(Hook)可能实现的例子,它会使概念更清晰。是否可以希望使用这些钩子(Hook)来编写像“未接来电记录”或“无应答重定向”这样的应用程序?
  • 最佳答案

    Can someone confirm this to be a realistic goal?



    是的,这很现实。您需要尽可能少地进行转码,因为那是需要 CPU 资源的地方。但即使使用 1Ghz Celeron,6 个转码 session 似乎也很现实。但它需要测试:)

    What might be the minimum set of modules to select for minimalistic build?



    只需从默认的模块列表开始,然后添加 gsmopen(我没有使用 gsm 网关的经验,对此部分无能为力)。内存占用非常低,您以后可能需要其中一些模块。

    For modules not chosen during initial build, can those be added later?



    据我记得,Wiki 描述了这个过程。您编辑 modules.conf 并制作特定模块。

    Is there any rough estimate of what might be the maximum call-rate that could be supported in such a configuration? For SIP-SIP calls? Given the underpowered processor, and little RAM (as per modern standards), I am guessing that both shall be bottlenecks, but adding RAM might still be possible (even if costly and difficult).



    这实际上取决于您的拨号方案的复杂性。每个上下文都包含许多条件,这些条件对 channel 变量进行正则表达式匹配。所以,你的拨号方案越复杂,你得到的 CPS 就越少。但对于 6 channel 网关,我认为这不是问题。 GSM 网络会比你的盒子慢得多 :)

    I have read that "hooks" can be created using Lua/Python/Java etc.. However if someone share share few examples of what-all is possible using such hooks, it would make the concept clearer. Can one hope to write an application like "missed call log" or "redirect on no answer" using these hooks?



    您可以使用 FreeSWITCH 控制 FreeSWITCH 行为的各个方面。甚至还有一些例子,完整的拨号方案由外部程序重新实现(Kazoo 就是这样做的)。

    最简单的操作模式是当你的 Lua/JS/Perl/Python 脚本从拨号方案中启动时:然后它接收一个“ session ”对象,你可以对调用做任何你想做的事情:播放声音、桥接、转发、调用一个新电话并将它们连接在一起,等等。 Here in my blog有一个实际的例子。

    然后,您可以构建一个外部应用程序,该应用程序连接到 FS 套接字并监视事件并对事件调用执行操作。

    此外,它可以在相反的方向完成:你运行一个服务器,FS 用它的套接字库连接到它。

    此外,您可以拥有一个 HTTP 服务,它将 XML 配置片段传递给 FreeSWITCH,并在每次调用时请求这些配置(这将是 CPU 最密集的应用程序)。这样,您可以从一些内部数据库中提供 FS,并构建容错系统。

    我希望这有帮助 :)
    如果需要,您也可以在 Skype 中找到我。

    关于asterisk - FreeSWITCH 最小安装和模块选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18349802/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com