āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§āĻ° āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻāĻŽāĻžāĻ° āĻĨā§āĻā§ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§āĻā§
āĻāĻāĻāĻŋ āĻā§āĻ¨ āĻā§āĻ¨āĻžāĻ°ā§āĻāĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž
āĻĒā§āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§
āĻāĻ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦ āĻ¯āĻž āĻāĻāĻāĻŋ āĻ¸āĻžāĻāĻ¨ā§āĻĄ āĻāĻžāĻ°ā§āĻĄā§ āĻāĻāĻāĻŋ āĻā§āĻ¨ āĻ¸āĻāĻā§āĻ¤ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻāĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻžāĻĻā§āĻ° āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ°āĻā§āĻ˛āĻŋāĻā§ āĻ¨ā§āĻā§ āĻĻā§āĻāĻžāĻ¨ā§ āĻ¸āĻžāĻāĻ¨ā§āĻĄ āĻā§āĻ¨āĻžāĻ°ā§āĻāĻ° āĻ¸āĻžāĻ°ā§āĻāĻŋāĻā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§:
āĻāĻŽāĻ°āĻž āĻĄāĻžāĻ¯āĻŧāĻžāĻā§āĻ°āĻžāĻŽāĻāĻŋ āĻŦāĻžāĻŽ āĻĨā§āĻā§ āĻĄāĻžāĻ¨ā§ āĻĒāĻĄāĻŧāĻŋ, āĻāĻāĻŋ āĻ¸ā§āĻ āĻĻāĻŋāĻ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻĄā§āĻāĻž āĻĒā§āĻ°āĻŦāĻžāĻš āĻāĻ˛ā§āĨ¤ āĻ¤ā§āĻ°āĻā§āĻ˛āĻŋāĻ āĻāĻ āĻĻāĻŋāĻā§ āĻāĻā§āĻāĻŋāĻ¤ āĻāĻ°ā§āĨ¤ āĻāĻ¯āĻŧāĻ¤āĻā§āĻˇā§āĻ¤ā§āĻ°āĻā§āĻ˛āĻŋ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ°āĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§ āĻ¯āĻž āĻĄā§āĻāĻž āĻŦā§āĻ˛āĻāĻā§āĻ˛āĻŋāĻā§ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°ā§ āĻāĻŦāĻ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻāĻāĻāĻĒā§āĻ āĻāĻ°ā§āĨ¤ āĻāĻ¯āĻŧāĻ¤āĻā§āĻˇā§āĻ¤ā§āĻ°ā§āĻ° āĻāĻŋāĻ¤āĻ°ā§, āĻāĻ° āĻā§āĻŽāĻŋāĻāĻž āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ°ā§āĻ° āĻ§āĻ°āĻ¨āĻāĻŋ āĻ¨ā§āĻā§āĻ° āĻŦāĻĄāĻŧ āĻ āĻā§āĻˇāĻ°ā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻāĻ¯āĻŧāĻ¤āĻā§āĻˇā§āĻ¤ā§āĻ°āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§ āĻ¤ā§āĻ°āĻā§āĻ˛āĻŋ āĻšāĻ˛ āĻĄā§āĻāĻž āĻ¸āĻžāĻ°āĻŋ āĻ¯āĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻĄā§āĻāĻž āĻŦā§āĻ˛āĻāĻā§āĻ˛āĻŋ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ° āĻĨā§āĻā§ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ°ā§ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻāĻžāĻŦā§, āĻāĻāĻāĻŋ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ°ā§ āĻ āĻ¨ā§āĻ āĻāĻ¨āĻĒā§āĻ āĻāĻŦāĻ āĻāĻāĻāĻĒā§āĻ āĻĨāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻāĻāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻĄāĻŧāĻŋāĻ° āĻāĻ¤ā§āĻ¸ āĻĻāĻŋāĻ¯āĻŧā§ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧ, āĻ¯āĻž āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ°āĻā§āĻ˛āĻŋāĻ¤ā§ āĻĄā§āĻāĻž āĻāĻŖāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŽāĻ¨ āĻāĻ¤āĻŋ āĻ¸ā§āĻ āĻāĻ°ā§āĨ¤ āĻāĻ° āĻāĻĄāĻŧāĻŋ āĻāĻā§āĻ° āĻ āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§, āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ° āĻ¤āĻžāĻ° āĻāĻ¨āĻĒā§āĻā§ āĻĨāĻžāĻāĻž āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĄā§āĻāĻž āĻŦā§āĻ˛āĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°ā§āĨ¤ āĻāĻŦāĻ āĻ¸āĻžāĻ°āĻŋāĻ¤ā§ āĻĢāĻ˛āĻžāĻĢāĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻŦā§āĻ˛āĻ āĻ°āĻžāĻā§āĨ¤ āĻĒā§āĻ°āĻĨāĻŽāĻ¤, āĻāĻĄāĻŧāĻŋāĻ° āĻā§āĻ¸ā§āĻ° āĻ¨āĻŋāĻāĻāĻ¤āĻŽ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ°āĻāĻŋ āĻāĻŖāĻ¨āĻž āĻāĻ°ā§, āĻ¤āĻžāĻ°āĻĒāĻ° āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ°āĻā§āĻ˛āĻŋ āĻ¤āĻžāĻ° āĻāĻāĻāĻĒā§āĻāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ (āĻ āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻāĻāĻāĻĒā§āĻ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§) āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋāĨ¤ āĻā§āĻāĻ¨ā§āĻ° āĻļā§āĻˇ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ°āĻāĻŋ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ°āĻŖ āĻļā§āĻˇ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§, āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻāĻĄāĻŧāĻŋ āĻ¨āĻž āĻāĻ¸āĻž āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻļāĻ¨ āĻŦāĻ¨ā§āĻ§ āĻšāĻ¯āĻŧā§ āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻŦāĻŋāĻ, āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§, 10 āĻŽāĻŋāĻ˛āĻŋāĻ¸ā§āĻā§āĻ¨ā§āĻĄā§āĻ° āĻŦā§āĻ¯āĻŦāĻ§āĻžāĻ¨ āĻ āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°ā§āĨ¤
āĻāĻŽāĻžāĻĻā§āĻ° āĻĄāĻžāĻ¯āĻŧāĻžāĻā§āĻ°āĻžāĻŽā§ āĻĢāĻŋāĻ°ā§ āĻāĻ¸āĻž āĻ¯āĻžāĻāĨ¤ āĻā§āĻ˛āĻ āĻ¸āĻžāĻāĻā§āĻ˛ āĻ¸āĻžāĻāĻ˛ā§āĻ¨ā§āĻ¸ āĻ¸ā§āĻ°ā§āĻ¸ā§āĻ° āĻāĻ¨āĻĒā§āĻā§ āĻāĻ¸ā§; āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ°, āĻ¯ā§āĻāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻā§āĻ˛āĻ āĻ¸āĻžāĻāĻā§āĻ˛ā§āĻ° āĻāĻāĻāĻĒā§āĻā§ āĻļā§āĻ¨ā§āĻ¯ āĻ¯ā§āĻā§āĻ¤ āĻĄā§āĻāĻžāĻ° āĻŦā§āĻ˛āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻ¸ā§āĻ¤ āĻĨāĻžāĻā§āĨ¤ āĻ¯āĻĻāĻŋ āĻāĻŽāĻ°āĻž āĻāĻ āĻŦā§āĻ˛āĻāĻāĻŋāĻā§ āĻļāĻŦā§āĻĻā§āĻ° āĻ¨āĻŽā§āĻ¨āĻžāĻ° āĻŦā§āĻ˛āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°āĻŋ, āĻ¤āĻŦā§ āĻāĻāĻŋ āĻ¨ā§āĻ°āĻŦāĻ¤āĻž āĻāĻžāĻĄāĻŧāĻž āĻāĻ° āĻāĻŋāĻā§āĻ āĻ¨āĻ¯āĻŧāĨ¤ āĻĒā§āĻ°āĻĨāĻŽ āĻ¨āĻāĻ°ā§, āĻ¨ā§āĻ°āĻŦāĻ¤āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻĄā§āĻāĻž āĻŦā§āĻ˛āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻ āĻĻā§āĻā§āĻ¤ āĻŦāĻ˛ā§ āĻŽāĻ¨ā§ āĻšāĻ¯āĻŧ - āĻ¸āĻ°ā§āĻŦā§āĻĒāĻ°āĻŋ, āĻāĻāĻŋ āĻļā§āĻ¨āĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¨āĻž, āĻ¤āĻŦā§ āĻāĻ āĻŦā§āĻ˛āĻāĻā§āĻ˛āĻŋ āĻ¸āĻžāĻāĻ¨ā§āĻĄ āĻ¸āĻŋāĻāĻ¨ā§āĻ¯āĻžāĻ˛ āĻā§āĻ¨āĻžāĻ°ā§āĻāĻ°ā§āĻ° āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧāĨ¤ āĻā§āĻ¨āĻžāĻ°ā§āĻāĻ° āĻāĻ āĻŦā§āĻ˛āĻāĻā§āĻ˛āĻŋāĻā§ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻāĻž āĻāĻžāĻāĻā§āĻ° āĻŽāĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§, āĻ¤āĻžāĻĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻļāĻŦā§āĻĻā§āĻ° āĻ¨āĻŽā§āĻ¨āĻž āĻ°ā§āĻāĻ°ā§āĻĄ āĻāĻ°ā§āĨ¤ āĻ¤āĻžāĻ° āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻ āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¯āĻŧ, āĻā§āĻ¨āĻžāĻ°ā§āĻāĻ°āĻāĻŋ āĻŦāĻ¨ā§āĻ§ āĻšāĻ¯āĻŧā§ āĻ¯āĻžāĻ¯āĻŧ āĻāĻŦāĻ āĻā§āĻŦāĻ˛ āĻāĻ¨āĻĒā§āĻ āĻŦā§āĻ˛āĻāĻā§āĻ˛āĻŋāĻā§ āĻāĻāĻāĻĒā§āĻā§ āĻĢāĻ°ā§āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻāĻ°ā§āĨ¤ āĻāĻāĻāĻžāĻŦā§, āĻ¨ā§āĻ°āĻŦāĻ¤āĻžāĻ° āĻŦā§āĻ˛āĻāĻā§āĻ˛āĻŋ āĻŦāĻžāĻŽ āĻĨā§āĻā§ āĻĄāĻžāĻ¨ā§ āĻ¸āĻŽāĻā§āĻ° āĻ¸āĻžāĻ°ā§āĻāĻŋāĻā§āĻ° āĻŽāĻ§ā§āĻ¯ āĻĻāĻŋāĻ¯āĻŧā§ āĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻĒāĻžāĻ¸ āĻāĻ°ā§, āĻ¸āĻžāĻāĻ¨ā§āĻĄ āĻāĻžāĻ°ā§āĻĄā§ āĻļā§āĻˇ āĻšāĻ¯āĻŧāĨ¤ āĻ¯āĻž āĻ¨āĻŋāĻāĻļāĻŦā§āĻĻā§ āĻ¤āĻžāĻ° āĻāĻ¨āĻĒā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻ¸āĻžāĻ°āĻŋ āĻĨā§āĻā§ āĻŦā§āĻ˛āĻ āĻ¨ā§āĻ¯āĻŧāĨ¤
āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻā§āĻ¨āĻžāĻ°ā§āĻāĻ°āĻā§ āĻļāĻŦā§āĻĻ āĻŦāĻžāĻāĻžāĻ¨ā§āĻ° āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ˛ā§ āĻ¸āĻŦāĻāĻŋāĻā§ āĻŦāĻĻāĻ˛ā§ āĻ¯āĻžāĻ¯āĻŧ, āĻāĻāĻŋ āĻļāĻŦā§āĻĻā§āĻ° āĻ¨āĻŽā§āĻ¨āĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻļā§āĻ°ā§ āĻāĻ°ā§ āĻāĻŦāĻ āĻ¸ā§āĻā§āĻ˛āĻŋāĻā§ āĻāĻ¨āĻĒā§āĻ āĻŦā§āĻ˛āĻā§āĻ° āĻ¨āĻŽā§āĻ¨āĻž āĻĻāĻŋāĻ¯āĻŧā§ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°ā§ āĻāĻŦāĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻŦā§āĻ˛āĻāĻā§āĻ˛āĻŋāĻā§ āĻāĻāĻāĻĒā§āĻā§ āĻ°āĻžāĻā§āĨ¤ āĻ¸āĻžāĻāĻ¨ā§āĻĄ āĻāĻžāĻ°ā§āĻĄ āĻ¸āĻžāĻāĻ¨ā§āĻĄ āĻŦāĻžāĻāĻ¤ā§ āĻļā§āĻ°ā§ āĻāĻ°ā§āĨ¤ āĻ¨ā§āĻā§ āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻ¯āĻž āĻāĻĒāĻ°ā§ āĻŦāĻ°ā§āĻŖāĻŋāĻ¤ āĻāĻžāĻā§āĻ° āĻ¸ā§āĻāĻŋāĻŽ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ°ā§:
/* ФаКĐģ mstest2.c */
#include <mediastreamer2/msfilter.h>
#include <mediastreamer2/msticker.h>
#include <mediastreamer2/dtmfgen.h>
#include <mediastreamer2/mssndcard.h>
int main()
{
ms_init();
/* ХОСдаĐĩĐŧ ŅĐēСĐĩĐŧĐŋĐģŅŅŅ ŅиĐģŅŅŅОв. */
MSFilter *voidsource = ms_filter_new(MS_VOID_SOURCE_ID);
MSFilter *dtmfgen = ms_filter_new(MS_DTMF_GEN_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);
/* ХОСдаĐĩĐŧ ŅиĐēĐĩŅ. */
MSTicker *ticker = ms_ticker_new();
/* ĐĄĐžĐĩдиĐŊŅĐĩĐŧ ŅиĐģŅŅŅŅ в ŅĐĩĐŋĐžŅĐēŅ. */
ms_filter_link(voidsource, 0, dtmfgen, 0);
ms_filter_link(dtmfgen, 0, snd_card_write, 0);
/* ĐОдĐēĐģŅŅĐ°ĐĩĐŧ иŅŅĐžŅĐŊиĐē ŅĐ°ĐēŅОв. */
ms_ticker_attach(ticker, voidsource);
/* ĐĐēĐģŅŅĐ°ĐĩĐŧ СвŅĐēОвОК ĐŗĐĩĐŊĐĩŅĐ°ŅĐžŅ. */
char key='1';
ms_filter_call_method(dtmfgen, MS_DTMF_GEN_PLAY, (void*)&key);
/* ĐĐ°ĐĩĐŧ, вŅĐĩĐŧŅ, ŅŅОйŅ вŅĐĩ ĐąĐģĐžĐēи Đ´Đ°ĐŊĐŊŅŅ
ĐąŅĐģи ĐŋĐžĐģŅŅĐĩĐŊŅ СвŅĐēОвОК ĐēĐ°ŅŅОК.*/
ms_sleep(2);
}
āĻŽāĻŋāĻĄāĻŋāĻ¯āĻŧāĻž āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻžāĻ° āĻļā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§, āĻ¤āĻŋāĻ¨āĻāĻŋ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ: voidsource, dtmfgen, snd_card_write. āĻāĻāĻāĻŋ āĻāĻĄāĻŧāĻŋ āĻā§āĻ¸ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ.
āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸āĻžāĻ°ā§āĻāĻŋāĻ āĻ āĻ¨ā§āĻ¸āĻžāĻ°ā§ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ°āĻā§āĻ˛āĻŋāĻā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻāĻŦāĻ āĻāĻĄāĻŧāĻŋāĻ° āĻāĻ¤ā§āĻ¸āĻāĻŋ āĻ āĻŦāĻļā§āĻ¯āĻ āĻ¸āĻ°ā§āĻŦāĻļā§āĻˇā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻĨāĻžāĻāĻ¤ā§ āĻšāĻŦā§, āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻ° āĻĒāĻ°ā§ āĻ¸āĻžāĻ°ā§āĻāĻŋāĻāĻāĻŋ āĻ āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§ āĻāĻžāĻ āĻļā§āĻ°ā§ āĻāĻ°āĻŦā§āĨ¤ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻāĻāĻŋ āĻ āĻ¸āĻŽāĻžāĻĒā§āĻ¤ āĻ¸āĻžāĻ°ā§āĻāĻŋāĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻāĻĄāĻŧāĻŋāĻ° āĻāĻ¤ā§āĻ¸ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°ā§āĻ¨, āĻ¤āĻžāĻšāĻ˛ā§ āĻŽāĻŋāĻĄāĻŋāĻ¯āĻŧāĻž āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻžāĻ°āĻāĻŋ āĻā§āĻ°ā§āĻ¯āĻžāĻļ āĻšāĻ¯āĻŧā§ āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¯āĻĻāĻŋ āĻāĻāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻ¨āĻĒā§āĻ āĻŦāĻž āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻāĻāĻĒā§āĻ "āĻŦāĻžāĻ¤āĻžāĻ¸ā§ āĻā§āĻ˛āĻ¨ā§āĻ¤" (āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻ¨āĻ¯āĻŧ) āĻ¸āĻš āĻā§āĻāĻ¨ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ āĻ¨ā§āĻ¤āĻ¤ āĻāĻāĻāĻŋ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ° āĻ¸āĻ¨āĻžāĻā§āĻ¤ āĻāĻ°ā§āĨ¤
āĻ¸āĻāĻ¯ā§āĻ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ° āĻĢāĻžāĻāĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
ms_filter_link(src, src_out, dst, dst_in)
āĻ¯ā§āĻāĻžāĻ¨ā§ āĻĒā§āĻ°āĻĨāĻŽ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻšāĻ˛ āĻ¸ā§āĻ°ā§āĻ¸ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ°ā§āĻ° āĻāĻāĻāĻŋ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°, āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻšāĻ˛ āĻ¸ā§āĻ°ā§āĻ¸ āĻāĻāĻāĻĒā§āĻ āĻ¨āĻŽā§āĻŦāĻ° (āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻŦā§āĻ¨ āĻ¯ā§ āĻāĻ¨āĻĒā§āĻ āĻāĻŦāĻ āĻāĻāĻāĻĒā§āĻ āĻļā§āĻ¨ā§āĻ¯ āĻĨā§āĻā§ āĻļā§āĻ°ā§ āĻāĻ°ā§ āĻ¸āĻāĻā§āĻ¯āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧ)āĨ¤ āĻ¤ā§āĻ¤ā§āĻ¯āĻŧ āĻ¯ā§āĻā§āĻ¤āĻŋāĻāĻŋ āĻ°āĻŋāĻ¸āĻŋāĻāĻžāĻ° āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ°ā§āĻ° āĻāĻāĻāĻŋ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°, āĻāĻ¤ā§āĻ°ā§āĻĨāĻāĻŋ āĻ°āĻŋāĻ¸āĻŋāĻāĻžāĻ° āĻāĻ¨āĻĒā§āĻ āĻ¨āĻŽā§āĻŦāĻ°āĨ¤
āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ° āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻ°āĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻāĻĄāĻŧāĻŋāĻ° āĻāĻ¤ā§āĻ¸āĻāĻŋ āĻ¸āĻ°ā§āĻŦāĻļā§āĻˇ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻ°āĻ¯āĻŧā§āĻā§ (āĻāĻ° āĻĒāĻ°ā§ āĻāĻŽāĻ°āĻž āĻāĻāĻŋāĻā§ āĻā§āĻŦāĻ˛ āĻāĻāĻāĻŋ āĻāĻŋāĻāĻžāĻ° āĻŦāĻ˛āĻŦ)āĨ¤ āĻāĻ° āĻĒāĻ°ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸āĻžāĻāĻ¨ā§āĻĄ āĻ¸āĻžāĻ°ā§āĻāĻŋāĻ āĻāĻžāĻ āĻļā§āĻ°ā§ āĻāĻ°ā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻžāĻ° āĻ¸ā§āĻĒā§āĻāĻžāĻ°ā§ āĻāĻāĻ¨āĻ āĻāĻŋāĻā§āĻ āĻļā§āĻ¨āĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¨āĻž - āĻ¸āĻžāĻāĻ¨ā§āĻĄ āĻā§āĻ¨āĻžāĻ°ā§āĻāĻ°āĻāĻŋ āĻŦāĻ¨ā§āĻ§ āĻšāĻ¯āĻŧā§ āĻ¯āĻžāĻ¯āĻŧ āĻāĻŦāĻ āĻ¨ā§āĻ°āĻŦāĻ¤āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻāĻ¨āĻĒā§āĻ āĻĄā§āĻāĻž āĻŦā§āĻ˛āĻā§āĻ° āĻŽāĻ§ā§āĻ¯ āĻĻāĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻāĻāĻāĻŋ āĻā§āĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻļā§āĻ°ā§ āĻāĻ°āĻ¤ā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻā§āĻ¨āĻžāĻ°ā§āĻāĻ° āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋ āĻāĻžāĻ˛āĻžāĻ¤ā§ āĻšāĻŦā§āĨ¤
āĻāĻŽāĻ°āĻž āĻĢā§āĻ¨ā§ "1" āĻŦā§āĻ¤āĻžāĻŽ āĻāĻŋāĻĒāĻžāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻāĻāĻāĻŋ āĻā§-āĻā§āĻ¨ (DTMF) āĻ¸āĻāĻā§āĻ¤ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦāĨ¤ āĻāĻāĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻ°āĻž āĻĢāĻžāĻāĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋ ms_filter_call_method() āĻāĻŽāĻ°āĻž MS_DTMF_GEN_PLAY āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§ āĻāĻ˛ āĻāĻ°āĻŋ, āĻāĻāĻŋāĻā§ āĻāĻāĻāĻŋ āĻ¯ā§āĻā§āĻ¤āĻŋ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĒāĻžāĻ¸ āĻāĻ°ā§ āĻā§āĻĄā§āĻ° āĻāĻāĻāĻŋ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻ¯āĻž āĻĒā§āĻ˛ā§āĻŦā§āĻ¯āĻžāĻ āĻ¸āĻāĻā§āĻ¤ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻā§āĻāĻ¤āĻŋāĻĒā§āĻ°ā§āĻŖ āĻšāĻāĻ¯āĻŧāĻž āĻāĻāĻŋāĻ¤āĨ¤
āĻ¯āĻž āĻ āĻŦāĻļāĻŋāĻˇā§āĻ āĻĨāĻžāĻā§ āĻ¤āĻž āĻšāĻ˛ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻāĻŽā§āĻĒāĻžāĻāĻ˛ āĻāĻ°āĻž:
$ gcc mstest2.c -o mstest2 `pkg-config mediastreamer --libs --cflags`
āĻāĻŦāĻ āĻāĻžāĻ˛āĻžāĻ¨:
$ ./mstest2
āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻāĻŋ āĻļā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§, āĻāĻĒāĻ¨āĻŋ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻžāĻ° āĻ¸ā§āĻĒā§āĻāĻžāĻ°ā§ āĻĻā§āĻāĻŋ āĻā§āĻ¨ āĻ¸āĻŽāĻ¨ā§āĻŦāĻŋāĻ¤ āĻāĻāĻāĻŋ āĻā§āĻ āĻļāĻŦā§āĻĻ āĻ¸āĻāĻā§āĻ¤ āĻļā§āĻ¨āĻ¤ā§ āĻĒāĻžāĻŦā§āĻ¨āĨ¤
āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻ¸āĻžāĻāĻ¨ā§āĻĄ āĻ¸āĻžāĻ°ā§āĻāĻŋāĻ āĻ¤ā§āĻ°āĻŋ āĻāĻŦāĻ āĻāĻžāĻ˛ā§ āĻāĻ°ā§āĻāĻŋāĨ¤ āĻāĻŽāĻ°āĻž āĻĻā§āĻā§āĻāĻŋ āĻā§āĻāĻžāĻŦā§ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ° āĻāĻ¨āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻ¸ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧ, āĻā§āĻāĻžāĻŦā§ āĻ¸ā§āĻā§āĻ˛āĻŋāĻā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻā§āĻāĻžāĻŦā§ āĻ¤āĻžāĻĻā§āĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§āĻ˛āĻŋāĻā§ āĻāĻ˛ āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧāĨ¤ āĻ¯āĻĻāĻŋāĻ āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻ¸āĻžāĻĢāĻ˛ā§āĻ¯ā§ āĻā§āĻļāĻŋ, āĻ¤āĻŦā§āĻ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻāĻŋāĻ¤ā§ āĻŽāĻ¨ā§āĻ¯ā§āĻ āĻĻāĻŋāĻ¤ā§ āĻšāĻŦā§ āĻ¯ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻāĻŋ āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨ āĻāĻ°āĻžāĻ° āĻāĻā§ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻž āĻŽā§āĻŽāĻ°āĻŋāĻā§ āĻŽā§āĻā§āĻ¤ āĻāĻ°ā§ āĻ¨āĻžāĨ¤ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ā§
āĻāĻ¤ā§āĻ¸: www.habr.com