[Gelöst] Manuelle Aufnahme von Anrufen

JoRoLa

Neuer User
Mitglied seit
14 Okt 2013
Beiträge
18
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich hab mich damit beschäftig, wie ich Anrufe aufnehme.
Allerdings will ich, am Beispiel eines Softphones, dass nur aufgenommen wird, wenn eine bestimmte Kombination gedrückt wird (z.B. #3).

Wenn ich das richtig verstehe, dann muss ich doch in der features.conf
automixmon = #3

setzen.

Danach soll ich bei der Dial() oder Queue() funktion einfach bei den Anweisungen ein X ranhängen.

Das erscheint mir irgendwie zu simpel. Wie hängt denn das X mit automixmon zusammen?
Wo stelle ich den Namen der Sound-Datei ein, unter den ich die Aufnahme speichern will?

Gruß
JoRoLA
 
Zuletzt bearbeitet:
x oder X heisst einfach nur das calling/called party aufnehmen darf.
Das sollte dann in /var/spool/asterisk/monitor landen, für manuelle Dateinamen müsste man wohl ein Macro mit Mixmonitor definieren oder evtl. geht auch sowas:

startmix => *4,both,MixMonitor(${CALLERID(num)}-${EXTEN}-${UNIQUEID}.wav,b)
 
Zuletzt bearbeitet:
Ich muss nochmal nachfragen (Schritt-für-Schritt):

Im Ordner
/var/spool/asterisk/monitor
lege ich eine Datei an, in der steht:
startmix => *4,both,MixMonitor(${CALLERID(num)}-${EXTEN}-${UNIQUEID}.wav,b)


In features.conf setze ich
automixmon = *4

Wie baue ich das dann in extensions.conf?

z.B.
exten => _.,1, Dial(...,x)
(...)
exten => _.,n, startmix
(...)
exten => Hangup()

Wo lege ich das x fest?
 
Zuletzt bearbeitet:
Ok, also ich definiere in features.conf wie die Funktion auszusehen hat.
startmix => *4,both,MixMonitor(${CALLERID(num)}-${EXTEN}-${UNIQUEID}.wav,b)

In /var/spool/asterisk/monitor lege ich eine Datei an, in der steht, dass jemand berechtigt ist überhaupt aufzunehmen. Wie kann sowas aussehen?

In den extensions.conf baue ich das dann in die extension so ein?
exten => _.,1, Dial(...,x)
(...)
exten => _.,n, startmix
(...)
exten => Hangup()
 
Du brauchst im spool Verzeichnis überhaupt nichts anlegen. Dort wird Asterisk die Aufnahmen hin packen.

Die "Berechtigung" zum Aufnehmen regelt das Flag x bzw. X in der Dial Anweisung, oder das Schlüsselwort both (alternativ caller oder callee) bei eigenen Funktionen.

Auch wenn es Dir zu simpel erschien, die Vorgehensweise, die Du selbst eingangs beschrieben hast, ist vollkommen richtig.

Der startmix Eintrag für die features.conf ist ein Vorschlag von xrated, um einen benutzerdefinierten Dateinamen zu erzeugen. Ansonsten verwendet Asterisk eine Kombination aus Zeitstempel und Extension.
 
Ok, also .../monitor ist einfach der Speicherort. Danke für die Aufklärung. :)

Ich finde die Variante von xrated nicht schlecht.

Ist das denn richtig bei Dial eingearbeitet?
Wenn ich das bei Answer() einarbeite müsste das doch so aussehen oder?

exten => _., 1, Answer(...,x)
(...)
exten => _., n, startmix
(...)
exten => _.,n, Hangup()
 
Ich glaube, Dir ist das Prinzip noch nicht so recht klar.

Die Flags x und X gehören zum Dial Befehl, siehe hier.
exten => _X.,n,Dial(SIP/123,,xX) sorgt dafür, dass sowohl der Anrufer als auch der Angerufene die Aufzeichnung mit der für automixmon in der features.conf unter featuremap festgelegten Tastenkombination starten können.

Wenn Du, wie von xrated vorgeschlagen, eine eigene Funktion in der features.conf anlegst, brauchst Du die Flags nicht, und auch sonst keine weiteren Aktionen im Dialplan siehe #9. Die Funktion ist dann für alle Gespräche verfügbar und darf von demjenigen gestartet werden, der in der Definition genannt ist (zB. both für Anrufer und Angerufenen), siehe hier zum Thema applicationmap.

Btw., exten => _. macht man nicht, exten => _X. ist besser, weil damit die special extensions nicht überschrieben werden.
 
@rentier-s:
Wenn Du, wie von xrated vorgeschlagen, eine eigene Funktion in der features.conf anlegst, brauchst Du die Flags nicht, und auch sonst keine weiteren Aktionen im Dialplan.

Das stimmt nicht unbedingt. Wenn man in features.conf die [applicationmap] für das feature nutzt, steht das feature IMHO nur dann zur Verfügung, wenn es (vor dem Dial-Command) mit Set(__DYNAMIC_FEATURES=startmix) aktiviert wurde.
 
Wenn ich mich also dafür entscheide die Funktion automixmon in features.conf zu verwenden, dann muss ich bei Dial(...,X) und Queue(...,x) schreiben, wenn ich möchte, dass, wenn ich anrufe oder angerufen werde, ich die Berechtigung habe eine Aufnahme zu starten.
Die Aufnahme, die entsteht wird dann unter .../monitor gespeichert.
automixmon muss nicht nochmal im Dialplan erwähnt werden, da ich ja die beiden X und x gesetzt habe oder?

