【问题标题】:How to get rid of unkillable Freeswitch channels如何摆脱无法杀死的 Freeswitch 频道
【发布时间】:2015-11-26 00:29:09
【问题描述】:

从 Freeswitch 1.2.9 (1.2.9+git~20130506T233047Z~7c88f35451) 升级到 Freeswitch 1.4.21 (1.4.21-35~64bit) 后,freeswitch 在挂断后停止丢弃频道,当我们尝试做一个手册uuid_kill,它给了我们这个可爱的错误:

-ERR No such channel!

即使显示频道在那里清楚地显示该频道。从我看到的 jira.freeswitch.com 上的错误来看,它看起来可能是代码问题。关于我们的环境/代码的更多信息:

我们有一个连接到客户端的 python 扭曲循环,因此客户端可以在服务器上运行命令,反之亦然。一旦扭曲的连接终止(客户端关闭/断开连接),通道也会被终止,但我们需要通道在此之前终止,因为我们每秒要接听很多电话,并且需要它们在另一个时终止端断开。我们不能在每次通话结束时关闭并重新打开客户端,或者重新连接,因为这会花费太多时间并且违背了我们使用该软件的目的。

再一次,这个错误只有在我们改为使用 apt-get 而不是直接从源安装 freeswitch 服务器时才开始发生。这使我们能够以极快的速度启动和运行新服务器,并且我们宁愿不花额外的时间来使用我们以前的方法。请告诉我您是否想查看任何代码,并要求您进行任何澄清,但我们真的希望尽快修复此问题。提前致谢!

编辑:为了更清楚,我们主要在我们的软件中使用mod_callcentermod_conferencemod_sofia

编辑 2:为了更清楚一点,我们在 Ubuntu 14.04 服务器上运行它

我们使用 ESL 连接从 python 连接和运行 freeswitch 中的命令,我们认为这是问题的根源。我们尝试退出连接,但这会破坏两个通道。

此外,已在 Jira 上针对此问题提交的所有错误都已关闭,因为它们不是错误。我想我在这里可能会取得更大的成功,因为这是一个编程类型的问题。

【问题讨论】:

    标签: python server client twisted freeswitch


    【解决方案1】:

    您需要在测试环境中重现问题并将错误报告提交给 Jira。充其量你也应该尝试使用最新的 master 分支来复制它(仅支持 Debian 8): https://freeswitch.org/confluence/display/FREESWITCH/Debian+8+Jessie

    我在使用 mod_perl 时遇到了类似的问题,一个 Perl 对象引用了一个会话,并且它没有被正确破坏(如果我没记错的话,我有两个 Perl 对象附加到同一个会话)。这导致了无法杀死的频道。

    我想你在你的应用程序和 FreeSWITCH 之间使用 ESL 连接,对吧?

    【讨论】:

    • 是的。我们正在使用 ESL 连接,我们认为这是问题的根源。我们尝试退出连接,但这会破坏两个通道。我会编辑我的问题。此外,已经为它提交的所有错误都已关闭,因为它们不是错误。我们在基于 Debian 8 的 Ubuntu 14.04 上运行它。它可以正常工作,除了关闭频道。
    • 好吧,无法杀死的频道绝对是一个错误,但可能难以重现。如果你能写一个 Python 脚本,肯定能重现问题,那么在服务器端跟踪它会更容易。
    猜你喜欢
    • 1970-01-01
    • 2019-08-24
    • 2019-10-17
    • 1970-01-01
    • 2012-10-14
    • 1970-01-01
    • 2015-04-06
    • 2013-06-20
    • 2015-10-03
    相关资源
    最近更新 更多