Asterisk. Команда WaitForSilence.

WaitForSilence() - Ожидает заданное количество пауз.

WaitForSilence(необходимаяпауза[,повтор[,времяожидания]])

Ожидает заданного параметром повтор количества пауз длительностью, в миллисекундах, определенной параметром необходимаяпауза. Если параметр повтор не задан, приложение ожидает заданного параметром необходимаяпауза количества миллисекунд тишины.
Если задана опция времяожидания, это приложение возвратится к следующему приоритету диалплана по истечении заданного количества секунд, даже если пауза не была выявлена.

Опцию времяожидания  нужно использовать с осторожностью, так как она может аннулировать цель применения этого приложения, которая состоит в том, чтобы неопределенно долго ожидать тишины в линии. Желательно задать очень большое время ожидания, только чтобы избежать бесконечного цикла в случаях, когда тишина не устанавливается никогда.
Это приложение задает для переменной канала WAITSTATUS значение SILENCE или TIMEOUT.

Пример:

; ожидаем трех пауз по 300 мс
exten => 123,WaitForSilence(300,3)

 

См. также: WaitForRing()