Thursday, September 1, 2016

ChanSpyAsterisk



file asterisk_channel.php
letakan pada direktori /var/lib/asterisk/agi-bin

#!/usr/bin/php -q
<?php

ob_implicit_flush(false);
set_time_limit(5);
error_reporting(0);

$stdin = fopen('php://stdin', 'r');
$stdout = fopen('php://stdout', 'w');
$stdlog = fopen('/root/php_agi.log', 'w');

$extension = $argv[1];
$connection = pg_connect("host=192.168.10.66 dbname=megalife user=postgres password=megalife678910");

$command = "core show channels";
exec('asterisk -rx "core show channels"',$out);

for($i=1;$i<(count($out)-3);$i++)
{

    $output = preg_replace('!\s+!', '|||', $out[$i]);
    $output = explode("|||",$output);
   
    if(substr($output[1],0,4)==$extension)
    {
        $spyXpin=$output[0];
        fputs($stdout,"SET VARIABLE spyXpin $spyXpin");
        fflush($stdout);
       
        $query = "
            DELETE FROM phone.phone_asterisk_channels WHERE vlocation LIKE '".substr($output[1],0,4)."%';
            INSERT INTO
            phone.phone_asterisk_channels
            (
                vchannel,
                vlocation,
                vstate,
                vapplication_data
            )
            values
            (
                '".$output[0]."',
                '".$output[1]."',
                '".$output[2]."',
                '".$output[3]."'
            )";
        pg_query($connection,$query);
       
        break;
    }
}

exit;

?>

extension.conf (asterisk)

[marvelogy]
exten => i,1,Hangup
exten => t,1,Hangup

exten => _1804X.,1,Dial(SIP/marvel/${EXTEN:4},45)
exten => _1804X.,n,hangup

exten => _1553XXXX,1,NoOp("========== Begin Spying - Silent ==========")
exten => _1553XXXX,n,Set(mpin=${EXTEN:4})
exten => _1553XXXX,n,Set(xpin=${mpin:0:4})
exten => _1553XXXX,n,NoOp(xpin = ${xpin})
exten => _1553XXXX,n,AGI(asterisk_channel.php,${xpin})
exten => _1553XXXX,n,NoOp(${spyXpin})
exten => _1553XXXX,n,ChanSpy(${spyXpin},qo)
exten => _1553XXXX,n,Hangup()

exten => _1554XXXX,1,NoOp("========== Begin Spying - Whisper ==========")
exten => _1554XXXX,n,Set(mpin=${EXTEN:4})
exten => _1554XXXX,n,Set(xpin=${mpin:0:4})
exten => _1554XXXX,n,NoOp(xpin = ${xpin})
exten => _1554XXXX,n,AGI(asterisk_channel.php,${xpin})
exten => _1554XXXX,n,NoOp(${spyXpin})
exten => _1554XXXX,n,ChanSpy(${spyXpin},qw)
exten => _1554XXXX,n,Hangup()

Hanya sebagai catatan pribadi.

No comments:

Post a Comment