{"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\/no\/blog\/administrirovanie\/sip-telefon-na-stm32f7-discovery","title":{"rendered":"SIP-telefon p\u00e5 STM32F7-Discovery","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Hei alle sammen.<\/p>\n<p>For en tid siden <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/embox\/blog\/259721\">skrevet<\/a><\/noindex> om hvordan vi klarte \u00e5 kj\u00f8re en SIP-telefon p\u00e5 STM32F4-Discovery med 1 MB ROM og 192 KB RAM basert p\u00e5 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/embox\/embox\">Embox<\/a><\/noindex>. Det m\u00e5 nevnes at den versjonen var minimal og koblet to telefoner direkte uten server og med stemmeb\u00e5ndet bare i \u00e9n retning. Derfor bestemte vi oss for \u00e5 kj\u00f8re en mer fullverdig telefon med samtale via server, stemmeoverf\u00f8ring i begge retninger, men samtidig holde oss innenfor s\u00e5 liten minnest\u00f8rrelse som mulig.<\/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=\"Spill 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 \/>\nFor telefonen ble det besluttet \u00e5 velge applikasjonen <i>simple_pjsua<\/i> som en del av PJSIP-biblioteket. Dette er en minimal applikasjon som kan registrere seg p\u00e5 serveren, motta og besvare samtaler. Nedenfor gir jeg umiddelbart en beskrivelse av hvordan dette kan startes p\u00e5 STM32F7-Discovery.<\/p>\n<h3>Hvordan starte<\/h3>\n<p><\/p>\n<ol>\n<li> Konfigurerer Embox\n<pre><code class=\"bash\">make confload-platform\/pjsip\/stm32f7cube<\/code><\/pre>\n<\/li>\n<li>I filen conf\/mods.config angir vi \u00f8nsket SIP-konto.\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>\nder <i>server<\/i> \u2014 dette er SIP-serveren (for eksempel sip.linphone.org), <i>username<\/i> og <i>password<\/i> \u2014 brukernavnet og passordet for kontoen.\n<\/li>\n<li>Vi bygger Embox med kommandoen <i>lag<\/i>. Vi har informasjon om hvordan vi skal blinke brettet p\u00e5 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/embox\/embox\/wiki\/Running-Embox-on-STM32xxDiscovery\">wiki<\/a><\/noindex> og i <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/embox\/blog\/349034\/\">artikkelen<\/a><\/noindex>.\n<\/li>\n<li>Vi starter Embox-konsollen med kommandoen \u201csimple_pjsua_imported\u201d\n<pre><code class=\"bash\">\n00:00:12.870    pjsua_acc.c  ....SIP outbound status for acc 0 is not active\n00:00:12.884    pjsua_acc.c  ....sip:alexk2222@sip.linphone.org: registration success, status=200 (Registration success\n00:00:12.911    pjsua_acc.c  ....Keep-alive timer started for acc 0, destination:91.121.209.194:5060, interval:15s\n<\/code><\/pre>\n<p>\n<\/li>\n<li>Til slutt er det bare \u00e5 sette inn h\u00f8yttalere eller hodetelefoner i lydutgangen og snakke inn i to sm\u00e5 MEMS-mikrofoner n\u00e6r skjermen. Vi ringer fra Linux via applikasjonen simple_pjsua, pjsua. Eller vi kan bruke hvilken som helst annen som linphone.\n<\/li>\n<\/ol>\n<p>\nAlt dette er beskrevet p\u00e5 v\u00e5r <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/embox\/embox\/wiki\/AUDIO-on-STM32\">wiki<\/a><\/noindex>.<\/p>\n<h3>Hvordan vi kom dit<\/h3>\n<p>\nS\u00e5, i utgangspunktet oppstod sp\u00f8rsm\u00e5let om valg av maskinvareplattform. Da det var klart at STM32F4-Discovery ikke ville v\u00e6re tilstrekkelig med hensyn til minne, ble STM32F7-Discovery valgt. Den har 1 MB flashminne og 256 KB RAM (+ 64 KB spesialhurtigminne, som vi ogs\u00e5 vil bruke). Det er ikke mye for samtaler gjennom serveren, men vi bestemte oss for \u00e5 pr\u00f8ve \u00e5 klare det.<\/p>\n<p>Vi delte oppgaven v\u00e5re i flere faser:<\/p>\n<ul>\n<li>Kj\u00f8re PJSIP p\u00e5 QEMU. Dette var praktisk for feils\u00f8king, og vi hadde allerede st\u00f8tte for AC97-kodeken der. <\/li>\n<li>Opptak av stemme og reproduksjon p\u00e5 QEMU og STM32. <\/li>\n<li> Portering av applikasjonen <i>simple_pjsua<\/i> fra PJSIP-biblioteket. Det lar deg registrere deg p\u00e5 en SIP-server og ringe. <\/li>\n<li>Sette opp din egen server basert p\u00e5 Asterisk og teste p\u00e5 den, etterp\u00e5 pr\u00f8ve eksterne som sip.linphone.org <\/li>\n<\/ul>\n<p>\nLyd i Embox fungerer via Portaudio, som ogs\u00e5 brukes i PISIP. I QEMU dukket de f\u00f8rste problemene opp \u2014 WAV-filer ble godt spilt av p\u00e5 44100 Hz, men p\u00e5 8000 var det tydelig noe som ikke stemte. Det viste seg at det handlet om frekvensinnstillingen \u2014 som standard var den 44100 i maskinvaren, og dette ble ikke endret programmatisk. <\/p>\n<p>Her er det kanskje verdt \u00e5 forklare litt om hvordan avspilling av lyd faktisk fungerer. Lydkortet kan bli satt opp med en pekere til et minneomr\u00e5de som det skal spille av fra, eller ta opp med en forh\u00e5ndsbestemt frekvens. N\u00e5r bufferen er tom, genereres et avbrudd, og kj\u00f8ringen fortsetter med neste buffer. Tingen er at disse bufferne m\u00e5 fylles opp i tide, mens den forrige fortsatt spilles av. Denne utfordringen vil vi komme tilbake til senere p\u00e5 STM32F7. <\/p>\n<p>Deretter leide vi en server og satte opp Asterisk p\u00e5 den. Ettersom det var mye som m\u00e5tte feils\u00f8kes, og vi ikke \u00f8nsket \u00e5 snakke mye i mikrofonen, m\u00e5tte vi lage automatisk avspilling og opptak. For dette patchet vi simple_pjsua slik at vi kunne gi filer i stedet for lyd-enheter. I PJSIP gj\u00f8res dette ganske enkelt, da de har et konsept om porter som kan v\u00e6re b\u00e5de en enhet eller en fil. Og disse portene kan kobles fleksibelt til andre porter. Du kan se koden v\u00e5r i pjsip. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/embox\/pjsip\">depotet<\/a><\/noindex>S\u00e5, oppsettet var som f\u00f8lger. P\u00e5 Asterisk-serveren opprettet jeg to kontoer \u2014 for Linux og for Embox. Deretter p\u00e5 Embox kj\u00f8rte vi kommandoen <i>simple_pjsua_imported<\/i>, Embox registrerer seg p\u00e5 serveren, hvoretter vi ringer fra Linux til Embox. I det \u00f8yeblikket forbindelsen etableres, sjekker vi p\u00e5 Asterisk-serveren at forbindelsen er satt opp, og etter en stund skal vi h\u00f8re lyd fra Linux i Embox, mens vi p\u00e5 Linux lagrer filen som spilles av fra Embox.<\/p>\n<p>Etter at dette fungerte p\u00e5 QEMU, gikk vi videre til portering til STM32F7-Discovery. Det f\u00f8rste problemet var at vi ikke fikk plass i 1 MB ROM uten \u00e5 aktivere kompilatoren '\u2212Os' for bilde-st\u00f8rrelsen. Derfor aktiverte vi '\u2212Os'. Videre, via et patch, deaktiverte vi st\u00f8tte for C++, da det kun er n\u00f8dvendig for pjsua og vi bruker simple_pjsua. <\/p>\n<p>Etter \u00e5 ha f\u00e5tt plass <i>simple_pjsua<\/i>, mente vi at sjansene for \u00e5 kj\u00f8re dette n\u00e5 var til stede. Men f\u00f8rst m\u00e5tte vi finne ut av opptak og avspilling av stemme. Sp\u00f8rsm\u00e5let var \u2014 hvor skulle vi lagre? Vi valgte ekstern minne \u2014 SDRAM (128 MB). Du kan pr\u00f8ve dette selv:<\/p>\n<p>Vil lage stereo WAV med en frekvens p\u00e5 16000 Hz og varighet p\u00e5 10 sekunder:<\/p>\n<pre><code class=\"bash\">\nrecord -r 16000 -c 2 -d 10000 -m C0000000\n<\/code><\/pre>\n<p>\nSpiller av:<\/p>\n<pre><code class=\"bash\">\nplay -m C0000000\n<\/code><\/pre>\n<p>\nHer oppstod to problemer. Det f\u00f8rste med kodeken \u2013 WM8994 brukes, og det finnes et konsept som kalles slot, og det finnes fire slike slots. Vel, som standard, hvis dette ikke er konfigurert, s\u00e5 skjer avspillingen av lyd i alle fire slots. Derfor fikk vi ved 16000 Hz 8000 Hz, og ved 8000 Hz fungerte ikke avspillingen i det hele tatt. Da vi valgte kun slots 0 og 2, fungerte det som det skulle. Det andre problemet var lydgrensesnittet i STM32Cube, der lydutgangen fungerer via SAI (Serial Audio Interface) synkront med lydinngangen (jeg har ikke sett p\u00e5 detaljene, men det er som om de deler en felles klokke, og ved initiering av lydutgangen blir lydinngangen knyttet p\u00e5 en eller annen m\u00e5te). Det vil si at de ikke kan kj\u00f8res separat, s\u00e5 vi gjorde f\u00f8lgende \u2013 lydinngangen og lydutgangen er alltid operative (inkludert generering av avbrudd). Men n\u00e5r det ikke spilles av noe i systemet, s\u00e5 gir vi bare et tomt buffer til lydutgangen, og n\u00e5r avspillingen starter, begynner vi for alvor \u00e5 fylle den.<\/p>\n<p>Deretter st\u00f8tte vi p\u00e5 det faktum at lyden under opptak av stemmen var veldig svak. Dette skjer fordi MEMS mikrofoner p\u00e5 STM32F7-Discovery fungerer d\u00e5rlig p\u00e5 frekvenser under 16000 Hz. Derfor stiller vi inn 16000 Hz, selv om vi f\u00e5r 8000 Hz. For dette trengte vi faktisk \u00e5 legge til en programvarekonvertering fra \u00e9n frekvens til en annen.<\/p>\n<p>Videre m\u00e5tte vi \u00f8ke st\u00f8rrelsen p\u00e5 heapen, som er plassert i RAM. If\u00f8lge v\u00e5re beregninger krevde pjsip omtrent 190 Kb, og vi hadde bare omtrent 100 Kb igjen. Her m\u00e5tte vi bruke litt ekstern minne \u2013 SDRAM (omtrent 128 Kb).<\/p>\n<p>Etter alle disse rettingene s\u00e5 jeg de f\u00f8rste pakkene mellom Linux og Embox, og h\u00f8rte lyden! Men lyden var forferdelig, helt annerledes enn i QEMU, ingenting kunne bli forst\u00e5tt. Da begynte vi \u00e5 tenke p\u00e5 hva som kan v\u00e6re problemet. Feils\u00f8kingen viste at Embox bare ikke klarte \u00e5 fylle\/t\u00f8mme lydbufferne raskt nok. Mens pjsip behandler \u00e9n ramme, klarte det \u00e5 skje to avbrudd om fullf\u00f8ringen av bufferbehandlingen, noe som var for mye. Den f\u00f8rste tanken for \u00e5 \u00f8ke hastigheten var optimaliseringen av kompilatoren, men den var allerede inkludert i PJSIP. Den andre \u2013 maskinvareflyttalls, om den hadde vi snakket i <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/embox\/blog\/418295\">artikkelen<\/a><\/noindex>. Men som praksisen har vist, ga ikke FPU noen betydelig \u00f8kning i hastighet. Neste skritt var \u00e5 sette prioriteringer for flytene. I Embox finnes det ulike planleggingsstrategier, og jeg aktivert den som st\u00f8tter prioriteringer, og satte den h\u00f8yeste prioriteten for lydstr\u00f8mmer. Dette hjalp heller ikke.<\/p>\n<p>Den neste ideen var at vi jobber med ekstern minne, og det ville v\u00e6re bra \u00e5 flytte strukturer dit som det er ekstremt hyppig tilgang p\u00e5. Jeg gjennomf\u00f8rte en forel\u00f8pig analyse av n\u00e5r og under hva <i>simple_pjsua<\/i> minnet blir tildelt. Det viste seg at av 190 Kb ble de f\u00f8rste 90 Kb tildelt til interne behov for PJSIP, og tilgangen til dem skjer ikke s\u00e5 ofte. Deretter under et inng\u00e5ende anrop blir funksjonen pjsua_call_answer kalt, hvor buffere blir tildelt for \u00e5 jobbe med inng\u00e5ende og utg\u00e5ende rammer. Dette var omtrent 100 Kb til. Og her gjorde vi det f\u00f8lgende. F\u00f8r anropet plasserer vi dataene i ekstern minne. S\u00e5 snart anropet skjer \u2014 bytter vi umiddelbart haugen til en annen \u2014 i RAM. Dermed ble alle \u201cvarme\u201d data flyttet til raskere og mer forutsigbar minne.<\/p>\n<p>Til slutt gjorde alt dette det mulig \u00e5 starte <i>simple_pjsua<\/i> og ringe gjennom sin egen server. Og deretter ogs\u00e5 gjennom andre servere som sip.linphone.org.<\/p>\n<h3>Konklusjoner<\/h3>\n<p>\nTil slutt klarte vi \u00e5 starte <i>simple_pjsua<\/i> med overf\u00f8ring av stemme i begge retninger gjennom serveren. Problemet med de ekstra brukte 128 Kb SDRAM kan l\u00f8ses ved \u00e5 bruke en litt kraftigere Cortex-M7 (for eksempel STM32F769NI med 512 Kb RAM), men samtidig har vi fortsatt ikke mistet h\u00e5pet om \u00e5 passe inn i 256 Kb \ud83d\ude42 Vi vil gjerne ha noen som er interessert, og enda bedre \u2014 pr\u00f8ver det. Alle kilder, som vanlig, er tilgjengelige i v\u00e5r <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/embox\/embox\">depotet<\/a><\/noindex>.<br \/>\n<br \/>Kilde: <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.5 - 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\/no\/blog\/administrirovanie\/sip-telefon-na-stm32f7-discovery\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.5\" \/>\n\t\t<meta property=\"og:locale\" content=\"nn_NO\" \/>\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\/no\/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 p\u00e5 STM32F7-Discovery | ProHoster","description":"Hei alle sammen. For en tid tilbake skrev vi om hvordan vi klarte \u00e5 starte en SIP-telefon p\u00e5 STM32F4-Discovery med 1 Mb.","canonical_url":"https:\/\/prohoster.info\/no\/blog\/administrirovanie\/sip-telefon-na-stm32f7-discovery","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"nn_NO","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\/no\/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\/no\/wp-json\/wp\/v2\/posts\/37916","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/comments?post=37916"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/posts\/37916\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/media?parent=37916"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/categories?post=37916"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/tags?post=37916"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}