2014-01-15 5 views
2

Я использую Wireshark, чтобы обнюхивать сеть и обнаруживать VoIP-вызовы. Обнаруженные VoIP-вызовы можно увидеть из GUI (Telephony-> VoIP Calls).Обнаружение VoIP-вызовов из командной строки - Wireshark

Теперь я хочу получить этот список из командной строки. Я искал документы wirehark, но не мог найти команду для этого.

Я использую такие команды, как

tshark -r myFile -R "sip.CSeq.method eq INVITE" 

из этой темы: Filtering VoIP calls with tshark

Есть ли команда, чтобы показать, что список VoIP вызовов из командной строки, или же я разобрать выходы и создать свой собственный список? Вы предлагаете какой-либо другой инструмент для этого?

Любая помощь была бы принята с благодарностью.

+0

Что именно вы хотите в качестве выхода? Я подозреваю, что вам нужно будет выполнить некоторую пост-обработку, чтобы получить информацию о более высоком уровне. – yotommy

+0

Я хочу создать список в качестве вывода, включая эти поля каждого сеанса SIP, как в графическом интерфейсе: From, To, Initial Speaker, Start Time, Stop Time, State. – user3197944

ответ

2

Я не знаю, как уговорить tshark, чтобы дать вам то, что делает Wireshark GUI. Вы можете сделать это, выполнив пост-обработку вывода от tshark, но это будет довольно много работы. Один из подходов заключается в:

  • Иметь tshark, чтобы отобразить полную информацию о SIP-пакетов (например, с -v)
  • труб это процесс, который будет извлекать информацию из каждого пакета. Этот процесс должен будет определять границы пакетов, поскольку вход будет иметь несколько строк в пакете.
  • Для этого процесса необходимо сохранить выбранную информацию из этих пакетов (например, From, To, Start Time и т. Д.) И сопоставить эту информацию между пакетами на основе идентификаторов диалогового окна.
  • Процесс должен понимать протокол SIP достаточно хорошо, чтобы определить, когда вызовы будут подтверждены, прекращается, и т.д.

Это, безусловно, выполнимо, но я хотел, чтобы вы знали, что вы получаете в.

Альтернатива отдельному процессу (с которым у меня нет опыта) заключается в том, чтобы написать Wireshark script in Lua и вызвать его через tshark -Xlua_script:my_script.lua (используя версию tshark, скомпилированную с поддержкой Lua). Пример, который поможет вам начать работу, можно найти here в примере «Дамп VoIP-звонки в отдельные файлы» (или аналогично here on Google Code). Преимущества заключаются в следующем:

  • Вы автоматически получаете доступ к разобранному SIP-сообщению.
  • Легко определить, где начинается и заканчивается пакет.
  • Все работает в одном процессе.

Для меня недостатком является то, что мне придется изучать новый язык (не самое худшее в мире).

EDIT: Похоже, что SIP-диссектор в wirehark/tshark может помочь совсем немного, если вы используете подход сценария Lua; например, вы можете проверить sip.response-request на ответ SIP, чтобы найти номер пакета запроса соответствия.