singalen: (Default)
[personal profile] singalen
Аааа... стало мне интересно, как работает софтинка, отслеживающая и биллящая телефонные переговоры на миниАТС.
У неё есть типа демон, который подключается к COM-порту и отслеживает сообщения о звонках.
Демон этот - держитесь крепче - стартует из rc.d вот так:

case "$1" in
  start)
	cat /dev/ttyS0 >> /var/worker/capture.log &
    # pid file
    echo $! > /var/worker/run/pbx.pid
  ;;
  stop)
	kill `cat /var/worker/run/pbx.pid`
	rm /var/worker/run/pbx.pid
  ;;

Потом ещё есть sed-скрипт, который парсит этот лог.

#$%.

Вот вам и софт, работающий с протоколом SMDR.

Microsoft со своим TAPI далеко впереди планеты всей. Высокие технологии, ё. Век телекоммуникаций, ё. Открытые стандарты и community-driven development, ё.

А "краткость - сестра нашего брата".

(no subject)

18/9/09 14:31 (UTC)
Posted by [identity profile] muwlgr.livejournal.com
Не поверишь - я у себя на хлебзаводе точно такое же сделал :>
Только логи считывал через cu, там можно указать скорость ком-порта при запуске.

(no subject)

18/9/09 16:26 (UTC)
vitus_wagner: My photo 2005 (Default)
Posted by [personal profile] vitus_wagner
С cu pid-файл написать сложнее - она, собака, форкается на два процесса.

(no subject)

20/9/09 05:36 (UTC)
Posted by [identity profile] muwlgr.livejournal.com
можно записать pid шелла, исполняющего скрипт, чтоб стреляли в него.

(no subject)

18/9/09 14:36 (UTC)
Posted by [identity profile] muwlgr.livejournal.com
cu -l /dev/ttyS0 -s 9600 | while read a b
do case $a in
    [0-9][0-9]/[0-9][0-9]/[0-9][0-9]) set $(echo $a | tr '/' ' ')
                                      [ -d $3/$1 ] || mkdir -p $3/$1
                                      echo "$b" >> $3/$1/$2
     ;;
    *) echo $a $b
     ;;
   esac
done