ВидеоКонф(ВКС)  ::   Чат  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

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

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

Модератор: april22

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

Сообщение lib_33 » 01 июл 2021, 16:56

Привет.
Помогите пожалуйста разобраться со скриптом. Необходимо проверять в текстовом файле количество символов построчно!
И к примеру если строка равняется трем символам, то меняем канал в 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
lib_33
 
Сообщений: 2
Зарегистрирован: 01 июл 2021, 16:50

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

Сообщение ded » 02 июл 2021, 17:12

Вы ошиблись форумом.
ded
 
Сообщений: 15246
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение lib_33 » 02 июл 2021, 17:38

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
lib_33
 
Сообщений: 2
Зарегистрирован: 01 июл 2021, 16:50


Вернуться в Вопросы новичков

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12

© 2008 — 2022 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH