DTMFBox: Event confirmed wird nicht ausgelöst

sonyandi

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

ich möchte gerne ein Script ausführen, wenn ein Gespräch angenommen bzw. beendet wird (event = confirmed || event = unconfirmed). Leider tritt dieses Event nicht ein, obwohl die Gespräche angenommen werden. Was mache ich falsch?

Auszug aus dem Log, es tritt nach dem Connect gleich das Disconnet Event ein, warum?:confused:
Code:
 23:32:18 Create UAS dialog ...
 23:32:18 Create media capability ...
 23:32:18 Create invite session ...
 23:32:18 Respond 100 ...
 23:32:18 [type=voip/inc conid=0 accid=1] Call state changed to INCOMING
 23:32:18 Respond 180 (*ring*)..
 23:32:18 [type=voip/inc conid=0 accid=1] Call EARLY (reason=0, Default status message)
 23:32:18 Ignoring connection for unknown account. CalledParty=0#xxxxx, CallingParty=xxxxxx
 23:32:18 [plugin.menu] Action: script:action_wrapper (acc=1 con=0)
 23:32:18 [plugin.menu] Script: /var/dtmfbox/script/action.sh(/var/dtmfbox/script/action.sh, "CONNECT", "VOIP", "INCOMING", "0", "-1", "xxxxxx", "[email protected];user=phone", "1", "", "") (acc=1 con=0)
/var/dtmfbox/script/action.sh: /var/dtmfbox/script.cfg: line 145: -n: not found
/var/dtmfbox/script/action.sh: /var/dtmfbox/script.cfg: line 145: -n: not found
 23:32:34 [type=voip/inc conid=0 accid=1] Call DISCONNECTED (reason=487, Request Terminated)
 23:32:34 [plugin.menu] Action: script:action_wrapper (acc=1 con=0)
 23:32:34 [plugin.menu] Script: /var/dtmfbox/script/action.sh(/var/dtmfbox/script/action.sh, "DISCONNECT", "VOIP", "INCOMING", "0", "-1", "xxxxxx", "[email protected];user=phone", "1", "", "487") (acc=1 con=0)

Danke für Eure Tipps.
 
Hat wirklich keiner eine Idee ?
 
Hi.

Ich schau mir das heute abend an. Hatte ein wenig Pause gemacht.
Es ist die aktuelle dtmfbox-Version, richtig?
 
Hallo bodega,

ich habe Version 0.5.0 installiert, ich denke das ist die aktuellste Version.
 
Ja ist die aktuellste.
Da muss irgendein Syntaxfehler in der script.cfg sein (Zeile 145). Könntest du die entsprechende Zeile posten? Eventuell auch die Zeilen davor und danach.

Wie sieht der [action:...] Eintrag aus?
 
Hallo bodega,

Zeile 145 in der script.cfg ist leer. Die letzte Zeile ist 144, wie mir vi anzeigt.

Code:
# [SECTION:Webinterface]
PATCHDIFF="1"                                           # Speicherverhalten [OPT
DIRECT_EDIT="0"                                         # "Text-Editor Modus" st
TEXTAREA_ROWS="25"                                      # Zeilen im Editor [WIDT
TEXTAREA_WRAP="off"                                     # Automatischer Zeilenum
[B]- script.cfg 144/144 100%[/B]



In der action.sh habe ich lediglich den Eintrag zum starten des action_myrec.sh vorgenommen sonst ist nichts geändert.

Code:
#!/var/tmp/sh
. /var/dtmfbox/script.cfg

# Load arguments & settings
EVENT="$1"
TYPE="$2"
DIRECTION="$3"
SRC_ID="$4"
DST_ID="$5"
SRC_NO="$6"
DST_NO="$7"
ACC_ID="$8"
DTMF="$9"
DATA="$10"
ACTION_CONTROL="/var/dtmfbox/tmp/$SRC_ID.action_control"

if [ "$TYPE" = "USER" ]; then return 1; fi

run_script() {
	. $1 "$EVENT" "$TYPE" "$DIRECTION" "$SRC_ID" "$DST_ID" "$SRC_NO" "$DST_NO" "$ACC_ID" "$DTMF" "$DATA"
}

