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
Fa'atulagaina o Embox
make confload-platform/pjsip/stm32f7cube
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.
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.
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
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.