Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ## CDR Log
- calldate: 2/21/2019 08:27:19
- clid: "John Doe" <5401234567> ## *** EXPECTING "John Doe" <782> ***
- src: 5401234567 ## *** EXPECTING 782 ***
- dst: 4021234567
- dcontext: outbound
- channel: SIP/782-00000ab7
- dstchannel: SIP/vitel-outbound-00000ab8
- lastapp: Dial
- lastdata: SIP/vitel-outbound/14021234567
- ## sip.conf
- [782]
- type=friend
- host=dynamic
- authuser=782
- secret=narf1
- callerid="John Doe" <782>
- context=outbound
- canreinvite=yes
- sendrpid=yes
- trustrpid=no
- insecure=invite,port
- qualify=yes
- mailbox=782
- ## extensions.conf
- [macro-dialout-vitelity]
- exten => s,1,MixMonitor(${ARG1}_${CALLERID(num)}_${STRFTIME(${EPOCH},,%Y%m%d%H%M%S)}.wav)
- exten => s,2,AGI(outbound.agi,${ARG1})
- exten => s,3,Set(CALLERID(num)=${DIDOUT})
- exten => s,4,Dial(SIP/vitel-outbound/${ARG1})
- exten => s,n,Hangup
- exten => s,104,Congestion
- ## outbound.agi
- #!/usr/bin/perl
- #
- #use strict;
- use Asterisk::AGI;
- my $AGI=new Asterisk::AGI;
- my %input=$AGI->ReadParse();
- my $exten = $AGI->get_variable('CALLERID(num)');
- use DBI;
- ## Local DID
- my $local_did = "5401234567";
- ## MySQL Connection
- my $host="localhost";
- my $db ="asterisk";
- my $user = "root";
- my $pass = "";
- ## SQL query
- my $dbh = DBI->connect("DBI:mysql:$db:$host", $user, $pass);
- my $sql = "SELECT number FROM did WHERE extension = ? AND active=1";
- my $sth = $dbh->prepare($sql);
- $sth->execute(($exten));
- ## Process Results
- if($sth->rows){
- my @row = $sth->fetchrow_array();
- my $did = $row[0];
- $AGI->exec('Set', "DIDOUT=$did");
- }
- else{
- ## Set Default CID To Local DID
- $AGI->exec('Set', "DIDOUT=$local_did");
- }
- $sth->finish;
- exit(0);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement