IP-PBX软件和负载测试

祝大家有美好的一天!几年来,我一直从事IP电话业务,并开始注意到,尽管Internet上充满了信息,但我不仅在谈论俄罗斯市场,而且有时您只能在某个“废弃的论坛”上找到所需的信息,或者根本就找不到...如果有足够的有关IP电话和sip协议本身的信息,那么就没有关于IP-PBX软件的构建方式,出于显而易见的原因对其进行测试和调试的数据,但是它是以这样的语言编写的,即只有懂得多年的人才能使用在这个领域工作。



我决定填补这些空白并做出自己的贡献,该信息将为初学者提供有用的信息,更有经验的用户可以自己强调一些新内容,无论如何我们都将陷入困境。目前,我有一个宏伟的计划-撰写一系列文章,总结我的知识,出于明显的原因,我不会上载程序集,虚拟机等。最重要的是对其进行定向,并且沃克会找到自己的方式。



也许歌词就足够了,让我们一如既往地从理论上入手。由于这篇博文将由具有不同知识水平的用户阅读,因此我将尝试将其简短明了。



介绍



IP-PBX软件是基于IP协议的自动电话交换机,其“大脑”是实现语音交换(在这种情况下为语音分组)和提供给订户的其他服务的特殊软件。



现在让我们弄清楚所有这些是如何工作的,我不会立即详细描述,这会花费很多时间,因此会出现一些错误和遗漏。



用户拿起电话并输入号码,立即激活信令,它将控制语音流的会话,为此,存在许多可以区分两个SIP和H.323的协议。目前,SIP已广受欢迎,本文将对此进行考虑。此外,我们将假定使用SIP协议在订户之间建立了逻辑连接,然后需要语音。



订户对电话讲话-他的声音使用软件或硬件编解码器编码为一组比特。编解码器-语音压缩算法,最简单,最常见的PCMA。然后,使用RTP协议将这些位发送给收件人。



综上所述,我们拥有管理通信会话的SIP协议,其中包括SDP协议,该协议描述了会话(已使用和可用的编解码器及其他信息),这些协议被打包到TCP或UDP传输中并使用IP协议沿指定方向发送。一旦建立了逻辑连接,语音便会使用编解码器压缩并打包到RTP中,并使用IP协议发送给收件人。



现在,让我们尝试回答主要问题:谁来控制所有这一切?软件交换机(简称软件交换机)是IP PBX软件的“大脑”,管理所有内部和外部通信。我们都听说过Softswitch,每个人都听说过Asterisk和Freeswitch。有付费的,有免费的,有图形界面,没有。



在图1中,我描绘了软件IP-PBX的框图,让我们对其进行更详细地考虑。首先,它是一个操作系统(OS),必须与硬件兼容,具有必要的存储库并且易于使用。我们不会谈论硬件,而是将其作为服务器。根据客户的意愿(TK),我们选择了IP-PBX的“大脑”-软交换,可以是相同的Asterisk或Freeswitch或手写的软交换。在图中,我将Softswitch和软件分开了,实际上它可能是一个应用程序,这完全取决于客户的要求,您可以使用现成的相同的Freeswitch,编写一个程序来对其进行控制并实现其他功能。 Web服务器一切都清楚了,我们需要在http客户端和Softswitch之间建立一层。好吧,相应的数据库我们不会不断重写配置文件。该操作系统为我们提供了一个工作环境,如果我们要连接FXO和E1板,还需要编写其他驱动程序。



图片

图1. IP-PBX软件的框图



现在您可以喘口气了,所描述的理论已经压缩了,但是对于进一步理解该材料是必需的。



Sipp和StarTrinity SIP测试仪



几周前,任务已经设置好-测试我们的IP-PBX软件可以承受的负载。经过长时间的搜索,我遇到了一个免费的Sipp呼叫生成器,并使用了StarTrinity SIP Tester。下面,我将简要描述这些应用程序的功能。



也许我将从最简单的东西开始-StarTrinity SIP Tester。该应用程序仅在Windows下工作,具有多种可能性,可以进行用户注册,充当注册服务器,发送具有许多参数的去电,接收呼入并发送指定的消息,实际上,您可以自己编写脚本,该应用程序将为您提供帮助。但是所有功能都是单独发布的主题,我们需要最基本的工作-在给定的时间间隔内发送呼叫的能力,而不必忘记RTP。现在,最重要的是,该应用程序是付费的,但是开发人员还提供了免费的简化版本,但实际上,如果您很聪明,甚至可以使用简化版本。



