Hallo zusammen,
ist jemandem von euch zufällig ein Code Beispiel für einen UDP Proxy Server über den Weg gelaufen?
Ich muss in den nächsten Wochen einen SIP Proxy Server entwickeln und stehe gerade etwas hilflos vor der Aufgabe...
___
Falls es keine Code-Beispiele für UDP Proxies gibt, dann wäre mir mit einem sehr einfach zu verstehenden HTTP Proxy schon mal geholfen um zu sehen, wie man generell eine Proxy aufbaut. Ich habe gesehen, dass es diverse HTTP Proxy Implementierungen in Python gibt. Die sind aber meist ziemlich umfangreich und aufgebläht. Ich brauche sozusagen den einfachst möglichen Proxy!
Grüße
UDP Proxy Server mit Python?
Einen "UDP Proxy" gibt's nicht, weil das kein Anwendungsprotokoll sondern ein Transportprotokoll ist. Das heisst Du brauchst Informationen über das Protokoll, das die Anwendung in die UDP Pakete hineinsteckt.
Ganz grundsätzlich ist so ein Proxy ein "Man in the middle".
Mal ganz einfach gesprochen (ich kenne das SIP Protokoll nicht im Detail) kommt bei Deinem Proxy ein Paket von einer Anwendung mit einer Telefonnummer an, der Proxy schickt dieses Paket an ein "echtes" SIP Gateway, bekommt eine Antwort, z.B. "besetzt", und muss diese Antwort dann an die Anwendung senden.
Die meisten Proxies bieten nicht nur einfach so eine Weiterleitung, sondern noch zusätzlich Funktionalität. Bei SIP werden zum Beispiel am Anfang Parameter wie Audiocodecs ausgehandelt. Da könnte ein Proxy eine Umkodierung anbieten oder eine Möglichkeit die Audiodaten nicht nur weiterzuleiten sondern auch mitzuschneiden. Oder wenn auf beiden "Seiten" ein Proxy steht, dann könnten diese beiden die Pakete zusätzlich verschlüsseln etc.
Der erste Schritt ist also das SIP Protokoll zu verstehen.
Ganz grundsätzlich ist so ein Proxy ein "Man in the middle".
Mal ganz einfach gesprochen (ich kenne das SIP Protokoll nicht im Detail) kommt bei Deinem Proxy ein Paket von einer Anwendung mit einer Telefonnummer an, der Proxy schickt dieses Paket an ein "echtes" SIP Gateway, bekommt eine Antwort, z.B. "besetzt", und muss diese Antwort dann an die Anwendung senden.
Die meisten Proxies bieten nicht nur einfach so eine Weiterleitung, sondern noch zusätzlich Funktionalität. Bei SIP werden zum Beispiel am Anfang Parameter wie Audiocodecs ausgehandelt. Da könnte ein Proxy eine Umkodierung anbieten oder eine Möglichkeit die Audiodaten nicht nur weiterzuleiten sondern auch mitzuschneiden. Oder wenn auf beiden "Seiten" ein Proxy steht, dann könnten diese beiden die Pakete zusätzlich verschlüsseln etc.
Der erste Schritt ist also das SIP Protokoll zu verstehen.
Hi,
In welchem Zusammenhang brauchst Du das?
Wie BlackJack ja schon angedeutet hat wäre die korrekte abstrakte Bezeichnung "Application Level Gateway".
Und ein SIP Proxy und folgende hat spezielle Aufgaben, für die er das Protokoll kennen muß.
Die klassische Aufgabe ist z.B. die, stellvertretend für SIP UAs (Telefone), welche private Adressen haben, über eine public IP erreichbar zu sein.
In Perl geschrieben findest Du etwas in der Art hier.
Für Python würde ich Dir empfehlen Shtoom (svn) und eventuell Sine anzuschauen.
Und natürlich das RFC 3261 durchzulesen.
Ciao,
dev
na dann viel Spaß. scnrantaeus hat geschrieben: Ich muss in den nächsten Wochen einen SIP Proxy Server entwickeln
In welchem Zusammenhang brauchst Du das?
Wie BlackJack ja schon angedeutet hat wäre die korrekte abstrakte Bezeichnung "Application Level Gateway".
Und ein SIP Proxy und folgende hat spezielle Aufgaben, für die er das Protokoll kennen muß.
Die klassische Aufgabe ist z.B. die, stellvertretend für SIP UAs (Telefone), welche private Adressen haben, über eine public IP erreichbar zu sein.
In Perl geschrieben findest Du etwas in der Art hier.
Für Python würde ich Dir empfehlen Shtoom (svn) und eventuell Sine anzuschauen.
Und natürlich das RFC 3261 durchzulesen.
Ciao,
dev