āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§āĻ° āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻāĻŽāĻžāĻ° āĻĨā§āĻā§ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§āĻā§
RTP āĻ¸ā§āĻā§āĻ°ā§āĻŽā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻāĻāĻŋ āĻ āĻĄāĻŋāĻ āĻ¸āĻāĻā§āĻ¤ āĻĒā§āĻ°ā§āĻ°āĻŖ āĻāĻ°āĻž
āĻļā§āĻˇā§
RTP āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ (āĻ°āĻŋāĻ¯āĻŧā§āĻ˛ āĻāĻžāĻāĻŽ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛) āĻ āĻ¨ā§āĻŦāĻžāĻĻ āĻāĻ°āĻž āĻŽāĻžāĻ¨ā§ āĻ°āĻŋāĻ¯āĻŧā§āĻ˛-āĻāĻžāĻāĻŽ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛, āĻāĻāĻŋ āĻ āĻĄāĻŋāĻ, āĻāĻŋāĻĄāĻŋāĻ, āĻĄā§āĻāĻž, āĻ°āĻŋāĻ¯āĻŧā§āĻ˛ āĻāĻžāĻāĻŽā§ āĻā§āĻ°āĻžāĻ¨ā§āĻ¸āĻŽāĻŋāĻļāĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻāĻŽāĻ¨ āĻ¸āĻŦāĻāĻŋāĻā§ āĻĒā§āĻ°ā§āĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻāĻāĻŋ āĻ āĻĄāĻŋāĻ āĻ¸āĻāĻā§āĻ¤ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻāĨ¤ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ā§āĻ° āĻ¨āĻŽāĻ¨ā§āĻ¯āĻŧāĻ¤āĻž āĻāĻŽāĻ¨ āĻ¯ā§ āĻāĻāĻŋ āĻāĻĒāĻ¨āĻžāĻā§ āĻĒā§āĻ°ā§āĻŦāĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻŽāĻžāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻ āĻĄāĻŋāĻ āĻ¸āĻāĻā§āĻ¤ āĻĒā§āĻ°ā§āĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧāĨ¤
āĻāĻāĻĄāĻŋāĻĒāĻŋ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻā§āĻ°āĻžāĻ¨ā§āĻ¸āĻŽāĻŋāĻļāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻžāĻ° āĻŽāĻžāĻ¨ā§ āĻā§āĻ°āĻžāĻ¨ā§āĻ¸āĻŽāĻŋāĻļāĻ¨ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĒā§āĻ¯āĻžāĻā§āĻā§āĻ° āĻā§āĻˇāĻ¤āĻŋ āĻŦā§āĻļ āĻā§āĻ°āĻšāĻŖāĻ¯ā§āĻā§āĻ¯āĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĒā§āĻ¯āĻžāĻā§āĻā§ āĻāĻāĻāĻŋ āĻŦāĻŋāĻļā§āĻˇ RTP āĻšā§āĻĄāĻžāĻ° āĻāĻŦāĻ āĻĒā§āĻ°ā§āĻ°āĻŋāĻ¤ āĻ¸āĻāĻā§āĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻĄā§āĻāĻž āĻŦā§āĻ˛āĻ āĻĨāĻžāĻā§āĨ¤ āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽā§ āĻāĻāĻāĻŋ āĻāĻ˛ā§āĻŽā§āĻ˛ā§āĻāĻžāĻŦā§ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻŋāĻ¤ āĻ¸āĻāĻā§āĻ¤ āĻā§āĻ¸ āĻļāĻ¨āĻžāĻā§āĻ¤āĻāĻžāĻ°ā§, āĻĒā§āĻ°ā§āĻ°āĻŖ āĻāĻ°āĻž āĻ¸āĻāĻā§āĻ¤ā§āĻ° āĻ§āĻ°āĻŖ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¤āĻĨā§āĻ¯ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ āĻ¨āĻ¨ā§āĻ¯ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻā§āĻ°āĻŽ āĻ¨āĻŽā§āĻŦāĻ° āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯āĻžāĻ¤ā§ āĻĒā§āĻ¯āĻžāĻā§āĻāĻā§āĻ˛āĻŋ āĻĄāĻŋāĻā§āĻĄ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¸āĻ āĻŋāĻ āĻā§āĻ°āĻŽā§ āĻ¸āĻžāĻāĻžāĻ¨ā§ āĻ¯āĻžāĻ¯āĻŧ, āĻ¤āĻž āĻ¨āĻŋāĻ°ā§āĻŦāĻŋāĻļā§āĻˇā§ āĻ¯ā§ āĻā§āĻ°āĻŽāĻžāĻ¨ā§āĻ¸āĻžāĻ°ā§ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻāĻžāĻ˛. āĻšā§āĻĄāĻžāĻ°ā§ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻ¤āĻĨā§āĻ¯āĻ āĻĨāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻ¤āĻĨāĻžāĻāĻĨāĻŋāĻ¤ āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨, āĻ¯āĻž āĻšā§āĻĄāĻžāĻ°āĻāĻŋāĻā§ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻāĻžāĻ¸ā§āĻā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻāĻŋāĻ¯ā§āĻāĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧāĨ¤
āĻĄāĻžāĻāĻž āĻŦā§āĻ˛āĻā§ āĻĒā§āĻ¯āĻžāĻā§āĻā§āĻ° āĻĒā§āĻ˛ā§āĻĄ āĻĨāĻžāĻā§āĨ¤ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻ āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ āĻ¸āĻāĻāĻ āĻ¨ āĻ˛ā§āĻĄā§āĻ° āĻ§āĻ°āĻ¨ā§āĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§, āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻŽāĻ¨ā§ āĻ¸āĻāĻā§āĻ¤, āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻ¸āĻāĻā§āĻ¤, āĻāĻāĻāĻŋ āĻāĻŋāĻĄāĻŋāĻ āĻāĻŋāĻ¤ā§āĻ° āĻ˛āĻžāĻāĻ¨ āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋāĻ° āĻ¨āĻŽā§āĻ¨āĻž āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻ˛ā§āĻĄā§āĻ° āĻ§āĻ°āĻ¨āĻāĻŋ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ¤-āĻŦāĻŋāĻ āĻ¸āĻāĻā§āĻ¯āĻž āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻ¸ā§āĻĒāĻžāĻ°āĻŋāĻļ RFC3551 (āĻ¨ā§āĻ¯ā§āĻ¨āĻ¤āĻŽ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻ¸āĻš āĻ āĻĄāĻŋāĻ āĻāĻŦāĻ āĻāĻŋāĻĄāĻŋāĻ āĻāĻ¨āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ RTP āĻĒā§āĻ°ā§āĻĢāĻžāĻāĻ˛) āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ§āĻ°āĻŖā§āĻ° āĻ˛ā§āĻĄ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°ā§; āĻ¸āĻāĻļā§āĻ˛āĻŋāĻˇā§āĻ āĻā§āĻŦāĻŋāĻ˛āĻāĻŋ āĻ˛ā§āĻĄā§āĻ° āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ° āĻŦāĻŋāĻŦāĻ°āĻŖ āĻāĻŦāĻ āĻā§āĻĄāĻā§āĻ˛āĻŋāĻ° āĻ āĻ°ā§āĻĨ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ āĻ¯āĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¤āĻžāĻ°āĻž āĻŽāĻ¨ā§āĻ¨ā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻāĻŋāĻā§ āĻā§āĻĄ āĻāĻ ā§āĻ°āĻāĻžāĻŦā§ āĻā§āĻ¨ā§ āĻ§āĻ°āĻ¨ā§āĻ° āĻ˛ā§āĻĄā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻŦāĻĻā§āĻ§ āĻ¨āĻ¯āĻŧ; āĻāĻā§āĻ˛āĻŋ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻŦāĻŋāĻāĻžāĻ°ā§ āĻ˛ā§āĻĄ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻāĻāĻāĻŋ āĻĄā§āĻāĻž āĻŦā§āĻ˛āĻā§āĻ° āĻāĻāĻžāĻ° āĻāĻĒāĻ°ā§ āĻ¸āĻ°ā§āĻŦā§āĻā§āĻ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻāĻāĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§ āĻ¯āĻž āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻā§ āĻŦāĻŋāĻāĻžāĻāĻ¨ āĻāĻžāĻĄāĻŧāĻžāĻ āĻĒā§āĻ°ā§āĻ°āĻŖ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ (MTU āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°)āĨ¤ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻāĻžāĻŦā§, āĻāĻāĻŋ 1500 āĻŦāĻžāĻāĻā§āĻ° āĻŦā§āĻļāĻŋ āĻ¨āĻ¯āĻŧāĨ¤ āĻāĻāĻāĻžāĻŦā§, āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸ā§āĻā§āĻ¨ā§āĻĄā§ āĻĒā§āĻ°ā§āĻ°āĻŋāĻ¤ āĻĄā§āĻāĻžāĻ° āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻŦāĻžāĻĄāĻŧāĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯, āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻŦāĻŋāĻ¨ā§āĻĻā§ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻĒā§āĻ¯āĻžāĻā§āĻā§āĻ° āĻāĻāĻžāĻ° āĻŦāĻžāĻĄāĻŧāĻžāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻĒāĻžāĻ āĻžāĻ¨ā§āĻ° āĻĢā§āĻ°āĻŋāĻā§āĻ¯āĻŧā§āĻ¨ā§āĻ¸āĻŋ āĻŦāĻžāĻĄāĻŧāĻžāĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻāĻāĻŋ āĻŽāĻŋāĻĄāĻŋāĻ¯āĻŧāĻž āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻžāĻ°ā§, āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°āĻ¯ā§āĻā§āĻ¯ āĻ¸ā§āĻāĻŋāĻāĨ¤ āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§ āĻāĻāĻŋ 50 Hz, āĻ āĻ°ā§āĻĨāĻžā§ āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸ā§āĻā§āĻ¨ā§āĻĄā§ 50 āĻĒā§āĻ¯āĻžāĻā§āĻāĨ¤ āĻāĻŽāĻ°āĻž āĻĒā§āĻ°ā§āĻ°āĻŋāĻ¤ RTP āĻĒā§āĻ¯āĻžāĻā§āĻā§āĻ° āĻā§āĻ°āĻŽāĻā§ RTP āĻ¸ā§āĻā§āĻ°ā§āĻŽ āĻŦāĻ˛āĻŦāĨ¤
āĻāĻ¤ā§āĻ¸ āĻāĻŦāĻ āĻ°āĻŋāĻ¸āĻŋāĻāĻžāĻ°ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĄā§āĻāĻž āĻĒā§āĻ°ā§āĻ°āĻŖ āĻļā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻāĻŋ āĻ¯āĻĨā§āĻˇā§āĻ āĻ¯ā§ āĻā§āĻ°āĻžāĻ¨ā§āĻ¸āĻŽāĻŋāĻāĻžāĻ° āĻ°āĻŋāĻ¸āĻŋāĻāĻžāĻ°ā§āĻ° āĻāĻāĻĒāĻŋ āĻ āĻŋāĻāĻžāĻ¨āĻž āĻāĻŦāĻ āĻĒā§āĻ°ā§āĻ āĻ¨āĻŽā§āĻŦāĻ° āĻ¯āĻž āĻāĻāĻŋ āĻā§āĻ°āĻšāĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¤āĻž āĻāĻžāĻ¨ā§ā§ˇ āĻ¸ā§āĻā§āĻ˛ā§. āĻā§āĻ¨ā§ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻžāĻĄāĻŧāĻžāĻ, āĻā§āĻ¸āĻāĻŋ āĻĄā§āĻāĻž āĻĒā§āĻ°ā§āĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻļā§āĻ°ā§ āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻ° āĻĢāĻ˛ā§ āĻ°āĻŋāĻ¸āĻŋāĻāĻžāĻ° āĻ āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§ āĻāĻāĻŋ āĻā§āĻ°āĻšāĻŖ āĻāĻŦāĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤āĨ¤ āĻŽāĻžāĻ¨ āĻ āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§, āĻāĻāĻāĻŋ RTP āĻ¸ā§āĻā§āĻ°āĻŋāĻŽ āĻĒā§āĻ°ā§āĻ°āĻŖ āĻŦāĻž āĻā§āĻ°āĻšāĻŖ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻĒā§āĻ°ā§āĻ āĻ¨āĻŽā§āĻŦāĻ°āĻāĻŋ āĻ āĻŦāĻļā§āĻ¯āĻ āĻ¸āĻŽāĻžāĻ¨ āĻšāĻ¤ā§ āĻšāĻŦā§āĨ¤
āĻāĻŽāĻ¨ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¤ā§ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻĒā§āĻ°āĻžāĻĒāĻā§āĻ° āĻ āĻŋāĻāĻžāĻ¨āĻž āĻāĻā§ āĻĨā§āĻā§ āĻāĻžāĻ¨āĻž āĻ āĻ¸āĻŽā§āĻāĻŦ, āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻ°āĻŋāĻ¸āĻŋāĻāĻžāĻ° āĻ¤āĻžāĻĻā§āĻ° āĻ āĻŋāĻāĻžāĻ¨āĻž āĻā§āĻĄāĻŧā§ āĻāĻ˛ā§ āĻ¯āĻžāĻ¯āĻŧ āĻāĻŦāĻ āĻā§āĻ°āĻžāĻ¨ā§āĻ¸āĻŽāĻŋāĻāĻžāĻ° āĻ°āĻŋāĻ¸āĻŋāĻāĻžāĻ°ā§āĻ° āĻāĻŋāĻā§ āĻ āĻ¨āĻ¨ā§āĻ¯ āĻ¨āĻžāĻŽ āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°ā§ āĻāĻāĻŋāĻ° āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻ¯ā§āĻ¸āĻŦ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻ¯ā§āĻāĻžāĻ¯ā§āĻā§āĻ° āĻā§āĻ¯āĻžāĻ¨ā§āĻ˛ā§āĻ° āĻā§āĻŖāĻŽāĻžāĻ¨ āĻŦāĻž āĻ°āĻŋāĻ¸āĻŋāĻāĻžāĻ°ā§āĻ° āĻā§āĻˇāĻŽāĻ¤āĻž āĻ āĻāĻžāĻ¨āĻž, āĻ¸ā§āĻāĻžāĻ¨ā§ āĻāĻāĻāĻŋ āĻĢāĻŋāĻĄāĻŦā§āĻ¯āĻžāĻ āĻā§āĻ¯āĻžāĻ¨ā§āĻ˛ āĻ¸āĻāĻāĻ āĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻ¯āĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ°āĻŋāĻ¸āĻŋāĻāĻžāĻ° āĻā§āĻ°āĻžāĻ¨ā§āĻ¸āĻŽāĻŋāĻāĻžāĻ°āĻā§ āĻ¤āĻžāĻ° āĻā§āĻˇāĻŽāĻ¤āĻž, āĻĒā§āĻ¯āĻžāĻā§āĻā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻŽāĻŋāĻ¸ āĻāĻ°āĻž āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻžāĻ¨āĻžāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻ āĻā§āĻ¯āĻžāĻ¨ā§āĻ˛āĻāĻŋ RTCP āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤ āĻāĻ āĻā§āĻ¯āĻžāĻ¨ā§āĻ˛ā§ āĻĒā§āĻ°ā§āĻ°āĻŋāĻ¤ āĻĒā§āĻ¯āĻžāĻā§āĻā§āĻ° āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ RFC 3605-āĻ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻ āĻā§āĻ¯āĻžāĻ¨ā§āĻ˛ā§ āĻ¤ā§āĻ˛āĻ¨āĻžāĻŽā§āĻ˛āĻāĻāĻžāĻŦā§ āĻ¸āĻžāĻŽāĻžāĻ¨ā§āĻ¯ āĻĄā§āĻāĻž āĻĒā§āĻ°ā§āĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸ā§āĻā§āĻ¨ā§āĻĄā§ 200..300 āĻŦāĻžāĻāĻ, āĻ¤āĻžāĻ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻāĻžāĻŦā§, āĻāĻ° āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻŦā§āĻāĻž āĻ¨āĻ¯āĻŧāĨ¤ āĻ¯ā§ āĻĒā§āĻ°ā§āĻ āĻ¨āĻŽā§āĻŦāĻ°ā§ RTCP āĻĒā§āĻ¯āĻžāĻā§āĻ āĻĒāĻžāĻ āĻžāĻ¨ā§ āĻšāĻ¯āĻŧ āĻ¸ā§āĻāĻŋ āĻ āĻŦāĻļā§āĻ¯āĻ āĻŦāĻŋāĻā§āĻĄāĻŧ āĻšāĻ¤ā§ āĻšāĻŦā§ āĻāĻŦāĻ āĻ¯ā§ āĻĒā§āĻ°ā§āĻ āĻ¨āĻŽā§āĻŦāĻ° āĻĨā§āĻā§ RTP āĻ¸ā§āĻā§āĻ°ā§āĻŽ āĻāĻ¸ā§ āĻ¤āĻžāĻ° āĻā§āĻ¯āĻŧā§ āĻŦāĻĄāĻŧ āĻšāĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖā§, āĻāĻŽāĻ°āĻž āĻāĻ āĻā§āĻ¯āĻžāĻ¨ā§āĻ˛āĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦ āĻ¨āĻž, āĻ¯ā§āĻšā§āĻ¤ā§ āĻ°āĻŋāĻ¸āĻŋāĻāĻžāĻ° āĻāĻŦāĻ āĻā§āĻ¯āĻžāĻ¨ā§āĻ˛ā§āĻ° āĻā§āĻˇāĻŽāĻ¤āĻž āĻ¸ā§āĻĒāĻˇā§āĻāĻ¤āĻ āĻāĻŽāĻžāĻĻā§āĻ°, āĻāĻāĻ¨ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻļāĻžāĻ˛ā§āĻ¨, āĻāĻžāĻšāĻŋāĻĻāĻžāĻ° āĻā§āĻ¯āĻŧā§ āĻŦā§āĻļāĻŋāĨ¤
āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽā§, āĻĄā§āĻāĻž āĻā§āĻ°āĻžāĻ¨ā§āĻ¸āĻŽāĻŋāĻļāĻ¨ āĻ¸āĻžāĻ°ā§āĻāĻŋāĻ, āĻĒā§āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§ āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻŦāĻŋāĻĒāĻ°ā§āĻ¤ā§, āĻĻā§āĻāĻŋ āĻ āĻāĻļā§ āĻŦāĻŋāĻāĻā§āĻ¤ āĻšāĻŦā§: āĻāĻāĻāĻŋ āĻā§āĻ°āĻžāĻ¨ā§āĻ¸āĻŽāĻŋāĻāĻŋāĻ āĻĒāĻžāĻĨ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻā§āĻ°āĻšāĻŖā§āĻ° āĻĒāĻĨāĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ āĻāĻļā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻ¨āĻŋāĻāĻ¸ā§āĻŦ āĻāĻĄāĻŧāĻŋāĻ° āĻā§āĻ¸ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦ, āĻ¯ā§āĻŽāĻ¨āĻāĻŋ āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽ āĻāĻŦāĻŋāĻ¤ā§ āĻĻā§āĻāĻžāĻ¨ā§ āĻšāĻ¯āĻŧā§āĻā§āĨ¤
RTP āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¤āĻžāĻĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻŽā§āĻā§ āĻ¯ā§āĻāĻžāĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻŦā§āĨ¤ āĻāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖā§, āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻāĻāĻŋ āĻŦāĻžāĻšā§āĻ¯āĻŋāĻ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¨ā§āĻ, āĻ¯ā§āĻšā§āĻ¤ā§ āĻā§āĻ°āĻžāĻ¨ā§āĻ¸āĻŽāĻŋāĻāĻžāĻ° āĻāĻŦāĻ āĻ°āĻŋāĻ¸āĻŋāĻāĻžāĻ° āĻāĻāĻ¯āĻŧāĻ āĻāĻāĻ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻžāĻ°ā§ āĻ āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤ āĻšāĻŦā§ - āĻĒā§āĻ¯āĻžāĻā§āĻāĻā§āĻ˛āĻŋ āĻāĻ° āĻāĻŋāĻ¤āĻ°ā§ āĻā§āĻ°āĻŽāĻŖ āĻāĻ°āĻŦā§āĨ¤
āĻāĻāĻāĻŋ RTP āĻ¸ā§āĻā§āĻ°ā§āĻŽ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻ¤ā§, āĻŽāĻŋāĻĄāĻŋāĻ¯āĻŧāĻž āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻžāĻ° āĻĻā§āĻāĻŋ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§: MS_RTP_SEND āĻāĻŦāĻ MS_RTP_RECVāĨ¤ āĻĒā§āĻ°āĻĨāĻŽāĻāĻŋ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧāĻāĻŋ āĻĒā§āĻ°ā§āĻ°āĻŖ āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻ°āĻāĻŋāĻĒāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽ āĻā§āĻ°āĻšāĻŖ āĻāĻ°ā§āĨ¤ āĻāĻ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ°āĻā§āĻ˛āĻŋ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻ¤āĻžāĻĻā§āĻ° āĻāĻāĻāĻŋ RTP āĻ¸ā§āĻļāĻ¨ āĻ āĻŦāĻā§āĻā§āĻā§ āĻāĻāĻāĻŋ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻĒāĻžāĻ¸ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§, āĻ¯āĻž āĻšāĻ¯āĻŧ āĻĄā§āĻāĻž āĻŦā§āĻ˛āĻā§āĻ° āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°ā§āĻŽāĻā§ RTP āĻĒā§āĻ¯āĻžāĻā§āĻā§āĻ° āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°ā§āĻŽā§ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻŦāĻž āĻŦāĻŋāĻĒāĻ°ā§āĻ¤āĻāĻŋ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻ¯ā§āĻšā§āĻ¤ā§ āĻŽāĻŋāĻĄāĻŋāĻ¯āĻŧāĻž āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻžāĻ°ā§āĻ° āĻ āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ āĻĄā§āĻāĻž āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ āĻāĻ°āĻāĻŋāĻĒāĻŋ āĻĒā§āĻ¯āĻžāĻā§āĻā§āĻ° āĻĄā§āĻāĻž āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ā§āĻ° āĻ¸āĻžāĻĨā§ āĻŽā§āĻ˛ā§ āĻ¨āĻž, āĻ¤āĻžāĻ MS_RTP_SEND-āĻ āĻĄā§āĻāĻž āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°āĻžāĻ° āĻāĻā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻāĻŋ āĻāĻ¨āĻā§āĻĄāĻžāĻ° āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¯āĻž 16-āĻŦāĻŋāĻ āĻ āĻĄāĻŋāĻ āĻ¸āĻŋāĻāĻ¨ā§āĻ¯āĻžāĻ˛ āĻ¨āĻŽā§āĻ¨āĻžāĻā§āĻ˛āĻŋāĻā§ āĻāĻ-āĻŦāĻŋāĻ āĻāĻ¨āĻā§āĻĄā§āĻĄā§ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ°āĻŋāĻ¤ āĻāĻ°ā§āĨ¤ u-law (mu-law). āĻĒā§āĻ°āĻžāĻĒā§āĻ¤āĻŋāĻ° āĻĻāĻŋāĻā§, āĻĄāĻŋāĻā§āĻĄāĻžāĻ° āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ° āĻŦāĻŋāĻĒāĻ°ā§āĻ¤ āĻĢāĻžāĻāĻļāĻ¨ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°ā§āĨ¤
āĻ¨ā§āĻā§ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽā§āĻ° āĻĒāĻžāĻ ā§āĻ¯ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯āĻž āĻāĻŋāĻ¤ā§āĻ°ā§ āĻĻā§āĻāĻžāĻ¨ā§ āĻ¸ā§āĻāĻŋāĻŽāĻāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ°ā§ (āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻ¨āĻžāĻ° āĻāĻā§ # āĻāĻŋāĻšā§āĻ¨āĻā§āĻ˛āĻŋ āĻ¸āĻ°āĻžāĻ¨ā§ āĻšāĻ¯āĻŧā§āĻā§, āĻ¸ā§āĻā§āĻ˛āĻŋ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻ¤ā§ āĻā§āĻ˛āĻŦā§āĻ¨ āĻ¨āĻž):
/* ФаКĐģ 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