Wednesday, December 13, 2017

Ms Access Hide & Unhide Object

How to unhide a query in Access 2007
 
In Access 2007, the way of configuring things have been dramatically changed by Microsoft. To unhide a query (or any other Access objects), you need to use the Office Button.

1. Click the Office Button at the top left corner of Access window.





2. Click Access Options button. 




3. Click Current Database tab on the left hand side navigation menu.
 



4. On the Current Database tab, click Navigation Options button.  




5. On the Navigation Options window, tick the checkbox Show Hidden Objects in the Display Options section.






6. Click OK to close all the windows.
7. Go back to the navigation pane to view the queries. You should see the query name "Quarterly Orders by Product" is now grayed out but still viewable.






8. If you need to see the query again as a normal query (ungrayed), right click on the query and untick the checkbox Hidden on its Properties windows. 


Note that all the steps shown above can also be applied to other Access objects like Tables, Reports, Forms, Pages, Macros, and Modules.
Happy Hiding and Unhiding!


Copyright© GeeksEngine.com



 

Thursday, July 20, 2017

SpyChannel ON Peer Server

Langsung aja ya...
Jika kita menggunakan asterisk versi 1.2, maka function SPY nya belum berfungsi, dan jika tidak memungkinkan untuk upgrade pada server yg digunakan ini, mungkin karena kendala hardware versi lama yg belum support asterisk versi terbaru atau apapun kendalanya.

Kita bisa memanfaatkan server asterisk lain yg sudah support asterisk versi terbaru, dan dijadikan server kedua, dalam kasus saya adalah sebagai server recording, dan server tadi sebagai server penunjang saja.

Jadi kita akan memanfaatkan function SPY pada server yang kedua, dengan terlebih dahulu kita akan get channel call nya.

Mohon maaf klo penjelasan nya bikin ga mudeng ya...! klo ada pertanyaan silahkan tulis dikolom komentar aja.

Kebetulan saya menggunakan database Postgresql.

Pertama buat database untuk menyimpan temporary informasi:
=============================================

-- DROP TABLE phone.asterisk_channels_verbose;

CREATE TABLE phone.asterisk_channels_verbose
(
  sid bigserial NOT NULL,
  vchannel character varying(100),
  vcontext character varying(100),
  vextension character varying(100),
  nprio numeric,
  vstate character varying(100),
  vapplication character varying(100),
  vdata character varying(100),
  vcallerid character varying(100),
  vduration character varying(100),
  vaccount_code character varying(100),
  vpeer_account character varying(100),
  vbridge_id character varying(100),
  tdate_insert timestamp without time zone NOT NULL DEFAULT (to_char(now(), 'YYYY-MM-DD HH24:MI:SS'::text))::timestamp without time zone,
  CONSTRAINT asterisk_channels_verbose_pkey PRIMARY KEY (sid)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE phone.asterisk_channels_verbose
  OWNER TO postgres;

Nah step berikut nya kita buat 1 file php yang diletakan pada directory "/var/lib/asterisk/agi-bin/"
=====================================================================
kita kasih nama aja "asterisk_channels.php". berikut script nya:

#!/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');

$xCallerId = $argv[1];
$xVariable = $argv[2];

$connection = pg_connect("host=X.X.X.X dbname=namadatabase user=postgres password=passworddatabase") or die (pg_last_error());

if($xVariable==1)
{
    exec('asterisk -x "core show channels concise"',$out);

    for($i=0;$i<(count($out));$i++)
    {
        $output = explode("!",$out[$i]);
        if($output[7]==$xCallerId)
        {
            $query = "
                DELETE FROM phone.asterisk_channels_concise WHERE vcallerid='".$output[7]."';
                INSERT INTO
                phone.asterisk_channels_concise
                (
                    vchannel,
                    vcontext,
                    vextension,
                    nprio,
                    vstate,
                    vapplication,
                    vdata,
                    vcallerid,
                    vduration,
                    vaccount_code,
                    vpeer_account,
                    vbridge_id
                )
                values
                (
                    '".$output[0]."',
                    '".$output[1]."',
                    '".$output[2]."',
                    '".$output[3]."',
                    '".$output[4]."',
                    '".$output[5]."',
                    '".$output[6]."',
                    '".$output[7]."',
                    '".$output[8]."',
                    '".$output[9]."',
                    '".$output[10]."',
                    '".$output[11]."'
                )";
            $query=str_replace("'',","NULL,",$query);
            pg_query($connection,$query) or die (pg_last_error());

            break;
        }  
    }  
}
else if($xVariable==2)
{
    $queQuery = "SELECT vchannel FROM phone.asterisk_channels_concise WHERE vcallerid='$xCallerId'";
    $exeQuery = pg_query($connection,$queQuery) or die (pg_last_error());
    $resQuery = pg_fetch_result($exeQuery,0,0);

    $spyXpin=$resQuery;
    fputs($stdout,"SET VARIABLE spyXpin $spyXpin");
    fflush($stdout);
}

pg_close($connection);
exit;

?>

Pada dialplan asterisk nya kira2 konfigurasi nya seperti ini:
==========================================

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


;================================================================================================
;FROM SERVER 1 (OUTGOING CONTEXT)
;================================================================================================
exten => _9X.,1,Goto(server-outgoing,${EXTEN:1},1)
exten => _8X.,1,Goto(spy-silent,1553${EXTEN:1},1)
exten => _7X.,1,Goto(spy-whisper,1554${EXTEN:1},1)


;================================================================================================
;FROM OUTGOING CONTEXT
;================================================================================================
[server-outgoing]
exten => _X.,1,NoOp(CallTime=>${STRFTIME(${EPOCH},,%C%y%m%d%H%M%S)})
exten => _X.,n,Set(mvar=1)
exten => _X.,n,NoOp(CHANNEL :${CHANNEL})
exten => _X.,n,set(CALLTIME=${STRFTIME(${EPOCH},,%C%y%m%d%H%M%S)})
exten => _X.,n,Set(FILENAME="/var/spool/asterisk/monitor/${UNIQUEID}_${CALLTIME}_${EXTEN}")
;exten => _X.,n,Monitor(gsm,${FILENAME},m)                                                        //for "in" and "out" file
exten => _X.,n,MixMonitor(${FILENAME}.gsm,b)                                                    //for mix record
exten => _X.,n,AGI(asterisk_channel.php,${CALLERID(num)},${mvar})
exten => _X.,n,Dial(SIP/intra-car-out/2090${EXTEN},${OUTTIMEOUT})
exten => _X.,n,Hangup


;================================================================================================
;SPYING CHANNEL
;================================================================================================

[spy-silent]
exten => _1553XXXX,1,NoOp(==================== Begin Spying - Silent ====================)
exten => _1553XXXX,n,Set(mvar=2)
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},${mvar})
exten => _1553XXXX,n,NoOp(${spyXpin})
exten => _1553XXXX,n,ChanSpy(${spyXpin},qo)
exten => _1553XXXX,n,Hangup()

[spy-whisper]
exten => _1554XXXX,1,NoOp(==================== Begin Spying - Whisper ====================)
exten => _1554XXXX,n,Set(mvar=2)
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},${mvar})
exten => _1554XXXX,n,NoOp(${spyXpin})
exten => _1554XXXX,n,ChanSpy(${spyXpin},qw)
exten => _1554XXXX,n,Hangup()


Sekian dulu dan terima kasih.

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.