SIP telefoni ile STM32F7-Discovery

Talofa tagata uma.

I se taimi ua tuanaʻi tatou tusia e uiga i le auala na mafai ai ona matou faʻalauiloaina se telefoni SIP i le STM32F4-Discovery ma le 1 MB ROM ma le 192 KB RAM) faʻavae i luga Embox. O iinei e tatau ona fai mai o lena lomiga e laʻititi ma faʻafesoʻotaʻi saʻo ni telefoni se lua e aunoa ma se server ma faʻatasi ai ma le leo naʻo le tasi itu. O le mea lea, na matou filifili ai e faʻalauiloa se telefoni sili atu ma se telefoni e ala i se 'auʻaunaga, faʻasalalau leo ​​i itu uma e lua, ae i le taimi lava e tasi e fetaui i le laʻititi laʻititi laʻititi laʻititi.


Na tonu e filifili se talosaga mo le telefoni simple_pjsua o se vaega o le faletusi PJSIP. Ole talosaga la'ititi lea e mafai ona lesitala ile server, maua ma tali telefoni. I lalo o le a vave ona ou tuʻuina atu se faʻamatalaga pe faʻafefea ona faʻatino lenei mea ile STM32F7-Discovery.

Auala e amata ai

  1. Fa'atulagaina o Embox
    make confload-platform/pjsip/stm32f7cube
  2. I le conf/mods.config faila matou setiina le SIP account manaomia.
    
    include platform.pjsip.cmd.simple_pjsua_imported(
        sip_domain="server", 
        sip_user="username",
        sip_passwd="password")
    

    le mea faigaluega o se SIP server (mo se fa'ata'ita'iga, sip.linphone.org), username и numera e le iloa e sesi — username ma password mo le tala.

  3. Matou te faʻapotopotoina Embox ma se 'au fai. E i ai a matou faʻamatalaga e uiga i firmware laupapa i wiki ma i totonu tusiga.
  4. Faʻatonu le faʻatonuga "simple_pjsua_imported" i le Embox console
    
    00:00:12.870    pjsua_acc.c  ....SIP outbound status for acc 0 is not active
    00:00:12.884    pjsua_acc.c  ....sip:[email protected]: registration success, status=200 (Registration succes
    00:00:12.911    pjsua_acc.c  ....Keep-alive timer started for acc 0, destination:91.121.209.194:5060, interval:15s
    

  5. Ma le mea mulimuli, na o le pau lava le mea o loʻo totoe o le faʻapipiʻi o failauga poʻo mea faʻalogo i totonu o le faʻalogo leo, ma tautala i totonu o tamaʻi puʻupuʻu MEMS e lua i tafatafa o le faʻaaliga. Matou te valaʻau mai Linux e faʻaaoga ai le talosaga simple_pjsua, pjsua. Ia, pe mafai ona e fa'aogaina so'o se isi ituaiga linphone.

O nei mea uma o loʻo faʻamatalaina i luga o la matou wiki.

Na faapefea ona tatou oo mai iinei

O lea la, i le taimi muamua na tulaʻi mai ai le fesili e uiga i le filifilia o se faʻavae meafaigaluega. Talu ai na manino mai o le STM32F4-Discovery o le a le fetaui mo le manatua, o le STM32F7-Discovery na filifilia. O loʻo ia te ia le 1 MB flash drive ma le 256 KB o le RAM (+ 64 faʻapitoa vave manatua, lea o le a matou faʻaaogaina foi). E le tele foi mo telefoni e ala i le server, ae na matou filifili e taumafai e ulufale i totonu.

I le masani ai, ua vaevaeina le galuega i ni vaega:

  • Fa'atino PJSIP ile QEMU. Sa faigofie mo le faʻapipiʻiina, faʻatasi ai ma le matou lagolago mo le codec AC97 iina.
  • Pu'eina leo ma toe ta'alo ile QEMU ma le STM32.
  • Tu'u atu le talosaga simple_pjsua mai le PJSIP. E mafai ai ona e lesitala i luga o se SIP server ma fai telefoni.
  • Fa'atu lau lava server e fa'atatau ile Asterisk ma fa'ata'ita'i i ai, ona fa'ata'ita'i lea i fafo, pei ole sip.linphone.org

Leo i Embox e galue e ala i Portaudio, lea e faʻaaogaina foi i le PISIP. O faʻafitauli muamua na faʻaalia ile QEMU - WAVs na taʻalo lelei ile 44100 Hz, ae ile 8000 o loʻo i ai se mea o loʻo faʻaletonu. Na aliali mai o le faʻafitauli o le faʻatulagaina o taimi - e ala i le le mafai ona faʻaogaina i meafaigaluega o le 44100, ma matou te leʻi suia lenei mea i le polokalama.

Iinei, atonu e aoga le faʻamatalaina o sina mea e uiga i le faʻaogaina o le leo i le lautele. E mafai e le kata leo ona tu'u se fa'asino i se vaega o manatua e mana'omia ona ta pe pu'eina i se taimi na mua'i fuafuaina. A uma le pa'u, ona fa'atupuina lea o se fa'alavelave ma fa'aauau le fa'atinoina mai le isi pa puipui. O le manatu e tatau ona faʻatumu muamua nei paʻu aʻo taʻalo le muamua. O le a matou feagai atili ma lenei faʻafitauli ile STM32F7.

Na sosoo ai, matou te mautotogi se sapalai ma faʻapipiʻi Asterisk i luga. Talu ai sa i ai le tele o le debugging e fai, ma ou te leʻi manaʻo e talanoa tele i totonu o le masini faaleotele leo, sa tatau ai ona fai otometi toe taʻalo ma puʻeina. Ina ia faia lenei mea, na matou faʻapipiʻi simple_pjsua ina ia mafai ona matou faʻapipiʻi faila nai lo masini faʻalogo. I le PJSIP e fai faigofie lava, talu ai o loʻo i ai le manatu o se taulaga, lea e mafai ona avea ma se masini poʻo se faila. Ma o nei ports e mafai ona faʻafesoʻotaʻi faʻafesoʻotaʻi i isi ports. E mafai ona e vaʻai i le code i la matou pjsip faleteuoloa. O le i'uga, o le polokalame na fa'apea. Na ou faia ni tala se lua i luga o le Asterisk server - mo Linux ma mo Embox. Le isi, o le poloaiga e faʻatinoina i luga ole Embox simple_pjsua_imported, Embox resitala i luga o le 'auʻaunaga, mulimuli ane matou taʻua Embox mai Linux. I le taimi o fesoʻotaʻiga, matou te siakiina le Asterisk server o loʻo faʻamautu le fesoʻotaʻiga atoa, ma a maeʻa sina taimi e tatau ona matou faʻalogo i le leo mai Linux i Embox, ma i Linux matou te faʻasaoina le faila e taʻalo mai le Embox.

O le taimi lava na galue ai lenei mea i le QEMU, na matou agai i luma e faʻafeiloaʻi i le STM32F7-Discovery. O le faafitauli muamua e le mafai ona matou ofi i le 1 MB o le ROM e aunoa ma le "-Os" compiler optimization mo le tele o ata. O le mea lea, matou te aofia ai "-Os". O le isi, o le patch faʻaletonu lagolago mo C ++, o lea e naʻo le manaʻomia mo pjsua, ma matou faʻaoga simple_pjsua.

A uma ona tuu simple_pjsua, na tonu ai ua i ai nei se avanoa e fa'alauiloa ai. Ae muamua e tatau ona matou mafaufau pe faapefea ona pueina ma toe taina leo. Fesili – o fea e tusi ai? Na matou filifilia le manatua i fafo - SDRAM (128 MB). E mafai ona e faataitaia oe lava ia:

O le a fa'atupuina se fa'avili leo WAV fa'atasi ma le tele o le 16000 Hz ma le umi o le 10 sekone:


record -r 16000 -c 2 -d 10000 -m C0000000

Tatou leiloa:


play -m C0000000

E lua faʻafitauli iinei. O le mea muamua o loʻo i ai le codec - WM8994 faʻaaogaina, ma o loʻo i ai se mea e pei o se slot, ma o loʻo i ai le 4 o nei avanoa, o le mea lea, e le mafai, pe a le faʻapipiʻiina, pe a taʻalo leo, toe faia uma fa avanoa. O le mea lea, i le taimi o le 16000 Hz matou te mauaina le 8000 Hz, ae mo le 8000 Hz toe faʻafoʻi e leʻi aoga. Ina ua matou filifilia na o avanoa 0 ma le 2, sa aoga e pei ona faamoemoeina. O le isi faʻafitauli o le faʻalogo leo i le STM32Cube, lea e galue ai le leo leo e ala i le SAI (Serial Audio Interface) faʻatasi ma le faʻalogo leo (Ou te leʻi malamalama i faʻamatalaga, ae e foliga mai latou te faʻasoa se uati masani ma pe a amataina. o le fa'alogo leo, o le leo o lo'o noatia i totonu o le ulufale). O lona uiga, e le mafai ona taʻavale ese, o lea na matou faia ai mea nei - o le faʻalogo leo ma le faʻalogo leo e galue i taimi uma (e aofia ai faʻalavelave faʻalavelave). Ae a leai se mea e ta'alo i totonu o le polokalama, matou te fa'ase'eina se pa'u gaogao i totonu o le leo, ma a amata le ta'aloga, matou te amata fa'atumuina.

Ona matou fetaiai lea ma le mea moni o le leo pe a pueina le leo e matua filemu lava. E mafua ona o le mea moni o le MEMS microphones i luga o le STM32F7-Discovery e le o lelei le galue i ala i lalo ole 16000 Hz. O le mea lea, matou te setiina i le 16000 Hz, tusa lava pe oʻo mai le 8000 Hz. Ina ia faia lenei mea, peitaʻi, sa manaʻomia le faʻaopoopoina o le faʻaliliuina o masini komepiuta o le tasi taimi i le isi.

O le isi, e tatau ona matou faʻateleina le tele o le faʻaputuga, lea o loʻo i totonu o le RAM. E tusa ai ma a matou faʻatusatusaga, e manaʻomia e le pjsip e tusa ma le 190 KB, ae naʻo le 100 KB na totoe. O iinei e tatau ona matou faʻaaogaina sina manatuaga i fafo - SDRAM (e uiga i le 128 KB).

Ina ua uma nei suiga uma, sa ou vaai i afifi muamua i le va o Linux ma Embox, ma faalogoina le leo! Ae leaga le leo, e le pei o QEMU, e leai se mea e mafai ona lagona. Ona matou mafaufau lea po o le a le mea e tupu. O le Debugging na fa'aalia ai e leai se taimi o Embox e fa'atumu ai/la'u ese ai fa'alogo leo. A'o fa'agasolo e le pjsip se fa'avaa se tasi, 2 fa'alavelave e uiga i le fa'amae'aina o le fa'aogaina o le pa puipui na tupu, lea e tele naua. O loʻu manatu muamua mo le faʻavavevave o le tuʻufaʻatasiga sili ona lelei, ae ua uma ona aofia i le PJSIP. O le lona lua o mea faʻapipiʻi mea, na matou talanoa i ai i totonu tusiga. Ae pei ona faʻaalia e le faʻataʻitaʻiga, e leʻi tuʻuina atu e le FPU se faʻaopoopoga tele o le saoasaoa. O le isi laasaga o le setiina o mea e ave i ai le faamuamua. Embox e eseese fuafuaga fa'atulagaina, ma na ou fa'atagaina le mea e lagolagoina ai mea e ave i ai le fa'amuamua ma tu'uina atu i leo le fa'amuamua maualuga. E lei fesoasoani foi lea.

O le isi manatu o loʻo matou galulue faʻatasi ma mafaufauga i fafo ma e lelei le faʻanofoina o fausaga iina e masani ona maua. Sa ou faia se suʻesuʻega muamua o le taimi ma lalo o le a simple_pjsua fa'asoa manatua. Na aliali mai mai le 190 KB, o le 90 KB muamua o loʻo tuʻufaʻatasia mo manaʻoga i totonu ole PJSIP ma e le maua soo. O le isi, i le taimi o le valaau mai, e valaʻau le pjsua_call_answer galuega, lea e tuʻuina atu ai faʻamalo mo le galulue ma faʻavaa ulufale ma fafo. E tusa lava pe 100 KB. Ona matou faia lea o mea nei. Seia o'o i le vala'au, o lo'o teuina fa'amaumauga i le mafaufau i fafo. O le taimi lava e tatagi ai le telefoni, matou te suia vave le faʻaputu i le isi i le RAM. O le mea lea, o faʻamatalaga "vevela" uma na faʻafeiloaʻi i le vave ma sili atu ona vaʻaia manatuaga.

O se taunuuga, o nei mea uma faʻatasi na mafai ai ona matou faʻalauiloa simple_pjsua ma valaau e ala i lau server. Ona sosoo ai lea ma isi sapalai e pei ole sip.linphone.org.

sailiiliga

I le faaiuga na mafai ona amata simple_pjsua fa'atasi ai ma felauaiga leo i itu uma e lua e ala i le 'au'aunaga. O le faʻafitauli i se faʻaopoopoga 128 KB o le SDRAM e mafai ona foia e ala i le faʻaaogaina o se Cortex-M7 sili atu le malosi (mo se faʻataʻitaʻiga, STM32F769NI ma le 512 KB o le RAM), ae matou te leʻi tuʻuina atu le faʻamoemoe e fetaui i le 256 KB :) fiafia pe a fiafia se tasi, pe sili atu, taumafai. O punaoa uma, e pei ona masani ai, o loʻo i totonu o tatou faleteuoloa.

puna: www.habr.com

Faaopoopo i ai se faamatalaga