Команда Busy()


Назначение

Устанавливает состояние "занято" и ждет окончания соединения

Описание

Busy()

Посылает в канал сигнал, информирующий о состоянии занятости абонента. Данная команда ждет, пока вызывающий абонент не положит трубку; после выполнения данной команды, не происходит выполнения дальнейших команд.

Заметьте, что эта команда НЕ посылает тональные сигналы занято пользователю. Если Вам необходимо это сделать, используйте команду Playtones(busy) ДО вызова этой команды. Для многих каналов, канальное оборудование или оконечные устройства берут на себя заботу о генерации аудиосигнала "занято" вызывающему абоненту. В принципе, SIP телефоны могут проигрывать свой сигнал занято абоненту, если только вы не использовали команду Playtones, но часто лучше использовать Playtones(Busy), чтобы аудиосигнал был стандартный, а не Busy();

Пример


exten => s,1,Answer ; Для того, чтобы проигрывать сигнал, сначала нужно принять вызов
exten => s,2,Playtones(busy) ; генерирование аудиосигналов коротких гудков "busy"
exten => s,3,Busy ; сигнализируем удаленной стороне, что линия занята. Ждем окончания соединения.


Замечание: Этот пример делает ответ на вызов, что будет понято многими АТС, как успешно выполненный вызов. Как это будет выглядеть, например, для payphone... Пользователь payphone звонит на "занятый" номер. Если вы "Ответили" на вызов по каналу связи для того, чтобы выполнить Playtones(Busy), состояние вызова у нас уже в отвеченом состоянии, и вызывающий абонент потерял лишний четвертак, наслаждаясь, сгенерированными нами, сигналами "занято". Команда "Playback", в некоторых случаях, может проигрывать сообщения вызывающему абоненту без установки состояния соединения. Это может быть лучшем решением проблемы, однако, команда playback не поддерживает генерацию тонов телефонной сигнализации.

Код возврата

Всегда возвращает -1.

Ссылки по теме:

  • indications.conf: Конфигурация некоторых аудиосигналов
  • Asterisk cmd Playtones