Perl-Scripte für das Asterisk Gateway Interface

ip_fan

Neuer User
Mitglied seit
18 Apr 2007
Beiträge
11
Punkte für Reaktionen
0
Punkte
0
Hallo,

Ich muss folgendes Projekt erstellen:
Ein user wählt die "100" und es klingelt bei allen Teilnehmer. Heben Die Teilnehmer auf, so gelangen sie in eine Konferenz. Das kann man ja so im Wählplan nicht lösen deshalb muss ich ein AGI-Script schreiben.

Da ich ein Script in Perl schreiben muss, suche ich schon fertige Perl-Scripte.

Gibt es eine Homepage wo man fertige Scripte finden kann?
Oder weiss jemand eine Lösung für das Projekt?

Vielen Dank
schönes wochenende
mfg
 
such doch nach einem Beispiel, in dem ein callfile geschrieben wird (z.B. Weckdienst)
Die Idee: das Konferenzzimmer ruft alle ausser dich an
Evtl auch im Dialplan: du rufst das Konferenzzimmer an, und bei erfolgtem Verbindungsaufbau dann ein macro den Rest machen lassen

birnerseff
 
Hier bei gibt es mehrere MMöglichkeiten.

ganz simpel geht das in dem man einfach


exten => 100,1,Goto(call-all,s,1)
[call-all]
exten => s,1,Answer()
exten => s,n,NoOp(Peter)
exten => s,n,System(cp /etc/asterisk/call/CallfilePeter /var/spool/asterisk/outgoing/)
exten => s,n,NoOp(Dirk)
exten => s,n,System(cp /etc/asterisk/call/CallfileDirk /var/spool/asterisk/outgoing/)
exten => s,n,Hangup()


so sollte dann die callfile aussehen
Channel: SIP/0211123456@sipagte ; hier müssen halt die nummer erstzt werden und sipgate muss natuerlich auch ersetzt werden
Callerid: 0211123456
Context: Konferenz
Extension: s
MaxRetries: 3
Retrytime: 30
WaitTime: 30
Priority: 1



[Konferenz]
exten => s,1,Answer
exten => s,n,MeetMe(1234|M)
exten => s,n,Hangup()

Ich habe das etwas anders gemacht mit der math und DB funktion jedes mal wenn einer in die konferenz geht wird überprüft ob jemand schon drinne ist wenn nicht ruft der alle an ... wobei das schon um einieges größer ist ...
 
Vielen Dank für die Hilfe.

Probiere das mal jetzt.
Ich berichte euch wie es gegangen ist.

mfg
 
Hallo,

birnerseff und Fredjam, vielen Dank für die Antwort.

Ich habe eine Frage an Fredjam:

In der folgenden Zeile: exten => s,n,System(cp /etc/asterisk/call/CallfilePeter/var/spool/asterisk/outgoing/)

Wo finde ich die callfile? Können Sie kurz erklären was die ganze Zeile macht?

Noch eine Frage an jerome2277: hat es bei dir funktionniert?

Vielen Dank
 
ganz einfach die Datei ist nicht da die musst du selber erstellen ;-) also ich habe bei mir den Ordner erst mal erstellt denn dieser existiert stand art mäßig nicht....
Dann jeweils für die person die automatisch angerufen werden soll eine Datei anlegen ist eigentlich egal wie diese heißt habe sie halt Metallfiltern genant.

Und das muss halt den in die jeweiliege callfile rein ...
so sollte dann die callfile aussehen
Channel: SIP/0211123456@sipagte ; hier müssen halt die nummer erstzt werden und sipgate muss natuerlich auch ersetzt werden
Callerid: 0211123456
Context: Konferenz
Extension: s
MaxRetries: 3
Retrytime: 30
WaitTime: 30
Priority: 1
 
Das bedeutet dass ich unter /etc/asterisk/ einen Ordner Call anlege. Unter diesem Ordner lege ich dann soviele Callefiles wie User an, oder?

In der callfile muss ich dann bei "channel und callerid" die Rufnummer des jeweiligen User angeben? Oder was bedeutet SIP/0211123456@sipagte

Vielen Dank
mfg
 
Also das ist ein beispielt aus einer meiner callfiles gewesen...
wird halt die Nummer die die angerufen werden soll plus den Provider mit gewählt ....

Hier wird noch mal erklärt was die einzelnen befehle in so einer callfile bedeuten
http://www.das-asterisk-buch.de/stable/call-file-parameter.html


SIP/0211123456@sipagte

SIP = das es über die Sip.conf läuft / die telefonnummer die gewählt werden soll
@ der privder der genutzt werden soll
 
Hallo,

Also bei mir gehts das noch nicht.
Ich poste mal alles:

[local]
exten => 100,1,Goto(call-all,s,1

[call-all]
exten => s,1,Answer()
exten => s,n,NoOp(32)
exten => s,n,System(cp /etc/asterisk/call/callfile32 /var/spool/asterisk/outgoing/)
exten => s,n,NoOp(33)
exten => s,n,System(cp /etc/asterisk/call/callfile33 /var/spool/asterisk/outgoing/)
exten => s,n,Hangup()

[Konferenz]
exten => s,1,Answer
exten => s,n,MeetMe(1234)
exten => s,n,Hangup()

[default]
include => local
include => Konferenz
include => call-all

hier sind ist die callfile32 und callfile33:

Channel: SIP/1234 ; "1234" ist die Rufnummer der Konferenz oder welche
Nummer muss hier stehen?
Callerid: 1234
Context: Konferenz
Extension: s
MaxRetries: 3
Retrytime: 30
WaitTime: 30
Priority: 1


Kann sein dass ich was falsch verstanden habe. Aber wenn z.B. das Telefon mit der Nummer "31" die 100 wählt dann soll es bei den Telefonen "32" und "33" klingeln. Sobald die User den Hörer abheben, gelangen sie in eine Konferenz (meetme), oder nicht?

Vielen dank
mfg
 
Also erst mal will ich hier einen fehler beheben bei dir aber warscheinlich ist er nur beim Kopieren entspanden ...

[local]
exten => 100,1,Goto(call-all,s,1
[local]
exten => 100,1,Goto(call-all,s,1) ; mit hinten als klammer ...

Desweitern geht bei dir ueberhaubt meetme ? Denn wenn nicht wird das ganze nichts ... dann must du entweder meetme richtig nachinstallieren oder wenn du einen Vserver nutzt das mit Conferens installieren


ach ja und die callfile muss glaube ich ueberarbeitet werden denn die in der ersten zeile must du ja deine leute anrufen und nicht die konferenz

Also ich weiß ja nicht ob du die intern oder extern anrufen willst wenn extern dann must du auch noch ein @ da hinter machen mit dem provider ...
 
Zuletzt bearbeitet:
Das mit der Klammer war ein Fehler beim Kopieren.

Die MeetMe-Datei funktionniert auch.
Die Gespräche sollen nur intern erfolgen also nicht über einen Provider.

Welche Nummern müssen genau hinter "channel" und "callerid" kommen? Sind das in meinem Beispiel die Nummern "32" und "33"?

Nochmals vielen Dank für die Hilfe Fredjam
mfg
 
Schreib mal deine Sip.conf rein aber veränder die pws ;-)
 
Hallo,

Hier ist ein Ausschnitt aus der sip-datei:


[30]
callerid=Phone 1 <30>
host=dynamic
domain=xxx
user=30
secret=xxx
type=friend
mailbox=30
nat=yes
canreinvite=no

[31]
callerid=Phone 2 <31>
host=dynamic
domain=xxx
user=31
secret=xxx
type=friend
mailbox=31
nat=yes
canreinvite=no

[32]
callerid=Phone 3 <32>
host=dynamic
domain=xxx
user=32
secret=xxx
type=friend
mailbox=32
nat=yes
canreinvite=no

[33]
callerid=Phone 4 <33>
host=dynamic
domain=xxx
user=33
secret=xxx
type=friend
mailbox=33
nat=yes
canreinvite=no

Danke
 
Hallo,

Es funktionniert jetze mal :)

Das einzige was noch nicht geht ist, der Client der die "100" wählt gelangt nicht in die Konferenz. Könnte man das irgendwie lösen dass der auch in die Konferenz einsteigen kann ohne den Hörer aufzulegen und die Konferenz anzuwählen?

Vielen Dank
Gruss
ip_fan
 
;-) ich habe das gelöst aber


[call-all]
exten => s,1,Answer()
exten => s,n,NoOp(32)
exten => s,n,System(cp /etc/asterisk/call/callfile32 /var/spool/asterisk/outgoing/)
exten => s,n,NoOp(33)
exten => s,n,System(cp /etc/asterisk/call/callfile33 /var/spool/asterisk/outgoing/)
exten => s,n,MeetMe(1234)
exten => s,n,Hangup()

so sollte das doch ganz einfach gehen ;-)
 
Ja es geht :D

Vielen Dank Fredjam
Wenn ich dir irgendwann mal helfen kann, melde dich einfac bei mir :)

Schönen Tag noch
mfg
 
Ja bitte kein problem bis vor einem halben jahr hatte ich ja auch noch keine ahung von asterisk aber ein Halbesjahr im Forum und 3 Bücherspäter sieht das ganze schon anders aus Ich helfe gerne Weiter

Um auf dich zurueckzukommen muss ich natuerlich vorher wissen in welcher Materie du Skill hast ;-)
 
Hallo,

Da ich meine Diplomarbeit in Asterisk schreiben muss werde ich in den nächsten Wochen immer mehr über Asterisk wissen.

Das einzige wo ich über Asterisk im moment keine Ahnung habe, ist ob es möglch ist Push-To-Talk mit Asterisk zu realisieren.
Hast du keine Ahnung ob und wie das möglich ist?

Also wenn du ne frage hast, zögere nicht mich zu fragen :)

Danke
mfg
 
Also wenn so was geniales bei deiner Diplomarbeit rauskommt wie VoiponCD von Rowi bin ich mal sehr gespannt ^^.
mit Push to talk habe ich selber noch keine erfahrung gemacht verstehe auch nichtw wirklich wie dieses übers Handy berechnet werden sollte ...
Aber also ich vor paar jahren davon gelesen hatte war ich auch interessiert...
Im zusammenhang mit Asterisk habe ich aber keine ahnung davon.

http://www.andtek.com/voip-ipt-news-1-push-to-talk-ipt.html?language=german

und die x-lite pocket pc version hat auch ne PPT funktion intigriert.
 
Hallo Fredjam,

Ich bins nochmal. Also das mit dem Group-call und der Konferenz funktionniert ohne Probleme.

Ist es auch möglich dass der User der den Group-call initialisiert hat und mit den anderen User des Group-calls in der Konferenz ist während der Konferenz noch andere User einladen kann?

Beispiel: User 31 wählt die "100" und es klingelt bei "32", "33" und "34". Die 4 User sind dann in einer Konferenz. Jetzt merkt der User "31" dass er auch noch will dass User "35" in die bestehende Konferenz einsteigt.
Ist das irgendwie zu realisieren dass "31" den User "35" zur Konferenz einlädt?

Danke
 
Kostenlos!

Zurzeit aktive Besucher

Statistik des Forums

Themen
248,476
Beiträge
2,292,302
Mitglieder
377,928
Neuestes Mitglied
Ruth Preston