# Initialize ACTION_CONTROL file (remove).
# When file exist, some script has taken the control over the connection
if [ "$EVENT" = "CONNECT" ];
then
	if [ -f "$ACTION_CONTROL" ]; then rm "$ACTION_CONTROL"; fi	
fi



[B]if [ "$EVENT" = "CONFIRMED" ] || [ "$EVENT" = "UNCONFIRMED" ]; then
run_script "/var/dtmfbox/script/action_myrec.sh" &
fi[/B]


if [ "$DIRECTION" = "INCOMING" ]
then
	# Answering machine
	if [ "$EVENT" = "CONNECT" ] || [ "$EVENT" = "DTMF" ] || [ "$EVENT" = "DISCONNECT" ]; then
		run_script "/var/dtmfbox/script/action_am.sh" &		
	fi

	# Callback/Callthrough 
	if [ "$EVENT" = "CONNECT" ] || [ "$EVENT" = "DISCONNECT" ]; then
		run_script "/var/dtmfbox/script/action_cbct.sh" &		
	fi
fi

if [ "$DIRECTION" = "INCOMING" ] || [ "$DIRECTION" = "OUTGOING" ];
then
	(
		                
                # Anti-Callcenter
		run_script "/var/dtmfbox/script/action_anticallcenter.sh"

		# Reverse lookup  (incoming and outgoing action)
		run_script "/var/dtmfbox/script/action_reverse.sh"
                
                
	)&
fi


Und das Script action_myrec.sh ist im Grunde eine Kopie des mitgelieferten
action_am.sh, das ich so abgeändert habe, dass eingehende und ausgehende Gespräche aufgezeichnet werden. Allerdings ist es nie gestartet, so dass ich nicht weiß ob es funktioniert. Und das sieht so aus:

Code:
#!/var/tmp/sh
. /var/dtmfbox/script/funcs.sh
. /var/dtmfbox/script/am_funcs.sh

# Abort on client connections (registrar-mode)!
if [ "$TYPE" = "USER" ]; then exit 1; fi

get_locktempdir
AM_PID="/var/dtmfbox/tmp/$SRC_ID.am_pid"
PLAY_FIFO="$LOCKTEMPDIR/$SRC_ID.play"
REC_FIFO="$LOCKTEMPDIR/$SRC_ID.record"

# load answering machine settings
load_am_settings "$ACC_ID"

# Kill AM process
kill_process() {
  if [ -f "$AM_PID" ]; then
	PID=`cat "$AM_PID"`
	if [ "$PID" != "" ] && [ "$PID" != "-1" ] && [ "$PID" != "0" ];
	then
	  kill -9 $PID 2>/dev/null
	fi
	rm "$AM_PID" 2>/dev/null
  fi
}


generate_rec_filename() {

  RECFILE_NAME="`echo $SRC_NO-$DST_NO | sed 's/@.*//g' | sed 's/\./_/g' | sed 's/\*//g' | sed 's/#//g'`"
  DATE="`date +'%y-%m-%d'`"
  DATETIME="`date +'%y-%m-%d--%H-%M-%S'`"
  RECFILE_UNIQUE="`echo $DTMFBOX_PATH/record/$ACC_ID/$DATETIME---$RECFILE_NAME.wav`"
  RECFILE_UNIQUE_FTP="`echo $DATETIME---$RECFILE_NAME.raw`"
  RECFILE="`echo $DTMFBOX_PATH/record/$ACC_ID/$DATE---$RECFILE_NAME-$SRC_ID.wav`"
  DATETEXT="`date +'am %d.%m.%y, um %H:%M Uhr.'`"
}

