supersam/ats-patch/apply.sh

55 lines
2.3 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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 ==="