{"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\/lv\/blog\/administrirovanie\/sip-telefon-na-stm32f7-discovery","title":{"rendered":"SIP telefons uz STM32F7-Discovery","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Visiem sveiciens.<\/p>\n<p>Pirms k\u0101da laika m\u0113s <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/embox\/blog\/259721\">rakst\u012bja<\/a><\/noindex> par to, k\u0101 mums izdev\u0101s palaist SIP t\u0101lruni uz STM32F4-Discovery ar 1 MB ROM un 192 KB RAM, balst\u012btu uz <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/embox\/embox\">Embox<\/a><\/noindex>. \u0160eit j\u0101saka, ka t\u0101 versija bija minim\u0101la un savienoja divus telefons tie\u0161i bez servera un ar balss p\u0101rs\u016bt\u012b\u0161anu tikai vien\u0101 virzien\u0101. T\u0101p\u0113c m\u0113s nol\u0113m\u0101m palaist pilnv\u0113rt\u012bg\u0101ku t\u0101lruni ar zvanu caur serveri, balss p\u0101rs\u016bt\u012b\u0161anu abos virzienos, bet taj\u0101 pa\u0161\u0101 laik\u0101 cent\u0101mies iek\u013cauties p\u0113c iesp\u0113jas maz\u0101k\u0101 atmi\u0146as apjom\u0101.<\/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=\"Atska\u0146ot 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 \/>\nT\u0101lrunim tika nolemts izv\u0113l\u0113ties lietotnes <i>simple_pjsua<\/i> , kas ir PJSIP bibliot\u0113kas sast\u0101vda\u013ca. T\u0101 ir minim\u0101la lietotne, kas sp\u0113j re\u0123istr\u0113ties server\u012b, pie\u0146emt un atbild\u0113t uz zvaniem. Zem\u0101k es nekav\u0113joties snieg\u0161u aprakstu, k\u0101 to palaist uz STM32F7-Discovery.<\/p>\n<h3>K\u0101 palaist<\/h3>\n<p><\/p>\n<ol>\n<li> Konfigur\u0113jam Embox\n<pre><code class=\"bash\">make confload-platform\/pjsip\/stm32f7cube<\/code><\/pre>\n<\/li>\n<li>Fail\u0101 conf\/mods.config iestat\u0101m nepiecie\u0161amo SIP kontu.\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>\nkur <i>serveris<\/i> \u2014 tas ir SIP serveris (piem\u0113ram, sip.linphone.org), <i>username<\/i> un <i>password<\/i> \u2014 lietot\u0101jv\u0101rds un parole no konta.\n<\/li>\n<li>Sasmalcin\u0101m Embox ar komandu <i>make<\/i>. Par programmaparat\u016bras palai\u0161anu mums ir inform\u0101cija uz <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/embox\/embox\/wiki\/Running-Embox-on-STM32xxDiscovery\">viki<\/a><\/noindex> un <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/embox\/blog\/349034\/\">rakst\u0101<\/a><\/noindex>.\n<\/li>\n<li>Palaidiet konsol\u0113 Embox komandu \u201csimple_pjsua_imported\u201d\n<pre><code class=\"bash\">\n00:00:12.870    pjsua_acc.c  ....SIP \u0101r\u0113j\u0101 statuss acc 0 nav akt\u012bvs\n00:00:12.884    pjsua_acc.c  ....sip:alexk2222@sip.linphone.org: re\u0123istr\u0101cija veiksm\u012bga, statuss=200 (Re\u0123istr\u0101cija veiksm\u012bga\n00:00:12.911    pjsua_acc.c  ....Saglab\u0101\u0161anas taimeris uzs\u0101kts akountam 0, galam\u0113r\u0137is:91.121.209.194:5060, interv\u0101ls:15s\n<\/code><\/pre>\n<p>\n<\/li>\n<li>Beidzot, atliek ievietot ska\u013cru\u0146us vai austi\u0146as audio izej\u0101 un run\u0101t diviem maziem MEMS mikrofoniem blakus ekr\u0101nam. Zvani no Linux caur lietotni simple_pjsua, pjsua. Nu, ar\u012b var izmantot jebkuru citu, piem\u0113ram, linphone.\n<\/li>\n<\/ol>\n<p>\nPar to viss ir aprakst\u012bts m\u016bsu <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/embox\/embox\/wiki\/AUDIO-on-STM32\">viki<\/a><\/noindex>.<\/p>\n<h3>K\u0101 m\u0113s non\u0101c\u0101m l\u012bdz tam<\/h3>\n<p>\nT\u0101tad, s\u0101kotn\u0113ji tika uzdots jaut\u0101jums par aparat\u016bras platformas izv\u0113li. T\u0101 k\u0101 bija skaidrs, ka STM32F4-Discovery neb\u016bs pietiekami atmi\u0146as, tika izv\u0113l\u0113ta STM32F7-Discovery. Tam ir 1 MB zibatmi\u0146a un 256 KB RAM (+ 64 speci\u0101l\u0101s \u0101tr\u0101s atmi\u0146as, ko ar\u012b izmantosim). Ar\u012b tas nav daudz zvaniem caur serveri, bet nol\u0113m\u0101m pam\u0113\u0123in\u0101t piest\u0101t.<\/p>\n<p>Nosac\u012bti uzdevumu sadal\u012bj\u0101m vair\u0101kos posmos:<\/p>\n<ul>\n<li>PJSIP palai\u0161ana QEMU. Tas bija \u0113rti atk\u013c\u016bdot, plus mums jau bija atbalsts AC97 kodekam. <\/li>\n<li>Balss ierakst\u012b\u0161ana un atska\u0146o\u0161ana QEMU un uz STM32. <\/li>\n<li> Lietotnes port\u0113\u0161ana <i>simple_pjsua<\/i> no PJSIP sast\u0101va. T\u0101 \u013cauj re\u0123istr\u0113ties SIP server\u012b un zvan\u012bt. <\/li>\n<li>Izveidot savu serveri uz Asterisk b\u0101zes un test\u0113t uz t\u0101, p\u0113c tam izm\u0113\u0123in\u0101t \u0101r\u0113jos, piem\u0113ram, sip.linphone.org <\/li>\n<\/ul>\n<p>\nEmbox ska\u0146a darbojas caur Portaudio, kas tiek izmantots ar\u012b PISIP. QEMU par\u0101d\u012bj\u0101s pirm\u0101s probl\u0113mas \u2014 WAV faili uz 44100 Hz atska\u0146oj\u0101s labi, bet uz 8000 Hz kaut kas ac\u012bmredzami nebija k\u0101rt\u012bb\u0101. Izr\u0101d\u012bj\u0101s, ka probl\u0113ma bija frekvences iestat\u012bjum\u0101 \u2014 p\u0113c noklus\u0113juma aparat\u016br\u0101 bija 44100, un m\u0113s to programmatisk\u0101 veid\u0101 nemain\u012bj\u0101m. <\/p>\n<p>\u0160eit, iesp\u0113jams, ir v\u0113rts nedaudz paskaidrot, k\u0101 visp\u0101r notiek ska\u0146as atska\u0146o\u0161ana. Ska\u0146as kartei var iestat\u012bt k\u0101du r\u0101d\u012bt\u0101ju uz atmi\u0146as gabalu, no kura j\u0101atska\u0146o vai j\u0101raksta iepriek\u0161 noteikt\u0101 frekvenc\u0113. P\u0113c tam, kad buferis beidzas, tiek izsists p\u0101rtraukums, un izpilde turpin\u0101s ar n\u0101kamo buferi. Probl\u0113ma ir t\u0101da, ka \u0161os buferus ir j\u0101sp\u0113j iepriek\u0161 aizpild\u012bt, kam\u0113r tiek atska\u0146ots iepriek\u0161\u0113jais. Ar \u0161o probl\u0113mu m\u0113s v\u0113l sastapsimies turpm\u0101k STM32F7. <\/p>\n<p>P\u0113c tam m\u0113s nom\u0101j\u0101m serveri un uz t\u0101 uzst\u0101d\u012bj\u0101m Asterisk. T\u0101 k\u0101 bija nepiecie\u0161ams daudz atk\u013c\u016bdot, un run\u0101t mikrofon\u0101 nev\u0113l\u0113j\u0101s, bija j\u0101veido autom\u0101tiska atska\u0146o\u0161ana un ieraksts. T\u0101p\u0113c m\u0113s laboj\u0101m simple_pjsua, lai var\u0113tu pievienot failus viet\u0101, kur parasti ir audio ier\u012bces. PJSIP to izdara diezgan vienk\u0101r\u0161i, jo vi\u0146iem ir j\u0113dziens ports, kas var b\u016bt gan ier\u012bce, gan fails. Un \u0161os portus var elast\u012bgi piesl\u0113gt citiem portiem. Kodu var skat\u012bt m\u016bsu pjsip. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/embox\/pjsip\">repozitorij\u0101<\/a><\/noindex>. Rezult\u0101t\u0101 sh\u0113ma bija \u0161\u0101da. Asterisk server\u012b es izveidoju divus kontus \u2014 vienu Linux un vienu Embox. T\u0101l\u0101k, uz Embox tiek izpild\u012bta komanda <i>simple_pjsua_imported<\/i>, Embox re\u0123istr\u0113jas server\u012b, p\u0113c tam no Linux zvana uz Embox. Savienojuma br\u012bd\u012b p\u0101rbaud\u0101m Asterisk server\u012b, vai viss savienojums ir izveidots, un p\u0113c k\u0101da laika mums j\u0101dzird ska\u0146a no Linux uz Embox, kam\u0113r Linux saglab\u0101 to failu, kas tiek atska\u0146ots no Embox.<\/p>\n<p>P\u0113c tam, kad tas darbojas uz QEMU, m\u0113s p\u0101rg\u0101j\u0101m uz port\u0113\u0161anu uz STM32F7-Discovery. Pirm\u0101 probl\u0113ma \u2014 m\u0113s nepatilp\u0101m 1 MB ROM bez kompilatora optimiz\u0101cijas \u2018-Os\u2019 att\u0113la izm\u0113ra d\u0113\u013c. T\u0101p\u0113c iesl\u0113dz\u0101m \u2018-Os\u2019. P\u0113c tam ar patch m\u0113s atsl\u0113dz\u0101m C++ atbalstu, jo tas nepiecie\u0161ams tikai pjsua, bet m\u0113s izmantojam simple_pjsua. <\/p>\n<p>P\u0113c tam, kad m\u0113s iek\u013c\u0101v\u0101mies <i>simple_pjsua<\/i>, m\u0113s nol\u0113m\u0101m, ka \u0161obr\u012bd ir iesp\u0113ja to palaist. Bet vispirms bija j\u0101noskaidro ar ierakst\u012b\u0161anu un ska\u0146as reprodukciju. Jaut\u0101jums \u2014 kur ierakst\u012bt? M\u0113s izv\u0113l\u0113j\u0101mies \u0101r\u0113jo atmi\u0146u \u2014 SDRAM (128 MB). J\u016bs varat to izm\u0113\u0123in\u0101t pa\u0161i:<\/p>\n<p>Izveidos stereo WAV ar frekvenci 16000 Hz un ilgumu 10 sekundes:<\/p>\n<pre><code class=\"bash\">\nrecord -r 16000 -c 2 -d 10000 -m C0000000\n<\/code><\/pre>\n<p>\nAtska\u0146ojam:<\/p>\n<pre><code class=\"bash\">\nplay -m C0000000\n<\/code><\/pre>\n<p>\n\u0160eit rad\u0101s divas probl\u0113mas. Pirmais ir ar kodeku \u2014 tiek izmantots WM8994, un taj\u0101 ir t\u0101ds j\u0113dziens k\u0101 slots, un \u0161o slotu ir 4. T\u0101tad, p\u0113c noklus\u0113juma, ja to nenosaka, tad, atska\u0146ojot audio, atska\u0146o\u0161ana notiek visos \u010detros slotos. T\u0101p\u0113c pie 16000 Hz m\u0113s sa\u0146\u0113m\u0101m 8000 Hz, bet 8000 Hz atska\u0146o\u0161ana vienk\u0101r\u0161i nedarboj\u0101s. Kad izv\u0113l\u0113j\u0101mies tikai slotus 0 un 2, tad darboj\u0101s k\u0101 vajag. V\u0113l viena probl\u0113ma bija audio interfeiss STM32Cube, kur\u0101 audio izeja darbojas caur SAI (Serial Audio Interface) sinhroni ar audio ieeju (nedzi\u013cin\u0101jos deta\u013c\u0101s, bet izn\u0101k, ka vi\u0146i dal\u0101s ar kop\u0113ju pulksteni, un, inicializ\u0113jot audio izeju, t\u0101 kaut k\u0101 piesaist\u0101s audio ieejai). Tas noz\u012bm\u0113, ka palaist tos atsevi\u0161\u0137i nevar, t\u0101p\u0113c izdar\u012bj\u0101m \u0161\u0101di \u2014 vienm\u0113r darbojas (tostarp tiek \u0123ener\u0113tas p\u0101rtraukumi) audio ieeja un audio izeja. Bet, kad sist\u0113m\u0101 nekas netiek atska\u0146ots, m\u0113s vienk\u0101r\u0161i ievietojam audio izejai tuk\u0161u buferi, bet kad s\u0101kas atska\u0146o\u0161ana, tad god\u012bgi s\u0101kam to piepild\u012bt.<\/p>\n<p>T\u0101l\u0101k sask\u0101r\u0101mies ar to, ka ska\u0146a ierakstot balsi bija \u013coti klusa. Tas notiek t\u0101p\u0113c, ka MEMS mikrofonu uz STM32F7-Discovery kaut k\u0101 slikti str\u0101d\u0101 pie frekvenc\u0113m zem 16000 Hz. T\u0101p\u0113c iestata 16000 Hz, ja ar\u012b n\u0101k 8000 Hz. Tam paties\u012bb\u0101 bija j\u0101papildina programmat\u016bras p\u0101rv\u0113r\u0161ana no vienas frekvences uz citu.<\/p>\n<p>T\u0101l\u0101k n\u0101c\u0101s palielin\u0101t kaudzes izm\u0113ru, kas atrodas RAM. P\u0113c m\u016bsu apr\u0113\u0137iniem, pjsip pras\u012bja apm\u0113ram 190 kB, bet mums palika tikai apm\u0113ram 100 kB. Te n\u0101c\u0101s iesaist\u012bt nedaudz \u0101r\u0113j\u0101s atmi\u0146as \u2014 SDRAM (apm\u0113ram 128 kB).<\/p>\n<p>P\u0113c vis\u0101m \u0161\u012bm izmai\u0146\u0101m es redz\u0113ju pirmos paketus starp Linux un Embox un dzird\u0113ju ska\u0146u! Bet ska\u0146a bija briesm\u012bga, glu\u017ei t\u0101da k\u0101 QEMU, neko nevar\u0113ja saprast. T\u0101d\u0113j\u0101di m\u0113s aizdom\u0101j\u0101mies, k\u0101da var\u0113tu b\u016bt probl\u0113ma. Debat\u0113jot, par\u0101d\u012bj\u0101s, ka Embox vienk\u0101r\u0161i neveic laiku, lai piepild\u012btu\/izs\u016bt\u012btu audio buferus. Kam\u0113r pjsip apstr\u0101d\u0101 vienu kadru, notika 2 p\u0101rtraukumi par buferu apstr\u0101des pabeig\u0161anu, kas ir p\u0101r\u0101k daudz. Pirm\u0101 doma par pa\u0101trin\u0101\u0161anu bija kompakt\u0101 optimiz\u0101cija, bet t\u0101 jau bija iesl\u0113gta PJSIP. Otr\u0101 - aparat\u016bras peldo\u0161\u0101 punkta, par to m\u0113s st\u0101st\u012bj\u0101m <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/embox\/blog\/418295\">rakst\u0101<\/a><\/noindex>. Ta\u010du, k\u0101 par\u0101d\u012bjusi prakse, FPU nesniedza b\u016btisku \u0101truma palielin\u0101jumu. N\u0101kamais solis bija pl\u016bsmu priorit\u0101\u0161u noteik\u0161ana. Embox ir da\u017e\u0101das pl\u0101no\u0161anas strat\u0113\u0123ijas, un es iek\u013c\u0101vu to, kas atbalsta priorit\u0101tes, un noteicu visaugst\u0101ko priorit\u0101ti audio pl\u016bsm\u0101m. Tas ar\u012b nepal\u012bdz\u0113ja.<\/p>\n<p>N\u0101kam\u0101 ideja bija, ka m\u0113s str\u0101d\u0101jam ar \u0101r\u0113jo atmi\u0146u, un b\u016btu labi tur p\u0101rvietot strukt\u016bras, kur\u0101m piek\u013cuve notiek \u013coti bie\u017ei. Es veicu pirmotn\u0113ju anal\u012bzi par to, kad un k\u0101p\u0113c <i>simple_pjsua<\/i> notiek atmi\u0146as pie\u0161\u0137ir\u0161ana. Izr\u0101d\u012bj\u0101s, ka no 190 Kb pirmie 90 Kb tiek izmantoti iek\u0161\u0113j\u0101m PJSIP vajadz\u012bb\u0101m, un piek\u013cuve tiem notiek ne \u013coti bie\u017ei. Turpin\u0101jum\u0101, ien\u0101ko\u0161\u0101 zvana laik\u0101 tiek izsaukta funkcija pjsua_call_answer, kur\u0101 tad tiek pie\u0161\u0137irti buferi darbam ar ien\u0101ko\u0161ajiem un izejo\u0161ajiem kadriem. Tas bija v\u0113l apm\u0113ram 100 Kb. Un \u0161eit m\u0113s r\u012bkoj\u0101mies \u0161\u0101di. L\u012bdz zvana br\u012bdim datus novietojam \u0101r\u0113j\u0101 atmi\u0146\u0101. Tikl\u012bdz zvans \u2014 uzreiz nomain\u0101m kaudzi uz citu \u2014 RAM. T\u0101d\u0113j\u0101di visi \u201ckarstie\u201d dati tika p\u0101rvietoti \u0101tr\u0101k\u0101 un paredzam\u0101k\u0101 atmi\u0146\u0101.<\/p>\n<p>T\u0101d\u0113j\u0101di viss kop\u0101 \u013c\u0101va palaist <i>simple_pjsua<\/i> un piezvan\u012bt caur savu serveri. Un p\u0113c tam jau ar\u012b caur citiem serveriem, piem\u0113ram, sip.linphone.org.<\/p>\n<h3>Secin\u0101jumi<\/h3>\n<p>\nT\u0101d\u0113j\u0101di izdev\u0101s palaist <i>simple_pjsua<\/i> ar balss p\u0101rs\u016bt\u012b\u0161anu abos virzienos caur serveri. Probl\u0113mu ar papildu pat\u0113r\u0113tajiem 128 Kb SDRAM var atrisin\u0101t, izmantojot nedaudz jaud\u012bg\u0101ku Cortex-M7 (piem\u0113ram, STM32F769NI ar 512 Kb RAM), ta\u010du taj\u0101 pa\u0161\u0101 laik\u0101 m\u0113s v\u0113l arvien neesam zaud\u0113ju\u0161i cer\u012bbas iek\u013cauties 256 Kb \ud83d\ude42 Mums b\u016btu prieks, ja k\u0101ds interes\u0113tos, bet v\u0113l lab\u0101k \u2014 izm\u0113\u0123in\u0101tu. Visi avoti, k\u0101 parasti, ir m\u016bsu <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/embox\/embox\">repozitorij\u0101<\/a><\/noindex>.<br \/>\n<br \/>Avots: <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.4 - 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\/lv\/blog\/administrirovanie\/sip-telefon-na-stm32f7-discovery\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"lv_LV\" \/>\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\/lv\/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 telefons uz STM32F7-Discovery | ProHoster","description":"Sveiki visiem. Pirms k\u0101da laika m\u0113s rakst\u012bj\u0101m par to, k\u0101 mums izdev\u0101s palaist SIP telefonu uz STM32F4-Discovery ar 1 Mb.","canonical_url":"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/sip-telefon-na-stm32f7-discovery","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"lv_LV","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\/lv\/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\/lv\/wp-json\/wp\/v2\/posts\/37916","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/comments?post=37916"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts\/37916\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/media?parent=37916"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/categories?post=37916"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/tags?post=37916"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}