เจฒเฉเจ เจธเจฎเฉฑเจเจฐเฉ เจฎเฉเจฐเฉ เจคเฉเจ เจฒเจ เจเจ เจนเฉ
RTP เจธเจเฉเจฐเฉเจฎ เจฆเฉเจเจฐเจพ เจเฉฑเจ เจเจกเฉเจ เจธเจฟเจเจจเจฒ เจชเฉเจฐเจธเจพเจฐเจฟเจค เจเจฐเจจเจพ
เจชเจฟเจเจฒเฉ เจตเจฟเฉฑเจ
RTP เจชเฉเจฐเฉเจเฉเจเฉเจฒ (เจฐเฉเจ เจฒ เจเจพเจเจฎ เจชเฉเจฐเฉเจเฉเจเฉเจฒ) เจ เจจเฉเจตเจพเจฆ เจฆเจพ เจ เจฐเจฅ เจนเฉ เจฐเฉเจ เจฒ-เจเจพเจเจฎ เจชเฉเจฐเฉเจเฉเจเฉเจฒ, เจเจน เจเจกเฉเจ, เจตเฉเจกเฉเจ, เจกเฉเจเจพ, เจนเจฐ เจเฉเจเจผ เจจเฉเฉฐ เจชเฉเจฐเจธเจพเจฐเจฟเจค เจเจฐเจจ เจฒเจ เจตเจฐเจคเจฟเจ เจเจพเจเจฆเจพ เจนเฉ เจเจฟเจธ เจฒเจ เจฐเฉเจ เจฒ เจเจพเจเจฎ เจตเจฟเฉฑเจ เจชเฉเจฐเจธเจพเจฐเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉเฅค เจเจ เจเฉฑเจ เจเจฆเจพเจนเจฐเจจ เจตเจเฉเจ เจเฉฑเจ เจเจกเฉเจ เจธเจฟเจเจจเจฒ เจฒเจเจเฅค เจชเฉเจฐเฉเจเฉเจเฉเจฒ เจฆเฉ เจฒเจเจเจคเจพ เจ เจเจฟเจนเฉ เจนเฉ เจเจฟ เจเจน เจคเฉเจนเจพเจจเฉเฉฐ เจชเฉเจฐเจต-เจจเจฟเจฐเจงเจพเจฐเจค เจเฉเจฃเจตเฉฑเจคเจพ เจฆเฉ เจจเจพเจฒ เจเฉฑเจ เจเจกเฉเจ เจธเจฟเจเจจเจฒ เจชเฉเจฐเจธเจพเจฐเจฟเจค เจเจฐเจจ เจฆเฉ เจเจเจพเจเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉเฅค
เจชเฉเจฐเจธเจพเจฐเจฃ UDP เจชเฉเจเฉเจเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉ, เจเจฟเจธเจฆเจพ เจฎเจคเจฒเจฌ เจนเฉ เจเจฟ เจชเฉเจฐเจธเจพเจฐเจฃ เจฆเฉเจฐเจพเจจ เจชเฉเจเฉเจ เจฆเจพ เจจเฉเจเจธเจพเจจ เจเจพเจซเจผเฉ เจธเจตเฉเจเจพเจฐเจฏเฉเจ เจนเฉเฅค เจนเจฐเฉเจ เจชเฉเจเฉเจ เจตเจฟเฉฑเจ เจเฉฑเจ เจตเจฟเจธเจผเฉเจธเจผ RTP เจธเจฟเจฐเจฒเฉเจ เจ เจคเฉ เจชเฉเจฐเจธเจพเจฐเจฟเจค เจธเจฟเจเจจเจฒ เจฆเจพ เจเฉฑเจ เจกเจพเจเจพ เจฌเจฒเจพเจ เจนเฉเฉฐเจฆเจพ เจนเฉเฅค เจธเจฟเจฐเจฒเฉเจ เจตเจฟเฉฑเจ เจเฉฑเจ เจฌเฉเจคเจฐเจคเฉเจฌ เจคเฉเจฐ 'เจคเฉ เจเฉเจฃเจฟเจ เจเจฟเจ เจธเจฟเจเจจเจฒ เจธเจฐเฉเจค เจชเจเจพเจฃเจเจฐเจคเจพ, เจชเฉเจฐเจธเจพเจฐเจฟเจค เจเฉเจคเฉ เจเจพ เจฐเจนเฉ เจธเจฟเจเจจเจฒ เจฆเฉ เจเจฟเจธเจฎ เจฌเจพเจฐเฉ เจเจพเจฃเจเจพเจฐเฉ, เจ เจคเฉ เจเฉฑเจ เจตเจฟเจฒเฉฑเจเจฃ เจชเฉเจเฉเจ เจเฉเจฐเจฎ เจจเฉฐเจฌเจฐ เจธเจผเจพเจฎเจฒ เจนเฉเฉฐเจฆเจพ เจนเฉ เจคเจพเจ เจเจฟ เจชเฉเจเฉเจ เจจเฉเฉฐ เจกเฉเจเฉเจก เจเจฐเจจ เจตเฉเจฒเฉ เจธเจนเฉ เจเฉเจฐเจฎ เจตเจฟเฉฑเจ เจตเจฟเจตเจธเจฅเจฟเจค เจเฉเจคเจพ เจเจพ เจธเจเฉ, เจเจพเจนเฉ เจเจน เจเจฟเจธเฉ เจตเฉ เจเฉเจฐเจฎ เจตเจฟเฉฑเจ เจกเจฟเจฒเฉเจตเจฐ เจเฉเจคเฉ เจเจ เจนเฉเจฃเฅค เจจเฉเฉฑเจเจตเจฐเจเฅค เจธเจฟเจฐเจฒเฉเจ เจตเจฟเฉฑเจ เจตเจพเจงเฉ เจเจพเจฃเจเจพเจฐเฉ เจตเฉ เจนเฉ เจธเจเจฆเฉ เจนเฉ, เจ เจเฉเจคเฉ เจเจเจธเจเฉเจเจธเจผเจจ, เจเฉ เจธเจฟเจฐเจฒเฉเจ เจจเฉเฉฐ เจเฉฑเจ เจเจพเจธ เจเจพเจฐเจ เจเจพเจฐเจ เจตเจฟเฉฑเจ เจตเจฐเจคเจฃ เจฒเจ เจ เจจเฉเจเฉเจฒเจฟเจค เจเจฐเจจ เจฆเฉ เจเจเจฟเจ เจฆเจฟเฉฐเจฆเฉ เจนเฉเฅค
เจกเฉเจเจพ เจฌเจฒเจพเจ เจตเจฟเฉฑเจ เจชเฉเจเฉเจ เจฆเจพ เจชเฉเจฒเฉเจก เจนเฉเฉฐเจฆเจพ เจนเฉเฅค เจธเจฎเฉฑเจเจฐเฉ เจฆเจพ เจ เฉฐเจฆเจฐเฉเจจเฉ เจธเฉฐเจเจ เจจ เจฒเฉเจก เจฆเฉ เจเจฟเจธเจฎ 'เจคเฉ เจจเจฟเจฐเจญเจฐ เจเจฐเจฆเจพ เจนเฉ, เจเจน เจเฉฑเจ เจฎเฉเจจเฉ เจธเจฟเจเจจเจฒ, เจเฉฑเจ เจธเจเฉเจฐเฉเจ เจธเจฟเจเจจเจฒ, เจเฉฑเจ เจตเฉเจกเฉเจ เจเจฟเฉฑเจคเจฐ เจฒเจพเจเจจ, เจเจฆเจฟ เจฆเฉ เจจเจฎเฉเจจเฉ เจนเฉ เจธเจเจฆเฉ เจนเจจเฅค
เจฒเฉเจก เจฆเฉ เจเจฟเจธเจฎ เจธเฉฑเจค-เจฌเจฟเฉฑเจ เจจเฉฐเจฌเจฐ เจฆเฉเจเจฐเจพ เจฆเจฐเจธเจพเจ เจเจ เจนเฉเฅค เจธเจฟเจซเจพเจฐเจธเจผ RFC3551 (เจเฉฑเจเฉ-เจเฉฑเจ เจจเจฟเจฏเฉฐเจคเจฐเจฃ เจฆเฉ เจจเจพเจฒ เจเจกเฉเจ เจ เจคเฉ เจตเฉเจกเฉเจ เจเจพเจจเจซเจฐเฉฐเจธเจพเจ เจฒเจ RTP เจชเฉเจฐเฉเจซเจพเจเจฒ) เจเจ เจเจฟเจธเจฎเจพเจ เจฆเฉ เจฒเฉเจก เจธเจฅเจพเจชเจค เจเจฐเจฆเจพ เจนเฉ; เจ เจจเฉเจธเจพเจฐเฉ เจธเจพเจฐเจฃเฉ เจฒเฉเจก เจฆเฉเจเจ เจเจฟเจธเจฎเจพเจ เจ เจคเฉ เจเจนเจจเจพเจ เจเฉเจกเจพเจ เจฆเฉ เจ เจฐเจฅเจพเจ เจฆเจพ เจตเจฐเจฃเจจ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจฆเฉ เจนเฉ เจเจฟเจจเฉเจนเจพเจ เจฆเฉเจเจฐเจพ เจเจนเจจเจพเจ เจจเฉเฉฐ เจฎเจจเฉเจจเฉเจค เจเฉเจคเจพ เจเจฟเจ เจนเฉเฅค เจเฉเจ เจเฉเจก เจเจฟเจธเฉ เจตเฉ เจเจฟเจธเจฎ เจฆเฉ เจฒเฉเจก เจจเจพเจฒ เจธเจเจคเฉ เจจเจพเจฒ เจจเจนเฉเจ เจเฉเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเจจ; เจเจนเจจเจพเจ เจจเฉเฉฐ เจเฉฑเจ เจฎเจจเจฎเจพเจจเฉ เจฒเฉเจก เจจเฉเฉฐ เจฎเจจเฉเจจเฉเจค เจเจฐเจจ เจฒเจ เจตเจฐเจคเจฟเจ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค
เจเฉฑเจ เจกเฉเจเจพ เจฌเจฒเจพเจ เจฆเจพ เจเจเจพเจฐ เจตเฉฑเจง เจคเฉเจ เจตเฉฑเจง เจชเฉเจเฉเจ เจเจเจพเจฐ เจฆเฉเจเจฐเจพ เจธเฉเจฎเจฟเจค เจนเฉ เจเฉ เจเจฟ เจฆเจฟเฉฑเจคเฉ เจเจ เจจเฉเฉฑเจเจตเจฐเจ 'เจคเฉ เจธเฉเจเจฎเฉเจเจเฉเจธเจผเจจ (MTU เจชเฉเจฐเจพเจฎเฉเจเจฐ) เจคเฉเจ เจฌเจฟเจจเจพเจ เจชเฉเจฐเจธเจพเจฐเจฟเจค เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค เจเจฎ เจคเฉเจฐ 'เจคเฉ, เจเจน 1500 เจฌเจพเจเจเจพเจ เจคเฉเจ เจตเฉฑเจง เจจเจนเฉเจ เจนเฉเฅค เจเจธ เจคเจฐเฉเจนเจพเจ, เจชเฉเจฐเจคเฉ เจธเจเจฟเฉฐเจ เจชเฉเจฐเจธเจพเจฐเจฟเจค เจเฉเจคเฉ เจเจพเจฃ เจตเจพเจฒเฉ เจกเฉเจเจพ เจฆเฉ เจฎเจพเจคเจฐเจพ เจจเฉเฉฐ เจตเจงเจพเจเจฃ เจฒเจ, เจคเฉเจธเฉเจ เจชเฉเจเฉเจ เจฆเฉ เจเจเจพเจฐ เจจเฉเฉฐ เจเฉฑเจ เจจเจฟเจธเจผเจเจค เจฌเจฟเฉฐเจฆเฉ เจคเฉฑเจ เจตเจงเจพ เจธเจเจฆเฉ เจนเฉ, เจ เจคเฉ เจซเจฟเจฐ เจคเฉเจนเจพเจจเฉเฉฐ เจชเฉเจเฉเจ เจญเฉเจเจฃ เจฆเฉ เจฌเจพเจฐเฉฐเจฌเจพเจฐเจคเจพ เจตเจงเจพเจเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉเจตเฉเจเฉเฅค เจฎเฉเจกเฉเจ เจธเจเฉเจฐเฉเจฎเจฐ เจตเจฟเฉฑเจ, เจเจน เจเฉฑเจ เจธเฉฐเจฐเจเจจเจพเจฏเฉเจ เจธเฉเจเจฟเฉฐเจ เจนเฉเฅค เจฎเฉเจฒ เจฐเฉเจช เจตเจฟเฉฑเจ เจเจน 50 Hz เจนเฉ, i.e. 50 เจชเฉเจเฉเจ เจชเฉเจฐเจคเฉ เจธเจเจฟเฉฐเจ. เจ เจธเฉเจ เจชเฉเจฐเจธเจพเจฐเจฟเจค RTP เจชเฉเจเฉเจเจพเจ เจฆเฉ เจเฉเจฐเจฎ เจจเฉเฉฐ เจเฉฑเจ RTP เจธเจเฉเจฐเฉเจฎ เจเจนเจพเจเจเฉเฅค
เจธเจฐเฉเจค เจ เจคเฉ เจชเฉเจฐเจพเจชเจคเจเจฐเจคเจพ เจฆเฉ เจตเจฟเจเจเจพเจฐ เจกเฉเจเจพ เจธเฉฐเจเจพเจฐเจฟเจค เจเจฐเจจเจพ เจธเจผเฉเจฐเฉ เจเจฐเจจ เจฒเจ, เจเจน เจเจพเจซเจผเฉ เจนเฉ เจเจฟ เจเฉเจฐเจพเจเจธเจฎเฉเจเจฐ เจชเฉเจฐเจพเจชเจค เจเจฐเจจ เจตเจพเจฒเฉ เจฆเจพ IP เจชเจคเจพ เจ เจคเฉ เจชเฉเจฐเจ เจจเฉฐเจฌเจฐ เจเจพเจฃเจฆเจพ เจนเฉ เจเฉ เจเจน เจชเฉเจฐเจพเจชเจค เจเจฐเจจ เจฒเจ เจตเจฐเจคเจฆเจพ เจนเฉเฅค เจเจน. เจฌเจฟเจจเจพเจ เจเจฟเจธเฉ เจฎเฉเฉฑเจขเจฒเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจฆเฉ, เจธเจฐเฉเจค เจกเฉเจเจพ เจจเฉเฉฐ เจธเฉฐเจเจพเจฐเจฟเจค เจเจฐเจจเจพ เจธเจผเฉเจฐเฉ เจเจฐ เจฆเจฟเฉฐเจฆเจพ เจนเฉ, เจ เจคเฉ เจชเฉเจฐเจพเจชเจคเจเจฐเจคเจพ, เจฌเจฆเจฒเฉ เจตเจฟเฉฑเจ, เจเจธเจจเฉเฉฐ เจคเฉเจฐเฉฐเจค เจชเฉเจฐเจพเจชเจค เจเจฐเจจ เจ เจคเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจเจฐเจจ เจฒเจ เจคเจฟเจเจฐ เจนเฉเฉฐเจฆเจพ เจนเฉเฅค เจธเจเฉเจเจกเจฐเจก เจฆเฉ เจ เจจเฉเจธเจพเจฐ, RTP เจธเจเฉเจฐเฉเจฎ เจจเฉเฉฐ เจธเฉฐเจเจพเจฐเจฟเจค เจเจฐเจจ เจเจพเจ เจชเฉเจฐเจพเจชเจค เจเจฐเจจ เจฒเจ เจตเจฐเจคเจฟเจ เจเจพเจฃ เจตเจพเจฒเจพ เจชเฉเจฐเจ เจจเฉฐเจฌเจฐ เจฌเจฐเจพเจฌเจฐ เจนเฉเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉเฅค
เจ เจเจฟเจนเฉเจเจ เจธเจฅเจฟเจคเฉเจเจ เจตเจฟเฉฑเจ เจเจฟเฉฑเจฅเฉ เจชเฉเจฐเจพเจชเจคเจเจฐเจคเจพ เจฆเจพ เจชเจคเจพ เจชเจนเจฟเจฒเจพเจ เจคเฉเจ เจเจพเจฃเจจเจพ เจ เจธเฉฐเจญเจต เจนเฉเฉฐเจฆเจพ เจนเฉ, เจธเจฐเจตเจฐ เจตเจฐเจคเฉ เจเจพเจเจฆเฉ เจนเจจ เจเจฟเฉฑเจฅเฉ เจฐเจฟเจธเฉเจตเจฐ เจเจชเจฃเจพ เจชเจคเจพ เจเฉฑเจก เจฆเจฟเฉฐเจฆเฉ เจนเจจ, เจ เจคเฉ เจเฉเจฐเจพเจเจธเจฎเฉเจเจฐ เจชเฉเจฐเจพเจชเจคเจเจฐเจคเจพ เจฆเฉ เจเฉเจ เจตเจฟเจฒเฉฑเจเจฃ เจจเจพเจฎ เจฆเจพ เจนเจตเจพเจฒเจพ เจฆเฉ เจเฉ เจเจธเจฆเฉ เจฌเฉเจจเจคเฉ เจเจฐ เจธเจเจฆเจพ เจนเฉเฅค
เจเจนเจจเจพเจ เจฎเจพเจฎเจฒเจฟเจเจ เจตเจฟเฉฑเจ เจเจฟเฉฑเจฅเฉ เจธเฉฐเจเจพเจฐ เจเฉเจจเจฒ เจฆเฉ เจเฉเจฃเจตเฉฑเจคเจพ เจเจพเจ เจฐเจฟเจธเฉเจตเจฐ เจฆเฉเจเจ เจธเจฎเจฐเฉฑเจฅเจพเจตเจพเจ เจ เจฃเจเจพเจฃ เจนเจจ, เจเฉฑเจ เจซเฉเจกเจฌเฉเจ เจเฉเจจเจฒ เจฆเจพ เจเจฏเฉเจเจจ เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉ เจเจฟเจธ เจฆเฉเจเจฐเจพ เจชเฉเจฐเจพเจชเจคเจเจฐเจคเจพ เจเฉเจฐเจพเจเจธเจฎเฉเจเจฐ เจจเฉเฉฐ เจเจธเจฆเฉ เจธเจฎเจฐเฉฑเจฅเจพ, เจเจธ เจคเฉเจ เจเฉเฉฐเจเฉ เจนเฉเจ เจชเฉเจเฉเจเจพเจ เจฆเฉ เจเจฟเจฃเจคเฉ เจเจฆเจฟ เจฌเจพเจฐเฉ เจธเฉเจเจฟเจค เจเจฐ เจธเจเจฆเจพ เจนเฉเฅค เจเจน เจเฉเจจเจฒ RTCP เจชเฉเจฐเฉเจเฉเจเฉเจฒ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเจพ เจนเฉเฅค เจเจธ เจเฉเจจเจฒ เจตเจฟเฉฑเจ เจชเฉเจฐเจธเจพเจฐเจฟเจค เจชเฉเจเฉเจเจพเจ เจฆเฉ เจซเจพเจฐเจฎเฉเจ เจจเฉเฉฐ RFC 3605 เจตเจฟเฉฑเจ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจเฉเจคเจพ เจเจฟเจ เจนเฉเฅค เจเจธ เจเฉเจจเจฒ เจเฉฑเจคเฉ เจฎเฉเจเจพเจฌเจฒเจคเจจ เจฌเจนเฉเจค เจเฉฑเจ เจกเฉเจเจพ, 200..300 เจฌเจพเจเจ เจชเฉเจฐเจคเฉ เจธเจเจฟเฉฐเจ, เจชเฉเจฐเจธเจพเจฐเจฟเจค เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉ, เจเจธเจฒเจ เจเจฎ เจคเฉเจฐ 'เจคเฉ, เจเจธเจฆเฉ เจฎเฉเจเฉเจฆเจเฉ เจฌเฉเจเจฒ เจจเจนเฉเจ เจนเฉเฅค เจเจน เจชเฉเจฐเจ เจจเฉฐเจฌเจฐ เจเจฟเจธ 'เจคเฉ RTCP เจชเฉเจเฉเจ เจญเฉเจเฉ เจเจพเจเจฆเฉ เจนเจจ, เจเจน เจชเฉเจฐเจ เจจเฉฐเจฌเจฐ เจคเฉเจ เจตเฉฑเจกเจพ เจ เจคเฉ เจเฉฑเจ เจตเฉฑเจกเจพ เจนเฉเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ เจเจฟเจธ เจคเฉเจ RTP เจธเจเฉเจฐเฉเจฎ เจเจเจเจฆเฉ เจนเฉเฅค เจธเจพเจกเฉ เจเจฆเจพเจนเจฐเจจ เจตเจฟเฉฑเจ, เจ เจธเฉเจ เจเจธ เจเฉเจจเจฒ เจฆเฉ เจตเจฐเจคเฉเจ เจจเจนเฉเจ เจเจฐเจพเจเจเฉ, เจเจฟเจเจเจเจฟ เจฐเจฟเจธเฉเจตเจฐ เจ เจคเฉ เจเฉเจจเจฒ เจฆเฉเจเจ เจธเจฎเจฐเฉฑเจฅเจพเจตเจพเจ เจธเจชเฉฑเจธเจผเจ เจคเฉเจฐ 'เจคเฉ เจธเจพเจกเฉเจเจ, เจนเฉเจฃ เจคเฉฑเจ เจฆเฉเจเจ เจฎเจพเจฎเฉเจฒเฉ, เจฒเฉเฉเจพเจ เจคเฉเจ เจตเฉฑเจง เจนเจจเฅค
เจธเจพเจกเฉ เจชเฉเจฐเฉเจเจฐเจพเจฎ เจตเจฟเฉฑเจ, เจชเจฟเจเจฒเฉ เจเจฆเจพเจนเจฐเจจ เจฆเฉ เจเจฒเจ, เจกเฉเจเจพ เจเฉเจฐเจพเจเจธเจฎเจฟเจธเจผเจจ เจธเจฐเจเจ เจจเฉเฉฐ เจฆเฉ เจนเจฟเฉฑเจธเจฟเจเจ เจตเจฟเฉฑเจ เจตเฉฐเจกเจฟเจ เจเจพเจตเฉเจเจพ: เจเฉฑเจ เจชเฉเจฐเจธเจพเจฐเจฃ เจฎเจพเจฐเจ เจ เจคเฉ เจเฉฑเจ เจชเฉเจฐเจพเจชเจค เจเจฐเจจ เจตเจพเจฒเจพ เจฎเจพเจฐเจเฅค เจนเจฐเฉเจ เจนเจฟเฉฑเจธเฉ เจฒเจ เจ เจธเฉเจ เจเจชเจฃเฉ เจเฉเฉ เจฆเจพ เจธเจฐเฉเจค เจฌเจฃเจพเจตเจพเจเจเฉ, เจเจฟเจตเฉเจ เจเจฟ เจธเจฟเจฐเจฒเฉเจ เจคเจธเจตเฉเจฐ เจตเจฟเฉฑเจ เจฆเจฟเจเจพเจเจ เจเจฟเจ เจนเฉเฅค
เจเจนเจจเจพเจ เจตเจฟเจเจเจพเจฐ เจเฉฑเจ เจคเจฐเจซเจพ เจธเฉฐเจเจพเจฐ RTP เจชเฉเจฐเฉเจเฉเจเฉเจฒ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเฉเจคเจพ เจเจพเจตเฉเจเจพเฅค เจเจธ เจเจฆเจพเจนเจฐเจจ เจตเจฟเฉฑเจ, เจธเจพเจจเฉเฉฐ เจเจฟเจธเฉ เจฌเจพเจนเจฐเฉ เจจเฉเฉฑเจเจตเจฐเจ เจฆเฉ เจฒเฉเฉ เจจเจนเฉเจ เจนเฉ, เจเจฟเจเจเจเจฟ เจเฉเจฐเจพเจเจธเจฎเฉเจเจฐ เจ เจคเฉ เจฐเจฟเจธเฉเจตเจฐ เจฆเฉเจตเฉเจ เจเฉฑเจเฉ เจเฉฐเจชเจฟเจเจเจฐ 'เจคเฉ เจธเจฅเจฟเจค เจนเฉเจฃเจเฉ - เจชเฉเจเฉเจ เจเจธ เจฆเฉ เจ เฉฐเจฆเจฐ เจฏเจพเจคเจฐเจพ เจเจฐเจจเจเฉเฅค
เจเฉฑเจ RTP เจธเจเฉเจฐเฉเจฎ เจธเจฅเจพเจชเจค เจเจฐเจจ เจฒเจ, เจฎเฉเจกเฉเจ เจธเจเฉเจฐเฉเจฎเจฐ เจฆเฉ เจซเจฟเจฒเจเจฐเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเจพ เจนเฉ: MS_RTP_SEND เจ เจคเฉ MS_RTP_RECVเฅค เจชเจนเจฟเจฒเจพ เจเฉฑเจ เจฆเฉเจเฉ เจจเฉเฉฐ เจชเฉเจฐเจธเจพเจฐเจฟเจค เจเจฐเจฆเจพ เจนเฉ เจ เจคเฉ RTP เจธเจเฉเจฐเฉเจฎ เจชเฉเจฐเจพเจชเจค เจเจฐเจฆเจพ เจนเฉเฅค เจเจนเจจเจพเจ เจซเจฟเจฒเจเจฐเจพเจ เจฆเฉ เจเฉฐเจฎ เจเจฐเจจ เจฒเจ, เจเจนเจจเจพเจ เจจเฉเฉฐ เจเฉฑเจ RTP เจธเฉเจธเจผเจจ เจเจฌเจเฉเจเจ เจฒเจ เจเฉฑเจ เจชเฉเจเจเฉฐเจเจฐ เจชเจพเจธ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉ, เจเฉ เจเจพเจ เจคเจพเจ เจกเฉเจเจพ เจฌเจฒเจพเจเจพเจ เจฆเฉ เจเฉฑเจ เจธเจเฉเจฐเฉเจฎ เจจเฉเฉฐ RTP เจชเฉเจเฉเจเจพเจ เจฆเฉ เจเฉฑเจ เจธเจเฉเจฐเฉเจฎ เจตเจฟเฉฑเจ เจฌเจฆเจฒ เจธเจเจฆเจพ เจนเฉ เจเจพเจ เจเจธเจฆเฉ เจเจฒเจ เจเจฐ เจธเจเจฆเจพ เจนเฉเฅค เจเจฟเจเจเจเจฟ เจฎเฉเจกเฉเจ เจธเจเฉเจฐเฉเจฎเจฐ เจฆเจพ เจ เฉฐเจฆเจฐเฉเจจเฉ เจกเฉเจเจพ เจซเจพเจฐเจฎเฉเจ RTP เจชเฉเจเฉเจ เจฆเฉ เจกเฉเจเจพ เจซเจพเจฐเจฎเฉเจ เจจเจพเจฒ เจฎเฉเจฒ เจจเจนเฉเจ เจเจพเจเจฆเจพ, เจเจธ เจฒเจ เจกเฉเจเจพ เจจเฉเฉฐ MS_RTP_SEND เจตเจฟเฉฑเจ เจเฉเจฐเจพเจเจธเจซเจฐ เจเจฐเจจ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ, เจคเฉเจนเจพเจจเฉเฉฐ เจเฉฑเจ เจเจจเจเฉเจกเจฐ เจซเจฟเจฒเจเจฐ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฆเฉ เจเจผเจฐเฉเจฐเจค เจนเฉเฉฐเจฆเฉ เจนเฉ เจเฉ 16-เจฌเจฟเฉฑเจ เจเจกเฉเจ เจธเจฟเจเจจเจฒ เจจเจฎเฉเจจเจฟเจเจ เจจเฉเฉฐ เจ เฉฑเจ -เจฌเจฟเฉฑเจ เจเจจเจเฉเจก เจตเจฟเฉฑเจ เจฌเจฆเจฒเจฆเจพ เจนเฉ. เจ-เจฒเจพเจ (เจฎเฉ-เจฒเจพเจ )เฅค เจชเฉเจฐเจพเจชเจค เจเจฐเจจ เจตเจพเจฒเฉ เจชเจพเจธเฉ, เจกเฉเจเฉเจกเจฐ เจซเจฟเจฒเจเจฐ เจเจฒเจ เจซเฉฐเจเจธเจผเจจ เจเจฐเจฆเจพ เจนเฉเฅค
เจนเฉเจ เจพเจ เจชเฉเจฐเฉเจเจฐเจพเจฎ เจฆเจพ เจเฉเจเจธเจ เจนเฉ เจเฉ เจเจฟเฉฑเจคเจฐ เจตเจฟเฉฑเจ เจฆเจฟเจเจพเจ เจเจ เจธเจเฉเจฎ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจฆเจพ เจนเฉ (เจธเจผเจพเจฎเจฒ เจจเจฟเจฐเจฆเฉเจธเจผเจพเจ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ # เจเจฟเฉฐเจจเฉเจน เจนเจเจพ เจฆเจฟเฉฑเจคเฉ เจเจ เจนเจจ, เจเจนเจจเจพเจ เจจเฉเฉฐ เจธเจผเจพเจฎเจฒ เจเจฐเจจเจพ เจจเจพ เจญเฉเฉฑเจฒเฉ):
/* ะคะฐะนะป mstest6.c ะะผะธัะฐัะพั ะฟัะปััะฐ ัะฟัะฐะฒะปะตะฝะธั ะธ ะฟัะธะตะผะฝะธะบะฐ. */
#include <mediastreamer2/msfilter.h>
#include <mediastreamer2/msticker.h>
#include <mediastreamer2/dtmfgen.h>
#include <mediastreamer2/mssndcard.h>
#include <mediastreamer2/msvolume.h>
#include <mediastreamer2/mstonedetector.h>
#include <mediastreamer2/msrtp.h>
#include <ortp/rtpsession.h>
#include <ortp/payloadtype.h>
/* ะะพะดะบะปััะฐะตะผ ะทะฐะณะพะปะพะฒะพัะฝัะน ัะฐะนะป ั ััะฝะบัะธัะผะธ ัะฟัะฐะฒะปะตะฝะธั ัะพะฑััะธัะผะธ
* ะผะตะดะธะฐัััะธะผะตัะฐ.*/
include <mediastreamer2/mseventqueue.h>
#define PCMU 0
/* ะคัะฝะบัะธั ะพะฑัะฐัะฝะพะณะพ ะฒัะทะพะฒะฐ, ะพะฝะฐ ะฑัะดะตั ะฒัะทะฒะฐะฝะฐ ัะธะปัััะพะผ, ะบะฐะบ ัะพะปัะบะพ ะพะฝ
ะพะฑะฝะฐััะถะธั ัะพะฒะฟะฐะดะตะฝะธะต ั
ะฐัะฐะบัะตัะธััะธะบ ะฒั
ะพะดะฝะพะณะพ ัะธะณะฝะฐะปะฐ ั ะทะฐะดะฐะฝะฝัะผะธ. */
static void tone_detected_cb(void *data, MSFilter *f, unsigned int event_id,
MSToneDetectorEvent *ev)
{
printf("ะัะธะฝััะฐ ะบะพะผะฐะฝะดะฐ: %sn", ev->tone_name);
}
/*----------------------------------------------------------------------------*/
/* ะคัะฝะบัะธั ัะตะณะธัััะฐัะธะธ ัะธะฟะพะฒ ะฟะพะปะตะทะฝัั
ะฝะฐะณััะทะพะบ. */
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;
}
/*----------------------------------------------------------------------------*/
int main()
{
ms_init();
/* ะกะพะทะดะฐะตะผ ัะบะทะตะผะฟะปััั ัะธะปัััะพะฒ. */
MSFilter *voidsource = ms_filter_new(MS_VOID_SOURCE_ID);
MSFilter *dtmfgen = ms_filter_new(MS_DTMF_GEN_ID);
MSFilter *volume = ms_filter_new(MS_VOLUME_ID);
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 *encoder = ms_filter_create_encoder("PCMU");
MSFilter *decoder=ms_filter_create_decoder("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);
/* ะกะพะทะดะฐะตะผ 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_tx = ms_ticker_new();
MSTicker *ticker_rx = ms_ticker_new();
/* ะกะพะตะดะธะฝัะตะผ ัะธะปัััั ะฟะตัะตะดะฐััะธะบะฐ. */
ms_filter_link(voidsource, 0, dtmfgen, 0);
ms_filter_link(dtmfgen, 0, volume, 0);
ms_filter_link(volume, 0, encoder, 0);
ms_filter_link(encoder, 0, rtpsend, 0);
/* ะกะพะตะดะธะฝัะตะผ ัะธะปัััั ะฟัะธัะผะฝะธะบะฐ. */
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_tx, voidsource);
ms_ticker_attach(ticker_rx, rtprecv);
/* ะะฐัััะฐะธะฒะฐะตะผ ััััะบัััั, ัะฟัะฐะฒะปััััั ะฒัั
ะพะดะฝัะผ ัะธะณะฝะฐะปะพะผ ะณะตะฝะตัะฐัะพัะฐ. */
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);
}
}
เจ เจธเฉเจ เจเฉฐเจชเจพเจเจฒ เจ เจคเฉ เจเจฒเจพเจเจเจฆเฉ เจนเจพเจ. เจชเฉเจฐเฉเจเจฐเจพเจฎ เจชเจฟเจเจฒเฉ เจเจฆเจพเจนเจฐเจจ เจตเจพเจเจ เจเฉฐเจฎ เจเจฐเฉเจเจพ, เจชเจฐ เจกเฉเจเจพ เจเฉฑเจ RTP เจธเจเฉเจฐเฉเจฎ เจฆเฉเจเจฐเจพ เจชเฉเจฐเจธเจพเจฐเจฟเจค เจเฉเจคเจพ เจเจพเจตเฉเจเจพเฅค
เจ เจเจฒเฉ เจฒเฉเจ เจตเจฟเฉฑเจ เจ เจธเฉเจ เจเจธ เจชเฉเจฐเฉเจเจฐเจพเจฎ เจจเฉเฉฐ เจฆเฉ เจธเฉเจคเฉฐเจคเจฐ เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ เจตเจฟเฉฑเจ เจตเฉฐเจกเจพเจเจเฉ - เจเฉฑเจ เจฐเจฟเจธเฉเจตเจฐ เจ เจคเฉ เจเฉฑเจ เจเฉเจฐเจพเจเจธเจฎเฉเจเจฐ เจ เจคเฉ เจเจนเจจเจพเจ เจจเฉเฉฐ เจตเฉฑเจ-เจตเฉฑเจ เจเจฐเจฎเฉเจจเจฒเจพเจ เจตเจฟเฉฑเจ เจฒเจพเจเจ เจเจฐเจพเจเจเฉเฅค เจเจธเจฆเฉ เจจเจพเจฒ เจนเฉ, เจ เจธเฉเจ เจธเจฟเจเจพเจเจเฉ เจเจฟ TShark เจชเฉเจฐเฉเจเจฐเจพเจฎ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ RTP เจชเฉเจเฉเจเจพเจ เจฆเจพ เจตเจฟเจธเจผเจฒเฉเจธเจผเจฃ เจเจฟเจตเฉเจ เจเจฐเจจเจพ เจนเฉเฅค
เจธเจฐเฉเจค: www.habr.com