ΠΠ°ΡΠ΅ΡΠΈΡΠ°Π» ΡΠ»Π°Π½ΠΊΠ° ΡΠ΅ ΠΏΡΠ΅ΡΠ·Π΅Ρ ΡΠ° ΠΌΠΎΠ³
ΠΡΠ΅Π½ΠΎΡ Π°ΡΠ΄ΠΈΠΎ ΡΠΈΠ³Π½Π°Π»Π° ΠΏΡΠ΅ΠΊΠΎ Π Π’Π ΡΠΎΠΊΠ°
Π£ ΠΏΠΎΡΠ»Π΅Π΄ΡΠΈΡ
Π Π’Π ΠΏΡΠΎΡΠΎΠΊΠΎΠ» (ΠΡΠΎΡΠΎΠΊΠΎΠ» Ρ ΡΠ΅Π°Π»Π½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½Ρ) ΠΏΡΠ΅Π²Π΅Π΄Π΅Π½ΠΎ Π·Π½Π°ΡΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» Ρ ΡΠ΅Π°Π»Π½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΈΡΡΠΈ ΡΠ΅ Π·Π° ΠΏΡΠ΅Π½ΠΎΡ Π·Π²ΡΠΊΠ°, Π²ΠΈΠ΄Π΅Π°, ΠΏΠΎΠ΄Π°ΡΠ°ΠΊΠ°, ΡΠ²Π΅Π³Π° ΡΡΠΎ Π·Π°Ρ ΡΠ΅Π²Π° ΠΏΡΠ΅Π½ΠΎΡ Ρ ΡΠ΅Π°Π»Π½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½Ρ. Π£Π·ΠΌΠΈΠΌΠΎ Π·Π° ΠΏΡΠΈΠΌΠ΅Ρ Π°ΡΠ΄ΠΈΠΎ ΡΠΈΠ³Π½Π°Π». Π€Π»Π΅ΠΊΡΠΈΠ±ΠΈΠ»Π½ΠΎΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° ΡΠ΅ ΡΠ°ΠΊΠ²Π° Π΄Π° Π²Π°ΠΌ ΠΎΠΌΠΎΠ³ΡΡΠ°Π²Π° ΠΏΡΠ΅Π½ΠΎΡ Π°ΡΠ΄ΠΈΠΎ ΡΠΈΠ³Π½Π°Π»Π° ΡΠ½Π°ΠΏΡΠ΅Π΄ ΠΎΠ΄ΡΠ΅ΡΠ΅Π½ΠΎΠ³ ΠΊΠ²Π°Π»ΠΈΡΠ΅ΡΠ°.
ΠΡΠ΅Π½ΠΎΡ ΡΠ΅ Π²ΡΡΠΈ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ΠΌ Π£ΠΠ ΠΏΠ°ΠΊΠ΅ΡΠ°, ΡΡΠΎ Π·Π½Π°ΡΠΈ Π΄Π° ΡΠ΅ Π³ΡΠ±ΠΈΡΠ°ΠΊ ΠΏΠ°ΠΊΠ΅ΡΠ° ΡΠ°ΡΠ²ΠΈΠΌ ΠΏΡΠΈΡ Π²Π°ΡΡΠΈΠ² ΡΠΎΠΊΠΎΠΌ ΠΏΡΠ΅Π½ΠΎΡΠ°. Π‘Π²Π°ΠΊΠΈ ΠΏΠ°ΠΊΠ΅Ρ ΡΠ°Π΄ΡΠΆΠΈ ΠΏΠΎΡΠ΅Π±Π½ΠΎ Π Π’Π Π·Π°Π³Π»Π°Π²ΡΠ΅ ΠΈ Π±Π»ΠΎΠΊ ΠΏΠΎΠ΄Π°ΡΠ°ΠΊΠ° ΠΎ ΠΏΡΠ΅Π½ΠΎΡΠ΅Π½ΠΎΠΌ ΡΠΈΠ³Π½Π°Π»Ρ. ΠΠ°Π³Π»Π°Π²ΡΠ΅ ΡΠ°Π΄ΡΠΆΠΈ Π½Π°ΡΡΠΌΠΈΡΠ½ΠΎ ΠΎΠ΄Π°Π±ΡΠ°Π½ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΈΠ·Π²ΠΎΡΠ° ΡΠΈΠ³Π½Π°Π»Π°, ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΡ ΠΎ ΡΠΈΠΏΡ ΡΠΈΠ³Π½Π°Π»Π° ΠΊΠΎΡΠΈ ΡΠ΅ ΠΏΡΠ΅Π½ΠΎΡΠΈ ΠΈ ΡΠ΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½ΠΈ Π±ΡΠΎΡ ΡΠ΅ΠΊΠ²Π΅Π½ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ° ΡΠ°ΠΊΠΎ Π΄Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ ΠΌΠΎΠ³Ρ Π±ΠΈΡΠΈ ΡΠ°ΡΠΏΠΎΡΠ΅ΡΠ΅Π½ΠΈ Ρ ΠΈΡΠΏΡΠ°Π²Π½ΠΎΠΌ ΡΠ΅Π΄ΠΎΡΠ»Π΅Π΄Ρ ΠΏΡΠΈΠ»ΠΈΠΊΠΎΠΌ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°ΡΠ°, Π±Π΅Π· ΠΎΠ±Π·ΠΈΡΠ° Π½Π° ΡΠ΅Π΄ΠΎΡΠ»Π΅Π΄ ΠΊΠΎΡΠΈΠΌ ΡΡ ΠΈΡΠΏΠΎΡΡΡΠ΅Π½ΠΈ ΠΎΠ΄ ΡΡΡΠ°Π½Π΅ ΠΌΡΠ΅ΠΆΠ΅. ΠΠ°Π³Π»Π°Π²ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π΄ΡΠΆΠΈ ΠΈ Π΄ΠΎΠ΄Π°ΡΠ½Π΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΠ΅, ΡΠ°ΠΊΠΎΠ·Π²Π°Π½Ρ Π΅ΠΊΡΡΠ΅Π½Π·ΠΈΡΡ, ΠΊΠΎΡΠ° ΠΎΠΌΠΎΠ³ΡΡΠ°Π²Π° Π΄Π° ΡΠ΅ Π·Π°Π³Π»Π°Π²ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³ΠΎΠ΄ΠΈ Π·Π° ΡΠΏΠΎΡΡΠ΅Π±Ρ Ρ ΠΎΠ΄ΡΠ΅ΡΠ΅Π½ΠΎΠΌ Π·Π°Π΄Π°ΡΠΊΡ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ΅.
ΠΠ»ΠΎΠΊ ΠΏΠΎΠ΄Π°ΡΠ°ΠΊΠ° ΡΠ°Π΄ΡΠΆΠΈ Π½ΠΎΡΠΈΠ²ΠΎΡΡ ΠΏΠ°ΠΊΠ΅ΡΠ°. Π£Π½ΡΡΡΠ°ΡΡΠ° ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡΠ° ΡΠ°Π΄ΡΠΆΠ°ΡΠ° Π·Π°Π²ΠΈΡΠΈ ΠΎΠ΄ Π²ΡΡΡΠ΅ ΠΎΠΏΡΠ΅ΡΠ΅ΡΠ΅ΡΠ°, ΡΠΎ ΠΌΠΎΠ³Ρ Π±ΠΈΡΠΈ ΡΠ·ΠΎΡΡΠΈ ΠΌΠΎΠ½ΠΎ ΡΠΈΠ³Π½Π°Π»Π°, ΡΡΠ΅ΡΠ΅ΠΎ ΡΠΈΠ³Π½Π°Π»Π°, Π»ΠΈΠ½ΠΈΡΠ΅ Π²ΠΈΠ΄Π΅ΠΎ ΡΠ»ΠΈΠΊΠ΅ ΠΈΡΠ΄.
Π’ΠΈΠΏ ΠΎΠΏΡΠ΅ΡΠ΅ΡΠ΅ΡΠ° ΡΠ΅ ΠΎΠ·Π½Π°ΡΠ΅Π½ ΡΠ΅Π΄ΠΌΠΎΠ±ΠΈΡΠ½ΠΈΠΌ Π±ΡΠΎΡΠ΅ΠΌ. ΠΡΠ΅ΠΏΠΎΡΡΠΊΠ° Π Π€Π¦3551 (Π Π’Π ΠΏΡΠΎΡΠΈΠ» Π·Π° Π°ΡΠ΄ΠΈΠΎ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΡΠ΅ ΡΠ° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΎΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΎΠΌ) ΡΡΠ²ΡΡΡΡΠ΅ Π½Π΅ΠΊΠΎΠ»ΠΈΠΊΠΎ Π²ΡΡΡΠ° ΠΎΠΏΡΠ΅ΡΠ΅ΡΠ΅ΡΠ°, Π° ΠΎΠ΄Π³ΠΎΠ²Π°ΡΠ°ΡΡΡΠ° ΡΠ°Π±Π΅Π»Π° Π΄Π°ΡΠ΅ ΠΎΠΏΠΈΡ ΡΠΈΠΏΠΎΠ²Π° ΠΎΠΏΡΠ΅ΡΠ΅ΡΠ΅ΡΠ° ΠΈ Π·Π½Π°ΡΠ΅ΡΠ΅ ΡΠΈΡΡΠΈ ΠΊΠΎΡΠΈΠΌΠ° ΡΡ ΠΎΠ·Π½Π°ΡΠ΅Π½Π΅. ΠΠ΅ΠΊΠΈ ΠΊΠΎΠ΄ΠΎΠ²ΠΈ Π½ΠΈΡΡ ΡΡΡΠΈΠΊΡΠ½ΠΎ Π²Π΅Π·Π°Π½ΠΈ Π·Π° Π±ΠΈΠ»ΠΎ ΠΊΠΎΡΡ Π²ΡΡΡΡ ΠΎΠΏΡΠ΅ΡΠ΅ΡΠ΅ΡΠ°; ΠΌΠΎΠ³Ρ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈΡΠΈ Π·Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°ΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΡΠ½ΠΎΠ³ ΠΎΠΏΡΠ΅ΡΠ΅ΡΠ΅ΡΠ°.
ΠΠ΅Π»ΠΈΡΠΈΠ½Π° Π±Π»ΠΎΠΊΠ° ΠΏΠΎΠ΄Π°ΡΠ°ΠΊΠ° ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π° ΠΈΠ·Π½Π°Π΄ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΎΠΌ Π²Π΅Π»ΠΈΡΠΈΠ½ΠΎΠΌ ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΊΠΎΡΠΈ ΡΠ΅ ΠΌΠΎΠΆΠ΅ ΠΏΡΠ΅Π½Π΅ΡΠΈ Π½Π° Π΄Π°ΡΡ ΠΌΡΠ΅ΠΆΡ Π±Π΅Π· ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ΅ (ΠΠ’Π£ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΠ°Ρ). ΠΠ΅Π½Π΅ΡΠ°Π»Π½ΠΎ, ΠΎΠ²ΠΎ Π½ΠΈΡΠ΅ Π²ΠΈΡΠ΅ ΠΎΠ΄ 1500 Π±Π°ΡΡΠΎΠ²Π°. ΠΠ°ΠΊΠ»Π΅, Π΄Π° Π±ΠΈΡΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ°Π»ΠΈ ΠΊΠΎΠ»ΠΈΡΠΈΠ½Ρ ΠΏΠΎΠ΄Π°ΡΠ°ΠΊΠ° ΠΊΠΎΡΠΈ ΡΠ΅ ΠΏΡΠ΅Π½ΠΎΡΠ΅ Ρ ΡΠ΅ΠΊΡΠ½Π΄ΠΈ, ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ°ΡΠΈ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ ΠΏΠ°ΠΊΠ΅ΡΠ° Π΄ΠΎ ΠΎΠ΄ΡΠ΅ΡΠ΅Π½Π΅ ΡΠ°ΡΠΊΠ΅, Π° Π·Π°ΡΠΈΠΌ ΡΠ΅ΡΠ΅ ΠΌΠΎΡΠ°ΡΠΈ Π΄Π° ΠΏΠΎΠ²Π΅ΡΠ°ΡΠ΅ ΡΡΠ΅ΡΡΠ°Π»ΠΎΡΡ ΡΠ»Π°ΡΠ° ΠΏΠ°ΠΊΠ΅ΡΠ°. Π£ ΠΌΠ΅Π΄ΠΈΡΡΠΊΠΎΠΌ ΡΡΡΠΈΠΌΠ΅ΡΡ, ΠΎΠ²ΠΎ ΡΠ΅ ΠΏΠΎΠ΄Π΅ΡΠ°Π²Π°ΡΠ΅ ΠΊΠΎΡΠ΅ ΡΠ΅ ΠΌΠΎΠΆΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠΈ. ΠΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π½ΠΎ ΡΠ΅ 50 Π₯Π·, ΡΡ. 50 ΠΏΠ°ΠΊΠ΅ΡΠ° Ρ ΡΠ΅ΠΊΡΠ½Π΄ΠΈ. Π Π΅Π΄ΠΎΡΠ»Π΅Π΄ ΠΏΡΠ΅Π½Π΅ΡΠΈΡ Π Π’Π ΠΏΠ°ΠΊΠ΅ΡΠ° Π½Π°Π·Π²Π°ΡΠ΅ΠΌΠΎ Π Π’Π ΡΠΎΠΊ.
ΠΠ° ΠΏΠΎΡΠ΅ΡΠ°ΠΊ ΠΏΡΠ΅Π½ΠΎΡΠ° ΠΏΠΎΠ΄Π°ΡΠ°ΠΊΠ° ΠΈΠ·ΠΌΠ΅ΡΡ ΠΈΠ·Π²ΠΎΡΠ° ΠΈ ΠΏΡΠΈΡΠ΅ΠΌΠ½ΠΈΠΊΠ°, Π΄ΠΎΠ²ΠΎΡΠ½ΠΎ ΡΠ΅ Π΄Π° ΠΏΡΠ΅Π΄Π°ΡΠ½ΠΈΠΊ Π·Π½Π° ΠΠ Π°Π΄ΡΠ΅ΡΡ ΠΏΡΠΈΡΠ΅ΠΌΠ½ΠΈΠΊΠ° ΠΈ Π±ΡΠΎΡ ΠΏΠΎΡΡΠ° ΠΊΠΎΡΠΈ ΠΊΠΎΡΠΈΡΡΠΈ Π·Π° ΠΏΡΠΈΡΠ΅ΠΌ. ΠΠ½Π΅. Π±Π΅Π· ΠΈΠΊΠ°ΠΊΠ²ΠΈΡ ΠΏΡΠ΅Π»ΠΈΠΌΠΈΠ½Π°ΡΠ½ΠΈΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°, ΠΈΠ·Π²ΠΎΡ ΠΏΠΎΡΠΈΡΠ΅ Π΄Π° ΠΏΡΠ΅Π½ΠΎΡΠΈ ΠΏΠΎΠ΄Π°ΡΠΊΠ΅, Π° ΠΏΡΠΈΡΠ΅ΠΌΠ½ΠΈΠΊ ΡΠ΅, Π·Π°ΡΠ·Π²ΡΠ°Ρ, ΡΠΏΡΠ΅ΠΌΠ°Π½ Π΄Π° ΠΈΡ ΠΎΠ΄ΠΌΠ°Ρ ΠΏΡΠΈΠΌΠΈ ΠΈ ΠΎΠ±ΡΠ°Π΄ΠΈ. ΠΡΠ΅ΠΌΠ° ΡΡΠ°Π½Π΄Π°ΡΠ΄Ρ, Π±ΡΠΎΡ ΠΏΠΎΡΡΠ° ΠΊΠΎΡΠΈ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π·Π° ΠΏΡΠ΅Π½ΠΎΡ ΠΈΠ»ΠΈ ΠΏΡΠΈΡΠ΅ΠΌ Π Π’Π ΡΠΎΠΊΠ° ΠΌΠΎΡΠ° Π±ΠΈΡΠΈ ΠΏΠ°ΡΠ°Π½.
Π£ ΡΠΈΡΡΠ°ΡΠΈΡΠ°ΠΌΠ° ΠΊΠ°Π΄Π° ΡΠ΅ Π½Π΅ΠΌΠΎΠ³ΡΡΠ΅ ΡΠ½Π°ΠΏΡΠ΅Π΄ Π·Π½Π°ΡΠΈ Π°Π΄ΡΠ΅ΡΡ ΠΏΡΠΈΡΠ΅ΠΌΠ½ΠΈΠΊΠ°, ΠΊΠΎΡΠΈΡΡΠ΅ ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠΈ Π³Π΄Π΅ ΠΏΡΠΈΡΠ΅ΠΌΠ½ΠΈΡΠΈ ΠΎΡΡΠ°Π²ΡΠ°ΡΡ ΡΠ²ΠΎΡΡ Π°Π΄ΡΠ΅ΡΡ, Π° ΠΏΡΠ΅Π΄Π°ΡΠ½ΠΈΠΊ ΡΠΎ ΠΌΠΎΠΆΠ΅ Π·Π°Ρ ΡΠ΅Π²Π°ΡΠΈ ΠΏΠΎΠ·ΠΈΠ²Π°ΡΡΡΠΈ ΡΠ΅ Π½Π° Π½Π΅ΠΊΠΎ ΡΠ΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½ΠΎ ΠΈΠΌΠ΅ ΠΏΡΠΈΡΠ΅ΠΌΠ½ΠΈΠΊΠ°.
Π£ ΡΠ»ΡΡΠ°ΡΠ΅Π²ΠΈΠΌΠ° ΠΊΠ°Π΄Π° ΡΡ ΠΊΠ²Π°Π»ΠΈΡΠ΅Ρ ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΎΠ½ΠΎΠ³ ΠΊΠ°Π½Π°Π»Π° ΠΈΠ»ΠΈ ΠΌΠΎΠ³ΡΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΡΠ΅ΠΌΠ½ΠΈΠΊΠ° Π½Π΅ΠΏΠΎΠ·Π½Π°ΡΠΈ, ΠΎΡΠ³Π°Π½ΠΈΠ·ΡΡΠ΅ ΡΠ΅ ΠΏΠΎΠ²ΡΠ°ΡΠ½ΠΈ ΠΊΠ°Π½Π°Π» ΠΏΡΠ΅ΠΊΠΎ ΠΊΠΎΡΠ΅Π³ ΠΏΡΠΈΡΠ΅ΠΌΠ½ΠΈΠΊ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΠ±Π°Π²Π΅ΡΡΠΈ ΠΏΡΠ΅Π΄Π°ΡΠ½ΠΈΠΊ ΠΎ ΡΠ²ΠΎΡΠΈΠΌ ΠΌΠΎΠ³ΡΡΠ½ΠΎΡΡΠΈΠΌΠ°, Π±ΡΠΎΡΡ ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΊΠΎΡΠ΅ ΡΠ΅ ΠΏΡΠΎΠΏΡΡΡΠΈΠΎ ΠΈΡΠ΄. ΠΠ²Π°Ρ ΠΊΠ°Π½Π°Π» ΠΊΠΎΡΠΈΡΡΠΈ Π Π’Π¦Π ΠΏΡΠΎΡΠΎΠΊΠΎΠ». Π€ΠΎΡΠΌΠ°Ρ ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΊΠΎΡΠΈ ΡΠ΅ ΠΏΡΠ΅Π½ΠΎΡΠ΅ Π½Π° ΠΎΠ²ΠΎΠΌ ΠΊΠ°Π½Π°Π»Ρ ΡΠ΅ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½ Ρ Π Π€Π¦ 3605. ΠΡΠ΅ΠΊΠΎ ΠΎΠ²ΠΎΠ³ ΠΊΠ°Π½Π°Π»Π° ΡΠ΅ ΠΏΡΠ΅Π½ΠΎΡΠΈ ΡΠ΅Π»Π°ΡΠΈΠ²Π½ΠΎ ΠΌΠ°Π»ΠΎ ΠΏΠΎΠ΄Π°ΡΠ°ΠΊΠ°, 200..300 Π±Π°ΡΡΠΎΠ²Π° Ρ ΡΠ΅ΠΊΡΠ½Π΄ΠΈ, ΡΠ°ΠΊΠΎ Π΄Π° Π³Π΅Π½Π΅ΡΠ°Π»Π½ΠΎ ΡΠ΅Π³ΠΎΠ²ΠΎ ΠΏΡΠΈΡΡΡΡΠ²ΠΎ Π½ΠΈΡΠ΅ ΠΎΠΏΡΠ΅ΡΠ΅ΡΡΡΡΡΠ΅. ΠΡΠΎΡ ΠΏΠΎΡΡΠ° Π½Π° ΠΊΠΎΡΠΈ ΡΠ΅ ΡΠ°ΡΡ Π Π’Π¦Π ΠΏΠ°ΠΊΠ΅ΡΠΈ ΠΌΠΎΡΠ° Π±ΠΈΡΠΈ Π½Π΅ΠΏΠ°ΡΠ°Π½ ΠΈ Π·Π° ΡΠ΅Π΄Π°Π½ Π²Π΅ΡΠΈ ΠΎΠ΄ Π±ΡΠΎΡΠ° ΠΏΠΎΡΡΠ° ΡΠ° ΠΊΠΎΡΠ΅Π³ Π΄ΠΎΠ»Π°Π·ΠΈ Π Π’Π ΡΠΎΠΊ. Π£ Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΡ Π½Π΅ΡΠ΅ΠΌΠΎ ΠΊΠΎΡΠΈΡΡΠΈΡΠΈ ΠΎΠ²Π°Ρ ΠΊΠ°Π½Π°Π», ΠΏΠΎΡΡΠΎ ΠΌΠΎΠ³ΡΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΡΠ΅ΠΌΠ½ΠΈΠΊΠ° ΠΈ ΠΊΠ°Π½Π°Π»Π° ΠΎΡΠΈΠ³Π»Π΅Π΄Π½ΠΎ ΠΏΡΠ΅Π²Π°Π·ΠΈΠ»Π°Π·Π΅ Π½Π°ΡΠ΅, Π΄ΠΎ ΡΠ°Π΄Π° ΡΠΊΡΠΎΠΌΠ½Π΅, ΠΏΠΎΡΡΠ΅Π±Π΅.
Π£ Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΡ, ΠΊΠΎΠ»ΠΎ Π·Π° ΠΏΡΠ΅Π½ΠΎΡ ΠΏΠΎΠ΄Π°ΡΠ°ΠΊΠ°, Π·Π° ΡΠ°Π·Π»ΠΈΠΊΡ ΠΎΠ΄ ΠΏΡΠ΅ΡΡ ΠΎΠ΄Π½ΠΎΠ³ ΠΏΡΠΈΠΌΠ΅ΡΠ°, Π±ΠΈΡΠ΅ ΠΏΠΎΠ΄Π΅ΡΠ΅Π½ΠΎ Π½Π° Π΄Π²Π° Π΄Π΅Π»Π°: ΠΏΡΡ Π·Π° ΠΏΡΠ΅Π½ΠΎΡ ΠΈ ΠΏΡΡ Π·Π° ΠΏΡΠΈΡΠ΅ΠΌ. ΠΠ° ΡΠ²Π°ΠΊΠΈ Π΄Π΅ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ΠΌΠΎ ΡΠΎΠΏΡΡΠ²Π΅Π½ΠΈ ΠΈΠ·Π²ΠΎΡ ΡΠ°ΡΠ°, ΠΊΠ°ΠΎ ΡΡΠΎ ΡΠ΅ ΠΏΡΠΈΠΊΠ°Π·Π°Π½ΠΎ Π½Π° Π½Π°ΡΠ»ΠΎΠ²Π½ΠΎΡ ΡΠ»ΠΈΡΠΈ.
ΠΠ΅Π΄Π½ΠΎΡΠΌΠ΅ΡΠ½Π° ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡΠ° ΠΈΠ·ΠΌΠ΅ΡΡ ΡΠΈΡ ΡΠ΅ ΡΠ΅ ΠΎΠ΄Π²ΠΈΡΠ°ΡΠΈ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ΠΌ Π Π’Π ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°. Π£ ΠΎΠ²ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΡ Π½Π°ΠΌ Π½ΠΈΡΠ΅ ΠΏΠΎΡΡΠ΅Π±Π½Π° Π΅ΠΊΡΡΠ΅ΡΠ½Π° ΠΌΡΠ΅ΠΆΠ°, ΠΏΠΎΡΡΠΎ ΡΠ΅ ΡΠ΅ ΠΈ ΠΏΡΠ΅Π΄Π°ΡΠ½ΠΈΠΊ ΠΈ ΠΏΡΠΈΡΠ΅ΠΌΠ½ΠΈΠΊ Π½Π°Π»Π°Π·ΠΈΡΠΈ Π½Π° ΠΈΡΡΠΎΠΌ ΡΠ°ΡΡΠ½Π°ΡΡ - ΠΏΠ°ΠΊΠ΅ΡΠΈ ΡΠ΅ ΠΏΡΡΠΎΠ²Π°ΡΠΈ ΡΠ½ΡΡΠ°Ρ ΡΠ΅Π³Π°.
ΠΠ° Π±ΠΈ ΡΡΠΏΠΎΡΡΠ°Π²ΠΈΠΎ Π Π’Π ΡΠΎΠΊ, ΠΌΠ΅Π΄ΠΈΡΡΠΊΠΈ ΡΡΡΠΈΠΌΠ΅Ρ ΠΊΠΎΡΠΈΡΡΠΈ Π΄Π²Π° ΡΠΈΠ»ΡΠ΅ΡΠ°: ΠΠ‘_Π Π’Π_Π‘ΠΠΠ ΠΈ ΠΠ‘_Π Π’Π_Π ΠΠ¦Π. ΠΡΠ²ΠΈ ΠΏΡΠ΅Π½ΠΎΡΠΈ Π΄ΡΡΠ³ΠΈ ΠΈ ΠΏΡΠΈΠΌΠ° Π Π’Π ΡΠΎΠΊ. ΠΠ° Π±ΠΈ ΠΎΠ²ΠΈ ΡΠΈΠ»ΡΠ΅ΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ°Π»ΠΈ, ΠΏΠΎΡΡΠ΅Π±Π½ΠΎ ΡΠ΅ Π΄Π° ΠΏΡΠΎΡΠ»Π΅Π΄Π΅ ΠΏΠΎΠΊΠ°Π·ΠΈΠ²Π°Ρ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΠ°Ρ Π Π’Π ΡΠ΅ΡΠΈΡΠ΅, ΠΊΠΎΡΠΈ ΠΌΠΎΠΆΠ΅ ΠΈΠ»ΠΈ Π΄Π° ΠΊΠΎΠ½Π²Π΅ΡΡΡΡΠ΅ ΡΠΎΠΊ Π±Π»ΠΎΠΊΠΎΠ²Π° ΠΏΠΎΠ΄Π°ΡΠ°ΠΊΠ° Ρ ΡΠΎΠΊ Π Π’Π ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΈΠ»ΠΈ Π΄Π° ΡΡΠ°Π΄ΠΈ ΡΡΠΏΡΠΎΡΠ½ΠΎ. ΠΠΎΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΠ½ΠΈ ΡΠΎΡΠΌΠ°Ρ ΠΏΠΎΠ΄Π°ΡΠ°ΠΊΠ° ΠΌΠ΅Π΄ΠΈΡΠ° ΡΡΡΠΈΠΌΠ΅ΡΠ° Π½Π΅ ΠΎΠ΄Π³ΠΎΠ²Π°ΡΠ° ΡΠΎΡΠΌΠ°ΡΡ ΠΏΠΎΠ΄Π°ΡΠ°ΠΊΠ° Π Π’Π ΠΏΠ°ΠΊΠ΅ΡΠ°, ΠΏΡΠ΅ ΠΏΡΠ΅Π½ΠΎΡΠ° ΠΏΠΎΠ΄Π°ΡΠ°ΠΊΠ° Ρ ΠΠ‘_Π Π’Π_Π‘ΠΠΠ, ΠΏΠΎΡΡΠ΅Π±Π½ΠΎ ΡΠ΅ Π΄Π° ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ ΡΠΈΠ»ΡΠ΅Ρ Π·Π° ΠΊΠΎΠ΄ΠΈΡΠ°ΡΠ΅ ΠΊΠΎΡΠΈ ΠΊΠΎΠ½Π²Π΅ΡΡΡΡΠ΅ 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);
}
}
Π‘Π°ΡΡΠ°Π²ΡΠ°ΠΌΠΎ ΠΈ ΠΏΠΎΠΊΡΠ΅ΡΠ΅ΠΌΠΎ. ΠΡΠΎΠ³ΡΠ°ΠΌ ΡΠ΅ ΡΠ°Π΄ΠΈΡΠΈ ΠΊΠ°ΠΎ Ρ ΠΏΡΠ΅ΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΡ, Π°Π»ΠΈ ΡΠ΅ ΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΈ ΠΏΡΠ΅Π½ΠΎΡΠΈΡΠΈ ΠΏΡΡΠ΅ΠΌ Π Π’Π ΡΠΎΠΊΠ°.
Π£ ΡΠ»Π΅Π΄Π΅ΡΠ΅ΠΌ ΡΠ»Π°Π½ΠΊΡ ΡΠ΅ΠΌΠΎ ΠΎΠ²Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΠΈ Π½Π° Π΄Π²Π΅ Π½Π΅Π·Π°Π²ΠΈΡΠ½Π΅ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ΅ - ΠΏΡΠΈΡΠ΅ΠΌΠ½ΠΈΠΊ ΠΈ ΠΏΡΠ΅Π΄Π°ΡΠ½ΠΈΠΊ ΠΈ ΠΏΠΎΠΊΡΠ΅Π½ΡΡΠΈ ΠΈΡ Π½Π° ΡΠ°Π·Π»ΠΈΡΠΈΡΠΈΠΌ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΠΈΠΌΠ°. ΠΡΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½ΠΎ ΡΠ΅ΠΌΠΎ Π½Π°ΡΡΠΈΡΠΈ ΠΊΠ°ΠΊΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°ΡΠΈ Π Π’Π ΠΏΠ°ΠΊΠ΅ΡΠ΅ ΠΏΠΎΠΌΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° Π’Π‘Ρ Π°ΡΠΊ.
ΠΠ·Π²ΠΎΡ: Π²Π²Π².Ρ Π°Π±Ρ.ΡΠΎΠΌ