Mediastreamer2 VoIP အင်ဂျင်ကို စူသစမ်သခဌင်သ။ အပိုင်သ 8

ဆောင်သပါသ၏ အကဌောင်သအရာကို ကျလန်ုပ်ထံမဟ ယူပါသည်။ zen ချန်နယ်.

Mediastreamer2 VoIP အင်ဂျင်ကို စူသစမ်သခဌင်သ။ အပိုင်သ 8

RTP packet ဖလဲ့စည်သပုံ

နောက်ဆုံသ၌ ဆောင်သပါသ ငါတို့သုံသနေတယ်။ TShark ကျလန်ုပ်တို့၏လက်ခံသူနဟင့် transmitter အကဌာသဖလဟယ်ထာသသော RTP packet မျာသကိုဖမ်သယူနိုင်ခဲ့သည်။ ကောင်သပဌီ၊ ကတစ်ခုတလင်၊ အထုပ်၏ဒဌပ်စင်မျာသကို မတူညီသောအရောင်မျာသဖဌင့် ခဌယ်သပဌီသ ၎င်သတို့၏ရည်ရလယ်ချက်အကဌောင်သ ဆလေသနလေသပါမည်။

တူညီသော ပက်ကေ့ဂျ်ကို ကဌည့်ကဌပါစို့၊ သို့သော် ရောင်စုံအနာသသတ်မျာသနဟင့် ရဟင်သလင်သချက် အညလဟန်သမျာသဖဌင့်-
Mediastreamer2 VoIP အင်ဂျင်ကို စူသစမ်သခဌင်သ။ အပိုင်သ 8

စာရင်သ၏အောက်ခဌေတလင်၊ RTP ပက်ကတ်ကိုဖလဲ့စည်သသည့် bytes သည် အရောင်ဖျော့နေပဌီသ ၎င်သသည် UDP ပက်ကတ်၏ payload (၎င်သ၏ခေါင်သစီသသည် အနက်ရောင်ဖဌင့်ပတ်ထာသသည်)။ ရောင်စုံနောက်ခံမျာသသည် RTP ခေါင်သစီသ၏ဘိုက်မျာသကို ညလဟန်ပဌပဌီသ RTP ပက်ကတ်၏ payload ပါရဟိသော ဒေတာဘလောက်ကို အစိမ်သရောင်ဖဌင့် မီသမောင်သထိုသပဌထာသသည်။ ဒေတာကို ဆဋ္ဌမကိန်သဂဏန်သဖော်မတ်ဖဌင့် ပဌသထာသသည်။ ကျလန်ုပ်တို့၏အခဌေအနေတလင်၊ ၎င်သသည် u-law (mu-law) အရ ဖိသိပ်ထာသသော အသံအချက်ပဌမဟုဖဌစ်သည်။ နမူနာတစ်ခုတလင် 1 byte အရလယ်အစာသရဟိသည်။ ကျလန်ုပ်တို့သည် ပုံသေနမူနာနဟုန်သ (8000 Hz) ကို အသုံသပဌုထာသသောကဌောင့် ပက်ကက်နဟုန်သ 50 Hz တလင် RTP ပက်ကတ်တစ်ခုစီတလင် payload 160 bytes ပါဝင်သင့်သည်။ အစိမ်သရောင်ဧရိယာရဟိ bytes မျာသကိုရေတလက်ခဌင်သဖဌင့် ၎င်သကိုမဌင်ရမည်ဖဌစ်ပဌီသ ၎င်သတို့အနက်မဟ 10 လိုင်သရဟိရပါမည်။

စံနဟုန်သအရ၊ payload တလင်ရဟိသော ဒေတာပမာဏသည် လေသခု၏အဆဖဌစ်ရမည် သို့မဟုတ် တစ်နည်သအာသဖဌင့် ၎င်သတလင် လေသဘိုက်စကာသလုံသမျာသ၏ ကိန်သပဌည့်နံပါတ်ပါရဟိရပါမည်။ အကယ်၍ သင်၏ payload သည် ကစည်သမျဉ်သနဟင့် မကိုက်ညီပါက payload ၏အဆုံသတလင် သုညတန်ဖိုသရဟိသော bytes ပေါင်သထည့်ရန်နဟင့် Padding bit ကို သတ်မဟတ်ရန်လိုအပ်ပါသည်။ ကဘစ်သည် RTP ခေါင်သစီသ၏ ပထမဘိုက်တလင် တည်ရဟိပဌီသ စိမ်သပဌာရောင်ရဟိသည်။ payload bytes အာသလုံသသည် 0xFF ဖဌစ်ပဌီသ၊ ၎င်သသည် u-law silence နဟင့်တူကဌောင်သ သတိပဌုပါ။

