Страница 2 из 2

Re: Callback средствами bash

Добавлено: 30 окт 2013, 23:33
TVMaker
Читал. Там грабли в том, что call-файл копировали, а надо перемещать - такая линуксовая фича. И никакой пересборки астериска не нужно. У меня гораздо смешнее оказалось. Решил проблему. Она заключалась в нестандартности железяки, на которой стоит мой астер.
Фишка в том, что на железяке ДВА линукса :D Это NAS Synology с установленной системой optware. И там ДВА симлинка touch, пути к которым прописаны в окружении. У меня вызывался "стандартный" touch, который, видимо, ничего не знал о переменных окружения optware. Утилита вроде бы выполнялась, а никаких переданных ей параметров не видела. В результате целого дня выгугливания родилось следующее решение для отложенного колбэка. Вместо "10 minutes" можно использовать по вкусу: "10 seconds" и т.д.

Код: Выделить всё

#!/bin/sh
# Callback для Астериска на NAS Synology
# Вызов: callback.sh НОМЕР_ТЕЛЕФОНА ИМЯ_CALL-ФАЙЛА

echo Channel: Local/$1@users > /opt/tmp/$2
echo Callerid: 7499XXXXXXX >> /opt/tmp/$2
echo MaxRetries: 3 >> /opt/tmp/$2
echo RetryTime: 3 >> /opt/tmp/$2
echo WaitTime: 40 >> /opt/tmp/$2
echo Context: callback >> /opt/tmp/$2
echo Extension: s >> /opt/tmp/$2
echo Priority: 1 >> /opt/tmp/$2
echo Archive: Yes >> /opt/tmp/$2
echo SetVar: IsCallBack=1 >> /opt/tmp/$2
/opt/bin/touch -d "10 minutes" /opt/tmp/$2
mv /opt/tmp/$2 /opt/var/spool/asterisk/outgoing