แแแแแถแแแแแขแแแแแแแบแแแแธแแแแปแ
แแถแแแแแพแแแแถแแ TShark แแพแแแแธแแทแแถแแแแแ แแแแแแแแถแ RTP
แแแแปแโแขแแธแแแถแ
แแ แแแแปแแขแแแแแแแแ แแพแแแแแแแทแแแแถแแถแแแแแแผแแแแแแถแแแกแแแแแแแแแพแแทแแธแแถแ RTP แ แแแแผแ แแพแแแแแ แแแแแแแแทแแธแแถแแแแแแแแแแแพแแแ แแถแงแแแแแแแแแแผแ แแทแแขแแแแแแฝแ แ แพแแแแแแธแแแแแแทแแทแแแแแพแแแถแแแแแถแ RTP แแแแแแแพแงแแแแแแแทแแถแแ แแถแ แแแแแแแแถแแ
แแผแ แแแแแแพแแแแธแฑแแแแพแแขแถแ แแพแแแพแแแถแแแแแ แแแถแแแแถแแพแแถแแปแแแแแแทแแธแแถแแแแแแฝแแแปแแแแแผแแ แแแแแแถแแแแแแผแ RTP แแทแแแแแแแฝแแแปแแแแแผแแแแแปแแแถแแแแฝแ แแพแแแแแ แแแฏแแแถแ mstest6.c แแแแแแพแแแ แแถแแแแแแทแแธแฏแแแถแแแแแธแแแแแแถแแแขแแแแแแแแผแ แแทแแขแแแแแแฝแ แแพแแแนแแแถแแแแปแแแถแแแผแแ แแแแแแแพแแถแแแแธแแ แแ แแแแปแแฏแแแถแแแธแแธแแแแแพแแแนแแ แ mstest_common.cแแถแแนแแแแแผแแแถแแแแแถแแแแแแงแแแแแแแแแแผแ แแทแแขแแแแแแฝแ แแแแแแแพแแถแแแแแถแแแฝแแแแแ แผแแ
/* ะคะฐะนะป mstest_common.c ะะฑัะธะต ััะฝะบัะธะธ ะดะปั ะฟะตัะตะดะฐััะธะบะฐ ะธ ะฟัะธะตะผะฝะธะบะฐ. */
#include <mediastreamer2/msfilter.h>
#include <mediastreamer2/msticker.h>
#include <mediastreamer2/msrtp.h>
#include <ortp/rtpsession.h>
#include <ortp/payloadtype.h>
define PCMU 0
/*---------------------------------------------------------*/
/* ะคัะฝะบัะธั ัะตะณะธัััะฐัะธะธ ัะธะฟะพะฒ ะฟะพะปะตะทะฝัั
ะฝะฐะณััะทะพะบ. */
void register_payloads(void)
{
/* ะ ะตะณะธัััะธััะตะผ ัะธะฟั ะฝะฐะณััะทะพะบ ะฒ ัะฐะฑะปะธัะต ะฟัะพัะธะปะตะน. ะะพะทะดะฝะตะต, ะฟะพ ะธะฝะดะตะบัั ะฒะทััะพะผั
ะธะท ะทะฐะณะพะปะพะฒะบะฐ RTP-ะฟะฐะบะตัะฐ ะธะท ััะพะน ัะฐะฑะปะธัั ะฑัะดัั ะธะทะฒะปะตะบะฐัััั ะฟะฐัะฐะผะตััั
ะฝะฐะณััะทะบะธ, ะฝะตะพะฑั
ะพะดะธะผัะต ะดะปั ะดะตะบะพะดะธัะพะฒะฐะฝะธั ะดะฐะฝะฝัั
ะฟะฐะบะตัะฐ. */
rtp_profile_set_payload (&av_profile, PCMU, &payload_type_pcm8000);
}
/*---------------------------------------------------------*/
/* ะญัะฐ ััะฝะบัะธั ัะพะทะดะฐะฝะฐ ะธะท ััะฝะบัะธะธ create_duplex_rtpsession() ะฒ audiostream.c ะผะตะดะธะฐัััะธะผะตัะฐ2. */
static RtpSession *create_rtpsession (int loc_rtp_port, int loc_rtcp_port, bool_t ipv6, RtpSessionMode mode)
{
RtpSession *rtpr; rtpr = rtp_session_new ((int) mode);
rtp_session_set_scheduling_mode (rtpr, 0);
rtp_session_set_blocking_mode (rtpr, 0);
rtp_session_enable_adaptive_jitter_compensation (rtpr, TRUE);
rtp_session_set_symmetric_rtp (rtpr, TRUE);
rtp_session_set_local_addr (rtpr, ipv6 ? "::" : "0.0.0.0", loc_rtp_port, loc_rtcp_port);
rtp_session_signal_connect (rtpr, "timestamp_jump", (RtpCallback) rtp_session_resync, 0);
rtp_session_signal_connect (rtpr, "ssrc_changed", (RtpCallback) rtp_session_resync, 0);
rtp_session_set_ssrc_changed_threshold (rtpr, 0);
rtp_session_set_send_payload_type(rtpr, PCMU);
/* ะะพ ัะผะพะปัะฐะฝะธั ะฒัะบะปััะฐะตะผ RTCP-ัะตััะธั, ัะฐะบ ะบะฐะบ ะฝะฐั ะฟัะปัั ะฝะต ะฑัะดะตั ะธัะฟะพะปัะทะพะฒะฐัั
ะตั. */
rtp_session_enable_rtcp (rtpr, FALSE);
return rtpr;
}
แฅแกแผแแฏแแแถแแแแแแผแแแถแ แแแแแกแแแ
/* ะคะฐะนะป mstest6.c ะะผะธัะฐัะพั ะฟัะปััะฐ ัะฟัะฐะฒะปะตะฝะธั (ะฟะตัะตะดะฐััะธะบะฐ). */
#include <mediastreamer2/dtmfgen.h>
#include <mediastreamer2/msrtp.h>
#include "mstest_common.c"
/*----------------------------------------------------------*/
int main()
{
ms_init();
/* ะกะพะทะดะฐะตะผ ัะบะทะตะผะฟะปััั ัะธะปัััะพะฒ. */
MSFilter *voidsource = ms_filter_new(MS_VOID_SOURCE_ID);
MSFilter *dtmfgen = ms_filter_new(MS_DTMF_GEN_ID);
/* ะกะพะทะดะฐะตะผ ัะธะปััั ะบะพะดะตัะฐ. */
MSFilter *encoder = ms_filter_create_encoder("PCMU");
/* ะ ะตะณะธัััะธััะตะผ ัะธะฟั ะฝะฐะณััะทะบะธ. */
register_payloads();
/* ะกะพะทะดะฐะตะผ RTP-ัะตััะธั ะฟะตัะตะดะฐััะธะบะฐ. */
RtpSession *tx_rtp_session = create_rtpsession (8010, 8011, FALSE, RTP_SESSION_SENDONLY);
rtp_session_set_remote_addr_and_port(tx_rtp_session,"127.0.0.1", 7010, 7011);
rtp_session_set_send_payload_type(tx_rtp_session, PCMU);
MSFilter *rtpsend = ms_filter_new(MS_RTP_SEND_ID);
ms_filter_call_method(rtpsend, MS_RTP_SEND_SET_SESSION, tx_rtp_session);
/* ะกะพะทะดะฐะตะผ ะธััะพัะฝะธะบ ัะฐะบัะพะฒ - ัะธะบะตั. */
MSTicker *ticker_tx = ms_ticker_new();
/* ะกะพะตะดะธะฝัะตะผ ัะธะปัััั ะฟะตัะตะดะฐััะธะบะฐ. */
ms_filter_link(voidsource, 0, dtmfgen, 0);
ms_filter_link(dtmfgen, 0, encoder, 0);
ms_filter_link(encoder, 0, rtpsend, 0);
/* ะะพะดะบะปััะฐะตะผ ะธััะพัะฝะธะบ ัะฐะบัะพะฒ. */
ms_ticker_attach(ticker_tx, voidsource);
/* ะะฐัััะฐะธะฒะฐะตะผ ััััะบัััั, ัะฟัะฐะฒะปััััั ะฒัั
ะพะดะฝัะผ ัะธะณะฝะฐะปะพะผ ะณะตะฝะตัะฐัะพัะฐ. */
MSDtmfGenCustomTone dtmf_cfg;
dtmf_cfg.tone_name[0] = 0;
dtmf_cfg.duration = 1000;
dtmf_cfg.frequencies[0] = 440;
/* ะัะดะตะผ ะณะตะฝะตัะธัะพะฒะฐัั ะพะดะธะฝ ัะพะฝ, ัะฐััะพัั ะฒัะพัะพะณะพ ัะพะฝะฐ ัััะฐะฝะพะฒะธะผ ะฒ 0. */
dtmf_cfg.frequencies[1] = 0;
dtmf_cfg.amplitude = 1.0;
dtmf_cfg.interval = 0.;
dtmf_cfg.repeat_count = 0.;
/* ะัะณะฐะฝะธะทัะตะผ ัะธะบะป ัะบะฐะฝะธัะพะฒะฐะฝะธั ะฝะฐะถะฐััั
ะบะปะฐะฒะธั. ะะฒะพะด ะฝัะปั ะทะฐะฒะตััะฐะตั
* ัะธะบะป ะธ ัะฐะฑะพัั ะฟัะพะณัะฐะผะผั. */
char key='9';
printf("ะะฐะถะผะธัะต ะบะปะฐะฒะธัั ะบะพะผะฐะฝะดั, ะทะฐัะตะผ ะฒะฒะพะด.n"
"ะะปั ะทะฐะฒะตััะตะฝะธั ะฟัะพะณัะฐะผะผั ะฒะฒะตะดะธัะต 0.n");
while(key != '0')
{
key = getchar();
if ((key >= 49) && (key <= 54))
{
printf("ะัะฟัะฐะฒะปะตะฝะฐ ะบะพะผะฐะฝะดะฐ: %cn", key);
/* ะฃััะฐะฝะฐะฒะปะธะฒะฐะตะผ ัะฐััะพัั ะณะตะฝะตัะฐัะพัะฐ ะฒ ัะพะพัะฒะตัััะฒะธะธ ั
* ะบะพะดะพะผ ะฝะฐะถะฐัะพะน ะบะปะฐะฒะธัะธ. */
dtmf_cfg.frequencies[0] = 440 + 100*(key-49);
/* ะะบะปััะฐะตะผ ะทะฒัะบะพะฒะพะน ะณะตะฝะตัะฐัะพั c ะพะฑะฝะพะฒะปะตะฝะฝะพะน ัะฐััะพัะพะน. */
ms_filter_call_method(dtmfgen, MS_DTMF_GEN_PLAY_CUSTOM, (void*)&dtmf_cfg);
}
/* ะฃะบะปะฐะดัะฒะฐะตะผ ััะตะด ะฒ ัะฟััะบั ะฝะฐ 20ะผั, ััะพะฑั ะดััะณะธะต ััะตะดั
* ะฟัะธะปะพะถะตะฝะธั ะฟะพะปััะธะปะธ ะฒัะตะผั ะฝะฐ ัะฐะฑะพัั. */
ms_usleep(20000);
}
}
แ แพแแ แปแแแแแแ แฏแแแถแแขแแแแแแฝแแ
/* ะคะฐะนะป mstest7.c ะะผะธัะฐัะพั ะฟัะธะตะผะฝะธะบะฐ. */
include <mediastreamer2/mssndcard.h>
include <mediastreamer2/mstonedetector.h>
include <mediastreamer2/msrtp.h>
/* ะะพะดะบะปััะฐะตะผ ะทะฐะณะพะปะพะฒะพัะฝัะน ัะฐะนะป ั ััะฝะบัะธัะผะธ ัะฟัะฐะฒะปะตะฝะธั ัะพะฑััะธัะผะธ ะผะตะดะธะฐัััะธะผะตัะฐ.*/
include <mediastreamer2/mseventqueue.h>
/* ะะพะดะบะปััะฐะตะผ ัะฐะนะป ะพะฑัะธั
ััะฝะบัะธะน. */
include "mstest_common.c"
/* ะคัะฝะบัะธั ะพะฑัะฐัะฝะพะณะพ ะฒัะทะพะฒะฐ, ะพะฝะฐ ะฑัะดะตั ะฒัะทะฒะฐะฝะฐ ัะธะปัััะพะผ, ะบะฐะบ ัะพะปัะบะพ ะพะฝ ะพะฑะฝะฐััะถะธั ัะพะฒะฟะฐะดะตะฝะธะต ั
ะฐัะฐะบัะตัะธััะธะบ ะฒั
ะพะดะฝะพะณะพ ัะธะณะฝะฐะปะฐ ั ะทะฐะดะฐะฝะฝัะผะธ. */
static void tone_detected_cb(void *data, MSFilter *f, unsigned int event_id,MSToneDetectorEvent *ev)
{
printf("ะัะธะฝััะฐ ะบะพะผะฐะฝะดะฐ: %sn", ev->tone_name);
}
/*----------------------------------------------------------*/
int main()
{
ms_init();
/* ะกะพะทะดะฐะตะผ ัะบะทะตะผะฟะปััั ัะธะปัััะพะฒ. */
MSSndCard *card_playback = ms_snd_card_manager_get_default_card(ms_snd_card_manager_get());
MSFilter *snd_card_write = ms_snd_card_create_writer(card_playback);
MSFilter *detector = ms_filter_new(MS_TONE_DETECTOR_ID);
/* ะัะธัะฐะตะผ ะผะฐััะธะฒ ะฝะฐั
ะพะดััะธะนัั ะฒะฝัััะธ ะดะตัะตะบัะพัะฐ ัะพะฝะพะฒ, ะพะฝ ะพะฟะธััะฒะฐะตั
* ะพัะพะฑัะต ะฟัะธะผะตัั ัะฐะทััะบะธะฒะฐะตะผัั
ัะธะณะฝะฐะปะพะฒ.*/
ms_filter_call_method(detector, MS_TONE_DETECTOR_CLEAR_SCANS, 0);
/* ะะพะดะบะปััะฐะตะผ ะบ ัะธะปัััั ััะฝะบัะธั ะพะฑัะฐัะฝะพะณะพ ะฒัะทะพะฒะฐ. */
ms_filter_set_notify_callback(detector, (MSFilterNotifyFunc)tone_detected_cb, NULL);
/* ะกะพะทะดะฐะตะผ ะผะฐััะธะฒ, ะบะฐะถะดัะน ัะปะตะผะตะฝั ะบะพัะพัะพะณะพ ะพะฟะธััะฒะฐะตั ั
ะฐัะฐะบัะตัะธััะธะบั
* ะพะดะฝะพะณะพ ะธะท ัะพะฝะพะฒ, ะบะพัะพััะน ััะตะฑัะตััั ะพะฑะฝะฐััะถะธะฒะฐัั:
ะขะตะบััะพะฒะพะต ะธะผั
* ะดะฐะฝะฝะพะณะพ ัะปะตะผะตะฝัะฐ, ัะฐััะพัะฐ ะฒ ะณะตััะฐั
, ะดะปะธัะตะปัะฝะพััั ะฒ ะผะธะปะปะธัะตะบัะฝะดะฐั
,
* ะผะธะฝะธะผะฐะปัะฝัะน ััะพะฒะตะฝั ะพัะฝะพัะธัะตะปัะฝะพ 0,775ะ. */
MSToneDetectorDef scan[6]=
{
{"V+",440, 100, 0.1}, /* ะะพะผะฐะฝะดะฐ "ะฃะฒะตะปะธัะธัั ะณัะพะผะบะพััั". */
{"V-",540, 100, 0.1}, /* ะะพะผะฐะฝะดะฐ "ะฃะผะตะฝััะธัั ะณัะพะผะบะพััั". */
{"C+",640, 100, 0.1}, /* ะะพะผะฐะฝะดะฐ "ะฃะฒะตะปะธัะธัั ะฝะพะผะตั ะบะฐะฝะฐะปะฐ". */
{"C-",740, 100, 0.1}, /* ะะพะผะฐะฝะดะฐ "ะฃะผะตะฝััะธัั ะฝะพะผะตั ะบะฐะฝะฐะปะฐ". */
{"ON",840, 100, 0.1}, /* ะะพะผะฐะฝะดะฐ "ะะบะปััะธัั ัะตะปะตะฒะธะทะพั". */
{"OFF", 940, 100, 0.1}/* ะะพะผะฐะฝะดะฐ "ะัะบะปััะธัั ัะตะปะตะฒะธะทะพั". */
};
/* ะะตัะตะดะฐะตะผ "ะฟัะธะผะตัั" ัะธะณะฝะฐะปะพะฒ ะดะตัะตะบัะพั ัะพะฝะพะฒ. */
int i;
for (i = 0; i < 6; i++)
{
ms_filter_call_method(detector, MS_TONE_DETECTOR_ADD_SCAN, &scan[i]);
}
/* ะกะพะทะดะฐะตะผ ัะธะปััั ะดะตะบะพะดะตัะฐ */
MSFilter *decoder=ms_filter_create_decoder("PCMU");
/* ะ ะตะณะธัััะธััะตะผ ัะธะฟั ะฝะฐะณััะทะบะธ. */
register_payloads();
/* ะกะพะทะดะฐะตะผ RTP-ัะตััะธั ะฟัะธะตะผะฝะธะบะฐ. */
MSFilter *rtprecv = ms_filter_new(MS_RTP_RECV_ID);
RtpSession *rx_rtp_session = create_rtpsession (7010, 7011, FALSE, RTP_SESSION_RECVONLY);
ms_filter_call_method(rtprecv, MS_RTP_RECV_SET_SESSION, rx_rtp_session);
/* ะกะพะทะดะฐะตะผ ะธััะพัะฝะธะบ ัะฐะบัะพะฒ - ัะธะบะตั. */
MSTicker *ticker_rx = ms_ticker_new();
/* ะกะพะตะดะธะฝัะตะผ ัะธะปัััั ะฟัะธัะผะฝะธะบะฐ. */
ms_filter_link(rtprecv, 0, decoder, 0);
ms_filter_link(decoder, 0, detector, 0);
ms_filter_link(detector, 0, snd_card_write, 0);
/* ะะพะดะบะปััะฐะตะผ ะธััะพัะฝะธะบ ัะฐะบัะพะฒ. */
ms_ticker_attach(ticker_rx, rtprecv);
char key='9';
printf( "ะะปั ะทะฐะฒะตััะตะฝะธั ะฟัะพะณัะฐะผะผั ะฒะฒะตะดะธัะต 0.n");
while(key != '0')
{
key = getchar();
/* ะฃะบะปะฐะดัะฒะฐะตะผ ััะตะด ะฒ ัะฟััะบั ะฝะฐ 20ะผั, ััะพะฑั ะดััะณะธะต ััะตะดั * ะฟัะธะปะพะถะตะฝะธั ะฟะพะปััะธะปะธ ะฒัะตะผั ะฝะฐ ัะฐะฑะพัั. */
ms_usleep(20000);
}
}
แแพแแ แแแแแแงแแแแแแแแแแผแ แแทแแขแแแแแแฝแ แแแแแถแแแแแแพแแแแแพแแแถแแแธแแฝแแแแ แแแแปแแแปแแแผแแแแแถแแแแแแฝแแแแแแแถแ แแแแแถแแแแแแถแแฝแแแแแแแพแแแถแแแผแ แแธแแปแ - แแถแแแแแพแแแแแแแแฝแแแแแ แผแแแแแแธ 1 แแแ 6 แแ แแแแปแแแปแแแผแแแแแแผแ แ แพแแแถแแแแแพแแแแ แแแแแแฝแแแแแฝแแแแแแแ แถแแแ แแแแปแแแปแแแผแแขแแแแแแฝแแ แแแกแแแแฝแแแแฎแแ แแแแปแแงแแแแแแแแแแแแกแแแ แแแแแทแแแพแขแแแธแแแแแแแแแถแแแบแแผแ แแแแ แแแแแพแแแถแแแแแแพแแแถแแแแแแถแแแแแถแแขแแแแแแฝแ แแทแแงแแแแแแแแแแผแ - แแถแแแถแแแแแแผแแแแแแแแแแแ แแแแแแแแถแ RTP แแธแงแแแแแแแแแแผแแแ แแถแแแขแแแแแแฝแแ
แฅแกแผแแแแแแแแแแแแแแแแแผแแแแกแพแแงแแแแแแแทแแถแแ แแถแ แแแแ แพแ แแแแแถแแแแฟแแแแ แแพแแแนแแแแกแพแแแแแแแปแแแผแแแแแแแแแทแแธ Wireshark แแแแแขแฅแแแแ แแ - แแถแแแแผแแแถแแแแ แ แแถ TShark แ แแแแปแแแถแแแแแพแแแพแ TShark แแแแแถแแแแถแแแทแแถแแแแถแแแแแแ แแพแแแแธแแฝแแแแแแฝแแแแแแถแแแทแแแแแถแขแแแธแแถแแแแแแแแแแแแแแแแทแแธแ แแถแแฝแแแนแ Wireshark แแแแปแแแนแแแแแผแแแถแแแผแแแแขแแแแแแ แแแแขแถแ แแนแแ แฝแแแแแแแแแถแแ แแ แแแแแแแแแแแแแแธแแแแ Wireshark แแแแผแแแถแแ แแแแแแถแแ
แแแแแทแแแพแขแแแแแนแแแธแแแแแแแแพ Wireshark แขแแแแขแถแ แแแแพแแถแแพแแแแธแแทแแแแถแงแแถแ แแแแแแแแแพแแ แแแปแแแแแแแแแธแแถแแแแปแแแแแธแแแแแแแแ แแแแปแแแผแแแแแถแแฑแแแขแแแแแแแพแแถแแแ แถแแ TShark แแแแแแแถแแนแแแฝแแขแแแแฑแแแแแแพแแแแแแแแแแแแแแแแแแแแแทแแผแแแแแแแทแแธ VoIP แแแแแขแแแ แแแแผแ แแถแแแแพแแถแแ แถแแแแแแธแ แแแแถแแแแแแแ
แแแกแพแ TShark แแแแแแแพแแถแแแแแแแแถแ
$ sudo apt-get install tshark
แแถแแแแแแแธ แแพแแแทแแทแแแแแแแแแแแแกแพแแแแแแฝแแแแแแแแแแแแแทแแธแ
$ tshark --version
แแแแแทแแแพแแแฝแแแถแแ แแแแพแแแแแแแแแแถแแ แแพแแแแแแแแแแแแแ
แแแแแถแแแแแ แแแแแแแแถแแแแแแแพแแ แผแแแแแแแปแแแปแแแแแผแแแแแแแแถแแแแแแแแ แแพแแขแถแ แแแแถแแ churk แฑแแแแแแ แถแแแแแแแ แแแแแแแแถแแแแแแแแแแปแแแแแแ แแพแแแแธแแแแพแแผแ แแแแขแแแแแแแผแแแแแพแแแพแแแถแแ แถแแแแแแแแ แแแแแแแแถแแแธแ แแแปแ แแแแแถแแ แแแแแทแแแปแ (loopback) แแแแแแแแแถแแ TShark แแแแแพแ - แขแแแ แนแ:
$ sudo tshark -i lo
แแถแแขแแแธแแแแ แแแแแแแแถแแแแแแถแแแแแพแแแแงแแแแแแแแแแผแแแแแแแพแแแนแแ แถแแแแแแพแแ แถแแแ แผแแแ แแแแปแแแปแแแผแแแแแถแแ (แแถแแแแแแแแแถแแ แแแแแทแแแทแแแธแแถแแพแแพแแแถแแ แปแ แแแผแแปแแแ แแพแงแแแแแแแแแแถแแธแ แแแแถแแฌแขแแ)แ แแแแ แแแแถแแถแแแแแแแทแแธแแ แแพแแปแแแแแผแแแแแแแแขแแแแแแแแแแพแแแแ แแแแแแแแถแแแถแแแแแแแแแทแแแปแแแผแแแแแถแแแแแแ แแแแปแแแแแธแแแแแพแแแนแแแแฝแแแถแแแแแถแแแแแแแ แแแแแแแแถแแแแแแแพแ แแทแแขแแแแแแแ แแพแแแแธแแแแถแแแแถแแ แแแแปแแแแแแธแแพแแแพแแแแแแแ แแแแแแแแแพแแแแแถแแแแแแถแแธแ แแแแถแแแแแแแพแ แแพแแแนแแแแแแแแแแแแแแถแแแแแ แแแแ แแแแ แปแ Ctrl-C แแพแแแแแแแแงแแแแแแแทแแถแ แ แพแแแแแ แผแแแแแแแแแแแถแแแแแแ แแแแแแแงแแแแแแแแแแถแแธแ แแแแถแแแแแพแแถแ แแแแแทแแแ แแแแแถแแแแถแแแแแแผแแแแแแแถ (8010)แ -f "แ แแแ udp 8010". แฅแกแผแแแแแแแแแถแแแแถแแแแแแแแถแแแแแแพแแแนแแแพแแแ แแผแ แแแ:
$ sudo tshark -i lo -f "udp port 8010"
แแแแแแแแถแแแแแแแแนแแแแแ แถแแแ แแแแปแแแปแแแผแ (แแแแแถแแ 10 แแแแผแ)แ
1 0.000000000 127.0.0.1 โ 127.0.0.1 UDP 214 8010 โ 7010 Len=172
2 0.020059705 127.0.0.1 โ 127.0.0.1 UDP 214 8010 โ 7010 Len=172
3 0.040044409 127.0.0.1 โ 127.0.0.1 UDP 214 8010 โ 7010 Len=172
4 0.060057104 127.0.0.1 โ 127.0.0.1 UDP 214 8010 โ 7010 Len=172
5 0.080082311 127.0.0.1 โ 127.0.0.1 UDP 214 8010 โ 7010 Len=172
6 0.100597153 127.0.0.1 โ 127.0.0.1 UDP 214 8010 โ 7010 Len=172
7 0.120122668 127.0.0.1 โ 127.0.0.1 UDP 214 8010 โ 7010 Len=172
8 0.140204789 127.0.0.1 โ 127.0.0.1 UDP 214 8010 โ 7010 Len=172
9 0.160719008 127.0.0.1 โ 127.0.0.1 UDP 214 8010 โ 7010 Len=172
10 0.180673685 127.0.0.1 โ 127.0.0.1 UDP 214 8010 โ 7010 Len=172
แแแแแถแแแแแแแแ แแถแแแแแแแทแแแแแแถแแแแ แแแแแแแแถแแแ แแแปแแแแแแถแแแแแธแแแแแแนแแแแทแแถแแแแแแแแถแแแแแแแ แแแแแแแแถแแแแธแแฝแแแแบแแถแแถแแขแแแธแแแแ แแแแแแแแถแแแแแแถแแแแแแแแแผแแแถแแแแแแแแแถแแแแ แแพแ แแแปแ แแแแแถแแแ แแแแแถแแแพแแแถแแแแ แทแแแแแปแแแถแแแแพแแถแแแแแแแแแ แแแแแแแแถแแแฝแ แ แพแ แแพแแแพแแแ แแแแปแแแแแแธแแถแแแแขแแแธแแแแ แแแแแแแแถแแแธแงแแแแแแแแแแผแแแแแแแพแแ แแแแแถแแโแแ แแพแโแแแแแแถแโแแถแแถแโแแแโแแถแโแแแโแแฝแโแแแ
แแแแแแแนแแแแทแแถแแแแ
แแแแแแแถแแแแถแแแพแแกแพแแแแแแแถแ
แขแถแแแแแแถแ IP แแแแแแแแแแแ
แแแแแแแแถแ แแทแแขแถแแแแแแถแ IP แแทแแแ
แแแแแแ
แแแแแแแแถแแ
แแทแแธแแถแแแแแแแ
แแแแแแแแถแแแแแผแแแถแแแแแ แถแแแถ UDP แแแแแถแแแแแแแ
แแแแแแแแถแ RTP แแแแผแแแถแแแแแพแแถแแแแแปแแแ
แแถแแแแแปแแแแแ
แแ UDP แ
แแแ แแแแแ
แแแแทแแแถแแแ
แแแแ
แแแแแแแแแแแแแแแแ
แแแแแแแแถแ แแทแแแแแ
แแแแแแแแ
แแแแแแแแ
แแแแแแแแถแแ
แแแ แแแแแแแ
แแแแแแแปแ แแธแแธแแแแแพแแขแถแ
แแแแแทแแแแถแแแถแแแถแงแแแแแแแแแแผแแแแแแแพแแแแแแพแแแแแ
แแแแแแแแถแ RTP แแแแแถแแแแ แ 172 แแ แแแแแผแ
แแถแแถแแ
แแแแปแแแแแผแแแฝแ แแแแแถแแแธแแถแแแแ
แแถแแแแแปแแแแแ
แแ UDP แแแแแถแแแแ แ 214 แแแ
แฅแกแผแแแแแแถแแแแแแแ แพแแแพแแแแธแแแแพแแแ
แแแแปแแแแแ
แแ UDP แแแแแถแแแแถแแแแแแพแแแนแแแพแแแแแพแแแถแ TShark แแถแแฝแแแนแแแแแปแแแแแถแแแ
แปแ
แแแแแธแ:
sudo tshark -i lo -f "udp port 8010" -P -V -O rtp -o rtp.heuristic_rtp:TRUE -x
แแถแแแแแแ แแแแแแแแแแแแทแแธแแนแแแแแผแแแถแแแแแแนแ - แแถแแแทแแแแธแแแแแถแแทแแถแแถแแแแแปแแแแแแแ แแแแแแแแแแถแแฑแแแแถแแนแแแแแผแแแถแแแแแแแแแ แแแแนแแแแทแแถแแแแแธแแฝแแแ แแพแแแแธแแพแแแแแแแแแถแแแแแแแแแพแ แขแแแแขแถแ แแแแแแ TShark แแแแ แปแ Ctrl-C แฌแ แแแแแแแแแแแแแแแแถแแ แฏแแแถแแแแแแแแแแแแแแแแแ แแแแแแทแแธ tee แแ แแถแแแแแแแแถแแแ แแแแแแแแถแแแแแแแแฏแแแถแ tee :
$ sudo tshark -i lo -f "udp port 8010" -P -V -O rtp -o rtp.heuristic_rtp:TRUE -x | tee log.txt
แฅแกแผแแแแแแผแแแพแแขแแแธแแแแแพแแแแฝแแแถแแแ แแแแปแแฏแแแถแ แแแแแบแแถแแแแ แแแแแแผแแแธแแถแ
1 0.000000000 127.0.0.1 โ 127.0.0.1 RTP 214 PT=ITU-T G.711 PCMU, SSRC=0x6B8B4567, Seq=58366, Time=355368720
Frame 1: 214 bytes on wire (1712 bits), 214 bytes captured (1712 bits) on interface 0
Ethernet II, Src: 00:00:00_00:00:00 (00:00:00:00:00:00), Dst: 00:00:00_00:00:00 (00:00:00:00:00:00)
Internet Protocol Version 4, Src: 127.0.0.1, Dst: 127.0.0.1User Datagram Protocol, Src Port: 8010, Dst Port: 7010
Real-Time Transport Protocol [Stream setup by HEUR RT (frame 1)]
[Setup frame: 1]
[Setup Method: HEUR RT]
10.. .... = Version: RFC 1889 Version (2)
..0. .... = Padding: False
...0 .... = Extension: False
.... 0000 = Contributing source identifiers count: 0
0... .... = Marker: False
Payload type: ITU-T G.711 PCMU (0)
Sequence number: 58366 [Extended sequence number: 58366]
Timestamp: 355368720
Synchronization Source identifier: 0x6b8b4567 (1804289383)
Payload: ffffffffffffffffffffffffffffffffffffffffffffffff...
0000 00 00 00 00 00 00 00 00 00 00 00 00 08 00 45 00 ..............E.
0010 00 c8 3c 69 40 00 40 11 ff b9 7f 00 00 01 7f 00 ..<i@.@.........
0020 00 01 1f 4a 1b 62 00 b4 fe c7 80 00 e3 fe 15 2e ...J.b..........
0030 7f 10 6b 8b 45 67 ff ff ff ff ff ff ff ff ff ff ..k.Eg..........
0040 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
0050 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
0060 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
0070 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
0080 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
0090 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
00a0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
00b0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
00c0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
00d0 ff ff ff ff ff ff ......
แแพแแแนแแแแแแแขแแแแแแแแแแถแแแแพแแแแธแแทแแถแแแแแแแถแแแแแแถแแแ แแแแปแแแถแแ แปแแแแแแธแแแแ แพแแแแแแทแแแฝแ แแนแแแทแแถแแขแแแธแแ แแถแแแแแแแแแแถแแแแแปแแแแแแแ แแ RTP แ
แแแแแ: www.habr.com