# Record to file or FTP
record_file() {

 # create directory (if not exist)
 if [ ! -d "$DTMFBOX_PATH/record/$ACC_ID" ]; then mkdir -p "$DTMFBOX_PATH/record/$ACC_ID"; fi

 if [ "$AM_FTP" = "1" ];
 then

   # stream raw data to ftp
   if [ -p "$REC_FIFO" ]; then rm "$REC_FIFO"; fi
   $MKFIFO "$REC_FIFO"

   if [ -p "$REC_FIFO" ];
   then

	 # stream to FTP and send file with mailer
	 if [ "$AM_MAIL" = "1" ];
	 then
	   $DTMFBOX $SRC_ID -record "$RECFILE" &

	 # just stream to FTP
	 else
	   echo "AM-Script: stream to $AM_FTP_SERVER:$AM_FTP_PORT$AM_FTP_PATH"
	   $DTMFBOX $SRC_ID -record "$REC_FIFO" &
	   $FTPPUT -u "$AM_FTP_USERNAME" -p "$AM_FTP_PASSWORD" -P "$AM_FTP_PORT" "$AM_FTP_SERVER" "$AM_FTP_PATH/$RECFILE_UNIQUE_FTP" "$REC_FIFO" &
	
	   # create local pseudo file
	   RECFILE_UNIQUE=`echo "$RECFILE_UNIQUE" | sed -e 's/\.wav/\.raw/g'`
	   echo > "$RECFILE_UNIQUE"
	 fi	

   fi

 else

   # record to local file
   $DTMFBOX $SRC_ID -record "$RECFILE"

 fi
}


# Answering-Machine - START
if [ "$EVENT" = "CONFIRMED" ] ;
then
(
# Another script already active?
   if [ -f "$ACTION_CONTROL" ]; then
	 rm "$AM_PID"
	 echo "AM-Script: Another script already got the call! Aborting..."
	 exit 1
   fi
   generate_rec_filename
   echo "AM" > "$ACTION_CONTROL"
      # record message
	 echo "AM-Script: recording $RECFILE"
	 record_file	
 
 rm "$AM_PID"
   exit 1;
  )&
   # save pid of am process
  echo "$!" > "$AM_PID"
  exit 1;
fi


# Answering-Machine - END
if [ "$EVENT" = "UNCONFIRMED" ];
then
 kill_process
 generate_rec_filename
 # Make recording "unique" (add time)
 if [ -f "$RECFILE" ];
 then
   $DTMFBOX $SRC_ID -stop record

   mv "$RECFILE" "$RECFILE_UNIQUE"
   RECFILE="$RECFILE_UNIQUE"
   echo "AM-Script: successfully recorded to $RECFILE"
 fi
fi


Wobei ich mir noch nicht sicher bin, ob im Script beide Gesprächsrichtungen aufgezeichnet werden.

Im Voraus schon mal besten Dank für Deine Mühe.

EDIT:
Ach noch was, der Anrufbeantworter funktioniert, wenn er aktiviert ist. Nur das Aufzeichnungsscript nicht.
 
Bzgl. des "-n" Fehlers kann ich momentan wenig sagen. Schaue ich später nochmal.

Das Skript wird nicht aufgerufen, da CONFIRMED erst nach dem Abheben passiert. Das müsste in etwa so sein (ungetestet):

action.sh:
Code:
if [ "$DIRECTION" = "INCOMING" ] && [ "$EVENT" = "CONNECT" ];
then
  # Hiernach kommt der "CONFIRMED"
  $DTMFBOX $SRC_ID -hook up  
fi

if [ "$DIRECTION" = "INCOMING" ] && [ "$EVENT" = "CONFIRMED" ];
then
  # Aufnehmen
  $DTMFBOX $SRC_ID -record $DTMFBOX_PATH/record/aufnahme-$SRC_ID.wav
fi

Wie du siehst, muss die dtmfbox das Gespräch entgegennehmen, damit auch aufgenommen werden kann. Falls du aber Gespräche mitzeichnen möchtest, empfehle ich dir den Weg über den SIP-Registrar. Dann hast du zwei Verbindungen und kannst beide aufzeichnen. Dann dürfte es mit dem CONFIRMED schon funktionieren (wenn man "$DIRECTION" im if-Zweig weg lässt).
 
Zuletzt bearbeitet:
Ich bin bisher davon ausgegangen, dass wenn es klinget und jemand den Hörer abnimmt, die dtmfbox das automatisch erkennt und sich der Status zu CONFIRMED ändert. Aber sowie ich dich verstanden habe muss ich in der dtmfbox das Gespräch nochmal separat mit hook up annehmen.
Sehe ich das so richtig?

Wie müßte ich bei einem ausgehenden Gespräch vorgehen und wie beende ich dann die Aufnahme, wenn das Gespräch beendet ist.

Falls du aber Gespräche mitzeichnen möchtest, empfehle ich dir den Weg über den SIP-Registrar. Dann hast du zwei Verbindungen und kannst beide aufzeichnen

