Hallo,
ich habe mir jetzt selber die Lösung erarbeitet. (hat aber viel Gehirnschmalz gekostet, bin ja noch ziemlich neewbe...)
Hier für alle, die irgendwann einmal danach Suchen:
Möglich ist so etwas mit Call-Files, AGI und Manager Interface. Ich habe mich für Call-File entschieden:
Erstellt einfach eine Datei im Ordner /var/spool/asterisk/outgoing (oder wo auch immer bei euch outgoing liegt) mitdem Namen test.call
test.call:
Code:
Channel: <Channel + Nummer> #z.B. Zap/g1/12345
RetryTime: 60
WaitTime: 30
Context: meeting
Extension: 500 #statischer Konferenzraum
Priority: 1
Ich habe mir jetzt schnell auch noch ein HTML-GUI erstellt, worin ich in einem Formular Nummern eintragen kann. Schicke ich das Formular ab, so werden für jede Nummer eine *.call Datei erzeugt. Der asterisk ruft somit alle Nummern aus dem Formular an und schickt sie gleich in den Konferenzraum.
Toll! :lol:
Hier die (in sehr schlechtem HTML + PERL geschriebenen) Dateien.
Die Pfade mussen angepasst werden!
Das Verzeichniss "/var/spool/asterisk/outgoing" muss für euren http-daemon (z.B. Apache) beschreibbar sein!
meeting.html
Code:
<html>
<body>
<form action="/cgi-bin/meeting/meeting.pl" method="post">
<center>
<h1>Asterisk Conference</h1>
<table border="1">
<th>No</th><th>Number</th><th>Internal</th><th>ISDN</th><th>VoIP</th>
<tr>
<td align="center">1</td>
<td align="center"><input size="11" maxlength="20" name="user1"></td>
<td align="center"><input type="radio" name="type1" value="internal"></t
d>
<td align="center"><input type="radio" name="type1" value="isdn" checked
></td>
<td align="center"><input type="radio" name="type1" value="voip"></td>
</tr>
<tr>
<td align="center">2</td>
<td align="center"><input size="11" maxlength="20" name="user2"></td>
<td align="center"><input type="radio" name="type2" value="internal"></t
d>
<td align="center"><input type="radio" name="type2" value="isdn" checked
></td>
<td align="center"><input type="radio" name="type2" value="voip"></td>
</tr>
<tr>
<td align="center">3</td>
<td align="center"><input size="11" maxlength="20" name="user3"></td>
<td align="center"><input type="radio" name="type3" value="internal"></t
d>
<td align="center"><input type="radio" name="type3" value="isdn" checked
></td>
<td align="center"><input type="radio" name="type3" value="voip"></td>
</tr>
<tr>
<td align="center">4</td>
<td align="center"><input size="11" maxlength="20" name="user4"></td>
<td align="center"><input type="radio" name="type4" value="internal"></t
d>
<td align="center"><input type="radio" name="type4" value="isdn" checked
></td>
<td align="center"><input type="radio" name="type4" value="voip"></td>
</tr>
</table>
<input type="submit" value="Try Call Users"></p>
</form>
</center>
</body>
</html>
Code:
#!/usr/bin/perl -w
use strict;
use CGI;
my $cgi = new CGI;
use CGI::Carp qw(fatalsToBrowser);
my @users = ($cgi->param('user1'),
$cgi->param('user2'),
$cgi->param('user3'),
$cgi->param('user4'));
my @types = ($cgi->param('type1'),
$cgi->param('type2'),
$cgi->param('type3'),
$cgi->param('type4'));
print $cgi->header();
print $cgi->start_html('Asterisk Conference');
print '<center>
will try to call</p>';
for(my $i = 0; $i < 4; $i++) {
if($users[$i] ne '') {
my $r = rand 1000;
open FH, ">/var/spool/asterisk/outgoing/meeting_user$r.call" or print "<
h2>error: $!<\/h2>";
print FH "Channel: ";
print FH "SIP\/$users[$i]\n" if($types[$i] eq 'internal');
print FH "Zap\/g1\/$users[$i]\n" if($types[$i] eq 'isdn');
print FH "SIP\/$users[$i]\@sipgate\n" if($types[$i] eq 'voip');
print FH "RetryTime: 60\n";
print FH "WaitTime: 30\n";
print FH "Context: meeting\n";
print FH "Extension: 500\n";
close FH;
print "
[b]$users[$i]<\/b> through [b]$types[$i]<\/b><\/p>";
}
}
print '<form><input type="button" value="back" onclick="history.go(-1)"></form>'
;
print "<a href=\"/meeting/meeting.html\">Main</a><\/center>";
print $cgi->end_html();
Hmmm...ob überhaupt irgendeiner mein Monolog hier mitbekommt :?: :roll: :?:
Hier noch ein paar Links:
http://www.voip-info.org/wiki-Asterisk+auto-dial+out
http://www.voip-info.org/wiki-Asterisk+cmd+MeetMe