概述

在VOIP的使用过程中,最常见的问题就是信令不通和语音质量问题。

通常的问题跟踪手段包括日志分析、抓包分析。

抓包的工具有wireshark、tcpdump等等,如果是只针对sip信令的抓包,则sngrep更专业好用。

sngrep对SIP抓包的专业性体现在:

  1. 实时抓取,实时展示。
  2. 可以作为sip PCAP查看器。
  3. 对sip信令中的任意字段设置过滤器。
  4. 对一个dialog的sip信令自动关联。

环境

centos6,centos7

安装

依赖库

yum install ncurses-devel make libpcap-devel pcre-devel openssl-devel git gcc autoconf automake

yum源

vi  /etc/yum.repos.d/irontec.repo

[irontec]

name=Irontec RPMs repository

baseurl=http://packages.irontec.com/centos/$releasever/$basearch/

安装

rpm --import http://packages.irontec.com/public.key

yum install sngrep

命令帮助

[root@localhost ~]# sngrep --help

Usage: sngrep [-hVcivNqrD] [-IO pcap_dump] [-d dev] [-l limit] [-B buffer] [-LHE capture_url] [<match expression>] [<bpf filter>]

    -h --help            This usage

    -V --version         Version information

    -d --device          Use this capture device instead of default

    -I --input           Read captured data from pcap file

    -O --output          Write captured data to pcap file

    -B --buffer          Set pcap buffer size in MB (default: 2)

    -c --calls           Only display dialogs starting with INVITE

    -r --rtp             Capture RTP packets payload

    -l --limit           Set capture limit to N dialogs

    -i --icase           Make <match expression> case insensitive

    -v --invert          Invert <match expression>

    -N --no-interface    Don't display sngrep interface, just capture

    -q --quiet           Don't print captured dialogs in no interface mode

    -D --dump-config     Print active configuration settings and exit

    -f --config          Read configuration from file

    -F --no-config       Do not read configuration from default config file

    -R --rotate          Rotate calls when capture limit have been reached

    -H --eep-send        Homer sipcapture url (udp:X.X.X.X:XXXX)

    -L --eep-listen      Listen for encapsulated packets (udp:X.X.X.X:XXXX)

-E --eep-parse       Enable EEP parsing in captured packets

测试

指定网卡br0抓包

sngrep –d br0

主界面,展示所有抓取的sip信令,按照dialog展示

上下选择某一个dialog,enter进入查看信令细节,本图是一个注册过程的信令

本图是一个呼叫dialog的完整信令交互展示

总结

sngrep是一个非常好用的sip呼叫跟踪工具,还有很多的细节和使用方法有待开发。

比如我们可以在sip server上对指定号码抓取呼叫信令和rtp媒体流,用来跟踪定位问题。


空空如常

求真得真

