Sometimes there is a need to record ongoing call on Asterisk, where usually there is no recording (due to GDPR or smth like this). Usual way with mixmonitor start in CLI requires a channel ID, which is usually not at hand.
Small script that will get calls with caller and/or callee numbers (based on assumption, that these numbers are available in Asterisk channel name) and put recordings of them in /tmp directory. Separated for A/B legs and mixed.
Made for myself to simplify some tasks and not to look for it again.
Usage:
./call_record.sh <CALLER_NUM> [<CALLEE_NUM>]
call_record.sh
#!/bin/bash
NUM_1=${1:-"DUMMY"}
NUM_2=${2:-"DUMMY"}
CHANNELS=$(asterisk -rx 'core show channels' | grep -E "${NUM_1}|${NUM_2}" | awk '{print $1}')
if [ -z ${CHANNELS} ]; then
echo "Cannot find channel"
exit 0
fi
DATE=$(date '+%F-%H-%M-%S')
ID=1
for CHANNEL in $CHANNELS; do
DIRNAME=/tmp/${DATE}-${NUM_1}-${NUM_2}
mkdir -p ${DIRNAME}
REC_COMMAND=`echo ${DIRNAME}/${ID}-mix.wav,r'('${DIRNAME}/${ID}-in.wav')'t'('${DIRNAME}/${ID}-out.wav')'`
echo "Recording ${ID} at ${DIRNAME}"
asterisk -rx "mixmonitor start ${CHANNEL} ${REC_COMMAND}"
ID=$[ ${ID} + 1 ]
done
No comments:
Post a Comment