C.100. 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 separaten Dateien aufgezeichnet, bis der Channel aufgelegt oder die Überwachung durch die StopMonitor()-Anwendung beendet wird.
Format gibt das Dateiformat (d. h. die Dateiendung) an. Ohne Angabe wird wav verwendet.
Basisname gibt den Basis-Dateinamen an (also ohne Dateiendung). Ohne Angabe wird der Name aus dem Channel-Namen 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 zu einer Datei zusammengefasst und die ursprünglichen Dateien gelöscht. Dazu muss das Programm soxmix aus dem Paket sox installiert sein.[203]Falls die Variable ${MONITOR_EXEC} definiert ist, wird statt soxmix die angegebene Anwendung ausgeführt, und die ursprünglichen Dateien für beide Richtungen werden nicht automatisch gelöscht.[204] soxmix (bzw. ${MONITOR_EXEC}) werden drei Parameter übergeben: die beiden Aufzeichnungsdateien und der Dateiname für die zu erstellende gemischte Datei, der dem Basisnamen ohne -in/-out entspricht. Ist ${MONITOR_EXEC_ARGS} gesetzt, wird 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 über die Aufzeichnung informiert sein.[205]

Anmerkung

Einige Anwender, die viele (50 bis 500) Gespräche gleichzeitig aufnehmen, berichten von stark verbesserter Performance, wenn man auf eine RAM-Disk aufzeichnet (weniger Suchoperationen) und die Dateien erst nach dem Gesprächsende auf die Festplatte (lokal oder gemountet) kopiert.
Asterisk-Versionen:
————————| 1.2 |————————| 1.4 |————————| 1.6 |————————
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
          sox and the raw leg files will NOT be deleted automatically.
          sox 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 des internen Hilfetexts von Asterisk 1.2 zu 1.4:
--- in Asterisk 1.2
+++ in Asterisk 1.4
@@ -14,8 +14,8 @@
       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
+            sox and the raw leg files will NOT be deleted automatically.
+            sox 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
Differenz des internen Hilfetexts von Asterisk 1.4 zu 1.6:
--- in Asterisk 1.4
+++ in Asterisk 1.6
@@ -4,7 +4,7 @@
   Monitor a channel

   [Description]
-  Monitor([file_format[:urlbase]|[fname_base]|[options]]):
+    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.
@@ -19,11 +19,13 @@
             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
+            additional arguments 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
+      i   - Skip recording of input stream (disables m option)
+      o   - Skip recording of output stream (disables m option)

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


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

[204] Das hängt von der Asterisk-Version ab; ältere Versionen löschen nicht automatisch.