Thursday, September 1, 2016

Clear Memory Linux



Script berikut adalah untuk clean memory pada linux.
Misalnya kita buat file berextensi 'sh' ,misalnya remove_memory.sh dan contoh ditempatkan pada direktori /root/bash

Berikut script pada file remove_memory.sh

#!/bin/sh

sync; echo 1 > /proc/sys/vm/drop_caches
sleep 1
sync; echo 2 > /proc/sys/vm/drop_caches
sleep 1
sync; echo 3 > /proc/sys/vm/drop_caches

file ber extensi 'sh' ini bisa kita eksekusi langsung atau bisa menggunakan crontab.


Hanya catatan pribadi.


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.

Sunday, July 24, 2016

Check Dan Repair TablePada MYSQL

Selamat Pagi Sobat.

Mungkin ada beberapa sahabat yang pernah mengalami gagal waktu melakukan backup data base MYSQL melalui command line :

 mysqldump -u ketikuser -pketikpassword ketikdatabase > /var/lokasi/database_backup.sql

kadang gagal backup nya dikarenakan ada database :
mysqldump got error 1146 table doesn't exist when using lock tables

Sobat bisa mencoba syntak berikut ini:


pada command prompt masuk ke direktory database MYSQL:
#cd /var/lib/mysql
#myisamchk -r -v -f ./ketikdatabase/ketiktable.MYI

Semoga membantu.

Thursday, July 21, 2016

Encode dan Decode bade64 Postgresql


Beberapa sahabat pernah bertanya, bagaimana cara Encode dan Decode base64 pada PostgreSQL.

Berikut saya kasih contoh :

--DECODE
SELECT CONVERT_FROM(DECODE(prospect_name, 'base64'), 'UTF-8') FROM master_customer WHERE vcust_id='HIRTM-TEKO-312'
"SkFVSEFSSQ=="

--ENCODE
SELECT customer_id,ENCODE(CONVERT_TO(prospect_name, 'UTF-8'), 'base64') FROM master_customer ORDER BY customer_id LIMIT 10;


Semoga bermanfaat.

Capture DTMF Digit Pada Asterisk


Buat sahabat yang mungkin sedang belajar pemrograman Asterisk (Telephony), dan sedang mencari artikel tentang bagaimana mengcapture digit DTMF dan menyimpannya ke dalam data base.

Berikut script yang saya tempakan pada "extension.conf":

[me]
exten => t,1,Hangup
exten => h,1,Hangup
exten => i,1,Hangup

exten => 1803,1,Set(wait=2)
exten => 1803,n,Set(wait_exp=1)
exten => 1803,n(begin),Playback("1-yes-2-no")
exten => 1803,n,Set(gottries=0)
exten => 1803,n,Set(got=)
exten => 1803,n(getmore),Set(timer=${EPOCH})
exten => 1803,n,Read(get,"silence/1",,,,${wait})
exten => 1803,n,Set(timer=$[${EPOCH}-${timer}])
exten => 1803,n,GotoIf($[${timer}==$[${wait}+1]]?gotnothing:gotsomething)

exten => 1803,n(gotnothing),Set(gottries=$[${gottries}+1])
exten => 1803,n,GotoIf($[${LEN(${get})} == 0]?reallynothing:gotdigit)
exten => 1803,n(reallynothing),GotoIf($[${gottries}>1]?done:getmore)

exten => 1803,n(gotsomething),Set(gottries=0)
exten => 1803,n,GotoIf($[${LEN(${get})} == 0]?gotpound:gotdigit)
exten => 1803,n(gotpound),Set(got=${got}#)
exten => 1803,n,Goto(getmore)
exten => 1803,n(gotdigit),Set(got=${got}${get})
exten => 1803,n,Set(get=)
exten => 1803,n,Goto(getmore)

//exten => 1803,n(done),SayDigits(${got})
exten => 1803,n,AGI(dtmf_capture.php,${got})
exten => 1803,n,Goto(begin)


Script dtersebut adalah script sederhana dan silahkan dikembangkan sesuai kebutuhan.

Semoga bermanfaat.