Wenn ich mich für eine eigene Funktion entscheide, dann muss ich in features.conf unter [featuremap] z.B. folgende Funktion schreiben:
startmix => *4,both,MixMonitor(${CALLERID(num)}-${EXTEN}-${UNIQUEID}.wav,b)
Allerdings muss ich in extensions.conf dann auch Set(__DYNAMIC_FEATURES=startmix) in meiner Extension setzen.
Des Weiteren müsste ich startmix ja auch noch in den Dialplan einarbeiten, wie oben gezeigt oder?

Es stellt sich mir noch eine Frage: Bei startmix stelle ich ja mit dem Parameter b ein, dass die Tonspur des Anrufers und des Angerufenen in einer Datei zusammengeführt werden. Wie ist das bei automixmon?
 
automixmon muss nicht nochmal im Dialplan erwähnt werden, da ich ja die beiden X und x gesetzt habe oder?

Richtig.

dann muss ich in features.conf unter [featuremap] z.B. folgende Funktion schreiben

in [applicationmap]

in extensions.conf dann auch Set(__DYNAMIC_FEATURES=startmix) in meiner Extension setzen

Richtig.

Des Weiteren müsste ich startmix ja auch noch in den Dialplan einarbeiten, wie oben gezeigt oder?

Nein!

Wie ist das bei automixmon?

Das nimmt selbsttätig beide Spuren auf, im Gegensatz zu automon.
 
Ok, vielen Dank für die Hilfe.
Wenn ich nun die Aufnahmeberechtigung bei automixmon aktivieren will, wie baue ich das dann ein? Ich finde nur Infos zu Queue().
Wenn es beispielsweise so aussieht:

Code:
exten => 123,1,Answer()
(...)
exten => 123,n,Hangup()
 
Zuletzt bearbeitet:
Code:
exten => 123,1,Answer()
[COLOR="#FF0000"]exten => 123,n,Set(__DYNAMIC_FEATURES=startmix)[/COLOR]
(...)
exten => 123,n,Hangup()
 
Danke für die Antwort, aber ich meinte das in Bezug auf automixmon, der bereits gegebenen Funktion in features.conf unter [features]. Wie baue ich das X bzw x ein, wenn ich nur die folgende Extension habe:

exten => Answer()
(...)
exten => Hangup()

Bei Dial() ist das klar, doch wo setze ich das x bei der oben gezeigten Extension? Ich finde nur Beispiele mit Queue().
 
???? Wer soll bitte in diesem Szenario ein feature auslösen ???? :confused:

Wenn Der Asterisk den Call einfach nur annimmt (Answer()), irgendetwas tut und dann auflegt, wie, von wem (und auch: Warum?) soll dann ein Monitoring gestartet werden? :confused:

Wenn Du tatsächlich etwas ganz anderes willst, nämlich den Anrufer ggf. eine Nachricht aufsprechen lassen, reden wir nicht über (Mix)Monitor, es wird ja auch kein Gespräch "überwacht", sondern ggf. über Record oder Voicemail (je nachdem, was Du nun eigentlich willst) ggf. in Verbindung mit einer vorherigen Menüführung (oder eben nur der einfachen Abfrage einer DTMF-Kombination mit Read).

Entscheidend ist: features aus features.conf können nur in Callbridges verwendet werden, die Asterisk selbst erzeugt, letztlich also in Szenarien, wo ein A-Teilnehmer und ein B-Teilnehmer auf Grund eines Dial-Befehls (und sei er indirekt aus einer Queue ausgelöst) miteinander verbunden (gebridged) werden und wo Asterisk zudem im Medienstrom steht (daher das x bzw. X im Dial). Merke: Ohne Dial oder Queue (ggf. noch MeetMe oder ConfBridge aber da gibt es noch mehr zu beachten) ist das Monitoring-Feature aus features.conf nicht nutzbar.
 
Ich möchte, dass ich eine Aufnahme starten kann, wenn ich einen Anruf entgegen nehme. Mich ruft jemand an, ich hebe ab und starte eine Aufnahme.
 
Mich ruft jemand an, ich hebe ab und starte eine Aufnahme.

Und genau das geht auch, wie wir Dir nun mehrfach versucht haben, mitzuteilen.
Nur dass Du in dem hier gezeigten Beispiel zu keinem Zeitpunkt "abhebst", sondern vielmehr Dein Asterisk "abhebt".
Wo bitte kommst Du in Deinem Beispiel hier ins Spiel, respektive an welchem Telefon hebst Du ab und sprichst mit dem Anrufer?
 
Ich habe das so verstanden, dass ich, wenn ich einen Anruf entgegennehmen möchte die Extension schreibe:

exten => Answer()
Hier können ja diverse Funktionen stehen
exten => Hangup() ; Das Gespräch wird beendet

Und da ich bei Dial() nur ein X setzen muss dachte ich, dass das auch bei Answer() geht.

Oder könnte man das auch in etwas so umsetzen:

exten => Answer()
exten => 12345,n,Dial(SIP/2001,X)
(...)
exten => Hangup()
 
Zuletzt bearbeitet:
Wir kommen der Sache näher, auch wenn die Syntax bei Dial jetzt noch falsch ist. Da empfiehl sich aber core show application Dial oder die Nutzung der Suchmaschine Deiner Wahl, die das Ergebnis dann auch in deutsch liefert.

Noch ein Hinweis: Grundsätzlich ist (bei eingehenden Anrufen) ein Answer() vor dem Anruf des eigentlichen Ziels mit Dial() eher kontraproduktiv, da mit Answer() das Gespräch angenommen wird (Das Rufzeichen endet beim Anrufer) ohne dass ein internes Ziel überhaupt schon geklingelt hätte. Abgesehen davon, dass man das wieder mit diversen Dial-Parametern heilen kann, bedeutet es aber auch, dass an dem Answer() der Gebührenzähler läuft (nicht jeder hat Flatrates).
 
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.