mikrocontroller.net

Forum: PC-Programmierung VoIP Telegramme auswerten


Autor: Bam Bam (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo !
Für eine Anwendung benötige ich mal ein paar Gedankenanstösse..

Ich möchte mir ein VoIP Telefon kaufen und mit diesem über eine 
Tastenkombination zum Bespiel "#24" einen XP Rechner steuern, der mir 
dann verschiedene Ausgaben über die serielle Schnittstelle macht.

Was mir die größten Sorgen macht, ist das auswerten der Datentelegramme 
die vom VoIP Telefon kommen. Jemand ne Idee, wie und was ich an Software 
& Hardware haben muss um mein Projekt umzusetzen ?

Gruss BB

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du könntest Dir das vom Telephon verwendete SIP-Protokoll näher ansehen.

Ich halte das jedoch für einen verfehlten, weil viel zu komplizierten 
Ansatz.

Aber vielleicht habe ich auch nur Deine Schilderung der Aufgabenstellung 
nicht richtig verstanden.
Wie sind Telephon und Rechner miteinander verbunden? Wird das Telephon 
auch zum Telephonieren verwendet? Wann sollen die speziellen 
Tastenkombinationen ausgewertet werden, immer oder nur wenn Du mit dem 
PC telephonierst?

Autor: Thomas Unger (tommy12)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na mal grob gesagt bräuchtest du einen TCP Daemon, der auf Port 5060 
hört
und erst mal das Session Initiation Protocol (SIP) mit deinem Tel 
händelt:

INVITE
TRYING
RINGING
STATUS OK
(Hier starte normalerweise der RTP Datenstrom)
Bye

So dann müsstest beim SIP IINVITE im Body das mitgelieferte
Session Description Protocol (SDP) prüfen.
Dort sollte von Deinem Tel als Möglichkeit folgendes Angeboten werden:

Media Attribute(a): a=fmtp:34 4CIF=30 CIF=5 QCIF=1 SQCIF=1/MaxBR=4160

Will heisen, das es DTMF Töne liefern kann und zwar nicht nur im 
Datenstream(RTP) sondern auch im Steuerkanal(SDP).

Das im SDP könnte der Daemon dann auswerten und Du kannst die Befehle 
dann weiter verarbeiten.
Vielleicht kann ich mal auf der Testanlage den entsprechenden Part 
mitprotokollieren.

Der Daemon müsste also
auf ein INVITE deines Telefones reagieren können
TRYING, RINGING, STATUS OK und ein BYE senden können
und den FMTP, DTMF Part auswerten können.


MfG Thomas

Autor: Thomas Unger (tommy12)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alternative Astersik installieren.
Private Numbering Plan passend für Deine Steuerung einrichten
und damit die Kommandos auswerten.

Aber Astersik musst Du jemand anderen fragen.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
s/Astersik/Asterisk/

Autor: Pete K. (pete77)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für das sniffen des Protokolls tut der wireshark gute Dienste.

Und schau Dir das SIP Protokoll an, dann bekommst Du eine Vorstellung 
von der Komplexität.

Autor: Bam Bam (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also das VoIP Telefon wird natürlich auch zum "telefonieren" gebraucht 
und ist auch nicht direkt mit dem Rechner sondern über einen 
entsprechenden Router verbunden.

Die Auswertung bzw. meine Angaben zur Tastenkombination um bestimmte 
Prozesse zu aktivieren will ich selbst durch meinen Rechner auswerten 
können.

Ich will mit ner "0" als Amt herauswählen können. Alle Funktionen ohne 
"0" will ich selbst bewerten.

Es mein Vorhaben so etwas deutlicher ?

Gruss BB

Autor: Thomas Unger (tommy12)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja ist schon klar,
das Dein Phone am Router hängt!

Die DTMF Steuerung kannst Du wie bei einer Hotline machen.
Zum Beispiel so:
Wenn Du Deinen Rechner steuern willst rufst Du Ihn an (SIP INVITE mit IP 
Adresse).
Es geht dann der Serverprozess (Daemon) ran, nimmt das "Gespräch" an.
Es kommt aber kein Gespräch zustande (Obwohl eine kurze Ansage über wav 
Files zu implementieren wäre auch möglich).

Dafür kannst Du dann über die Tastatur die gewünschten Sachen steuern.
zB:
1# = Applikation xx starten,
2# = Lampe an,
2* = Lampe aus,
3*1*1# = Applikation starten, eine 1 als erstes Argument übergeben und 
dann noch eine 1 als zweites,
3# Applikation stoppen.

Wenn fertig legst Du einfach auf.


Wäre das was?

Autor: Thomas Unger (tommy12)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe gerade mal geschaut.
Also das senden beispielsweise einer "5"
über eine SIP INFO Message könnte so aussehen:

-------------------------------------------
INFO sip:7007471000@example.com SIP/2.0
Via: SIP/2.0/UDP alice.uk.example.com:5060
From: <sip:7007471234@alice.uk.example.com>;tag=d3f423d
To: <sip:7007471000@example.com>;tag=8942
Call-ID: 312352@myphone
CSeq: 5 INFO
Content-Length: 1
Content-Type: application/dtmf

5
----------------------------------------------

Autor: Thomas Unger (tommy12)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich sehe gerade, die SIP Kommunikation muss wohl kein kompletten 
Verbindungsaufbau haben.

Es sollte wohl auch so gehen:

|Subscriber Notifier     |
| F1 SUBSCRIBE |
|----------------------->|
| F2 200 OK |
|<-----------------------|
| F3 NOTIFY | (Initial subscription state
|<-----------------------| notification, see Section 4.8.1
| F4 200 OK |
|----------------------->|
| F5 NOTIFY | (First notification of DTMF
|<-----------------------| event, see Section 4.8.3)
| F6 200 OK |
|----------------------->|
| . |
| . | (Continue until enough digits
| . | received)
| FX SUBSCRIBE | (Subscribe has expire value of 0)
|----------------------->|
| FX+1 200 OK | (Notifier terminates subscription)
|<-----------------------|
| FX+2 NOTIFY | (Notification of subscription
|<-----------------------| state change, see Section 4.8.2
| FX+3 200 OK |
|----------------------->|

Autor: Bam Bam (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jou !
Das ist doch mal ne Ansage und ne gute Basis wie ich an die Sache 
herangehen kann. Jetzt werde ich erstmal ein paar weitere technische 
Dinge
recherchieren..

Besten Dank schon mal für die Info´s...

Gruss BB

PS: Ich melde mich noch mal, spätestens morgen..für weitere technische 
Fragen

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.