Forum: PC-Programmierung VoIP Telegramme auswerten


von Bam Bam (Gast)


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

von Rufus Τ. F. (rufus) Benutzerseite


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?

von Thomas U. (tommy12)


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

von Thomas U. (tommy12)


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.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

s/Astersik/Asterisk/

von Pete K. (pete77)


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.

von Bam Bam (Gast)


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

von Thomas U. (tommy12)


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?

von Thomas U. (tommy12)


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
----------------------------------------------

von Thomas U. (tommy12)


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 |
|----------------------->|

von Bam Bam (Gast)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.