Поступила задача создать сервис, который будет обзванивать автоматически абонентов по списку в файле и проигрывать им уведомление в wav формате. Делаем обзвонщик.
Он состоит в первую очередь из скрипта autodial.sh:
#!/bin/sh # Пауза между обзвонами pause=5 # Директория для файлов call spooldir=/var/spool/asterisk # Список номеров для обзвона (каждый номер с новой строки) diallist=/home/diallist.txt echo `date`": Start dialing with $pause second pause" while read number; do echo "Channel: Local/$number@office MaxRetries: 3 RetryTime: 15 WaitTime: 30 Context: autodial-info Extension: 555 Callerid: 555 Account: autodialer Priority: 1" > $spooldir/tmp/$number chmod 777 $spooldir/tmp/$number chown asterisk:asterisk $spooldir/tmp/$number mv $spooldir/tmp/$number $spooldir/outgoing echo "$number" sleep $pause done < $diallist echo "Done" exit 0
Итак, этот скрипт создает call файлы с номерами из списка diallist.txt и астериск начинает обзвон. 3 попытки дозвона, через 15 секунд, ожидание 30 секунд.
Контекст набирателя:
[office]
# здесь основной контекст, по которому можно дозвониться абоненту (у меня это внутренняя телефония)
Контекст информатора:
[autodial-info]
exten => 555,1,Answer
exten => 555,n,Wait(3)
exten => 555,n,Background(announcement)
exten => 555,n,Hangup
Собственно и все. По желанию с помощью System можно сделать, чтобы скрипт запускался по звонку на определенный номер.
exten => 666,1,System(/home/autodial.sh &)
не подскажете, а как можно отмечать сколько времени прошло, после прослушивания приветствия до ответа оператором?