Архив рубрики: Freeswitch: Tips and Tricks

Конфигурация. Настройка компонентов FS для выполнения определенного задания. Приемы. Интересные заметки.

Freeswitch: Tone stream. Генерирование тонов

http://pro-voip.com.ua freeswitch

Что такое тон в контексте телефонии?

В двух словах, тон — это звуковой сигнал определенной частоты, определенной продолжительности, посылаемый телефонным оборудованием для информирования пользователя об определенном событии.

Например, длинный гудок, который мы слышим, когла поднимаем трубку, чтобы совершить звонок, — это ответ станции — тон «dial tone». Продолжительные гудки дозвона — «ringback tone». Короткие гудки, сообщающие, что пользователь занят — «busy tone».

 

Модуль mod_tone_stream

 

Генерированием тонов в Freeswitch занимается модуль mod_tone_stream. Отдельного файла настроек для данного модуля нет. Задание параметров выдаваемого тона происходит в диалплане.

Выглядит запись тона в обобщенном виде следующим образом:

tone_stream://[L=x;][v=y;]%(<on-duration>, <off-duration>, <freq-1> [, freq-2] [, freq-3] [, freq-n] [;loops=x])

  • L=x — создать x копий определенного тона в памяти перед проигрыванием. Отрицательное значение неприемлемо — L=-1 не работает. Если нужно сделать сигнал, повторяющийся неопределенное количество раз, пользуйтесь конструкцией loop=-1. L=x ставится в начале строки, задающей тон;
  • v=y — громкость тона в децибелах. «0» — максимальная громкость. Используются отрицательные значения;
  • on-duration — длительность звучания тона в милисекундах;
  • off-duration — длительность тишины (паузы) в милисекундах;
  • freg-1 … freg-n — задаем частоту в герцах;
  • ;loops=x  — повторить x раз; loop=-1 — бесконечный цикл. Генерирует тон и повторяет процесс генерации каждый раз до завершения цикла, в отличие от параметра L, который сначала создаст один длительный тон, который будет занимать место в памяти в x раз больше, а только потом его проиграет. Данный параметр записывается в конце строки.

 

freeswitch-tone-stream

 

Пример

«busy tone»

Проиграть 8 гудков сигнала «занято», длительность тона и тишины по 500 ms.

<action application="playback" data=tone_stream://L=8;%(500,500,480,620)" />

 

Параметры тонов в большинстве своем определены на национальном уровне. В разных странах может быть разное кол-во тонов и разные параметры для тонов одного и того же назначения.

Разнообразие тонов и их параметры по версии ITU-T можно посмотреть в Recommendation E.180/Q.35.