Page Index Toggle Pages: 1 Send TopicPrint
Normal Topic Sprachaufzeichnung und eigenes DTMF im Phoner (Read 4457 times)
HauWii
YaBB Newbies
*
Offline


Phoner is great!

Posts: 3
Joined: 10. Aug 2010
Sprachaufzeichnung und eigenes DTMF im Phoner
10. Aug 2010 at 17:19
Print Post  
Hallo,

ich schreibe zur Zeit an einer Anwendung die eine Art Wählgerät realisieren soll. Das heisst bei einer Störung wird eine Verbindung aufgebaut zu einem Festnetzanschluss aufgebaut und eine Störmeldung gesprochen. Dazu benutze ich Visual Studio 2010 in Verbindung mit der Capi.Net Dll von http://capi.codeplex.com/ .

Als Hardware habe ich einen LanCom DSL10-10+ Router und den dazugehörigen LanCapi. Die Ausgabe funktioniert mittlerweile, nur leider hat diese Schnittstelle keine DTMF Realisierung. 

Können Sie mir ein Hinweis geben, wie Sie die Option "Eigenes DTMF" bei sich gelöst haben? Ich denke ich benötige ja einen AudioStream den ich auf die DTMF Töne detektieren muss. Nur wie komme ich an diesen Audiostream des laufenden Telefonates heran?

Für Hilfe wäre ich Ihnen wirklich sehr sehr dankbar.

Mit freundlichen Grüßen
  
Back to top
 
IP Logged
 
HauWii
YaBB Newbies
*
Offline


Phoner is great!

Posts: 3
Joined: 10. Aug 2010
Re: Sprachaufzeichnung und eigenes DTMF im Phoner
Reply #1 - 13. Aug 2010 at 18:24
Print Post  
Hallo nochmal,

ich habe den Audiostream jetzt aus dem Capi lesen können. Ich lese dabei immer Frames mit 2048 Bytes die A-Law codiert sind.

Das Problem ist nun die DTMF Detection. Kann mir jemand sagen welche fertigen Funktionen man benutzen könnte und wie jeweils die Datentypen der Parameter aussehen müssen?

Danke
  
Back to top
 
IP Logged
 
Phoner Admin
YaBB Administrator
*****
Offline



Posts: 11389
Location: Germany
Joined: 12. Oct 2003
Gender: Male
Re: Sprachaufzeichnung und eigenes DTMF im Phoner
Reply #2 - 14. Aug 2010 at 15:49
Print Post  
In der CAPI-Spezifikation ist doch beschrieben, wie die DTMF-Erkennung aktiviert wird. Ist diese so fehlerhaft bei dir oder unterstützt das deine CAPI das nicht? Phoner zeigt sowas auch an.
Wenn du das absolut selbst erkennen möchtest, so schau dir den Goertzel-Algorithmus an. Für diesen findest du zig Implementierungen im Netz.
  
Back to top
WWW  
IP Logged
 
HauWii
YaBB Newbies
*
Offline


Phoner is great!

Posts: 3
Joined: 10. Aug 2010
Re: Sprachaufzeichnung und eigenes DTMF im Phoner
Reply #3 - 16. Aug 2010 at 15:54
Print Post  
Also ich habe einen LanCom Router bei dem ich die LanCapi Schnittstelle anspreche. Phoner zeigt mir an, dass DTMF nicht unterstützt wird. Damit habe ich doch keine weiteren Möglichkeiten als die Erkennung von Hand durchzuführen, oder?

Genau diesen Goertzel Filter habe ich mir besorgt. Ich habe die Implementierung von http://sourceforge.net/projects/dtmf-cs/ genommen. Leider werden die Zeichen nicht erkannt. Um den Fehler zu finden habe ich mich nun Schritt für Schritt rangetastet. Nachdem ich eine B3_Data Message erhalten habe, lese ich das Audiosignal Frame (2048 Bytes) aus und schreibe es testweise einfach wieder auf den Ausgang. Dann höre ich meine eigene Stimme nur etwas zeitversetzt. Ich nehme also an, dass ich die richtigen Daten auf der Hand habe.

Die Frage ist jetzt, wie müssen die Daten vorbereitet werden für den DTMF Detector. Bei dem Stream handelt es sich um 2048 unsigned Bytes die A-Law codiert sind. Die DTMF Detectorfunktion erwartet ein Frame mit (signed shorts). Also denke ich man sollte eine Alaw2pcm Convertierung durchführen. Dies realisiere ich über einen LookUp-Table. Leider führt auch dies nicht zum Erfolg. Die Detectorfunktion spricht nicht an, und beim Schreiben in ein Wave-File höre ich nur Rauschen. Ein Teufelskreis...
  
Back to top
 
IP Logged
 
Phoner Admin
YaBB Administrator
*****
Offline



Posts: 11389
Location: Germany
Joined: 12. Oct 2003
Gender: Male
Re: Sprachaufzeichnung und eigenes DTMF im Phoner
Reply #4 - 18. Aug 2010 at 11:17
Print Post  
Zu aller erst muss natürlich die Wandlung in lineares PCM funktionieren. Das muss bei dir auch gut klingen, sonst kann der Detector auch nicht arbeiten.
Du weißt schon, dass die A-Law-Daten bei der CAPI sich vom "reinen" A-Law unterscheiden? Du musst vor der Wandlung in lineares PCM die Bit-Reihenfolge noch umdrehen. Das hat historische Gründe, weil die damaligen ersten ISDN-Karten für den PC diese inverse Logik hatten. Das hat man aus Kompatibilitätsgründen bis heute aufrecht erhalten.
  
Back to top
WWW  
IP Logged
 
Page Index Toggle Pages: 1
Send TopicPrint