{"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\/sq\/blog\/administrirovanie\/sip-telefon-na-stm32f7-discovery","title":{"rendered":"Telefon SIP n\u00eb STM32F7-Discovery","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>P\u00ebrsh\u00ebndetje t\u00eb gjith\u00ebve.<\/p>\n<p>Disa koh\u00eb m\u00eb par\u00eb ne <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/embox\/blog\/259721\">kemi shkruar<\/a><\/noindex> flasim p\u00ebr m\u00ebnyr\u00ebn si arrit\u00ebm t\u00eb lancojm\u00eb telefonin SIP n\u00eb STM32F4-Discovery me 1 MB ROM dhe 192 KB RAM) duke u bazuar n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/embox\/embox\">Embox<\/a><\/noindex>. K\u00ebtu duhet t\u00eb p\u00ebrmendet se ajo version ishte minimale dhe lidhte dy telefona direkt pa server dhe me transmetim z\u00ebri vet\u00ebm n\u00eb nj\u00eb drejtim. Prandaj, vendos\u00ebm t\u00eb lancojm\u00eb nj\u00eb telefon m\u00eb t\u00eb plot\u00eb me telefonatat p\u00ebrmes serverit, transmetimin e z\u00ebrit n\u00eb t\u00eb dy drejtimet, por duke u p\u00ebrpjekur t\u00eb zgjidhnim sa m\u00eb pak hap\u00ebsir\u00eb t\u00eb memories.<\/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=\"Luaj videon\" 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 \/>\nP\u00ebr telefonin u vendos t\u00eb zgjedhim aplikacionin <i>simple_pjsua<\/i> n\u00eb p\u00ebrb\u00ebrje t\u00eb bibliotek\u00ebs PJSIP. Ky \u00ebsht\u00eb nj\u00eb aplikacion minimal q\u00eb di t\u00eb regjistrohet n\u00eb server, t\u00eb pranoj\u00eb dhe t\u00eb p\u00ebrgjigjet telefonatave. M\u00eb posht\u00eb do t\u00eb jap p\u00ebrshkrimin se si ta lancojm\u00eb n\u00eb STM32F7-Discovery.<\/p>\n<h3>Si t\u00eb lancojm\u00eb<\/h3>\n<p><\/p>\n<ol>\n<li> Konfigurojm\u00eb Embox\n<pre><code class=\"bash\">make confload-platform\/pjsip\/stm32f7cube<\/code><\/pre>\n<\/li>\n<li>N\u00eb skedarin conf\/mods.config p\u00ebrcaktojm\u00eb llogarin\u00eb SIP t\u00eb nevojshme.\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>\nku <i>server<\/i> \u2014 ky \u00ebsht\u00eb serveri SIP (p.sh., sip.linphone.org), <i>username<\/i> dhe <i>password<\/i> \u2014 emri i p\u00ebrdoruesit dhe fjal\u00ebkalimi p\u00ebr llogarin\u00eb.\n<\/li>\n<li>Nd\u00ebrtojm\u00eb Embox me komand\u00ebn <i>make<\/i>. M\u00eb shum\u00eb p\u00ebr programimin e bordit kemi n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/embox\/embox\/wiki\/Running-Embox-on-STM32xxDiscovery\">wiki<\/a><\/noindex> dhe n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/embox\/blog\/349034\/\">artikulli yn\u00eb<\/a><\/noindex>.\n<\/li>\n<li>Lan\u00e7ojm\u00eb n\u00eb konsol\u00ebn e Embox komand\u00ebn \u201csimple_pjsua_imported\u201d\n<pre><code class=\"bash\">\n00:00:12.870    pjsua_acc.c  ....Statusi i daljes SIP p\u00ebr acc 0 nuk \u00ebsht\u00eb aktiv\n00:00:12.884    pjsua_acc.c  ....sip:alexk2222@sip.linphone.org: regjistrimi i suksessh\u00ebm, status=200 (Regjistrimi i suksessh\u00ebm\n00:00:12.911    pjsua_acc.c  ....Taktimi mbajtur p\u00ebr acc 0, destinacioni:91.121.209.194:5060, intervali:15s\n<\/code><\/pre>\n<p>\n<\/li>\n<li>N\u00eb fund, mbetet t\u00eb vendosim kolonat ose kufjet n\u00eb daljen audio dhe t\u00eb flasim n\u00eb dy mikrofonat e vegj\u00ebl MEMS pran\u00eb ekranit. Telefonojm\u00eb nga Linux me aplikacionin simple_pjsua, pjsua. Ose mund t\u00eb p\u00ebrdorim \u00e7do aplikacion tjet\u00ebr si linphone.\n<\/li>\n<\/ol>\n<p>\nE gjith\u00eb kjo \u00ebsht\u00eb e p\u00ebrshkruar n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/embox\/embox\/wiki\/AUDIO-on-STM32\">wiki<\/a><\/noindex>.<\/p>\n<h3>Si arrit\u00ebm k\u00ebtu<\/h3>\n<p>\nPra, n\u00eb fillim u shtrua pyetja e zgjedhjes s\u00eb platform\u00ebs harduerike. Duke qen\u00eb se ishte e qart\u00eb q\u00eb STM32F4-Discovery nuk do t\u00eb p\u00ebrshtatej p\u00ebr shkak t\u00eb memories, u zgjodh STM32F7-Discovery. Ajo ka 1 MB flash dhe 256 KB RAM (+ 64 KB memorie t\u00eb ve\u00e7ant\u00eb t\u00eb shpejt\u00eb, t\u00eb cilat do t\u2019i p\u00ebrdorim gjithashtu). Po ashtu, nuk \u00ebsht\u00eb shum\u00eb p\u00ebr thirrje p\u00ebrmes serverit, por vendos\u00ebm t\u00eb provojm\u00eb t\u00eb p\u00ebrfshihemi.<\/p>\n<p>Kondicionalisht, ne ndam\u00eb detyrat n\u00eb disa etapa:<\/p>\n<ul>\n<li>Lancimi i PJSIP n\u00eb QEMU. Kjo ishte e p\u00ebrshtatshme p\u00ebr debugim dhe po ashtu kishim mb\u00ebshtetje p\u00ebr kodek\u00ebt AC97. <\/li>\n<li>Regjistrimi i z\u00ebrit dhe riprodhimi n\u00eb QEMU dhe n\u00eb STM32. <\/li>\n<li> Portimi i aplikacionit <i>simple_pjsua<\/i> nga biblioteka PJSIP. Ajo lejon t\u00eb regjistrohemi n\u00eb serverin SIP dhe t\u00eb telefonojm\u00eb. <\/li>\n<li>T\u00eb zhvillojm\u00eb serverin ton\u00eb t\u00eb vet\u00ebngjitur n\u00eb baz\u00eb t\u00eb Asterisk dhe ta testojm\u00eb atje, pas k\u00ebsaj t\u00eb provojm\u00eb ato t\u00eb jashtme, si sip.linphone.org <\/li>\n<\/ul>\n<p>\nZ\u00ebri n\u00eb Embox funksionon p\u00ebrmes Portaudio, i cili p\u00ebrdoret gjithashtu n\u00eb PISIP. N\u00eb QEMU dol\u00ebn problemet e para \u2014 WAV duke u luajtur mir\u00eb n\u00eb 44100 Hz, por n\u00eb 8000 di\u00e7ka dukej qart\u00eb se nuk po shkonte si duhet. U zbulua se problemi ishte te konfigurimi i frekuenc\u00ebs \u2014 n\u00eb pajisje ishte 44100 si parazgjedhje, dhe ne nuk e ndryshuam k\u00ebt\u00eb programatikisht. <\/p>\n<p>K\u00ebtu, ndoshta, \u00ebsht\u00eb mir\u00eb t\u00eb sqarojm\u00eb se si ndodh luajtja e z\u00ebrit. Kart\u00ebs s\u00eb z\u00ebrit mund t'i caktohet nj\u00eb tregues n\u00eb nj\u00eb cop\u00eb memorie, nga e cila duhet t\u00eb luhet ose t\u00eb regjistrohet n\u00eb nj\u00eb frekuenc\u00eb t\u00eb vendosur paraprakisht. Pasi buferi t\u00eb p\u00ebrfundoj\u00eb, gjenerohet nj\u00eb nd\u00ebrprerje, dhe ekzekutimi vazhdon nga buferi tjet\u00ebr. Problemi \u00ebsht\u00eb se k\u00ebto bufer\u00eb duhet t\u00eb mbushen p\u00ebrpara, nd\u00ebrsa luhet i pari. Ne do t\u00eb p\u00ebrballemi me k\u00ebt\u00eb problem m\u00eb von\u00eb n\u00eb STM32F7. <\/p>\n<p>M\u00eb pas, ne mor\u00ebm me qira nj\u00eb server dhe implementuam Asterisk n\u00eb t\u00eb. Duke qen\u00eb se duhej t\u00eb b\u00ebnim shum\u00eb debugging, dhe nuk d\u00ebshironim t\u00eb flisnim shum\u00eb n\u00eb mikrofon, ishte e nevojshme t\u00eb b\u00ebhej luajtja dhe regjistrimi automatik. P\u00ebr k\u00ebt\u00eb, ne e patch-ojm\u00eb simple_pjsua n\u00eb m\u00ebnyr\u00eb q\u00eb t\u00eb mund t\u00eb injectonim skedar\u00ebt n\u00eb vend t\u00eb pajisjeve audio. N\u00eb PJSIP b\u00ebhet mjaft thjesht\u00eb, pasi ata kan\u00eb konceptin e portit, i cili mund t\u00eb jet\u00eb si pajisje, ashtu edhe skedar. Dhe k\u00ebto porte mund t\u00eb lidheshin n\u00eb m\u00ebnyr\u00eb fleksibile me porte t\u00eb tjera. Mund t\u00eb shihni kodin n\u00eb pjsip ton\u00eb. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/embox\/pjsip\">repotit\u00eb e tij<\/a><\/noindex>. N\u00eb fund, skema ishte si m\u00eb posht\u00eb. N\u00eb serverin Asterisk krijova dy llogari \u2014 p\u00ebr Linux dhe p\u00ebr Embox. M\u00eb pas n\u00eb Embox ekzekutohet komanda <i>simple_pjsua_imported<\/i>, Embox regjistrohet n\u00eb server, pas t\u00eb cil\u00ebs nga Linux telefonojm\u00eb n\u00eb Embox. N\u00eb momentin e lidhjes kontrollojm\u00eb n\u00eb serverin Asterisk se t\u00eb gjitha lidhjet jan\u00eb vendosur, dhe pas nj\u00eb kohe duhet t\u00eb d\u00ebgjojm\u00eb n\u00eb Embox z\u00ebrin nga Linux, nd\u00ebrsa n\u00eb Linux ruajm\u00eb at\u00eb skedarin q\u00eb luhet nga Embox.<\/p>\n<p>Pasi q\u00eb kjo funksionoi n\u00eb QEMU, kaluam n\u00eb portimin n\u00eb STM32F7-Discovery. Problemi i par\u00eb \u2014 nuk po ndiznim n\u00eb 1 MB ROM pa aktivizuar optimizimin e kompilatorit \u201c-Os\u201d p\u00ebr shkak t\u00eb madh\u00ebsis\u00eb s\u00eb imazhit. Prandaj aktivizuam \u201c-Os\u201d. M\u00eb pas, me patch \u00e7aktivizuam mb\u00ebshtetje p\u00ebr C++, sepse ajo \u00ebsht\u00eb e nevojshme vet\u00ebm p\u00ebr pjsua, nd\u00ebrsa ne p\u00ebrdorim simple_pjsua. <\/p>\n<p>Pasi e vendos\u00ebm <i>simple_pjsua<\/i>, vendos\u00ebm se tani kemi shanse ta lansojm\u00eb. Por fillimisht duhej t\u00eb merremi me regjistrimin dhe riprodhimin e z\u00ebrit. Pyetja \u2014 ku t\u00eb regjistrojm\u00eb? Zgjedhim memorien e jashtme \u2014 SDRAM (128 MB). Mund ta provoni vet\u00eb:<\/p>\n<p>Do t\u00eb krijoj\u00eb WAV stereo me frekuenc\u00eb 16000 Hz dhe zgjatje 10 sekonda:<\/p>\n<pre><code class=\"bash\">\nrecord -r 16000 -c 2 -d 10000 -m C0000000\n<\/code><\/pre>\n<p>\nPo luajm\u00eb:<\/p>\n<pre><code class=\"bash\">\nplay -m C0000000\n<\/code><\/pre>\n<p>\nK\u00ebtu dol\u00ebn dy probleme. E para ishte me kodek\u00ebt \u2014 p\u00ebrdorej WM8994, dhe aty ka nj\u00eb koncept q\u00eb quhet slot, dhe k\u00ebto slote jan\u00eb 4. Pra, n\u00eb default, n\u00ebse nuk e konfigurojm\u00eb, gjat\u00eb luajtjes s\u00eb audios, luajtja ndodhte n\u00eb t\u00eb katra slotet. Prandaj, n\u00eb frekuenc\u00ebn 16000 Hz, ne merrnim 8000 Hz, dhe p\u00ebr 8000 Hz luajtja thjesht nuk funksiononte. Kur zgjodh\u00ebm vet\u00ebm slotet 0 dhe 2, at\u00ebher\u00eb funksionoi si duhet. Nj\u00eb tjet\u00ebr problem ishte nd\u00ebrfaqja audio n\u00eb STM32Cube, ku dalja audio funksionon p\u00ebrmes SAI (Serial Audio Interface) n\u00eb m\u00ebnyr\u00eb sin\u00e7kronike me hyrjen audio (nuk u thellova n\u00eb detaje, por duket se ndajn\u00eb or\u00ebn e p\u00ebrbashk\u00ebt dhe gjat\u00eb inicializimit t\u00eb daljes audio, somehow lidhet me hyrjen audio). Pra, nuk mund t\u00eb nisen ato ve\u00e7mas, prandaj b\u00ebm\u00eb si m\u00eb posht\u00eb \u2014 gjithmon\u00eb funksionojn\u00eb (p\u00ebrfshir\u00eb gjenerimin e nd\u00ebrprerjeve) hyrja audio dhe dalja audio. Por kur n\u00eb sistem nuk luhet asgj\u00eb, ne thjesht i ofrojm\u00eb daljes audio nj\u00eb buffer bosh, dhe kur niset luajtja, at\u00ebher\u00eb ndersh\u00ebm fillojm\u00eb ta mbushim.<\/p>\n<p>M\u00eb von\u00eb u ndesh\u00ebm me faktin se z\u00ebri gjat\u00eb regjistrimit t\u00eb z\u00ebrit ishte shum\u00eb i ul\u00ebt. Kjo ndodh p\u00ebr shkak se mikrofonat MEMS n\u00eb STM32F7-Discovery punojn\u00eb dob\u00ebt n\u00eb frekuenca m\u00eb t\u00eb ulta se 16000 Hz. Pra, vendosim 16000 Hz, edhe n\u00ebse vjen 8000 Hz. P\u00ebr k\u00ebt\u00eb, v\u00ebrtet duhej t\u00eb shtonim nj\u00eb konvertim programor t\u00eb nj\u00eb frekuence t\u00eb nj\u00eb p\u00ebr t\u00eb tjet\u00ebr.<\/p>\n<p>M\u00eb pas duhej t\u00eb rrisja madh\u00ebsin\u00eb e heap-it, i cili ndodhet n\u00eb RAM. Sipas llogaritjeve tona, pjsip k\u00ebrkonte rreth 190 Kb, nd\u00ebrsa ne kishim mbetur vet\u00ebm rreth 100 Kb. K\u00ebtu duhej t\u00eb angazhonim pak memorie t\u00eb jashtme \u2014 SDRAM (rreth 128 Kb).<\/p>\n<p>Pas t\u00eb gjitha k\u00ebtyre ndryshimeve, pash\u00eb paketat e para midis Linux-it dhe Embox-it, dhe d\u00ebgjova z\u00ebrin! Por z\u00ebri ishte tmerr\u00ebsisht i qart\u00eb, aspak si n\u00eb QEMU, asgj\u00eb nuk mund t\u00eb kuptohej. At\u00ebher\u00eb u menduam se \u00e7far\u00eb mund t\u00eb ishte problemi. Debugging tregoi se Embox thjesht nuk arrinte t\u00eb mbushte\/bojkotoj\u00eb bufferat audio. Nd\u00ebrsa pjsip p\u00ebrpunonte nj\u00eb frame, ndodhnin 2 nd\u00ebrprerje p\u00ebr p\u00ebrfundimin e p\u00ebrpunimit t\u00eb bufferave, q\u00eb ishte shum\u00eb. Mendimi i par\u00eb p\u00ebr p\u00ebrshpejtim ishte optimizimi i kompajlerit, por ai ishte tashm\u00eb i aktivizuar n\u00eb PJSIP. E dyta \u2014 pika e flotimit harduerik, p\u00ebr t\u00eb cil\u00ebn kemi treguar n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/embox\/blog\/418295\">artikulli yn\u00eb<\/a><\/noindex>. Por \u00e7far\u00eb tregoi praktika, FPU nuk dha nj\u00eb rritje t\u00eb r\u00ebnd\u00ebsishme n\u00eb shpejt\u00ebsi. Hapi tjet\u00ebr ishte vendosja e prioriteteve p\u00ebr rrjedhat. N\u00eb Embox ka strategji t\u00eb ndryshme planifikimi, dhe un\u00eb aktivizova at\u00eb q\u00eb mb\u00ebshtet prioritete, duke i caktuar rrjedhave audio prioritetin m\u00eb t\u00eb lart\u00eb. Edhe kjo nuk ndihmoi.<\/p>\n<p>Ideja tjet\u00ebr ishte se ne po punonim me memorie t\u00eb jashtme dhe do t\u00eb ishte mir\u00eb ta transferonim strukturat q\u00eb aksesohen shum\u00eb shpesh atje. Un\u00eb b\u00ebra nj\u00eb analiz\u00eb paraprake t\u00eb koh\u00ebs dhe t\u00eb cilave p\u00ebr t\u00eb cilat <i>simple_pjsua<\/i> ndan memorie. Doli se nga 190 Kb, 90 Kb e para ndahen p\u00ebr nevojat e brendshme t\u00eb PJSIP dhe aksesi ndaj tyre ndodhte jo shum\u00eb shpesh. M\u00eb pas, gjat\u00eb nj\u00eb thirrjeje hyr\u00ebse, thirret funksioni pjsua_call_answer, ku m\u00eb pas ndahen tampon\u00ebt p\u00ebr pun\u00eb me flet\u00eb hyr\u00ebse dhe dal\u00ebse. Kjo ishte edhe rreth 100 Kb. Dhe k\u00ebtu ne vepruam si m\u00eb posht\u00eb. Para momentit t\u00eb thirrjes, t\u00eb dh\u00ebnat ato i vendosim n\u00eb memorien e jashtme. Sa her\u00eb q\u00eb b\u00ebhet thirrja \u2014 menj\u00ebher\u00eb z\u00ebvend\u00ebsojm\u00eb pile me nj\u00eb tjet\u00ebr \u2014 n\u00eb RAM. K\u00ebshtu, t\u00eb gjitha t\u00eb dh\u00ebnat \"n\u00eb ngrohje\" u transferuan n\u00eb nj\u00eb memorie m\u00eb t\u00eb shpejt\u00eb dhe m\u00eb t\u00eb parashikueshme.<\/p>\n<p>Si rezultat, t\u00eb gjith\u00eb k\u00ebto s\u00eb bashku na lejuan t\u00eb nisim <i>simple_pjsua<\/i> dhe t\u00eb b\u00ebjm\u00eb thirrje p\u00ebrmes serverit ton\u00eb. Pastaj edhe p\u00ebrmes server\u00ebve t\u00eb tjer\u00eb si sip.linphone.org.<\/p>\n<h3>P\u00ebrfundimet<\/h3>\n<p>\nSi rezultat, arrit\u00ebm t\u00eb fillojm\u00eb <i>simple_pjsua<\/i> me transmetim t\u00eb z\u00ebrit n\u00eb t\u00eb dyja an\u00ebt p\u00ebrmes serverit. Problemi me 128 Kb SDRAM t\u00eb shpenzuar shtes\u00eb mund t\u00eb zgjidhet duke p\u00ebrdorur nj\u00eb Cortex-M7 pak m\u00eb t\u00eb fuqish\u00ebm (p.sh., STM32F769NI me 512 Kb RAM), por akoma nuk e kemi hequr dor\u00eb nga shpresa p\u00ebr t\u00eb hyr\u00eb n\u00eb 256 Kb \ud83d\ude42 Do t\u00eb ishim t\u00eb lumtur n\u00ebse dikush interesoheshin, dhe m\u00eb mir\u00eb \u2014 ta provoj\u00eb. T\u00eb gjith\u00eb burimet, si zakonisht, jan\u00eb n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/embox\/embox\">repotit\u00eb e tij<\/a><\/noindex>.<br \/>\n<br \/>Burimi: <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\/sq\/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=\"sq_AL\" \/>\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\/sq\/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\udd47Telefon SIP n\u00eb STM32F7-Discovery | ProHoster","description":"P\u00ebrsh\u00ebndetje t\u00eb gjith\u00ebve. Disa koh\u00eb m\u00eb par\u00eb ne shkruam se si e arrit\u00ebm t\u00eb nisim nj\u00eb telefon SIP n\u00eb STM32F4-Discovery me 1 Mb.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/sip-telefon-na-stm32f7-discovery","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","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\/sq\/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\/sq\/wp-json\/wp\/v2\/posts\/37916","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=37916"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/37916\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=37916"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=37916"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=37916"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}