{"id":37916,"date":"2019-10-31T22:20:31","date_gmt":"2019-10-31T19:20:31","guid":{"rendered":"https:\/\/prohoster.info\/blog\/sip-telefon-na-stm32f7-discovery\/"},"modified":"2019-10-31T22:20:31","modified_gmt":"2019-10-31T19:20:31","slug":"sip-telefon-na-stm32f7-discovery","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/sip-telefon-na-stm32f7-discovery","title":{"rendered":"SIP-Telefon auf STM32F7-Discovery","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Hallo zusammen.<\/p>\n<p>Vor einiger Zeit haben wir <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/embox\/blog\/259721\">schrieben<\/a><\/noindex> dar\u00fcber gesprochen, wie es uns gelungen ist, ein SIP-Telefon auf dem STM32F4-Discovery mit 1 MB ROM und 192 KB RAM zu starten, basierend auf <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/embox\/embox\">Embox<\/a><\/noindex>. Man muss sagen, dass diese Version minimal war und zwei Telefone direkt ohne Server verband und die Sprach\u00fcbertragung nur in eine Richtung erfolgte. Daher haben wir beschlossen, ein vollst\u00e4ndigeres Telefon zu starten, welches die Sprach\u00fcbertragung \u00fcber einen Server und in beide Richtungen erm\u00f6glicht, dabei jedoch so wenig Speicherplatz wie m\u00f6glich ben\u00f6tigt.<\/p>\n<p><center><div class=\"youtube-placeholder\" data-id=\"W6wuEIZJf8o\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/W6wuEIZJf8o\/hqdefault.jpg\" alt=\"Video abspielen\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nF\u00fcr das Telefon haben wir die Anwendung <i>simple_pjsua<\/i> aus der PJSIP-Bibliothek ausgew\u00e4hlt. Dies ist eine minimalistische Anwendung, die sich beim Server registrieren, Anrufe annehmen und beantworten kann. Unten werde ich gleich eine Beschreibung geben, wie man dies auf dem STM32F7-Discovery startet.<\/p>\n<h3>So starten Sie<\/h3>\n<p><\/p>\n<ol>\n<li> Konfigurieren Sie Embox\n<pre><code class=\"bash\">make confload-platform\/pjsip\/stm32f7cube<\/code><\/pre>\n<\/li>\n<li>In der Datei conf\/mods.config legen wir das ben\u00f6tigte SIP-Konto fest.\n<pre><code class=\"bash\">\ninclude platform.pjsip.cmd.simple_pjsua_imported(\n    sip_domain=\"server\", \n    sip_user=\"username\",\n    sip_passwd=\"password\")\n<\/code><\/pre>\n<p>\nwobei <i>server<\/i> \u2014 dies ist der SIP-Server (zum Beispiel sip.linphone.org), <i>Benutzername<\/i> und <i>password<\/i> \u2014 der Benutzername und das Passwort f\u00fcr das Konto.\n<\/li>\n<li>Kompilieren Sie Embox mit dem Befehl <i>make<\/i>. Informationen zum Flashen des Boards finden Sie auf <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/embox\/embox\/wiki\/Running-Embox-on-STM32xxDiscovery\">Wiki<\/a><\/noindex> auch in <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/embox\/blog\/349034\/\">Artikel<\/a><\/noindex>.\n<\/li>\n<li>Starten Sie in der Embox-Konsole den Befehl \u201csimple_pjsua_imported\u201d\n<pre><code class=\"bash\">\n00:00:12.870    pjsua_acc.c  ....SIP-Ausgangsstatus f\u00fcr acc 0 ist nicht aktiv\n00:00:12.884    pjsua_acc.c  ....sip:alexk2222@sip.linphone.org: Registrierung erfolgreich, Status=200 (Registrierung erfolgreich\n00:00:12.911    pjsua_acc.c  ....Keep-alive-Timer f\u00fcr acc 0 gestartet, Ziel: 91.121.209.194:5060, Intervall: 15s\n<\/code><\/pre>\n<p>\n<\/li>\n<li>Nun m\u00fcssen noch die Lautsprecher oder Kopfh\u00f6rer an den Audioausgang angeschlossen werden, w\u00e4hrend man in zwei kleine MEMS-Mikrofone spricht, die sich neben dem Display befinden. Wir telefonieren von Linux aus \u00fcber die Anwendung simple_pjsua, pjsua. Oder man kann auch jede andere Anwendung wie linphone verwenden.\n<\/li>\n<\/ol>\n<p>\nAll dies ist auf unserer <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/embox\/embox\/wiki\/AUDIO-on-STM32\">Wiki<\/a><\/noindex>.<\/p>\n<h3>Wie wir dazu gekommen sind<\/h3>\n<p>\nZun\u00e4chst stellte sich die Frage nach der Auswahl der Hardware-Plattform. Da klar war, dass STM32F4-Discovery aufgrund des Speichers nicht geeignet ist, wurde STM32F7-Discovery ausgew\u00e4hlt. Sie verf\u00fcgt \u00fcber 1 MB Flash-Speicher und 256 KB RAM (+ 64 KB speziellen schnellen Speicher, den wir ebenfalls verwenden werden). Auch nicht viel f\u00fcr Anrufe \u00fcber den Server, aber wir beschlossen, es zu versuchen.<\/p>\n<p>Wir haben die Aufgabe grob in mehrere Phasen unterteilt:<\/p>\n<ul>\n<li>Start von PJSIP auf QEMU. Dies war bequem f\u00fcr das Debugging, au\u00dferdem hatten wir dort bereits Unterst\u00fctzung f\u00fcr den AC97-Codec. <\/li>\n<li>Aufnahme und Wiedergabe von Sprache auf QEMU und auf STM32. <\/li>\n<li> Portierung der Anwendung <i>simple_pjsua<\/i> aus dem PJSIP-Paket. Sie erm\u00f6glicht die Registrierung bei einem SIP-Server und das Telefonieren. <\/li>\n<li>Richten Sie Ihren eigenen Server auf Basis von Asterisk ein und testen Sie daran. Anschlie\u00dfend k\u00f6nnen Sie externe Dienste wie sip.linphone.org ausprobieren. <\/li>\n<\/ul>\n<p>\nDer Sound in Embox funktioniert \u00fcber Portaudio, das auch in PISIP verwendet wird. Bei QEMU traten die ersten Probleme auf \u2014 WAV-Dateien wurden bei 44100 Hz gut wiedergegeben, w\u00e4hrend bei 8000 Hz offensichtlich etwas nicht stimmte. Es stellte sich heraus, dass es an den Frequenzeinstellungen lag \u2014 standardm\u00e4\u00dfig war diese in der Hardware auf 44100 eingestellt und konnte bei uns softwareseitig nicht ge\u00e4ndert werden. <\/p>\n<p>Hier sollte ich wahrscheinlich etwas klarstellen, wie die Tonwiedergabe eigentlich funktioniert. Der Soundkarte kann ein Zeiger auf einen bestimmten Speicherbereich zugewiesen werden, aus dem entweder wiedergegeben oder mit einer vorher festgelegten Frequenz aufgenommen werden soll. Nachdem der Puffer ersch\u00f6pft ist, wird eine Unterbrechung ausgel\u00f6st und die Ausf\u00fchrung geht mit dem n\u00e4chsten Puffer weiter. Das Problem dabei ist, dass diese Puffer rechtzeitig gef\u00fcllt werden m\u00fcssen, w\u00e4hrend der vorherige abgespielt wird. Mit diesem Problem werden wir uns sp\u00e4ter noch auf dem STM32F7 auseinandersetzen. <\/p>\n<p>Als N\u00e4chstes haben wir einen Server gemietet und Asterisk darauf installiert. Da wir viel zu konfigurieren hatten und nicht st\u00e4ndig ins Mikrofon sprechen wollten, ben\u00f6tigten wir eine M\u00f6glichkeit f\u00fcr automatisches Abspielen und Aufnehmen. Daher haben wir simple_pjsua so angepasst, dass wir Dateien anstelle von Audioger\u00e4ten verwenden k\u00f6nnen. In PJSIP ist das recht einfach, da es dort den Begriff Port gibt, der sowohl ein Ger\u00e4t als auch eine Datei sein kann. Diese Ports lassen sich flexibel miteinander verbinden. Den Code dazu finden Sie in unserem pjsip. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/embox\/pjsip\">Repository<\/a><\/noindex>Das Ergebnis war folgendes: Auf dem Asterisk-Server habe ich zwei Konten erstellt \u2013 eines f\u00fcr Linux und eines f\u00fcr Embox. Danach wird auf Embox der Befehl ausgef\u00fchrt <i>simple_pjsua_imported<\/i>, Embox registriert sich beim Server, und anschlie\u00dfend t\u00e4tigen wir von Linux einen Anruf an Embox. W\u00e4hrend der Verbindung \u00fcberpr\u00fcfen wir auf dem Asterisk-Server, dass die gesamte Verbindung hergestellt wurde, und nach einer kurzen Zeit sollten wir in Embox den Ton von Linux h\u00f6ren. In Linux speichern wir die Datei, die aus Embox abgespielt wird.<\/p>\n<p>Nachdem es auf QEMU funktionierte, haben wir mit dem Portieren auf das STM32F7-Discovery begonnen. Das erste Problem war, dass wir ohne aktivierte Compiler-Optimierung \u201e-Os\u201c nicht in den 1 MB ROM passten. Daher haben wir \u201e-Os\u201c aktiviert. Au\u00dferdem haben wir durch einen Patch die C++-Unterst\u00fctzung deaktiviert, da wir sie nur f\u00fcr pjsua ben\u00f6tigen und wir simple_pjsua verwenden. <\/p>\n<p>Nachdem wir es untergebracht haben, <i>simple_pjsua<\/i>, waren wir der Meinung, dass die Chancen, es jetzt zu starten, bestehen. Aber zuerst mussten wir kl\u00e4ren, wo wir Sprache aufnehmen und wiedergeben. Die Frage war \u2013 wohin aufnehmen? Wir haben uns f\u00fcr externen Speicher \u2013 SDRAM (128 MB) entschieden. Sie k\u00f6nnen es selbst ausprobieren:<\/p>\n<p>Es wird eine Stereo-WAV-Datei mit einer Frequenz von 16000 Hz und einer Dauer von 10 Sekunden erstellt:<\/p>\n<pre><code class=\"bash\">\nrecord -r 16000 -c 2 -d 10000 -m C0000000\n<\/code><\/pre>\n<p>\nWird wiedergegeben:<\/p>\n<pre><code class=\"bash\">\nplay -m C0000000\n<\/code><\/pre>\n<p>\nHier gab es zwei Probleme. Das erste mit dem Codec \u2013 der WM8994, der das Konzept von Slots beinhaltet, und es gibt insgesamt vier dieser Slots. Standardm\u00e4\u00dfig, wenn das nicht konfiguriert wird, erfolgt die Audiowiedergabe \u00fcber alle vier Slots. Daher erhielten wir bei einer Frequenz von 16000 Hz 8000 Hz, was bedeutete, dass die Wiedergabe bei 8000 Hz einfach nicht funktionierte. Nachdem wir nur die Slots 0 und 2 ausgew\u00e4hlt hatten, funktionierte es wie gew\u00fcnscht. Ein weiteres Problem war das Audio-Interface in STM32Cube, bei dem der Audioausgang \u00fcber das SAI (Serial Audio Interface) synchron mit dem Audioeingang arbeitet (ich habe mich nicht im Detail damit besch\u00e4ftigt, aber es scheint, als ob sie sich eine gemeinsame Taktfrequenz teilen, und bei der Initialisierung des Audioausgangs wird irgendwie der Audioeingang damit verkn\u00fcpft). Das bedeutet, dass man sie nicht separat starten kann, deshalb haben wir folgendes gemacht \u2013 sowohl der Audioeingang als auch der Audioausgang arbeiten immer (einschlie\u00dflich der generierten Interrupts). Wenn jedoch im System nichts abgespielt wird, geben wir einfach einen leeren Puffer an den Audioausgang weiter, und wenn die Wiedergabe gestartet wird, beginnen wir ehrlich, ihn zu f\u00fcllen.<\/p>\n<p>Wir sind dann auf das Problem gesto\u00dfen, dass der Ton bei der Sprachaufnahme sehr leise war. Dies liegt daran, dass MEMS-Mikrofone auf dem STM32F7-Discovery bei Frequenzen unter 16.000 Hz nicht optimal funktionieren. Daher stellen wir 16.000 Hz ein, selbst wenn nur 8.000 Hz ankommen. Daf\u00fcr mussten wir allerdings eine Softwarekonvertierung der Frequenz vornehmen.<\/p>\n<p>Anschlie\u00dfend mussten wir die Heap-Gr\u00f6\u00dfe im RAM erh\u00f6hen. Nach unseren Berechnungen ben\u00f6tigte pjsip etwa 190 KB, aber wir hatten nur noch rund 100 KB \u00fcbrig. Hierf\u00fcr mussten wir etwas externen Speicher \u2013 SDRAM (etwa 128 KB) \u2013 verwenden.<\/p>\n<p>Nach all diesen Anpassungen sah ich die ersten Pakete zwischen Linux und Embox und h\u00f6rte den Ton! Aber der Klang war schrecklich, ganz anders als bei QEMU, man konnte nichts verstehen. Da fragten wir uns, woran das liegen k\u00f6nnte. Die Fehlersuche ergab, dass Embox einfach nicht schnell genug die Audio-Puffer f\u00fcllen und entladen kann. W\u00e4hrend pjsip ein Frame bearbeitet, fanden bereits zwei Interrupts zum Abschluss der Pufferverarbeitung statt, was zu viel war. Der erste Gedanke zur Beschleunigung war die Optimierung des Compilers, aber diese war bereits in PJSIP aktiviert. Zweitens \u2013 die Hardware-Floating-Point-Operation, \u00fcber die wir berichtet haben. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/embox\/blog\/418295\">Artikel<\/a><\/noindex>. Allerdings hat sich in der Praxis gezeigt, dass die FPU keinen wesentlichen Geschwindigkeitsvorteil gebracht hat. Der n\u00e4chste Schritt bestand darin, die Priorit\u00e4ten der Streams festzulegen. In Embox gibt es verschiedene Planungsstrategien, und ich habe die aktiviert, die Priorit\u00e4ten unterst\u00fctzt, und den Audio-Streams die h\u00f6chste Priorit\u00e4t zugewiesen. Das hat ebenfalls nicht geholfen.<\/p>\n<p>Die n\u00e4chste Idee war, dass wir mit externem Speicher arbeiten und es sinnvoll w\u00e4re, h\u00e4ufig verwendete Strukturen dorthin zu verschieben. Ich habe eine vorl\u00e4ufige Analyse durchgef\u00fchrt, wann und f\u00fcr was <i>simple_pjsua<\/i> Speicher zugewiesen wird. Dabei stellte sich heraus, dass von 190 KB die ersten 90 KB f\u00fcr interne Bed\u00fcrfnisse von PJSIP reserviert sind und nicht sehr h\u00e4ufig darauf zugegriffen wird. W\u00e4hrend eines eingehenden Anrufs wird die Funktion pjsua_call_answer aufgerufen, in der dann die Puffer f\u00fcr die Verarbeitung von eingehenden und ausgehenden Frames zugewiesen werden. Das waren nochmals etwa 100 KB. Und hier haben wir folgendes getan: Bis zum Zeitpunkt des Anrufs haben wir die Daten im externen Speicher abgelegt. Sobald der Anruf kommt, wechseln wir sofort den Heap auf einen anderen \u2013 in den RAM. So wurden alle \u201ehei\u00dfen\u201c Daten in den schnelleren und vorhersehbareren Speicher verlagert.<\/p>\n<p>Insgesamt hat all dies zusammen das Starten erm\u00f6glicht <i>simple_pjsua<\/i> und \u00fcber Ihren Server zu telefonieren. Und dann auch \u00fcber andere Server wie sip.linphone.org.<\/p>\n<h3>Fazit<\/h3>\n<p>\nEs gelang schlie\u00dflich, <i>simple_pjsua<\/i> die Sprach\u00fcbertragung in beide Richtungen \u00fcber den Server zu realisieren. Das Problem mit den zus\u00e4tzlich ben\u00f6tigten 128 KB SDRAM kann durch einen etwas leistungsst\u00e4rkeren Cortex-M7 (wie z.B. den STM32F769NI mit 512 KB RAM) gel\u00f6st werden, aber wir haben die Hoffnung, auch mit 256 KB auszukommen \ud83d\ude42 Wir w\u00fcrden uns freuen, wenn sich jemand daf\u00fcr interessiert, oder noch besser \u2014 es ausprobiert. Der gesamte Quellcode ist wie gewohnt in unserem <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/embox\/embox\">Repository<\/a><\/noindex>.<br \/>\n<br \/>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/embox\/blog\/431134\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0437\u0430\u0434 \u043c\u044b \u043f\u0438\u0441\u0430\u043b\u0438 \u043e \u0442\u043e\u043c \u043a\u0430\u043a \u043d\u0430\u043c \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c SIP \u0442\u0435\u043b\u0435\u0444\u043e\u043d \u043d\u0430 STM32F4-Discovery c 1 \u041c\u0431 ROM \u0438 192 \u041a\u0431 RAM) \u043d\u0430 \u0431\u0430\u0437\u0435 Embox. \u0422\u0443\u0442 \u043d\u0430\u0434\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u0442\u0430 \u0432\u0435\u0440\u0441\u0438\u044f \u0431\u044b\u043b\u0430 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0438 \u0441\u043e\u0435\u0434\u0438\u043d\u044f\u043b\u0430 \u0434\u0432\u0430 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0431\u0435\u0437 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0438 \u0441 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435\u0439 \u0433\u043e\u043b\u043e\u0441\u0430 \u043b\u0438\u0448\u044c \u0432 \u043e\u0434\u043d\u0443 \u0441\u0442\u043e\u0440\u043e\u043d\u0443. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-37916","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0437\u0430\u0434 \u043c\u044b \u043f\u0438\u0441\u0430\u043b\u0438 \u043e \u0442\u043e\u043c \u043a\u0430\u043a \u043d\u0430\u043c \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c SIP \u0442\u0435\u043b\u0435\u0444\u043e\u043d \u043d\u0430 STM32F4-Discovery c 1 \u041c\u0431 ROM \u0438 192 \u041a\u0431 RAM) \u043d\u0430 \u0431\u0430\u0437\u0435 Embox. \u0422\u0443\u0442 \u043d\u0430\u0434\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u0442\u0430 \u0432\u0435\u0440\u0441\u0438\u044f \u0431\u044b\u043b\u0430 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0438 \u0441\u043e\u0435\u0434\u0438\u043d\u044f\u043b\u0430 \u0434\u0432\u0430 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0431\u0435\u0437 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0438 \u0441 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435\u0439 \u0433\u043e\u043b\u043e\u0441\u0430 \u043b\u0438\u0448\u044c \u0432 \u043e\u0434\u043d\u0443 \u0441\u0442\u043e\u0440\u043e\u043d\u0443. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/sip-telefon-na-stm32f7-discovery\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47SIP \u0442\u0435\u043b\u0435\u0444\u043e\u043d \u043d\u0430 STM32F7-Discovery | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0437\u0430\u0434 \u043c\u044b \u043f\u0438\u0441\u0430\u043b\u0438 \u043e \u0442\u043e\u043c \u043a\u0430\u043a \u043d\u0430\u043c \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c SIP \u0442\u0435\u043b\u0435\u0444\u043e\u043d \u043d\u0430 STM32F4-Discovery c 1 \u041c\u0431 ROM \u0438 192 \u041a\u0431 RAM) \u043d\u0430 \u0431\u0430\u0437\u0435 Embox. \u0422\u0443\u0442 \u043d\u0430\u0434\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u0442\u0430 \u0432\u0435\u0440\u0441\u0438\u044f \u0431\u044b\u043b\u0430 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0438 \u0441\u043e\u0435\u0434\u0438\u043d\u044f\u043b\u0430 \u0434\u0432\u0430 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0431\u0435\u0437 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0438 \u0441 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435\u0439 \u0433\u043e\u043b\u043e\u0441\u0430 \u043b\u0438\u0448\u044c \u0432 \u043e\u0434\u043d\u0443 \u0441\u0442\u043e\u0440\u043e\u043d\u0443. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/sip-telefon-na-stm32f7-discovery\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:20:31+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:20:31+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47SIP-Telefon auf STM32F7-Discovery | ProHoster","description":"Hallo zusammen. Vor einiger Zeit haben wir dar\u00fcber geschrieben, wie es uns gelungen ist, ein SIP-Telefon auf dem STM32F4-Discovery mit 1 MB ROM und 192 KB RAM auf der Basis von Embox zum Laufen zu bringen. Dabei muss erw\u00e4hnt werden, dass diese Version minimal war und zwei Telefone direkt ohne Server verbunden hat, mit einer Sprach\u00fcbertragung nur in eine Richtung. Daher haben wir beschlossen,","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/sip-telefon-na-stm32f7-discovery","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47SIP \u0442\u0435\u043b\u0435\u0444\u043e\u043d \u043d\u0430 STM32F7-Discovery | ProHoster","og:description":"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0437\u0430\u0434 \u043c\u044b \u043f\u0438\u0441\u0430\u043b\u0438 \u043e \u0442\u043e\u043c \u043a\u0430\u043a \u043d\u0430\u043c \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c SIP \u0442\u0435\u043b\u0435\u0444\u043e\u043d \u043d\u0430 STM32F4-Discovery c 1 \u041c\u0431 ROM \u0438 192 \u041a\u0431 RAM) \u043d\u0430 \u0431\u0430\u0437\u0435 Embox. \u0422\u0443\u0442 \u043d\u0430\u0434\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u0442\u0430 \u0432\u0435\u0440\u0441\u0438\u044f \u0431\u044b\u043b\u0430 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0438 \u0441\u043e\u0435\u0434\u0438\u043d\u044f\u043b\u0430 \u0434\u0432\u0430 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0431\u0435\u0437 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0438 \u0441 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435\u0439 \u0433\u043e\u043b\u043e\u0441\u0430 \u043b\u0438\u0448\u044c \u0432 \u043e\u0434\u043d\u0443 \u0441\u0442\u043e\u0440\u043e\u043d\u0443. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c","og:url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/sip-telefon-na-stm32f7-discovery","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:20:31+00:00","article:modified_time":"2019-10-31T19:20:31+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"37916","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 19:45:21","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:18:22","updated":"2026-01-23 19:45:21"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/37916","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=37916"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/37916\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=37916"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=37916"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=37916"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}