sip信令跟踪工具sngrep的更多相关文章

  1. SIP信令跟踪工具HOMER

    概述 HOMER是一款100%开源的针对SIP/VOIP/RTC的抓包工具和监控工具. HOMER是一款强大的.运营商级.可扩展的数据包和事件捕获系统,是基于HEP/EEP协议的VoIP/RTC监控应 ...

  2. 推荐windows下的日志跟踪工具:SnakeTail

    用过Linux的同学都知道,在Linux中要实时跟踪日志文件那是非常的方便,Tail.Less都可以做到. 开启动态跟踪后,程序会监视文件修改,从而不断刷新出最新的内容,对于线上运维特别有用.   今 ...

  3. 项目管理和缺陷跟踪工具Redmine

    官网: http://www.redmine.org/ http://demo.redmine.org/ 下载: http://www.redmine.org/projects/redmine/wik ...

  4. PLSQL_性能优化效能跟踪工具SQL Trace分析(案例)

    2014-06-25 Created By BaoXinjian

  5. readmine项目管理和缺陷跟踪工具

    官方网站:http://www.redmine.org/演示地址:http://demo.redmine.org/下载地址:http://www.redmine.org/projects/redmin ...

  6. 分享两个网址,一个是使用mssql自带的跟踪工具和分析工具

    http://www.cnblogs.com/Fooo/archive/2013/02/19/2916789.html 使用mssql自带的跟踪工具和分析工具 http://blog.csdn.net ...

  7. 服务跟踪sleuth和可视化跟踪工具Zipkin

    一.增加配置 在Order工程中添加配置 <dependency> <groupId>org.springframework.cloud</groupId> < ...

  8. 谷歌开源漏洞跟踪工具 Monorail 存在跨站点搜索漏洞

    一名安全研究员表示,在谷歌开源漏洞跟踪工具 Monorail 中找到一个漏洞,可被用于执行跨站点搜索 (XS-Search) 攻击. Monorail 用于检查和 Chromium 相关项目中的问题, ...

  9. 【多线程】死锁与Java栈跟踪工具

    今天面试有一道题,写一个死锁的程序,自己也是短路了,没写出来,回来写下. 死锁常见的情况是A线程持有a锁.阻塞于b锁,B线程持有b锁,阻塞于a锁,形成一个循环阻塞的状态. import java.ut ...

随机推荐

  1. C++11多线程编程

    1. 多线程编程 在进行桌面应用程序开发的时候, 假设应用程序在某些情况下需要处理比较复杂的逻辑, 如果只有一个线程去处理,就会导致窗口卡顿,无法处理用户的相关操作.这种情况下就需要使用多线程,其中一 ...

  2. eclipse的C/C++开发搭建

    环境 宿主机:ubuntu 16.04 交叉编译:gcc-linaro-4.9-2014.11 ubuntu自带源 eclipse 安装(想使用新版直接跳过) 安装eclipse sudo apt-g ...

  3. Selenium系列(22) - 通过selenium控制浏览器滚动条的几种方式

    如果你还想从头学起Selenium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1680176.html 其次,如果你不懂前端基础知识, ...

  4. Spring中使用@within与@target的一些区别

    目录 背景 模拟项目例子 看看使用@within和@target的区别 @within @target @target 看起来跟合理一点 通知方法中注解参数的值为什么是不一样的 想用@within,但 ...

  5. 使用easyui为tab页增加右键菜单

    在使用easyui进行上左右布局一文中,我们已经使用easyui搭建起了一个简单的上左右布局.在使用的过程中,我们经常会遇到tab页打开的太多,但只能一个一个的关闭的烦恼,这个时候有没有想到eclip ...

  6. 【第十七篇】- Maven Web 应用之Spring Cloud直播商城 b2b2c电子商务技术总结

    Maven Web 应用 本章节我们将学习如何使用版本控制系统 Maven 来管理一个基于 web 的项目,如何创建.构建.部署已经运行一个 web 应用. 创建 Web 应用 我们可以使用 mave ...

  7. 队列,一种"公平"的数据结构

    路过一家奶茶店,由于生意火爆,门口的排着长长的队伍,先排队的人先买到奶茶,然后再轮到下一个,秩序井然.有没有一种数据结构能体现"先来后到"这种顺序呢? 当然有,那就是队列.先看一下 ...

  8. python学习笔记(七)-函数

    函数 方法 功能说白了,函数就是把一堆代码组合到一起,变成一个整体.函数不调用不会被执行.作用在于提高代码的复用性.定义函数 def greet_user(): """关 ...

  9. django setting.py配置文件解读-02

    定义项目目录常量 import os # Build paths inside the project like this: os.path.join(BASE_DIR, ...) BASE_DIR ...

  10. 『GoLang』控制结构

    条件语句 if 是用于测试某个条件(布尔型或逻辑型)的语句,如果该条件成立,则会执行if后由大括号括起来的代码块,否则就忽略该代码块继续执行后续的代码. if condition { // do so ...