För att kunna använda VemRingde.se API behöver man göra följande ändringar. Det finns säkert smartare lösningar än denna!
Lägg till moduler i PERL:
sudo cpan
install Asterisk::AGI
install LWP::UserAgent
Filen: /usr/share/asterisk/agi-bin/vemringdese.agi (Grunden tagen ifrån http://apiwiki.vemringde.se/wiki/Asterisk_AGI_f%C3%B6r_vemringde_%28Perl%29)
#!/usr/bin/perl -w
use Asterisk::AGI;
$AGI = new Asterisk::AGI;
require LWP::UserAgent;
my $ua = LWP::UserAgent->new;
$AGI->verbose(“caller: ” . $ARGV[0]);
my $response = $ua->get(“http://api.vemringde.se/?q=” . $ARGV[0] . “\&e=0\&n=10”);
if ($response->is_error) {
$AGI->verbose(“Vemringde.se API [” . $ARGV[0] . “]: Error: ” . $response->status_line, 4);
$AGI->set_variable(‘vemringde_status’, 3);
exit;
}
if ($response->content =~ /^0/) {
$AGI->verbose(“Vemringde.se API [” . $ARGV[0] . “]: Not found”, 3);
$AGI->set_variable(‘vemringde_status’, 1);
exit;
}
elsif ($response->content =~ /^1/) {
$AGI->verbose(“Vemringde.se API [” . $ARGV[0] . “]: Telemarketing, type 2”, 3);
$AGI->set_variable(‘vemringde_status’, 2);
exit;
}
else {
$AGI->verbose(“Vemringde.se API [” . $ARGV[0] . “]: No results – parser error.”, 4);
$AGI->set_variable(‘vemringde_status’, 3);
exit;
}
I filen extensions.conf adderade jag följande rader:
exten => s,n,AGI(vemringdese.agi|${CALLERID(number)})
exten => s,n,NoOp(Status: ${VEMRINGDE_STATUS})
exten => s,n,GotoIf($[“${VEMRINGDE_STATUS}” = “2”]?telemark)
exten => s,n(telemark),Voicemail(s2800) ; Om inkommande nummer finns med på VemRingde.se skickas samtalet direkt till en speciell voicemail.
“Hela” sammanhanget för inkommande samtal:
exten => s,n,Answer()
exten => s,n,AGI(vemringdese.agi|${CALLERID(number)})
exten => s,n,NoOp(Status: ${VEMRINGDE_STATUS})
exten => s,n,GotoIf($[“${VEMRINGDE_STATUS}” = “2”]?telemark)
exten => s,n,Background(/var/lib/asterisk/sounds/custom/blank)
exten => s,n,Dial(SIP/mythtv&SIP/kontor&SIP/koket&SIP/2004&SIP/2020&SIP/2011&SIP/2012&SIP/2013&SIP/2014,25,Ttr)
exten => s,n,Playback(/var/lib/asterisk/sounds/custom/ahlbom-welcome)
exten => s,n,Voicemail(s2700)
exten => s,n,Hangup
exten => s,n(telemark),Voicemail(s2800)
I filen voicemail.conf
2800 => ,Telemark,email@to.me,,attach=yes|tz=sweden|attach=yes|saycid=no|dialout=fromvm|callback=fromvm|review=no|operator=no|envelope=yes|sayduration=no|saydurationm=0
Leave a Reply