Architecture 实时事件星号集成

Architecture 实时事件星号集成,architecture,asterisk,Architecture,Asterisk,这篇文章的目的是从专家那里得到关于这个话题的想法。我希望我没有违反任何规则。如果是这样,请告诉我如何正确提问 我们有我们的软件(web应用程序),目前我们与一个PBX集成。我们还希望将该集成扩展到Asterisk。我们当前设置的工作方式是,我们从PBX向web应用程序发送关于PBX中发生的几乎所有事情的实时http通知(分机铃声、分机应答呼叫、代理登录呼叫中心等)。我们希望遵循带星号的相同模式 现在,阅读星号让我们陷入了一个两难的境地。我们听到了不同的实施方式。即: 1。使用AGI()执行此操作

这篇文章的目的是从专家那里得到关于这个话题的想法。我希望我没有违反任何规则。如果是这样,请告诉我如何正确提问

我们有我们的软件(web应用程序),目前我们与一个PBX集成。我们还希望将该集成扩展到Asterisk。我们当前设置的工作方式是,我们从PBX向web应用程序发送关于PBX中发生的几乎所有事情的实时http通知(分机铃声、分机应答呼叫、代理登录呼叫中心等)。我们希望遵循带星号的相同模式

现在,阅读星号让我们陷入了一个两难的境地。我们听到了不同的实施方式。即:

1。使用AGI()执行此操作。 -所以,在dialplan中的不同关键点,放置AGI,它将收集有关当前呼叫的信息,并向我们的应用程序发送http请求

2。使用AMI执行此操作 -连接到TCP,收听所有内容,然后在接收器应用程序端(我们的web应用程序)过滤您需要的内容

3。使用ARI执行此操作 -我不知道这个的细节

我理解的每一个问题/挑战是:

1。处理AGI() -对于每个呼叫(甚至拨号状态_更改)可能太多,可能很快就会成为性能问题

2。AMI -没有任何“本机”多租户支持 -没有简单的方法进行任何类型的事件排队(如果接收器应用程序关闭,则在一段时间后重新发送) -TCP连接到防火墙后面的星号可能会很麻烦

3。ARI -我不知道细节

我们需要的解决方案范围是:

  • 具有数百个租户的多租户解决方案,每个租户可能有数百个用户(例如,最多300-400个)。我知道这需要扩展,但目前我只想看到一台服务器的选项,以及在一台服务器范围内实现这一点的最佳方法
  • 可靠的实时事件进入我们的web应用程序
  • 优选http通知,至少优选tcp(包括WebSocket)
我想听到的是,你建议去哪一个,并解释/讨论原因


谢谢你

你上面的选择是苹果和橘子-很难比较。正如您所指出的,星号不知道租户。创建“多租户”的事件Asterisk包装器只需将拨号计划拆分为多个部分,但Asterisk并不在意。因此,如果你想要星号的状态/活动,你必须通过AMI。(ARI并不遥远,但引入了其他复杂性)


如果您需要将活动映射到租户,那么您有一个单独的问题。

创建星号时,没有多点概念。它被创建为硬件pbx的简单替代品

所以星号上没有任何多租户功能,除非您自己使用dialplan和config

星号也不是为成千上万的用户设计的。对于这种负载,您需要基于opensips/kamailio+opensips的签出集群解决方案

无论如何,若你们希望得到高度可扩展的解决方案,最好的选择是雇佣星号专家,至少在架构阶段是这样。否则,该解决方案可以在100个用户上占用服务器的所有资源


asterisk最具可扩展性的变体将是FastAGI外部程序,该程序触发事件,并控制dialplan+AMI侦听器,该程序触发AGI中可用的传输/其他事件。在纯dialplan+AMI中也可以这样做,但在这种情况下,需要注意http部分(如果它响应长时间,可能会出现星号问题)

您好,谢谢您的回答。是的,关于雇用星号专家,你是对的,这是我们做的第一步。我们最终雇佣了其中的3人,他们对同一件事都有不同的建议,所以我们在进入整个故事后比之前更加困惑。这就是为什么我想得到一些信息。关于事件,AMI似乎是一种方式或另一种方式。关于多租户,您是否有任何关于称为ThirdLine的解决方案的经验/信息?ThirdLine不是真正的多租户。只是不同的数据库有不同的登录名。您能推荐您在这种情况下使用的解决方案/包装器吗?(幕后星号,多租户+重负载)你能给我指一些资源/案例研究吗,我可以在那里读到更多关于它的信息?谢谢没有用于多维护的免费pbx。您已经为您的公司支付了一个(virtualpbx或其他)或开发了新的。