VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Модернизировать скрипт

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модераторы: april22, Zavr2008

Ответить
lib_33
Сообщения: 2
Зарегистрирован: 01 июл 2021, 15:50

Модернизировать скрипт

Сообщение lib_33 »

Привет.
Помогите пожалуйста разобраться со скриптом. Необходимо проверять в текстовом файле количество символов построчно!
И к примеру если строка равняется трем символам, то меняем канал в call файле на такой то, если не равно трем меняем на другой.

#!/bin/sh

while read number; do

cat <<EOF > /var/spool/asterisk/tmp/$number

Channel: SIP/0007/$number
Callerid: $number
MaxRetries: 2
RetryTime: 20
WaitTime: 30
Context: room402
Extension: confroom402
Priority: 1

EOF

chown root:root /var/spool/asterisk/tmp/$number
mv /var/spool/asterisk/tmp/* /var/spool/asterisk/outgoing

echo "$number"

number=`expr $number + 1`

while [ "$?" -eq "0" ]

do
count_files ()

{

if [ "$count_f" -eq "30" ]; then

sleep 10

return 0

else

return 1

fi

}

count_files

done

done < /var/spool/asterisk/calllist/call-list_test.txt

exit 0
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

Re: Модернизировать скрипт

Сообщение ded »

Вы ошиблись форумом.
lib_33
Сообщения: 2
Зарегистрирован: 01 июл 2021, 15:50

Re: Модернизировать скрипт

Сообщение lib_33 »

ded писал(а):Вы ошиблись форумом.
Решение
#!/bin/sh

while read number; do

cat <<EOF > /var/spool/asterisk/tmp/$number

Channel: SIP/0007/$number
Callerid: $number
RetryTime: 20
WaitTime: 30
Context: room401
Extension: confroom401
Priority: 1

EOF

if [[ ${#number} < 4 ]] ; then
CHANNEL="Channel: SIP\/cucm\/${number}"
sed -i "s/^Channel: .*/${CHANNEL}/g" /var/spool/asterisk/tmp/$number
fi


chown root:root /var/spool/asterisk/tmp/$number
mv /var/spool/asterisk/tmp/* /var/spool/asterisk/outgoing

echo "$number"

number=`expr $number + 1`

while [ "$?" -eq "0" ]

do
count_files ()

{

count_f=`ls /var/spool/asterisk/outgoing | wc -l`

if [ "$count_f" -eq "30" ]; then

sleep 10

return 0

else

return 1

fi

}

count_files

done

done < /var/spool/asterisk/calllist/call-list.txt

exit 0
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH