{"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\/ro\/blog\/administrirovanie\/sip-telefon-na-stm32f7-discovery","title":{"rendered":"Telefon SIP pe STM32F7-Discovery","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Salutare tuturor.<\/p>\n<p>Cu ceva timp \u00een urm\u0103, noi <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/embox\/blog\/259721\">scriau<\/a><\/noindex> am reu\u0219it s\u0103 lans\u0103m un telefon SIP pe STM32F4-Discovery cu 1 MB ROM \u0219i 192 KB RAM) bazat pe <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/embox\/embox\">Embox<\/a><\/noindex>. Aici trebuie s\u0103 men\u021bionez c\u0103 acea versiune a fost minim\u0103 \u0219i conecta dou\u0103 telefoane direct, f\u0103r\u0103 server \u0219i cu transmiterea vocii doar \u00eentr-o direc\u021bie. Astfel, am decis s\u0103 lans\u0103m un telefon mai complet, cu apeluri prin server \u0219i transmiterea vocii \u00een ambele direc\u021bii, dar \u00een acela\u0219i timp s\u0103 ne \u00eencadram \u00een un spa\u021biu de memorie c\u00e2t mai mic.<\/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=\"Reda\u021bi video\" 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 \/>\nPentru telefon, am decis s\u0103 alegem aplica\u021bia <i>simple_pjsua<\/i> din biblioteca PJSIP. Este o aplica\u021bie minim\u0103 care poate s\u0103 se \u00eenregistreze pe server, s\u0103 primeasc\u0103 \u0219i s\u0103 r\u0103spund\u0103 la apeluri. Mai jos voi prezenta imediat descrierea despre cum s\u0103 o lans\u0103m pe STM32F7-Discovery.<\/p>\n<h3>Cum s\u0103 lans\u0103m<\/h3>\n<p><\/p>\n<ol>\n<li> Configur\u0103m Embox\n<pre><code class=\"bash\">make confload-platform\/pjsip\/stm32f7cube<\/code><\/pre>\n<\/li>\n<li>\u00cen fi\u0219ierul conf\/mods.config set\u0103m contul SIP dorit.\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>\nunde <i>server<\/i> \u2014 acesta este serverul SIP (de exemplu, sip.linphone.org), <i>username<\/i> \u0219i <i>parola<\/i> \u2014 numele de utilizator \u0219i parola contului.\n<\/li>\n<li>Construim Embox cu comanda <i>make<\/i>. Despre flashing-ul pl\u0103cii avem pe <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/embox\/embox\/wiki\/Running-Embox-on-STM32xxDiscovery\">wiki<\/a><\/noindex> \u0219i \u00een <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/embox\/blog\/349034\/\">pe care l-a\u021bi citit<\/a><\/noindex>.\n<\/li>\n<li>Lans\u0103m \u00een consol\u0103 comanda Embox \u201esimple_pjsua_imported\u201d\n<pre><code class=\"bash\">\n00:00:12.870    pjsua_acc.c  ....Starea outbound SIP pentru acc 0 nu este activ\u0103\n00:00:12.884    pjsua_acc.c  ....sip:alexk2222@sip.linphone.org: \u00eenregistrare reu\u0219it\u0103, status=200 (\u00cenregistrare reu\u0219it\u0103\n00:00:12.911    pjsua_acc.c  ....Timer-ul keep-alive a fost pornit pentru acc 0, destina\u021bie:91.121.209.194:5060, interval:15s\n<\/code><\/pre>\n<p>\n<\/li>\n<li>\u00cen cele din urm\u0103, r\u0103m\u00e2ne s\u0103 conect\u0103m difuzoarele sau c\u0103\u0219tile la ie\u0219irea audio \u0219i s\u0103 vorbim \u00een cele dou\u0103 mici microfoane MEMS de l\u00e2ng\u0103 ecran. Facem apeluri din Linux prin aplica\u021bia simple_pjsua, pjsua. Sau putem folosi orice alt\u0103 aplica\u021bie de tip linphone.\n<\/li>\n<\/ol>\n<p>\nToate acestea sunt descrise pe <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/embox\/embox\/wiki\/AUDIO-on-STM32\">wiki<\/a><\/noindex>.<\/p>\n<h3>Cum am ajuns aici<\/h3>\n<p>\nA\u0219adar, la \u00eenceput, s-a pus problema alegerii platformei hardware. Fiindc\u0103 era clar c\u0103 STM32F4-Discovery nu se va potrivi din punct de vedere al memoriei, am ales STM32F7-Discovery. Are un flash de 1 MB \u0219i 256 KB RAM (+ 64 de memorie rapid\u0103 special\u0103, pe care o vom folosi de asemenea). De asemenea, nu este prea mult pentru apeluri prin server, dar am decis s\u0103 \u00eencerc\u0103m s\u0103 ne \u00eencadr\u0103m.<\/p>\n<p>Pentru noi, am \u00eemp\u0103r\u021bit sarcina \u00een mai multe etape:<\/p>\n<ul>\n<li>Lansarea PJSIP pe QEMU. A fost convenabil pentru depanare, plus c\u0103 deja aveam suport pentru codec AC97. <\/li>\n<li>\u00cenregistrarea vocii \u0219i redarea pe QEMU \u0219i STM32. <\/li>\n<li> Portarea aplica\u021biei <i>simple_pjsua<\/i> din cadrul PJSIP. Aceasta permite \u00eenregistrarea pe serverul SIP \u0219i efectuarea apelurilor. <\/li>\n<li>Dezvoltarea propriului server pe baza Asterisk \u0219i testarea acestuia, dup\u0103 care \u00eencercarea unor servicii externe, precum sip.linphone.org. <\/li>\n<\/ul>\n<p>\nSunetul \u00een Embox func\u021bioneaz\u0103 prin Portaudio, care este folosit \u0219i \u00een PISIP. Pe QEMU au ap\u0103rut primele probleme - fi\u0219ierele WAV la 44100 Hz se redau bine, dar la 8000 ceva nu mergea cum trebuie. S-a dovedit c\u0103 problema era setarea frecven\u021bei - implicit, hardware-ul era setat pe 44100, iar noi nu am modificat acest lucru din program. <\/p>\n<p>Aici, probabil, ar trebui s\u0103 explic\u0103m pu\u021bin cum se desf\u0103\u0219oar\u0103 redarea sunetului. Pl\u0103cii de sunet \u00eei po\u021bi seta un pointer la un bloc de memorie din care trebuie s\u0103 redai sau s\u0103 \u00eenregistrezi la o frecven\u021b\u0103 stabilit\u0103 anterior. Dup\u0103 ce bufferul se termin\u0103, se genereaz\u0103 o \u00eentrerupere \u0219i execu\u021bia continu\u0103 cu urm\u0103torul buffer. Problema este c\u0103 aceste buffere trebuie umplute din timp, \u00een timp ce se red\u0103 cel precedent. Aceast\u0103 problem\u0103 o vom \u00eent\u00e2lni din nou pe STM32F7. <\/p>\n<p>Ulterior, am \u00eenchiriat un server \u0219i am desf\u0103\u0219urat pe el Asterisk. Deoarece trebuie s\u0103 facem multe teste \u0219i nu voiam s\u0103 vorbim mult la microfon, trebuia s\u0103 cre\u0103m o redare \u0219i \u00eenregistrare automat\u0103. Pentru asta, am modificat simple_pjsua astfel \u00eenc\u00e2t s\u0103 putem introduce fi\u0219iere \u00een loc de dispozitive audio. \u00cen PJSIP, acest lucru se face destul de simplu, deoarece au un concept de port, care poate fi at\u00e2t un dispozitiv, c\u00e2t \u0219i un fi\u0219ier. \u0218i aceste porturi pot fi conectate flexibil la alte porturi. Po\u021bi consulta codul \u00een pjsip. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/embox\/pjsip\">repository<\/a><\/noindex>. \u00cen cele din urm\u0103, schema a fost urm\u0103toarea. Pe serverul Asterisk, am creat dou\u0103 conturi - pentru Linux \u0219i pentru Embox. Apoi, pe Embox se execut\u0103 comanda <i>simple_pjsua_imported<\/i>, Embox se \u00eenregistreaz\u0103 pe server, dup\u0103 care, din Linux, sun\u0103m la Embox. \u00cen momentul conexiunii, verific\u0103m pe serverul Asterisk c\u0103 toate conexiunile sunt stabilite \u0219i, dup\u0103 un timp, ar trebui s\u0103 auzim \u00een Embox sunetul din Linux, iar \u00een Linux salv\u0103m acel fi\u0219ier care se red\u0103 din Embox.<\/p>\n<p>Dup\u0103 ce acest lucru a func\u021bionat pe QEMU, am trecut la portarea pe STM32F7-Discovery. Prima problem\u0103 - nu \u00eenc\u0103peam \u00een 1 MB ROM f\u0103r\u0103 activarea op\u021biunii de optimizare a compilatorului \"-Os\" pentru dimensiunea imaginii. A\u0219a c\u0103 am activat \"-Os\". Ulterior, printr-un patch am dezactivat suportul pentru C++, deoarece era necesar doar pentru pjsua, iar noi folosim simple_pjsua. <\/p>\n<p>Dup\u0103 ce am reu\u0219it s\u0103 \u00eenc\u0103pem <i>simple_pjsua<\/i>, am decis c\u0103 acum avem \u0219anse s\u0103-l lans\u0103m. Dar mai \u00eent\u00e2i trebuia s\u0103 ne ocup\u0103m de \u00eenregistrarea \u0219i redarea vocii. \u00centrebarea - unde s\u0103 \u00eenregistr\u0103m? Am ales memoria extern\u0103 - SDRAM (128 MB). Po\u021bi \u00eencerca \u0219i tu acest lucru:<\/p>\n<p>Va crea un WAV stereo cu o frecven\u021b\u0103 de 16000 Hz \u0219i o durat\u0103 de 10 secunde:<\/p>\n<pre><code class=\"bash\">\nrecord -r 16000 -c 2 -d 10000 -m C0000000\n<\/code><\/pre>\n<p>\nRed\u0103m:<\/p>\n<pre><code class=\"bash\">\nplay -m C0000000\n<\/code><\/pre>\n<p>\nAici au ap\u0103rut dou\u0103 probleme. Prima este legat\u0103 de codec \u2014 se folose\u0219te WM8994, care are un concept numit slot, \u0219i sunt patru astfel de sloturi. A\u0219adar, implicit, dac\u0103 nu se configureaz\u0103, la redarea audio se va \u00eent\u00e2mpla \u00een toate cele patru sloturi. De aceea, la frecven\u021ba de 16000 Hz am ob\u021binut 8000 Hz, iar pentru 8000 Hz redarea pur \u0219i simplu nu a func\u021bionat. C\u00e2nd s-au ales doar sloturile 0 \u0219i 2, a func\u021bionat a\u0219a cum trebuia. O alt\u0103 problem\u0103 a fost interfa\u021ba audio \u00een STM32Cube, \u00een care ie\u0219irea audio func\u021bioneaz\u0103 prin SAI (Interfa\u021b\u0103 Audio Serial\u0103) sincronizat cu intrarea audio (nu am intrat \u00een detalii, dar se pare c\u0103 ele \u00eemp\u0103rt\u0103\u0219esc un ceas comun \u0219i, la ini\u021bializarea ie\u0219irii audio, ceva se leag\u0103 de intrarea audio). Asta \u00eenseamn\u0103 c\u0103 nu le putem rula separat, a\u0219a c\u0103 am f\u0103cut urm\u0103toarele \u2014 \u00eentotdeauna func\u021bioneaz\u0103 (inclusiv sunt generate \u00eentreruperi) intrarea audio \u0219i ie\u0219irea audio. Dar c\u00e2nd \u00een sistem nu se red\u0103 nimic, pur \u0219i simplu furniz\u0103m ie\u0219irii audio un buffer gol, iar c\u00e2nd \u00eencepe redarea, \u00eencepem s\u0103-l umplem corect.<\/p>\n<p>Apoi ne-am confruntat cu faptul c\u0103 sunetul \u00een timpul \u00eenregistr\u0103rii vocii era foarte slab. Acest lucru se \u00eent\u00e2mpl\u0103 deoarece microfoanele MEMS de pe STM32F7-Discovery func\u021bioneaz\u0103 imperfect la frecven\u021be sub 16000 Hz. A\u0219adar, set\u0103m 16000 Hz, chiar dac\u0103 primim 8000 Hz. \u00cen acest sens, a fost necesar s\u0103 ad\u0103ug\u0103m o conversie software a unei frecven\u021be \u00een alta.<\/p>\n<p>De asemenea, a fost necesar s\u0103 m\u0103resc dimensiunea heap-ului din RAM. Conform calculelor noastre, pjsip necesita aproximativ 190 KB, iar noi aveam doar aproximativ 100 KB r\u0103mase. Aici a fost necesar s\u0103 utiliz\u0103m pu\u021bin\u0103 memorie extern\u0103 \u2014 SDRAM (aproximativ 128 KB).<\/p>\n<p>Dup\u0103 toate aceste corecturi, am v\u0103zut primele pachete \u00eentre Linux \u0219i Embox \u0219i am auzit sunet! Dar sunetul era groaznic, deloc la fel ca \u00een QEMU, nu se putea distinge nimic. Atunci ne-am g\u00e2ndit care ar putea fi problema. Depanarea a ar\u0103tat c\u0103 Embox pur \u0219i simplu nu reu\u0219ea s\u0103 umple\/elibereze bufferele audio. \u00cen timp ce pjsip procesa un cadru, aveau loc dou\u0103 \u00eentreruperi cu finalizarea proces\u0103rii bufferelor, ceea ce era prea mult. Prima idee pentru accelerare a fost optimizarea compilatorului, dar aceasta era deja inclus\u0103 \u00een PJSIP. A doua \u2014 punctul flotant hardware, despre care am vorbit \u00een <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/embox\/blog\/418295\">pe care l-a\u021bi citit<\/a><\/noindex>. Dar, a\u0219a cum a ar\u0103tat practica, FPU nu a adus o cre\u0219tere semnificativ\u0103 a vitezei. Urm\u0103torul pas a fost stabilirea priorit\u0103\u021bilor pentru fluxuri. \u00cen Embox exist\u0103 diferite strategii de planificare, iar eu am activat cea care sus\u021bine priorit\u0103\u021bile, atribuindo fluxurilor audio cea mai mare prioritate. Asta nu a ajutat nici de aceast\u0103 dat\u0103.<\/p>\n<p>Urm\u0103toarea idee a fost c\u0103 lucr\u0103m cu memorie extern\u0103 \u0219i ar fi bine s\u0103 mut\u0103m structurile acolo, deoarece accesul la ele are loc extrem de frecvent. Am realizat o analiz\u0103 preliminar\u0103 a momentelor \u0219i scopurilor pentru care <i>simple_pjsua<\/i> se aloc\u0103 memorie. S-a dovedit c\u0103 din cele 190 KB, primele 90 KB sunt alocate pentru nevoile interne ale PJSIP \u0219i la acestea accesul nu se face foarte frecvent. Apoi, \u00een timpul unui apel incoming, este apelat\u0103 func\u021bia pjsua_call_answer, \u00een cadrul c\u0103reia sunt alocate apoi buferele pentru a lucra cu cadrele incoming \u0219i outgoing. Aceasta a consumat \u00eenc\u0103 aproximativ 100 KB. A\u0219adar, am procedat \u00een felul urm\u0103tor. P\u00e2n\u0103 la momentul apelului, datele sunt plasate \u00een memorie extern\u0103. Odat\u0103 ce apelul a \u00eenceput, imediat \u00eenlocuim heap-ul cu unul diferit \u2014 \u00een RAM. Astfel, toate datele<\/p>\n<p>au fost mutate \u00eentr-o memorie mai rapid\u0103 \u0219i mai predictibil\u0103. <i>simple_pjsua<\/i> \u00cen final, toate acestea au permis ini\u021bierea<\/p>\n<h3>Conclusions<\/h3>\n<p>\napelurilor prin serverul nostru. Apoi, \u0219i prin alte servere, cum ar fi sip.linphone.org. <i>simple_pjsua<\/i> Astfel, am reu\u0219it s\u0103 finaliz\u0103m <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/embox\/embox\">repository<\/a><\/noindex>.<br \/>\n<br \/>Sursa: <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 5.0.2.1 - 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.\" \/>\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\/ro\/blog\/administrirovanie\/sip-telefon-na-stm32f7-discovery\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\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.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/ro\/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":"Salut tuturor. Cu ceva timp \u00een urm\u0103 am scris despre cum am reu\u0219it s\u0103 ini\u021biem un telefon SIP pe STM32F4-Discovery cu 1 MB.","description":"transmiterea vocii \u00een ambele direc\u021bii prin server. Problema cu cei 128 KB SDRAM suplimentari poate fi rezolvat\u0103 prin utilizarea unui Cortex-M7 pu\u021bin mai puternic (de exemplu, STM32F769NI cu 512 KB RAM), dar \u00een acela\u0219i timp nu ne-am pierdut speran\u021ba de a ne \u00eencadra \u0219i \u00een 256 KB \ud83d\ude42 Ne-ar face pl\u0103cere dac\u0103 cineva ar fi interesat, iar mai bine \u2014 s\u0103 \u00eencerce. Toate sursele, ca de obicei, sunt disponibile \u00een","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/sip-telefon-na-stm32f7-discovery","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","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.","og:url":"https:\/\/prohoster.info\/ro\/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","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/37916","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=37916"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/37916\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=37916"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=37916"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=37916"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}