Advertisement
Guest User

Untitled

a guest
Feb 21st, 2019
10
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ## CDR Log
  2. calldate: 2/21/2019 08:27:19
  3. clid: "John Doe" <5401234567> ## *** EXPECTING "John Doe" <782> ***
  4. src: 5401234567 ## *** EXPECTING 782 ***
  5. dst: 4021234567
  6. dcontext: outbound
  7. channel: SIP/782-00000ab7
  8. dstchannel: SIP/vitel-outbound-00000ab8
  9. lastapp: Dial
  10. lastdata: SIP/vitel-outbound/14021234567
  11.  
  12. ## sip.conf
  13. [782]
  14. type=friend
  15. host=dynamic
  16. authuser=782
  17. secret=narf1
  18. callerid="John Doe" <782>
  19. context=outbound
  20. canreinvite=yes
  21. sendrpid=yes
  22. trustrpid=no
  23. insecure=invite,port
  24. qualify=yes
  25. mailbox=782
  26.  
  27. ## extensions.conf
  28. [macro-dialout-vitelity]
  29. exten => s,1,MixMonitor(${ARG1}_${CALLERID(num)}_${STRFTIME(${EPOCH},,%Y%m%d%H%M%S)}.wav)
  30. exten => s,2,AGI(outbound.agi,${ARG1})
  31. exten => s,3,Set(CALLERID(num)=${DIDOUT})
  32. exten => s,4,Dial(SIP/vitel-outbound/${ARG1})
  33. exten => s,n,Hangup
  34. exten => s,104,Congestion
  35.  
  36. ## outbound.agi
  37. #!/usr/bin/perl
  38. #
  39. #use strict;
  40. use Asterisk::AGI;
  41. my $AGI=new Asterisk::AGI;
  42. my %input=$AGI->ReadParse();
  43. my $exten = $AGI->get_variable('CALLERID(num)');
  44. use DBI;
  45.  
  46. ## Local DID
  47. my $local_did = "5401234567";
  48.  
  49. ## MySQL Connection
  50. my $host="localhost";
  51. my $db ="asterisk";
  52. my $user = "root";
  53. my $pass = "";
  54.  
  55. ## SQL query
  56. my $dbh = DBI->connect("DBI:mysql:$db:$host", $user, $pass);
  57. my $sql = "SELECT number FROM did WHERE extension = ? AND active=1";
  58. my $sth = $dbh->prepare($sql);
  59. $sth->execute(($exten));
  60.  
  61. ## Process Results
  62. if($sth->rows){
  63. my @row = $sth->fetchrow_array();
  64. my $did = $row[0];
  65. $AGI->exec('Set', "DIDOUT=$did");
  66. }
  67. else{
  68. ## Set Default CID To Local DID
  69. $AGI->exec('Set', "DIDOUT=$local_did");
  70. }
  71. $sth->finish;
  72. exit(0);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement