Automatischer Anruf - Vorspielen aufgenommener Ansage

voipfips

Neuer User
Mitglied seit
25 Nov 2006
Beiträge
37
Punkte für Reaktionen
0
Punkte
0
Hi Leute!

Ich verwende Asterisk 1.2 und möchte folgendes konfigurieren:

1)Ein User wählt interne Nummer, zB. 400
2)Er wird aufgefordert eine Nachricht aufzunehmen.
3)Nach Aufnahme kann aufgelegt werden.
4)Anschließend wählt Asterisk selbständig einige Nebenstellen an (kann nacheinander sein) und spielt die Nachricht vor.

Wie wäre das am einfachsten zu realisieren? Es geht darum, alle Mitarbeiter einer Abteilung bzw die gesamte Firma via Telefon zu erreichen, um eine Nachricht bekanntzugeben.

Mit Call Files im asterisk spooler funktionierts prinzipiell schon, aber wäre dies nicht komplett mit asterisk, also im Dialplan ev mit Macros auch zu realisieren? leider habe ich damit noch nicht so viel Erfahrung.
Mir genügt ein schemenhafter Überblick im Pseudocode um den richtigen Ansatz zu finden.

Freue mich über jede Idee und jeden Ansatz.

lg Fips
 
Du hast doch quasi die lösung schon:
1)Ein User wählt interne Nummer, zB. 400
2)Er wird aufgefordert eine Nachricht aufzunehmen.
3)Nach Aufnahme kann aufgelegt werden.
4)Anschließend wählt Asterisk selbständig einige Nebenstellen an (kann nacheinander sein) und spielt die Nachricht vor.

also... mal so angedeutet.
exten => 400,1,
Answer
Wait 2
record (tempfile) (evt. tempfile in ner global speichern... reicht es wenn sowas immer nur einmal gleichzeitig geht?)
hangup
dann gibt es meine ich sowas wie on-hangup oder sowas... ist eigentlich für bestimmte cdr-klamotten. damit würde ich einfach ein macro starten,
was halt sowas wie
dial (irgendwen)
playback tempfile
dial (den-nächsten)
playback usw...

kannst ja mal ausprobieren. ich weiss nicht mehr ganz genau wie das mit dem on hangup war... aber das sollte sich ja finden lassen.
mfg
 
ich weiss nicht mehr ganz genau wie das mit dem on hangup war

Code:
exten => h,1,tue irgendwas, nach dem Auflegen
exten => h,2,tue noch irgendwas, nach dem Auflegen
usw.
 
genau das meinte ich. und da liesse sich ja einfach
dial (teilnehmer)
playback tempfile
usw reinsetzen.
 
danke vorerst!
jetzt scheint mir das schon leichter. werds mal ausprobieren und wenns nicht so klappt, hier wieder posten ;)

lg Fips
 
soda! ich habs mal ausprobiert, aber leider funktionierts noch nicht ganz so wie ichs verwenden könnte. Ich teste das ganze auf einer TrixBox mit FreePBX installed, vielleicht ist auch das das Problem, aber in der Firma wo ich es einsetzen möchte ist die Installation ähnlich.

Was ich bisher geschafft habe:
extensions_custom.conf:
Code:
[test-autodial]
exten => 400,1,Answer
exten => 400,n,Wait(1)
exten => 400,n,Record(nachricht.ulaw)
exten => 400,n,Wait(1)
exten => 400,n,Playback(nachricht)
exten => 400,n,Wait(1)
exten => 400,n,Hangup
Ich nehme also eine Ansage auf, und spiele sie wieder ab. Danach sollte aufgelegt werden.
Problem 1: Durch das Hangup springt er in die h Extension, und zwar dort, wo das erste Include ist, daher habe ich den nächsten Teil direkt in die extensions.conf schreiben müssen. Lässt sich das irgendwie so lösen, dass ich alle Zeilen im [test-autodial] untereinander habe?

Problem 2(big): In der letzten Zeile (Hangup) wird kein Hangup gemacht, also ich höre einfach das klingeln vom nächsten Dial Befehl, und falls ich auflege, wird keine einzige Nummer angerufen, sondern auf der Stelle abgebrochen.
Das war meine Befürchtung, wie kann Asterisk alleine wählen und Ansagen vorspielen, wenn meine Verbindung schon beendet ist?

extensions.conf
Im Kontext [from-internal]
Code:
include => test-autodial

exten => h,1,Dial(SIP/201,60,M(verteile))
exten => h,n,Wait(1)
exten => h,n,Hangup

Hier noch das Macro
Code:
[macro-verteile]
exten => s,1,Wait(1)
exten => s,n,Playback(nachricht)
exten => s,n,Wait(1)
exten => s,n,Hangup
Tja und das lustige ist, nach diesem Hangup oberhalb im Macro, wo ja eigentlich der angerufene Teilnehmer getrennt werden sollte, werde ich nun mit dem Angerufenen verbunden. Sprich die beiden Zeilen h,n,Wait und h,n,Hangup in der extensions.conf werden nie ausgeführt.

Unterhalb noch die Ausgabe vom Ast, wo das Verhalten schön abzulesen ist.

Was Asterisk ausgibt:
Code:
    -- Executing Answer("SIP/204-0858e408", "") in new stack
    -- Executing Wait("SIP/204-0858e408", "1") in new stack
    -- Executing Record("SIP/204-0858e408", "nachricht.ulaw") in new stack
    -- Playing 'beep' (language 'de')
    -- Executing Wait("SIP/204-0858e408", "1") in new stack
    -- Executing Playback("SIP/204-0858e408", "nachricht") in new stack
    -- Playing 'nachricht' (language 'de')
    -- Executing Wait("SIP/204-0858e408", "1") in new stack
    -- Executing Hangup("SIP/204-0858e408", "") in new stack
  == Spawn extension (from-internal, 400, 7) exited non-zero on 'SIP/204-0858e408'
    -- Executing Dial("SIP/204-0858e408", "SIP/201|60|M(verteile)") in new stack
    -- Called 201
    -- SIP/201-0857b890 is ringing
    -- SIP/201-0857b890 answered SIP/204-0858e408
    -- Executing Wait("SIP/201-0857b890", "1") in new stack
    -- Executing Playback("SIP/201-0857b890", "nachricht") in new stack
    -- Playing 'nachricht' (language 'de')
    -- Executing Wait("SIP/201-0857b890", "1") in new stack
    -- Executing Hangup("SIP/201-0857b890", "") in new stack
  == Spawn extension (macro-verteile, s, 4) exited non-zero on 'SIP/201-0857b890' in macro 'verteile'
    -- Attempting native bridge of SIP/204-0858e408 and SIP/201-0857b890
  == Spawn extension (from-internal, h, 1) exited non-zero on 'SIP/204-0858e408'

Über aufklärende Hilfe wäre ich sehr dankbar! Bin momentan etwas ratlos.

lg Fips
 
Hallihallo!

voipfips schrieb:
Ich teste das ganze auf einer TrixBox mit FreePBX installed,
[/QOUTE]

hm keine ahnung ob das problematisch ist... ich bin da eher ein freund einer reinen installation, z.B. Debian, und dann ein asterisk draufziehen... aber naja, theoretisch sollte sich die kiste auch so wie du sie hast laufen.

diese includerei hat mir schon die ein oder andere schlaflose nacht bereitet...
ich benutze daher sprünge in contexte...
und daher würde ich das ganze in einem context abhandeln.
also zum beispiel:
extensions.conf:
Code:
[test-autodial]
exten => 400,1,Answer
exten => 400,n,Wait(1)
exten => 400,n,Record(nachricht.ulaw)
exten => 400,n,Wait(1)
exten => 400,n,Playback(nachricht)
exten => 400,n,Wait(1)
exten => 400,n,Hangup

exten => h,1,Dial(SIP/201,60)
exten => h,n,Wait(1)
exten => h,n,Playback(nachricht)
exten => h,n,Wait(1)
exten => h,n,Hangup(1)

Also das wäre jetzt so meine Trockenüberlegung... werde das vll gleich mal auf meiner testkiste ausprobieren... hab aber erst noch paar andere dinge zu tun...
kannst ja mal parallel einhacken und feedback geben.

mfg j4r
 
also ich habs jetzt selbst mal durchprobiert... es scheint tatsächlich so nicht zu gehen. ich finde es aber okay, da es ja auch eigentlich nicht vorgesehen ist, sowas zu machen.
die h extension ist ja eher für variablenänderungen nach callende.. eben cdr records.
ich würde es dann glaube ich doch mit nem callfile machen, das
kann man ja dann ruhig in der h extension erstellen lassen, was dann
eine localextension wählt, also zum beispiel h@autodial oder so.
sonst wirds glaub ich nicht klappen.
 
ja. bin nach reichlichem probieren und googeln auch drauf gekommen ;)

wie kann man ein callfile im dialplan erstellen lassen?

lg und Danke
Fips
 
Mach dir erstmal n context, zum beispiel
Code:
[spul-mich-ab]
exten => 30,1,Dial(SIP/201,60)
exten => 30,n,Wait(1)
exten => 30,n,Playback(nachricht)
exten => 30,n,Wait(1)
exten => 30,n,Hangup(1)

und als h extension des 400er anruf machste:
Code:
exten => h,1,Sysem("cp ~/callfile /var/spool/asterisk/callfile")
das lässt sh den befehl cp ausführen. mir ist der genaue pfad grad nich eingefallen.
das callfile was du da reinschiebst bereitest du vor, es soll ja nur Local/30@spul-mich-ab anrufen. da muss sich ja nix ändern.

Fertig sollte es sein.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.