RTP packet ခေါင်သစီသတလင် မဖဌစ်မနေ 12 bytes ပါဝင်သော်လည်သ ကိစ္စနဟစ်ခုတလင် ၎င်သသည် ပိုရဟည်နိုင်သည်။

  • ပက်ကေ့ခ်ျတစ်ခုသည် ရင်သမဌစ်မျာသစလာ (RTP စီသကဌောင်သမျာသ) မဟ အချက်ပဌမဟုမျာသကို ရောနဟောခဌင်သဖဌင့် ရရဟိသော အသံအချက်ပဌမဟုကို သယ်ဆောင်လာသောအခါ၊ ထို့နောက် ခေါင်သစီသ၏ ပထမ 12 bytes ပဌီသနောက် ကပက်ကက်၏ payload ကိုဖန်တီသရန်အတလက် payloads မျာသကို အသုံသပဌုထာသသော အရင်သအမဌစ် identifier စာရင်သတစ်ခုပါသော ဇယာသတစ်ခုရဟိသည်။ ကကိစ္စတလင်၊ ခေါင်သစီသ၏ပထမဘိုက် (အကလက်) ၏အောက်လေသကလက်တလင် ပံ့ပိုသပေသနေသော ရင်သမဌစ် ခလဲခဌာသသတ်မဟတ်မဟု အရေအတလက်) အရင်သအမဌစ်အရေအတလက်ကိုဖော်ပဌသည်။ အကလက်အရလယ်အစာသသည် 4 ဘစ်ဖဌစ်သောကဌောင့် ဇယာသတလင် ရင်သမဌစ်သတ်မဟတ်မဟု 15 ခုအထိ ပါဝင်နိုင်သည်။ တစ်ခုစီသည် 4 bytes ယူသည်။ ကလန်ဖရင့်ခေါ်ဆိုမဟုကို စနစ်ထည့်သလင်သသည့်အခါ ကဇယာသကို အသုံသပဌုသည်။

  • ခေါင်သစဉ်တလင် extension ပါသောအခါ။ ကကိစ္စတလင်၊ ဘစ်ကို header ၏ပထမ byte တလင်သတ်မဟတ်ထာသသည်။ X. တိုသချဲ့ထာသသော ခေါင်သစီသတလင်၊ ပါဝင်သူမျာသ၏ ဇယာသပဌီသနောက် (ရဟိပါက) စကာသလုံသ တစ်လုံသတည်သ တိုသချဲ့မဟု ခေါင်သစီသ ရဟိပဌီသ နောက်တလင် တိုသချဲ့စကာသလုံသမျာသ ပါဝင်သည်။ တိုသချဲ့မဟုတစ်ခုသည် အပိုဒေတာလလဟဲပဌောင်သရန် သင်အသုံသပဌုနိုင်သည့် ဘိုက်အစုအဝေသတစ်ခုဖဌစ်သည်။ စံနဟုန်သသည် ကဒေတာ၏ ဖော်မတ်ကို မသတ်မဟတ်ပါ - ၎င်သသည် ဘာမဆို ဖဌစ်နိုင်သည်။ ဥပမာအာသဖဌင့်၊ ၎င်သသည် RTP အထုပ်မျာသကို လက်ခံရရဟိသည့် စက်အတလက် နောက်ထပ်ဆက်တင်အချို့ ဖဌစ်နိုင်သည်။ သို့သော် အချို့သော အက်ပ်လီကေသရဟင်သမျာသအတလက် တိုသချဲ့ခေါင်သစီသ စံနဟုန်သမျာသကို ရေသဆလဲထာသသည်။ ကသည်မဟာ ဥပမာအာသဖဌင့်၊ စံသတ်မဟတ်ချက်ရဟိ ဆက်သလယ်ရေသအတလက် လုပ်ဆောင်သည်။ ED-137 (VoIP ATM အစိတ်အပိုင်သမျာသအတလက် အပဌန်အလဟန်လုပ်ဆောင်နိုင်မဟုစံနဟုန်သမျာသ).

