55 lines
2.3 KiB
Bash
55 lines
2.3 KiB
Bash
#!/bin/bash
|
||
# Применение правок автодозвона SuperSam на АТС. Идемпотентно, с проверкой.
|
||
set -e
|
||
cd /root/ats-patch
|
||
|
||
echo "=== 1. extensions.conf: добавить контекст SS-Autocall-Slot ==="
|
||
if grep -q '^\[SS-Autocall-Slot\]' /etc/asterisk/extensions.conf; then
|
||
echo " уже есть, пропускаю"
|
||
else
|
||
cat ss-autocall-context.txt >> /etc/asterisk/extensions.conf
|
||
echo " добавлен"
|
||
fi
|
||
|
||
echo "=== 2. modules.conf: автозагрузка pbx_spool + res_agi ==="
|
||
if grep -q '^load = pbx_spool.so' /etc/asterisk/modules.conf; then
|
||
echo " pbx_spool уже есть"
|
||
else
|
||
# вставить после 'load = pbx_config.so' в секции Core/PBX
|
||
sed -i '/^load = pbx_config.so/a load = pbx_spool.so\nload = res_agi.so' /etc/asterisk/modules.conf
|
||
echo " добавлены pbx_spool + res_agi"
|
||
fi
|
||
|
||
echo "=== 3. ss-dialog.agi: вставить curl результата перед HANGUP ==="
|
||
if grep -q 'отправка результата в БД' /var/lib/asterisk/agi-bin/ss-dialog.agi; then
|
||
echo " curl уже есть"
|
||
else
|
||
# вставить блок перед строкой 'say "HANGUP"'
|
||
python3 - <<'PY'
|
||
import re
|
||
p = '/var/lib/asterisk/agi-bin/ss-dialog.agi'
|
||
src = open(p).read()
|
||
block = open('/root/ats-patch/ss-agi-curl.txt').read()
|
||
if 'say "HANGUP"' in src and 'отправка результата в БД' not in src:
|
||
src = src.replace('say "HANGUP"', block + '\nsay "HANGUP"', 1)
|
||
open(p, 'w').write(src)
|
||
print(' curl вставлен')
|
||
else:
|
||
print(' пропуск (HANGUP не найден или уже есть)')
|
||
PY
|
||
fi
|
||
|
||
echo "=== 4. проверка синтаксиса ==="
|
||
asterisk -rx "dialplan reload" 2>&1 | tail -3
|
||
asterisk -rx "module load pbx_spool.so" 2>&1 | tail -1
|
||
asterisk -rx "module load res_agi.so" 2>&1 | tail -1
|
||
echo "--- dialplan show SS-Autocall-Slot ---"
|
||
asterisk -rx "dialplan show SS-Autocall-Slot" 2>&1 | head -10
|
||
echo "--- module show like pbx_spool ---"
|
||
asterisk -rx "module show like pbx_spool" 2>&1 | grep -i running
|
||
echo "--- module show like res_agi ---"
|
||
asterisk -rx "module show like res_agi" 2>&1 | grep -i running
|
||
echo "--- bash syntax ss-dialog.agi ---"
|
||
bash -n /var/lib/asterisk/agi-bin/ss-dialog.agi && echo " bash -n OK"
|
||
echo "=== DONE ==="
|