Genau das ist es was ich machen will. Wie und wo stelle ich den SIP-Registrar ein?
 
Ich bin bisher davon ausgegangen, dass wenn es klinget und jemand den Hörer abnimmt, die dtmfbox das automatisch erkennt und sich der Status zu CONFIRMED ändert. Aber sowie ich dich verstanden habe muss ich in der dtmfbox das Gespräch nochmal separat mit hook up annehmen.
Sehe ich das so richtig?
Genau. Das Problem ist, dass dtmfbox und die proprietären Sachen der FritzBox (telefond, voipd) zusammen arbeiten müssen. Leider kann nur einer die Kontrolle über ein Gespräch bekommen. Wer zuerst dran geht, der hat gewonnen ;-). Zumindest bei der CAPI und da kommt der Registrar-Modus ins Spiel:

Die dtmfbox kann als Registrar eingerichtet werden (man muss Benutzer und Pass beim jew. Account hinterlegen). Den Internettelefonieaccount änderst du so ab, dass er er sich mit fritz.box:5061 registriert (mit dem entsprechenden Benutzer/Pass ^^).

Somit wird das Gespräch durch die dtmfbox geleitet. Bei einem aktiven Gespräch siehst du dann mittels "dtmfbox -list", dass zwei Verbindungen bestehen müssten (CONFIRMED wird selbstständig durchgeführt). Selbst habe ich soetwas noch nicht umgesetzt, aber es ist sicherlich machbar. Falls wir den Telefonrekorder hinbekommen, übernehme ich das direkt.. ganz klar :)
 
Hallo Marco,