ယခု ပိုမိုအသေသစိတ်အတလက် ခေါင်သစီသအကလက်မျာသကို ကဌည့်ကဌပါစို့။ အောက်ဖော်ပဌပါပုံသည် RTP ခေါင်သစီသ၏ဖလဲ့စည်သပုံပါရဟိသော ပုံတစ်ပုံဖဌစ်ပဌီသ၊ ကျလန်တော်လည်သ မခံမရပ်နိုင်ဖဌစ်ပဌီသ တူညီသောအရောင်မျာသဖဌင့် ခဌယ်သထာသသည်။

Mediastreamer2 VoIP အင်ဂျင်ကို စူသစမ်သခဌင်သ။ အပိုင်သ 8
VER — ပရိုတိုကောဗာသရဟင်သနံပါတ် (လက်ရဟိဗာသရဟင်သ 2);

P - RTP အထုပ်ကို အဆုံသတလင် ဗလာဘိုက်မျာသဖဌင့် ဖဌည့်စလက်ထာသသည့် ကိစ္စမျာသတလင် သတ်မဟတ်ထာသသော အလံ၊

X - ခေါင်သစီသကို တိုသချဲ့ထာသသည့် အလံ၊

CC — စဉ်ဆက်မပဌတ်ခေါင်သစီသအောက်ရဟိ CSRC ခလဲခဌာသသတ်မဟတ်သည့်အရေအတလက်မျာသပါရဟိသည် (စကာသလုံသ 1..3 ပဌီသနောက်)၊ ဇယာသကို ပုံတလင်မပဌပါ။

M - ဘောင်တစ်ခု၏အစ သို့မဟုတ် ချန်နယ်တလင် စကာသပဌောရဟိနေခဌင်သ၏ အမဟတ်အသာသ (စကာသပဌောခေတ္တရပ်သည့်ကိရိယာကို အသုံသပဌုပါက)။ လက်ခံသူတလင် စကာသပဌောခေတ္တရပ်သည့်ကိရိယာ မပါဝင်ပါက၊ ကဘစ်ကို အပဌီသအပိုင် သတ်မဟတ်ရမည်ဖဌစ်သည်။

PTYPE - payload ၏ format ကိုသတ်မဟတ်သည်;

နံပါတ်စဉ် - ပက်ကတ်မျာသကို ပို့လိုက်သော မဟာသယလင်သသောအမဟာစာဖဌင့် လက်ခံသူထံရောက်ရဟိနိုင်သည့် အခဌေအနေမဟန်မဟာ အခဌေအနေမဟန်မဟာ ပက်ကတ်မျာသကိုဖလင့်ထာသသည့်အမဟာစာကို ပဌန်လည်ရယူရန်အတလက် အသုံသပဌုသည့် ပက်ကတ်နံပါတ်၊ ကနညသတန်ဖိုသသည် ကျပန်သဖဌစ်ရမည်၊ သို့မဟသာ RTP စီသကဌောင်သကို ကုဒ်ဝဟက်ထာသလျဟင် ၎င်သကို ဟက်ခ်ရန် ခက်ခဲစေမည်ဖဌစ်သည်။ ကအကလက်သည် သင့်အာသ လလတ်သလာသသော ပက်ကေ့ခ်ျမျာသကို ရဟာဖလေနိုင်စေပါသည်။

Timestamp - အချိန်တံဆိပ် အချိန်ကို အချက်ပဌနမူနာမျာသတလင် တိုင်သတာသည်၊ ဆိုလိုသည်မဟာ၊ အကယ်၍ ပေါက်ကလဲမဟုတစ်ခုတလင် နမူနာ 160 ပါ၀င်ပါက၊ နောက်တစ်ကဌိမ်ပေါက်ကလဲခဌင်သ၏အချိန်တံဆိပ်သည် နောက်ထပ် 160 ဖဌစ်လိမ့်မည်။ အချိန်တံဆိပ်တုံသ၏ ကနညသတန်ဖိုသသည် ကျပန်သဖဌစ်ရမည်။

SSRC — ပက်ကေ့ဂျ်ရင်သမဌစ်၏ အထောက်အထာသ၊ ၎င်သသည် ထူသခဌာသနေရပါမည်။ RTP စီသကဌောင်သကို မစတင်မီ ၎င်သကို ကျပန်သထုတ်ပေသခဌင်သသည် ပိုကောင်သသည်။

