Coverbild des Asterisk Buches von Stefan Wintermeyer

Letzte Woche => Endspurt!

Montag den 29.01.07 geht das Buch in die Produktion. Bis dahin laeuft der Beta-Test noch in vollem Umfang. Bitte melden Sie Fehler! Siehe Beta-Test FAQ.

Erscheinungstermin: 03.03.07. Das Buch wird auf dem Asterisk-Tag.org in Chemnitz vorgestellt und kann dort auch erworben werden. 10 Tage spaeter wird es im Buchhandel sein. Wer nicht in Chemnitz sein kann, sollte das Buch vorbestellen: Amazon oder direkt beim Verlag

Asterisk-Schulungen und Consulting vom Autor dieses Buches finden Sie auf http://www.amooma.de. Naechste Asterisk-Schulung: 12.02. - 13.02.07 (noch 1 Platz frei) - Ach ja, ... wir suchen auch noch Asterisk Entwickler! => http://www.amooma.de/jobs/


10.54. Monitor()

Schneidet das Gespräch auf dem aktuellen Channel mit (zwei Dateien)

Monitor([Format[,Basisname[,Optionen]]])

Startet die Audio-Aufzeichnung des aktuellen Channels. Die auf dem Channel eingehenden und ausgehenden Sprachpakete werden in seperaten Dateien aufgezeichnet, bis der Channel aufgelegt oder die Überwachung durch die StopMonitor()-Anwendung beendet wird.

Format gibt das Dateiformat (= Dateiendung) an. Ohne Angabe wird wav verwendet.

Basisname gibt den Basis-Dateinamen an (also ohne Dateiendung). Ohne Angabe wird der Name aus dem Channelnamen und einer Nummer zusammengesetzt, z.B. IAX2[foo@bar]-3. Das eingehende Audio wird in Basisname-in.Format, das ausgehende in Basisname-out.Format im Verzeichnis /var/spool/asterisk/monitor/ gespeichert.

Eine der beiden Optionen kann angegeben werden:

m

Nach dem Beenden der Aufnahme werden die Dateien für In und Out in eine gemischt und die ursprünglichen Dateien gelöscht. Dazu muss das Programm soxmix aus dem Paket sox installiert sein[55]. Falls die Variable ${MONITOR_EXEC} definiert ist, wird statt soxmix die angegebene Anwendung ausgeführt, und die ursprünglichen Dateien für beide Richtungen nicht automatisch gelöscht[56]. soxmix (bzw. ${MONITOR_EXEC}) werden drei Parameter übergeben, die beiden Aufzeichnungsdateien und der Dateiname für die zu erstellende gemischte Datei, welcher dem Basisnamen ohne -in/-out entspricht. Ist ${MONITOR_EXEC_ARGS} gesetzt, werd der Inhalt als zusätzliche Argumente an ${MONITOR_EXEC} übergeben.

Wichtig

Bei der Verwendung von soxmix ist zu beachten, dass soxmix ohne explizite Angabe der Dateitypen diese aus den Endungen erkennt. gsm und wav bereiten z.B. keine Probleme, aber für die Formate alaw und ulaw werden als Endungen al bzw. ul erwartet. Lesen Sie also ggf. die Anleitung von sox (/soxmix) und verwenden Sie ${MONITOR_EXEC_ARGS} oder benutzen Sie ein kleines Wrapper-Skript als ${MONITOR_EXEC}, das die Datei-Parameter liest und soxmix mit Angabe der Typen aufruft.

Anmerkung

Wenn Sie eine kombinierte Aufzeichnung wollen, ist meist MixMonitor() die bessere Alternative, da es die Kanäle direkt während der Aufnahme mischt und dadurch Lastspitzen am Ende der Aufzeichnung vermeidet.

b
Startet die Aufnahme erst, nachdem ein Anruf zu einem anderen Channel verbunden wurde, also nachdem z.B. durch Dial() tatsächlich ein Gespräch zustande kommt.

Gibt 0 bei Erfolg zurück oder -1 bei einem Fehler (Überwachungsdateien konnten nicht geöffnet werden, Channel wird bereits aufgezeichnet, ...)

; das Gespräch aufzeichnen und hinterher die Audio-Kanäle mixen:
exten => 123,1,Answer()
exten => 123,n,Monitor(gsm,,mb)
exten => 123,n,SayDigits(123456789)
exten => 123,n,Hangup()

; wie oben aber mit einem eigenen Wrapper, der soxmix aufruft:
exten => 123,1,Answer()
exten => 123,n,Set(MONITOR_EXEC=/pfad/zu/mein-soxmix-wrapper.sh)
exten => 123,n,Monitor(gsm,,mb)
exten => 123,n,SayDigits(123456789)
exten => 123,n,Hangup()

Wichtig

Stellen Sie vor dem Mitschneiden von Gesprächen sicher, dass die rechtlichen Voraussetzungen erfüllt sind. Meist müssen beide Teilnehmer von der Aufzeichnung informiert sein.[57]

Anmerkung

Einige Anwender, die viele (50-500) Gespräche gleichzeitig aufnehmen, berichten von stark verbesserter Performance, wenn man auf eine RAM-Disk aufzeichnet (weniger Such-Operationen) und die Dateien erst nach Gesprächsende auf die Festplatte (lokal oder gemountet) kopiert.

Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'Monitor' =- 

[Synopsis]
Monitor a channel

[Description]
Monitor([file_format[:urlbase]|[fname_base]|[options]]):
Used to start monitoring a channel. The channel's input and output
voice packets are logged to files until the channel hangs up or
monitoring is stopped by the StopMonitor application.
  file_format  optional, if not set, defaults to "wav"
  fname_base   if set, changes the filename used to the one specified.
  options:
    m   - when the recording ends mix the two leg files into one and
          delete the two leg files.  If the variable MONITOR_EXEC is set, the
          application referenced in it will be executed instead of
          soxmix and the raw leg files will NOT be deleted automatically.
          soxmix or MONITOR_EXEC is handed 3 arguments, the two leg files
          and a target mixed file name which is the same as the leg file names
          only without the in/out designator.
          If MONITOR_EXEC_ARGS is set, the contents will be passed on as
          additional arguements to MONITOR_EXEC
          Both MONITOR_EXEC and the Mix flag can be set from the
          administrator interface

    b   - Don't begin recording unless a call is bridged to another channel

Returns -1 if monitor files can't be opened or if the channel is already
monitored, otherwise 0.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 10.14, „ChangeMonitor(), Abschnitt 10.97, „StopMonitor(), Abschnitt 10.53, „MixMonitor(), Abschnitt 10.75, „Record()



[55] http://sox.sourceforge.net/, siehe Beschreibung in Abschnitt 2, „musiconhold.conf, mindestens Version 12.17.7, Ihre installierte Version erfahren Sie mit soxmix -help

[56] abhängig von der Asterisk-Version; ältere Versionen löschen nicht automatisch