leider komme ich nicht weiter :(
Ich weiß nicht wo genau ich fritz.box:5061 eintragen muss.

Nachfolgend ein Auszug aus meiner dtmfbox.cfg. Kannst Du mir bitte sagen wo ich was abändern muss.

Code:
[voip]
voip=1				// <b>VoIP</b> [OPTION:1|aktiviert,0|deaktiviert] [ONCHANGE:set_group('DIV_VOIP_ACTIVE', 'voip_voip', '1')]
				// [HTML:<div ID='DIV_VOIP_ACTIVE'>]
voip_registrar=1		// Registrar-Modus [OPTION:1|aktiviert,0|deaktiviert] [ONCHANGE:set_group('DIV_VOIP_REGISTRAR_MODE', 'voip_voip_registrar', '1')]
				// [HTML:<div ID='DIV_VOIP_REGISTRAR_MODE'>]
voip_max_clients=4		// Registrar-Modus: Max. Clients [OPTION:0|0,1|1,2|2,3|3,4|4,5|5,6|6,7|7,8|8,9|9,10|10]
voip_realm=fritz.box		// Registrar-Modus: Authentication-Realm [WIDTH:250px]
				// [HTML:</div><script>set_group('DIV_VOIP_REGISTRAR_MODE', 'voip_voip_registrar', '1')</script>]
voip_udp_port=5061		// SIP Port [WIDTH:50px]
voip_rtp_start=4000		// RTP/RTCP Start-Port [WIDTH:50px]
voip_rtp_max=4			// Max. Anzahl an RTP/RTCP Ports [OPTION:0|0,1|1,2|2,3|3,4|4,5|5,6|6,7|7,8|8,9|9,10|10,11|11,12|12,13|13,14|14,15|15,16|16,17|17,18|18,19|19,20|20]
voip_register_interval=3600	// Registrierungs-Intervall (in sec) [WIDTH:50px]
voip_keep_alive=180		// Keep-Alive alle X sec senden (0=aus) [WIDTH:50px]
voip_use_vad=0			// VAD (silence detection) [OPTION:1|aktiviert,0|deaktiviert]
voip_ip_addr=			// IP-Adresse des Interfaces (optional) [WIDTH:250px]
voip_stun=stun.1und1.de			// STUN-Server [WIDTH:250px]
voip_stun_port=3478		// STUN-Port [WIDTH:50px]
voip_ice=1			// ICE [OPTION:1|aktiviert,0|deaktiviert]
voip_nameserver=		// Nameserver (max. 4, Komma-getrennt) [WIDTH:250px]
voip_codecs=g711		// Codecs (g711, speex, gsm, Komma-getrennt) [WIDTH:250px]
voip_allow_unknown=0		// Ereignis auslösen, bei unbekannten Accounts? (nicht ändern!) [HIDE:1]
				// [HTML:</div><script>set_group('DIV_VOIP_ACTIVE', 'voip_voip', '1')</script>]


[acc1]
active=1			// <b>Account</b> [OPTION:1|aktiviert,0|deaktiviert] [ONCHANGE:set_group('DIV_ACC1_ACTIVE', 'acc1_active', '1')]
				// [HTML:<div ID='DIV_ACC1_ACTIVE'>]
name=Account1				// Name [WIDTH:250px]
number=491234123456				// Rufnummer [WIDTH:250px]
type=voip			// Account-Typ [OPTION:capi|capi,voip|voip] [ONCHANGE:set_group('DIV_ACC1_TYPE_CAPI', 'acc1_type', 'capi'); set_group('DIV_ACC1_TYPE_VOIP', 'acc1_type', 'voip')]
				// [HTML:<div ID='DIV_ACC1_TYPE_CAPI'><br><script>show_title('CAPI')</script>]							
capi_controller_out=1		// Standardcontroller (ausgehende Verbindung): [OPTION:1|1,2|2,3|3,4|4,5|5]
				// [HTML:</div><script>set_group('DIV_ACC1_TYPE_CAPI', 'acc1_type', 'capi')</script><div ID='DIV_ACC1_TYPE_VOIP'><br><script>show_title('VoIP')</script>]
voip_registrar=sip.1und1.de			// Registrar-Server [WIDTH:250px]
voip_realm=1und1.de			// Registrar-Realm (oder *) [WIDTH:250px]
voip_user=491234123456			// Username [WIDTH:250px]
voip_pass=MeinPasswort			// Passwort [WIDTH:250px] [TYPE:password]
voip_do_not_register=0		// Registrieren [OPTION:0|ja,1|nein]
voip_proxy=			// (Optional) Proxy [WIDTH:250px]
[email protected]			// (Optional) ID [WIDTH:250px]
voip_contact=			// (Optional) Contact [WIDTH:250px]
				// [HTML:</div><script>set_group('DIV_ACC1_TYPE_VOIP', 'acc1_type', 'voip')</script><br><script>show_title('Registrar-Login')</script>]
registrar_active=1		// Registrar-Login [OPTION:1|aktiviert,0|deaktiviert] [ONCHANGE:set_group('DIV_ACC1_REGISTRAR', 'acc1_registrar_active', '1')]
				// [HTML:<div ID='DIV_ACC1_REGISTRAR'>]
registrar_user=491234123456			// Username [WIDTH:250px]
registrar_pass=MeinPasswort			// Passwort [WIDTH:250px] [TYPE:password]
				// [HTML:</div><br><script>set_group('DIV_ACC1_REGISTRAR', 'acc1_registrar_active', '1');show_title('Internes Menü')</script>]
menu_entry=menu:main		// Einstiegsmenü [WIDTH:250px]
menu_keycode=*610		// Interne Kurzwahl [WIDTH:50px]
				// [HTML:</div><script>set_group('DIV_ACC1_ACTIVE', 'acc1_active', '1')</script>]

Danke und gruß
sonyandi
 
Hallo sonyandi,

fritz.box:5061 musst du im AVM-Webinterface hinterlegen (als Internettelefonieaccount). Du meldest dich dann mit
Code:
registrar_user=491234123456
registrar_pass=MeinPasswort
und dem Registrar "fritz.box:5061" an (anderer Anbieter auswählen --> siehe dtmfbox Hilfe).

Der voipd meldet sich dann nicht direkt bei 1und1 an, sondert erst bei der dtmfbox. Die dtmfbox verbindet sich daraufhin mit 1und1 (voipd -> dtmfbox -> 1und1).
 
Hallo Marco,

habe die Einstellungen vorgenommen, die registrierung funktioniert und auch der eingehende Anruf wird auch von der dtmfbox erkannt. Leider klingelt jetzt das Telefon aber nicht mehr, somit hilft mir das nicht weiter.

Was mache ich falsch, hast du eine Idee?

Habe danach einen zweiten account in der dtmfbox angelegt der jetzt über fritz.box:5061 registriert wird und beim ersten die Änderungen wieder rückgängig gemacht, so dass dieser wieder direkt von der fritz.box bei 1und1 registriert wird. Zusätzlich habe ich dann eine Rufumleitung eingerichtet, so dass wenn ein Anruf auf Acc1 eingeht gleichzeitig ein Parallelruf auf acc2 stattfindet. Diesen wollte ich dann aufzeichnen. Wenn aber das Gespräch annehme, verliert die dtmfbox die Verbindungen.

Ein weiterer Nachteil dieses Vorgehens wäre, dass ich nur eingehende Gespräche aufzeichnen könnte, aber keine ausgehenden.:confused:
 
Hallo sonyandi,

das mit der Rufumleitung wird nicht funktionieren.

Also Registrierung hat geklappt (Client ist unter Status zu sehen)?

Wenn dein Telefon nicht klingelt, muss irgendwas mit der Rufnummer nicht stimmen. Hast du bei "Rufnummerformat anpassen", im AVM-WebIf, alle Haken rausgenommen? Die Internetrufnummer musst du dann dem Telefon zuweisen (eventuell mit Vorwahl). Kommt drauf an, was du für ein Telefon hast.

Teste auch mal, ob das rauswählen funktioniert (*121#Rufnummer).
 
Also Registrierung hat geklappt (Client ist unter Status zu sehen)?

Bei eingehenden Gesprächen sehe ich unter Status - Verbindungen, dass
eingehende Gespräch. Und unter Accounts sehe ich meine registrierte Rufnummer.
Unter Client steht nichts auch beim eingehenden Anruf nicht.

Hast du bei "Rufnummerformat anpassen", im AVM-WebIf, alle Haken rausgenommen?

Jetzt ja, aber trotzdem funktioniert es nicht.

Die Internetrufnummer musst du dann dem Telefon zuweisen (eventuell mit Vorwahl)
Die Rufnummer war vor der Umstellung bereits dem Telefon zugeordnet und funktioniert auch, wenn ich über 1und1 gehe. Unter Telefoniegeräte (AVM WebIf) kann ich keine Vorwahl mit angeben. Oder bin ich falsch hier?

Ich habe ein Siemens Gigaset SL74.

Teste auch mal, ob das rauswählen funktioniert (*121#Rufnummer).
Das rauswählen wird mit einem Besetztton quittiert, egal ob ich *121# vor der anzurufenden Nummer setze oder nicht.
Ausgehende Anrufe werden unter Status - Verbindungen auch nicht angezeigt.

Noch was unter der AVM WebIf ist meine Rufnummer in der Übersichtsanzeige nicht registriert, wenn ich über fritz.box:5061 gehe.
 
Wenn unter "Client" im Status der dtmfbox nichts zu sehen ist, dann wurde keine Registrierung mit dem voipd durchgeführt - also klingelt es auch nicht. Der Rest sind Tipps, die nach erfolgreicher Registrierung überprüft werden müssten.

Im Log der dtmfbox steht auch der Grund warum es nicht geklappt hat. Wenn garnichts auftaucht, dann habe ich selbst keine Idee mehr (außer vielleicht die IP mit Port direkt anzugeben). Bei mir geht das ohne Probleme.
 
Hallo Marco,

habe jetzt die IP eingesetzt und tatsächlich unter Clients taucht ein Eintrag auf allerdings mit port 5060. Confirmed wird automatisch ausgelöst und das Telefon klingelt jetzt auch, allerdings kommt kein Ton an bzw. raus. :confused:

Ich vermute, dass der Ton von der dtmfbox nicht an das Telefon weitergeleitet wird.

Hat das bei dir alles so geklappt, das man normal telefonieren konnte und das Gespräch parallel aufgezeichnet wurde?

gruß
sonyandi
 
Das kein Ton kommt liegt wahrscheinlich daran, dass ICE aktiviert ist. Der RTP geht über die ext. IP, deswegen musst du den deaktivieren.

Das liegt halt am SIP-Protokoll.

Ansonsten gibt es noch die Möglichkeit, die Ports freizugeben (über ar7.cfg). Siehe hier.

sonyandi schrieb:
habe jetzt die IP eingesetzt und tatsächlich unter Clients taucht ein Eintrag auf allerdings mit port 5060
Richtig. Die Client ist der voipd und der läuft auf Port 5060.

sonyandi schrieb:
Hat das bei dir alles so geklappt, das man normal telefonieren konnte und das Gespräch parallel aufgezeichnet wurde?
bodega schrieb:
Selbst habe ich soetwas noch nicht umgesetzt, aber es ist sicherlich machbar
Über den Registrar der dtmfbox kann ich ganz normal telefonieren. Man hat dann auch zwei Verbindungen, welche sich aufzeichnen lassen. Man würde also zwei Wave-Dateien aufnehmen (eine vom Gesprächspartner, eine von Dir). Die Wave-Dateien müsste man später nur noch mixen. Ließe sich über eine kleine Anwendung erledigen, bzw. ich bau das in die dtmfbox ein.

Du siehst, es gibt dazu noch keine fertige Lösung.
 
Hallo Marco,

ich weiß zwar nicht was der ICE ist und was der bewirkt, aber ich habe ihn deaktiviert und die Ports in die ar7.cfg eingetragen. Jetzt klingelt das Telefon und es kommt auch Ton an und die dtmfbox bekommt die Gespräche auch mit. :D :groesste:

Jetzt muss ich nur noch ein Script haben, was die beiden Verbindungen aufzeichnet und am besten auch gleich mixt. Allerdings tu ich mich beim Scripten sehr schwer, da ich sehr wenig Ahnung davon habe.

Ließe sich über eine kleine Anwendung erledigen, bzw. ich bau das in die dtmfbox ein.

Gibt es da konkrete Pläne wann du das machst? Wäre toll wenn Du das kurzfristig machen könntest.
 
Hi sonyandi,

super das es geklappt hat :D

ICE ist nur dazu da, sich einen Weg durch die FW zu finden. ICE wird auch nur für den Medien-Transport benötigt (also Audio). Durch das Öffnen der RTP/RTCP Ports, ist es aber nicht mehr nötig.

sonyandi schrieb:
Gibt es da konkrete Pläne wann du das machst? Wäre toll wenn Du das kurzfristig machen könntest.
Ich stell die dtmfbox momentan auf das neue pjsip um. Beim '-record' Parameter werde ich einen weiteren Modus hinzufügen, sodass auch der Empfang einer Verbindung mit in die Wave-Datei geschieben wird (momentan wird nur die Ausgabe einer Verbindung aufgezeichnet, weswegen man z.Zt. noch beide Verbindungen aufzeichnen müsste).

Wie kurzfristig ich das machen kann, kann ich schlecht sagen. Wenn ich was habe, melde ich mich hier sofort.
Nichts desto trotz würde noch das Skript und die Einstellungen für das Webinterface fehlen. Dies ließe sich mit der aktuellen Konfiguration bereits bewerkstelligen ;-)
 
Hallo Marco,

Nichts desto trotz würde noch das Skript und die Einstellungen für das Webinterface fehlen. Dies ließe sich mit der aktuellen Konfiguration bereits bewerkstelligen

Das ist mein Problem, ich blick da nicht durch. Deswegen habe ich nur ein Script was nur aufgerufen wird und man nichts einstellen kann.

Das Script was aufgerufen wird lautet:
Code:
DATUM = `date +%F_%H-%M-%S`

$DTMFBOX $SRC_ID -record /var/dtmfbox/record/$DATUM_$SRC_NO-$DST_NO_$SRC_ID.wav
$DTMFBOX $DST_ID -record /var/dtmfbox/record/$DATUM_$SRC_NO-$DST_NO_$DST_ID.wav

Allerdings findet keine Aufzeichnung statt, weil vermutlich die Variablen die den Dateinamen erstellen nicht umgesetzt werden.
Starte ich das Script wie unten mit festgelegtem Dateinamen, dann wird aufgezeichnet. Allerdings ist das keine Lösung, da die Dateien dann immer überschrieben werden.
Code:
$DTMFBOX $SRC_ID -record /var/dtmfbox/record/1.wav
$DTMFBOX $DST_ID -record /var/dtmfbox/record/2.wav

Habe ich oben einen Syntaxfehler?
 
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.