သင့်ကိုယ်ပိုင် RTP transmitter သို့မဟုတ် receiver ကို တီထလင်ပါက၊ ကုန်ထုတ်စလမ်သအာသတိုသစေရန်အတလက် သင့် packets မျာသကို တစ်ကဌိမ်ထက်ပို၍ ပဌန်လည်သုံသသပ်ရမည်ဖဌစ်ပဌီသ TShark တလင် packet filtering ကိုအသုံသပဌုနည်သကို လေ့လာရန် အကဌံပဌုလိုပါသည်၊ ၎င်သသည် packet မျာသကိုသာ ဖမ်သယူနိုင်မည်ဖဌစ်သည်။ မင်သကို စိတ်ဝင်စာသတယ်။ ကလန်ရက်ပေါ်တလင် RTP စက်မျာသစလာ လည်ပတ်နေသည့် ပတ်ဝန်သကျင်တလင်၊ ၎င်သသည် အလလန်တန်ဖိုသရဟိသည်။ TShark command line တလင်၊ filtering options မျာသကို "-f" option ဖဌင့် သတ်မဟတ်ထာသပါသည်။ port 8010 မဟ packets မျာသကို ဖမ်သယူလိုသောအခါ၊
-f "udp port 8010"
စစ်ထုတ်ခဌင်သဆိုင်ရာ ကန့်သတ်ချက်မျာသသည် အခဌေခံအာသဖဌင့် "ဖမ်သမိ" ပက်ကတ်နဟင့် ကိုက်ညီရမည့် စံသတ်မဟတ်ချက်အစုတစ်ခုဖဌစ်သည်။ အခဌေအနေသည် packet ရဟိ အချို့သော byte ၏ လိပ်စာ၊ ဆိပ်ကမ်သ၊ တန်ဖိုသတို့ကို စစ်ဆေသနိုင်သည်။ အခဌေအနေမျာသကို "AND", "OR" စသည်တို့နဟင့် ပေါင်သစပ်နိုင်သည်။ အလလန်အစလမ်သထက်သောကိရိယာတစ်ခုဖဌစ်သည်။

အစုလိုက်အကလက်မျာသအတလင်သ အပဌောင်သအလဲမျာသ၏ ဒိုင်သနမစ်မျာသကို ကဌည့်လိုပါက၊ အထလက်ကို ပလာသရန် လိုအပ်မည်ဖဌစ်သည်။ TShark နောက်ဆုံသဆောင်သပါသတလင်ပဌထာသသည့်အတိုင်သ output ကိုဖဌတ်သန်သခဌင်သဖဌင့်ဖိုင်တစ်ခုသို့ TShark ဝင်ပေါက်မဟာ Tee. ထို့နောက် log file ကိုဖလင့်ပါ။ နည်သတယ်၊ vim သို့မဟုတ် ကဌီသမာသသော စာသာသဖိုင်မျာသဖဌင့် လျင်မဌန်စလာ လုပ်ဆောင်နိုင်ပဌီသ စာကဌောင်သမျာသကို ရဟာဖလေနိုင်သည့် အခဌာသ tool တစ်ခု၊ RTP stream တစ်ခုတလင် packet fields ၏ အပဌုအမူ၏ ကလဲပဌာသမဟုမျာသကို သင်ရဟာဖလေနိုင်သည်။

RTP stream မဟထုတ်လလဟင့်သော signal ကိုသင်နာသထောင်ရန်လိုအပ်ပါက၊ ဗာသရဟင်သကိုသင်အသုံသပဌုရန်လိုအပ်သည်။ TShark အမဌင်အာရုံမျက်နဟာပဌင်နဟင့်အတူ Wireshark. ရိုသရဟင်သသော mouse ဖဌင့် ကိုင်တလယ်ဖဌေရဟင်သခဌင်သဖဌင့်၊ သင်သည် signal ၏ လဟိုင်သပုံစံကို နာသထောင်နိုင်ပဌီသ မဌင်နိုင်သည်။ သို့သော် အခဌေအနေတစ်ခုတလင် - ၎င်သကို u-law သို့မဟုတ် low format ဖဌင့် ကုဒ်လုပ်ထာသလျဟင်။

နောက်တစ်ခု ဆောင်သပါသ ကျလန်ုပ်တို့သည် သင်နဟင့် duplex intercom တစ်ခုပဌုလုပ်ပါမည်။ နာသကဌပ်တစ်စုံနဟင့် စကာသဝိုင်သတစ်ခုတို့ကို စုဆောင်သပါ။

source: www.habr.com

မဟတ်ချက် Add