免费版允许您拨打150个电话,同时可以建立50个并发连接,但是重新启动后,计数器将重置,您可以再次发送呼叫。图2和图3显示了StarTrinity SIP Tester应用程序,我们可以看到在哪个地址,哪个号码,来自谁,什么编解码器,间隔和其他呼叫信息。还值得一提的是,它具有Web界面并可以自己制作脚本,但是我不喜欢的是您不能使用错误的参数来编写脚本。



图片

图2. StarTrinity SIP测试仪的付费版本



图片

图3. StarTrinity SIP测试仪的免费版本



如果StarTrinity SIP Tester是可以直接使用的漂亮图形界面,那么Sipp会以一种“怪兽”的身份向我展示自己,您需要下载,编译,添加必要的软件包。但是事实证明,不必担心,开发人员在站点上留下了一份出色的指南,描述了安装过程和此应用程序的功能。他们立即警告说,学习如何编写脚本将需要几天的时间,但这是加号,您将彻底了解sip协议本身并研究其领域。几个字,有内置脚本,它们是最常见的发送和接收呼叫的脚本,我们仍然在Internet上寻找其余的内容,一些用户共享,但是我必须坐下来研究规格并编写我的脚本。 Sipp在Windows和Linux下均可用,但在Linux下工作更稳定。



到现在为止,仅为Sipp分配一台机器是昂贵的,我们采用并制作了一个虚拟机,我在Ubuntu下使用VirtualBox,我没有问题。按照指南进行安装,转到应用程序文件夹,然后使用必要的键启动应用程序。



图片

图4. Sipp呼叫生成器



我将不介绍Sipp功能,它类似于StarTrinity SIP Tester,哪个应用程序更好,没有确定的答案,我得出的结论是它们可以完美地互补。



压力测试



现在我们知道什么是IP-PBX软件及其工作原理,我们还知道呼叫生成器的功能。



同样,在测试时,我们必须了解IP-PBX软件的操作模式:代理模式(代理RTP +信令),半代理(仅代理信令),请求重定向(消息300)。这将确定我们是否需要在某些情况下启用RTP。在图5中,我草绘了几个测试用例。



选项1-我们在传输模式下测试软件IP-PBX,为此,我们需要两台不同的PC。在PBX上,我们分别从一个Sipp / StarTrinity SIP测试仪注册一条路由,然后生成到另一个Sipp / StarTrinity SIP测试仪的呼叫。我必须马上说,我没有尝试在Sipp上(或每转)使用StarTrinity SIP Tester生成呼叫,但从理论上讲,它们应该完全兼容。



选项2-我们在传输模式下测试软件IP-PBX,为此,我们需要两台不同的PC。在PBX上,我们分别从一个Sipp / StarTrinity SIP测试仪注册路由,并生成对Asterisk的调用。对于Asterisk,我在Ubuntu下使用VirtualBox虚拟机,没有问题。在星号拨号计划中,编写以下内容:



图片



当您拨打该号码时,Asterisk会接听并将所有收到的语音发送回去。



图片

图5.用于负载测试的设备配置选项



选项3-我们在终端站模式下测试软件IP-PBX,为此,我们需要一台PC和IP电话,我们在电话上设置了自动应答。我们分别通过一个Sipp / StarTrinity SIP测试仪在PBX上注册IP电话,然后从它们生成呼叫。



选项4-我们在终端站模式下测试软件IP-PBX,为此,我们需要一台PC和模拟SLT。在PBX上,我们分别从一个Sipp / StarTrinity SIP测试仪开出模拟TA,我们生成对它们的呼叫。据我所知,但我本人并没有遇到某些与模拟线路相连且可以编程的设备,例如可以在通话时接听电话,但是如果这些选项不可用,则必须手动接管。



当然,在IP-PBX软件上,就是所有这些,打开日志或显示带有调试功能的控制台,并查看发生的错误。这就是确定性能和故障极限的方法。顺便提一下,建议在虚拟机上安装Wireshark,tshark,tcpdump,以便您可以实时监视和分析接口上的所有流量。



总结



总而言之,我们初步了解了IP-PBX软件以及Sipp和StarTrinity SIP Tester调用生成器的构建,并了解了如何模拟负载。如果您仔细考虑,则可以使用这些调用生成器安全地测试整个Sip堆栈。



今天就这些,我正在等待您的评论和评论,如果您想分享您的经验,那么我将很高兴。



正在加载...



链接



1.Sipp sipp.readthedocs.io/zh/v3.6.0/#

2.StarTrinity SIP Tester startrinity.com/VoIP/SipTester/SipTester.aspx

3.书籍和其他信息asterisk.ru/knowledgebase/books



All Articles