SIP消息计数器

sipcounter的Python项目详细描述


吸管计数器

该模块实现了一个简单的、无状态的SIP消息计数器,其中包括可选的消息流方向、IP地址、协议和端口跟踪。当除了SIP消息体之外还提供了通信主机的IP地址/协议/端口时,它分别计算每个通信链路的SIP请求和响应。因此,链路由SIP-UA服务器和客户端IP地址、服务器和客户端端口以及传输协议类型(TLS、TCP、UDP)组成,如果没有提供,也可以从SIP消息体推断出来。它的“数据”字典将链接作为键保存,每个链接的字典作为值保存另一层字典,每个方向有一个字典,计数器作为值,跟踪该方向发送或接收的SIP消息类型的数量。 为了快速可视化,它提供了一个“tostring”方便方法和许多其他类似方法,这些方法与collections模块中的Counter类类似。在

示例

要统计INVITE和ReINVITE消息的数量以及在INVITE对话框中收到的任何错误响应(4xx、5xx、6xx):

>>> from sipcounter import SIPCounter
>>> reader = sip_msg_reader()
>>> c = SIPCounter(name='SBC Cone-A', sip_filter=set(['INVITE', '4', '5', '6']))
>>> while True:
...     try:
...         # the 'reader' is SIP log parser generator
...         timestamp, sipmsg, msgdir, srcip, srcport, dstip, dstport = next(reader)
...         c.add(sipmsg, msgdir, srcip, srcport, dstip, dstport)
...     except:
...         print(c.tostring(title='2020-0101 01:01:00'))
...         break
KeyboardInterrupt

    2020-0101 01:01:00          INVITE   ReINVITE    503       600    TOTAL
    SBC Cone-A                ---> <--- ---> <--- ---> <--- ---> <---
    1.1.1.1-TCP-5060-2.2.2.1    13   10   40   40    0    0    0    0   103
    1.1.1.1-TLS-5061-2.2.2.1    13   10   36   42    1    0    1    0   103
    SUMMARY                     26   20   76   82    1    0    1    0   206

要求

  • Python 2.7-3.x版

许可证

麻省理工学院,见:许可证.txt在

作者

Szabolcs Szokolysszokoly@pm.me

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java为什么GetScaleInstance()不起作用?   如何筛选日期列表?   java启动文件中缺少以下必填字段:<jnlp>   Java:使枚举绑定到不同的字符串值   使用Java从sharepoint下载文件   Java的LinkedList中的链表peek和元素   java处理终止socket“客户端”的正确方法是什么   html从字符串java/gwt解析htmltags   swing“awteventque0”java。lang.NullPointerException在保存JTable时(DefaultTableModel)   java将数据从JSON ArrayList加载到spinner中   classloader我可以从外部JAR文件的另一个包中重新加载Java类吗?   用于多(并发)测试执行的java多浏览器配置文件?   java IntelliJ Idea标志着红色网络。工作良好的xml   如何设计以数据库为中心的Java Swing应用程序?   java RestrictionsFactoryUtil。in()与MySQL配合使用,与MS SQL Server配合使用失败。需要可行的解决办法