ื˜ืœืคื•ืŸ SIP ืขืœ STM32F7-Discovery

ืฉืœื•ื ืœื›ื•ืœื.

ืœืคื ื™ ื–ืžืŸ ืžื” ืื ื—ื ื• ะฟะธัะฐะปะธ ืขืœ ื”ืื•ืคืŸ ืฉื‘ื• ื”ืฆืœื—ื ื• ืœื”ืฉื™ืง ื˜ืœืคื•ืŸ SIP ืขืœ STM32F4-Discovery ืขื 1 MB ROM ื•-192 KB RAM) ืžื‘ื•ืกืก ืขืœ ืืžื‘ื•ืงืก. ื›ืืŸ ื™ืฉ ืœื•ืžืจ ืฉื’ืจืกื” ื–ื• ื”ื™ื™ืชื” ืžื™ื ื™ืžืœื™ืช ื•ื—ื™ื‘ืจื” ืฉื ื™ ื˜ืœืคื•ื ื™ื ื™ืฉื™ืจื•ืช ืœืœื ืฉืจืช ื•ืขื ืฉื™ื“ื•ืจ ืงื•ืœื™ ื‘ื›ื™ื•ื•ืŸ ืื—ื“ ื‘ืœื‘ื“. ืœื›ืŸ, ื”ื—ืœื˜ื ื• ืœื”ืฉื™ืง ื˜ืœืคื•ืŸ ืฉืœื ื™ื•ืชืจ ืขื ืฉื™ื—ื” ื“ืจืš ื”ืฉืจืช, ืฉื™ื“ื•ืจ ืงื•ืœื™ ืœืฉื ื™ ื”ื›ื™ื•ื•ื ื™ื, ืืš ื™ื—ื“ ืขื ื–ืืช ืœืฉืžื•ืจ ืขืœ ื’ื•ื“ืœ ื”ื–ื™ื›ืจื•ืŸ ื”ืงื˜ืŸ ื‘ื™ื•ืชืจ ื”ืืคืฉืจื™.


ืœื˜ืœืคื•ืŸ ื”ื•ื—ืœื˜ ืœื‘ื—ื•ืจ ื‘ืืคืœื™ืงืฆื™ื” simple_pjsua ื›ื—ืœืง ืžืกืคืจื™ื™ืช PJSIP. ืžื“ื•ื‘ืจ ื‘ืืคืœื™ืงืฆื™ื” ืžื™ื ื™ืžืœื™ืช ืฉื™ื›ื•ืœื” ืœื”ื™ืจืฉื ื‘ืฉืจืช, ืœืงื‘ืœ ื•ืœืขื ื•ืช ืœืฉื™ื—ื•ืช. ืœื”ืœืŸ ืžื™ื“ ืืชืŸ ืชื™ืื•ืจ ื›ื™ืฆื“ ืœื”ืคืขื™ืœ ืื•ืชื• ืขืœ STM32F7-Discovery.

ืื™ืš ืœื”ืฉื™ืง

  1. ื”ื’ื“ืจืช ืื™ืžื‘ื•ืงืก
    make confload-platform/pjsip/stm32f7cube
  2. ื”ื’ื“ืจ ืืช ื—ืฉื‘ื•ืŸ SIP ื”ื ื“ืจืฉ ื‘ืงื•ื‘ืฅ conf/mods.config.
    
    include platform.pjsip.cmd.simple_pjsua_imported(
        sip_domain="server", 
        sip_user="username",
        sip_passwd="password")
    

    ืื™ืคื” ืฉืจืช ื”ื•ื ืฉืจืช SIP (ืœื“ื•ื’ืžื”, sip.linphone.org), ืฉื ืžืฉืชืžืฉ ะธ ืกื™ืกืžื - ืฉื ืžืฉืชืžืฉ ื•ืกื™ืกืžื” ืœื—ืฉื‘ื•ืŸ.

  3. ื”ืจื›ื‘ืช ืืžื‘ื•ืงืก ื›ืฆื•ื•ืช ืœืขืฉื•ืช. ืœื’ื‘ื™ ืงื•ืฉื—ืช ื”ืœื•ื— ืฉื™ืฉ ืœื ื• ื•ื™ืงื™ ื• - ัั‚ะฐั‚ัŒะต.
  4. ื”ืคืขืœ ืืช ื”ืคืงื•ื“ื” "simple_pjsua_imported" ื‘ืžืกื•ืฃ ื”-Embox
    
    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. ืœื‘ืกื•ืฃ, ื ื•ืชืจ ืœื”ื›ื ื™ืก ืจืžืงื•ืœื™ื ืื• ืื•ื–ื ื™ื•ืช ืœื™ืฆื™ืืช ื”ืื•ื“ื™ื•, ื•ืœื“ื‘ืจ ืœืชื•ืš ืฉื ื™ ืžื™ืงืจื•ืคื•ื ื™ื ืงื˜ื ื™ื ืฉืœ MEMS ืœื™ื“ ื”ืชืฆื•ื’ื”. ืื ื• ืžืชืงืฉืจื™ื ืž-Linux ื“ืจืš ื”ืืคืœื™ืงืฆื™ื” simple_pjsua, pjsua. ื•ื‘ื›ืŸ, ืื• ืฉืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ื›ืœ ืกื•ื’ ืื—ืจ ืฉืœ linphone.

ื›ืœ ื–ื” ืžืชื•ืืจ ืืฆืœื ื• ื•ื™ืงื™.

ืื™ืš ื”ื’ืขื ื• ืœืฉื

ืื–, ื‘ืชื—ื™ืœื” ืขืœืชื” ื”ืฉืืœื” ืœื’ื‘ื™ ื‘ื—ื™ืจืช ืคืœื˜ืคื•ืจืžืช ื—ื•ืžืจื”. ืžื›ื™ื•ื•ืŸ ืฉื”ื™ื” ื‘ืจื•ืจ ืฉ-STM32F4-Discovery ืœื ื™ืชืื™ื ืžื”ื–ื™ื›ืจื•ืŸ, ื ื‘ื—ืจ STM32F7-Discovery. ื™ืฉ ืœื” ื›ื•ื ืŸ ื”ื‘ื–ืง ืฉืœ 1 MB ื•-256 KB ืฉืœ ื–ื™ื›ืจื•ืŸ RAM (+ 64 ื–ื™ื›ืจื•ืŸ ืžื”ื™ืจ ืžื™ื•ื—ื“, ืฉื’ื ื‘ื• ื ืฉืชืžืฉ). ื’ื ืœื ื”ืจื‘ื” ืœืฉื™ื—ื•ืช ื“ืจืš ื”ืฉืจืช, ืื‘ืœ ื”ื—ืœื˜ื ื• ืœื ืกื•ืช ืœื”ืฉืชืœื‘.

ื‘ืชื ืื™ ืœืขืฆืžื, ื”ืžืฉื™ืžื” ื—ื•ืœืงื” ืœืžืกืคืจ ืฉืœื‘ื™ื:

  • ื”ืคืขืœืช PJSIP ืขืœ QEMU. ื–ื” ื”ื™ื” ื ื•ื— ืœืื™ืคื•ื™ ื‘ืื’ื™ื, ื‘ื ื•ืกืฃ ื›ื‘ืจ ื”ื™ื™ืชื” ืœื ื• ืชืžื™ื›ื” ื‘-Codec AC97 ืฉื.
  • ื”ืงืœื˜ืช ืงื•ืœ ื•ื”ืฉืžืขื” ื‘-QEMU ื•ื‘-STM32.
  • ื”ืขื‘ืจืช ืืคืœื™ืงืฆื™ื” simple_pjsua ืž-PJSIP. ื–ื” ืžืืคืฉืจ ืœืš ืœื”ื™ืจืฉื ื‘ืฉืจืช SIP ื•ืœื‘ืฆืข ืฉื™ื—ื•ืช.
  • ืคืจื•ืก ืฉืจืช ืžืฉืœืš ืžื‘ื•ืกืก ื›ื•ื›ื‘ื™ื•ืช ื•ื‘ื“ื•ืง ืขืœื™ื•, ื•ืœืื—ืจ ืžื›ืŸ ื ืกื” ืฉืจืชื™ื ื—ื™ืฆื•ื ื™ื™ื ื›ื’ื•ืŸ sip.linphone.org

ืกืื•ื ื“ ื‘-Embox ืขื•ื‘ื“ ื“ืจืš Portaudio, ื”ืžืฉืžืฉ ื’ื ื‘-PISIP. ื”ื‘ืขื™ื•ืช ื”ืจืืฉื•ื ื•ืช ื”ื•ืคื™ืขื• ื‘-QEMU - WAV ืฉื™ื—ืง ื˜ื•ื‘ ื‘-44100 ื”ืจืฅ, ืื‘ืœ ื‘-8000 ืžืฉื”ื• ื‘ื‘ื™ืจื•ืจ ื”ืฉืชื‘ืฉ. ื”ืชื‘ืจืจ ืฉื–ื” ืขื ื™ื™ืŸ ืฉืœ ื”ื’ื“ืจืช ื”ืชื“ืจ - ื›ื‘ืจื™ืจืช ืžื—ื“ืœ ื–ื” ื”ื™ื” 44100 ื‘ืฆื™ื•ื“, ื•ื–ื” ืœื ื”ืฉืชื ื” ืžื‘ื—ื™ื ื” ืชื•ื›ื ื™ืช.

ื›ืืŸ, ืื•ืœื™, ื›ื“ืื™ ืœื”ืกื‘ื™ืจ ืžืขื˜ ืื™ืš ื”ืกืื•ื ื“ ืžื•ืฉืžืข ื‘ืื•ืคืŸ ื›ืœืœื™. ื ื™ืชืŸ ืœื”ื’ื“ื™ืจ ืืช ื›ืจื˜ื™ืก ื”ืงื•ืœ ืœืžืฆื‘ื™ืข ืขืœ ืคื™ืกืช ื–ื™ื›ืจื•ืŸ ืฉืžืžื ื• ืชืจืฆื• ืœื ื’ืŸ ืื• ืœื”ืงืœื™ื˜ ื‘ืชื“ืจ ืงื‘ื•ืข ืžืจืืฉ. ืœืื—ืจ ืฉื”ืžืื’ืจ ืžืกืชื™ื™ื, ื ื•ืฆืจืช ืคืกื™ืงื” ื•ื”ื‘ื™ืฆื•ืข ืžืžืฉื™ืš ืขื ื”ืžืื’ืจ ื”ื‘ื. ื”ืขื•ื‘ื“ื” ื”ื™ื ืฉืฆืจื™ืš ืœืžืœื ืืช ื”ืžืื’ืจื™ื ื”ืืœื” ืžืจืืฉ ื‘ื–ืžืŸ ืฉื”ืงื•ื“ื ืžื ื•ื’ืŸ. ืื ื• ื ืชืžื•ื“ื“ ืขื ื‘ืขื™ื” ื–ื• ื‘ื”ืžืฉืš ื‘- STM32F7.

ืœืื—ืจ ืžื›ืŸ, ืฉื›ืจื ื• ืฉืจืช ื•ืคืจืกื ื• ืขืœื™ื• ื›ื•ื›ื‘ื™ืช. ืžื›ื™ื•ื•ืŸ ืฉื”ื™ื” ืฆื•ืจืš ืœื‘ืฆืข ื ื™ืคื•ื™ ื‘ืื’ื™ื ื”ืจื‘ื”, ืื‘ืœ ืœื ืจืฆื™ืชื™ ืœื“ื‘ืจ ื”ืจื‘ื” ืœืชื•ืš ื”ืžื™ืงืจื•ืคื•ืŸ, ื”ื™ื” ืฆื•ืจืš ืœื‘ืฆืข ื”ืฉืžืขื” ื•ื”ืงืœื˜ื” ืื•ื˜ื•ืžื˜ื™ืช. ื›ื“ื™ ืœืขืฉื•ืช ื–ืืช, ืชื™ืงื ื• ืืช simple_pjsua ื›ืš ืฉืชื•ื›ืœ ืœื”ื—ืœื™ืง ืงื‘ืฆื™ื ื‘ืžืงื•ื ื”ืชืงื ื™ ืฉืžืข. ื‘-PJSIP, ื–ื” ื ืขืฉื” ื‘ืฆื•ืจื” ืคืฉื•ื˜ื” ืœืžื“ื™, ืžื›ื™ื•ื•ืŸ ืฉื™ืฉ ืœื”ื ืžื•ืฉื’ ืฉืœ ื™ืฆื™ืื”, ืฉื™ื›ื•ืœื” ืœื”ื™ื•ืช ื”ืชืงืŸ ืื• ืงื•ื‘ืฅ. ื•ื™ืฆื™ืื•ืช ืืœื• ื™ื›ื•ืœื•ืช ืœื”ื™ื•ืช ืžื—ื•ื‘ืจื•ืช ื‘ืฆื•ืจื” ื’ืžื™ืฉื” ืœื™ืฆื™ืื•ืช ืื—ืจื•ืช. ืืชื” ื™ื›ื•ืœ ืœืจืื•ืช ืืช ื”ืงื•ื“ ื‘-pjsip ืฉืœื ื• ืžืื’ืจื™ื. ื›ืชื•ืฆืื” ืžื›ืš, ื”ืชื•ื›ื ื™ืช ื”ื™ื™ืชื” ื›ื“ืœืงืžืŸ. ื‘ืฉืจืช ื”ื›ื•ื›ื‘ื™ืช ืคืชื—ืชื™ ืฉื ื™ ื—ืฉื‘ื•ื ื•ืช - ืœืœื™ื ื•ืงืก ื•ืœืืžื‘ื•ืงืก. ืœืื—ืจ ืžื›ืŸ, ื”ืคืงื•ื“ื” ืžื‘ื•ืฆืขืช ื‘-Embox simple_pjsua_imported, ืืžื‘ื•ืงืก ื ืจืฉื ื‘ืฉืจืช, ื•ืœืื—ืจ ืžื›ืŸ ืื ื• ืงื•ืจืื™ื ืœืืžื‘ื•ืงืก ืž-Linux. ื‘ืจื’ืข ื”ื—ื™ื‘ื•ืจ ืื ื—ื ื• ื‘ื•ื“ืงื™ื ื‘ืฉืจืช Asterisk ืฉื”ื—ื™ื‘ื•ืจ ื ื•ืฆืจ ื•ืœืื—ืจ ื–ืžืŸ ืžื” ืืžื•ืจื™ื ืœืฉืžื•ืข ืฆืœื™ืœ ืž-Linux ื‘-Embox, ื•ื‘-Linux ืฉื•ืžืจื™ื ืืช ื”ืงื•ื‘ืฅ ืฉืžื•ืคืขืœ ืž-Embox.

ืœืื—ืจ ืฉื–ื” ืขื‘ื“ ืขืœ QEMU, ืขื‘ืจื ื• ืœืžืขื‘ืจ ืœ- STM32F7-Discovery. ื”ื‘ืขื™ื” ื”ืจืืฉื•ื ื” ื”ื™ื ืฉื”ื ืœื ื ื›ื ืกื• ืœ-1 MB ืฉืœ ROM ืœืœื ืื•ืคื˜ื™ืžื™ื–ืฆื™ื™ืช ื”ืžื”ื“ืจ ื”ืžืื•ืคืฉืจืช "-Os" ืœื’ื•ื“ืœ ื”ืชืžื•ื ื”. ืœื›ืŸ ื›ืœืœื ื• "-Os". ื™ืชืจ ืขืœ ื›ืŸ, ื”ืชื™ืงื•ืŸ ื”ืฉื‘ื™ืช ืืช ื”ืชืžื™ื›ื” ื‘-C++, ื›ืš ืฉื”ื•ื ื ื—ื•ืฅ ืจืง ืขื‘ื•ืจ pjsua, ื•ืื ื—ื ื• ืžืฉืชืžืฉื™ื ื‘- simple_pjsua.

ืœืื—ืจ ืฉื”ื•ื ื— simple_pjsua, ื”ื—ืœื™ื˜ ืฉืขื›ืฉื™ื• ื™ืฉ ื”ื–ื“ืžื ื•ืช ืœื”ืฉื™ืง ืื•ืชื•. ืื‘ืœ ืงื•ื“ื ื”ื™ื” ืฆื•ืจืš ืœื”ืชืžื•ื“ื“ ืขื ื”ื”ืงืœื˜ื” ื•ื”ื”ืฉืžืขื” ืฉืœ ื”ืงื•ืœ. ื”ืฉืืœื” ื”ื™ื ืื™ืคื” ืœื›ืชื•ื‘? ื‘ื—ืจื ื• ื‘ื–ื™ื›ืจื•ืŸ ื—ื™ืฆื•ื ื™ - SDRAM (128 ืžื’ื”-ื‘ื™ื™ื˜). ืืชื” ื™ื›ื•ืœ ืœื ืกื•ืช ืืช ื–ื” ื‘ืขืฆืžืš:

ื™ื•ืฆืจ WAV ืกื˜ืจื™ืื• ื‘ืชื“ืจ ืฉืœ 16000 ื”ืจืฅ ื•ืžืฉืš ื–ืžืŸ ืฉืœ 10 ืฉื ื™ื•ืช:


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

ืื ื—ื ื• ืžืคืกื™ื“ื™ื:


play -m C0000000

ื™ืฉ ื›ืืŸ ืฉืชื™ ื‘ืขื™ื•ืช. ื”ืจืืฉื•ืŸ ืขื ื”-codec - WM8994 ืžืฉืžืฉ, ื•ื™ืฉ ืœื• ื“ื‘ืจ ื›ื–ื” ื›ืžื• ื—ืจื™ืฅ, ื•ื™ืฉ 4 ืžื”ื—ืจื™ืฆื™ื ื”ืืœื”. ืื–, ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ืื ื–ื” ืœื ืžื•ื’ื“ืจ, ืื– ื‘ืขืช ื”ืคืขืœืช ืื•ื“ื™ื•, ื”ืฉืžืขื” ืžืชืจื—ืฉืช ื‘ื›ืœ ืืจื‘ืขืช ื”ืžืฉื‘ืฆื•ืช . ืœื›ืŸ, ื‘ืชื“ืจ ืฉืœ 16000 ื”ืจืฅ ืงื™ื‘ืœื ื• 8000 ื”ืจืฅ, ืื‘ืœ ืขื‘ื•ืจ 8000 ื”ืจืฅ ื”ื”ืฉืžืขื” ืคืฉื•ื˜ ืœื ืขื‘ื“ื”. ื›ืืฉืจ ื ื‘ื—ืจื• ืจืง ืžืฉื‘ืฆื•ืช 0 ื•-2, ื–ื” ืขื‘ื“ ื›ืžื• ืฉืฆืจื™ืš. ื‘ืขื™ื” ื ื•ืกืคืช ื”ื™ื™ืชื” ืžืžืฉืง ื”ืื•ื“ื™ื• ื‘-STM32Cube, ื‘ื• ืคืœื˜ ื”ืื•ื“ื™ื• ืขื•ื‘ื“ ื“ืจืš SAI (Serial Audio Interface) ื‘ืื•ืคืŸ ืกื™ื ื›ืจื•ื ื™ ืขื ื›ื ื™ืกืช ื”ืื•ื“ื™ื• (ืœื ื”ื‘ื ืชื™ ืืช ื”ืคืจื˜ื™ื, ืื‘ืœ ืžืกืชื‘ืจ ืฉื”ื ื—ื•ืœืงื™ื ืฉืขื•ืŸ ืžืฉื•ืชืฃ ื•ื›ืืฉืจ ื”- ืคืœื˜ ืื•ื“ื™ื• ืžืื•ืชื—ืœ, ืื•ื“ื™ื• ืžื—ื•ื‘ืจ ืื™ื›ืฉื”ื• ืœื›ื ื™ืกื” ืืœื™ื•). ื›ืœื•ืžืจ, ืœื ื ื™ืชืŸ ืœื”ืคืขื™ืœ ืื•ืชื ื‘ื ืคืจื“, ืื– ืขืฉื™ื ื• ืืช ื”ืคืขื•ืœื•ืช ื”ื‘ืื•ืช - ื›ื ื™ืกืช ื”ืื•ื“ื™ื• ื•ืคืœื˜ ื”ืื•ื“ื™ื• ืชืžื™ื“ ืขื•ื‘ื“ื™ื (ื›ื•ืœืœ ื ื•ืฆืจื•ืช ืคืกื™ืงื•ืช). ืื‘ืœ ื›ืฉืฉื•ื ื“ื‘ืจ ืœื ืžื•ืฉืžืข ื‘ืžืขืจื›ืช, ืื– ืื ื—ื ื• ืคืฉื•ื˜ ืžื—ืœื™ืงื™ื ืžืื’ืจ ืจื™ืง ืœืชื•ืš ืคืœื˜ ื”ืื•ื“ื™ื•, ื•ื›ืฉื”ื”ืฉืžืขื” ืžืชื—ื™ืœื”, ืื ื—ื ื• ื‘ืืžืช ืžืชื—ื™ืœื™ื ืœืžืœื ืื•ืชื•.

ื™ืชืจ ืขืœ ื›ืŸ, ื ืชืงืœื ื• ื‘ืขื•ื‘ื“ื” ืฉื”ืกืื•ื ื“ ื‘ืžื”ืœืš ื”ืงืœื˜ืช ื”ืงื•ืœ ื”ื™ื” ืฉืงื˜ ืžืื•ื“. ื–ื” ื ื•ื‘ืข ืžื”ืขื•ื‘ื“ื” ืฉืžื™ืงืจื•ืคื•ื ื™ื ืฉืœ MEMS ื‘- STM32F7-Discovery ืื™ื›ืฉื”ื• ืœื ืขื•ื‘ื“ื™ื ื˜ื•ื‘ ื‘ืชื“ืจื™ื ืžืชื—ืช ืœ-16000 ื”ืจืฅ. ืœื›ืŸ, ืื ื—ื ื• ืžื’ื“ื™ืจื™ื 16000 ื”ืจืฅ, ื’ื ืื ืžื’ื™ืข 8000 ื”ืจืฅ. ืœืฉื ื›ืš, ืขื ื–ืืช, ื”ื™ื” ืฆื•ืจืš ืœื”ื•ืกื™ืฃ ื”ืžืจืช ืชื•ื›ื ื” ืฉืœ ืชื“ืจ ืื—ื“ ืœืื—ืจ.

ืœืื—ืจ ืžื›ืŸ, ื”ื™ื™ืชื™ ืฆืจื™ืš ืœื”ื’ื“ื™ืœ ืืช ื’ื•ื“ืœ ื”ืขืจื™ืžื”, ืฉื ืžืฆืืช ื‘-RAM. ืœืคื™ ื”ื—ื™ืฉื•ื‘ื™ื ืฉืœื ื•, pjsip ื“ืจืฉ ื›-190 KB, ื•ื ืฉืืจื• ืœื ื• ืจืง ื›-100 KB. ื›ืืŸ ื”ื™ื™ืชื™ ืฆืจื™ืš ืœื”ืฉืชืžืฉ ื‘ื–ื™ื›ืจื•ืŸ ื—ื™ืฆื•ื ื™ ื›ืœืฉื”ื• - SDRAM (ื‘ืขืจืš 128 KB).

ืื—ืจื™ ื›ืœ ื”ืขืจื™ื›ื•ืช ื”ืืœื”, ืจืื™ืชื™ ืืช ื”ื—ื‘ื™ืœื•ืช ื”ืจืืฉื•ื ื•ืช ื‘ื™ืŸ ืœื™ื ื•ืงืก ืœืืžื‘ื•ืงืก, ื•ืฉืžืขืชื™ ืืช ื”ืกืื•ื ื“! ืื‘ืœ ื”ืกืื•ื ื“ ื”ื™ื” ื ื•ืจื, ื‘ื›ืœืœ ืœื ื›ืžื• ื‘-QEMU, ืื™ ืืคืฉืจ ื”ื™ื” ืœื–ื”ื•ืช ื›ืœื•ื. ื•ืื– ื—ืฉื‘ื ื• ืžื” ื™ื›ื•ืœ ืœื”ื™ื•ืช ื”ืขื ื™ื™ืŸ. ืื™ืชื•ืจ ื‘ืื’ื™ื ื”ืจืื” ืฉืœ-Embox ืคืฉื•ื˜ ืื™ืŸ ื–ืžืŸ ืœืžืœื / ืœืคืจื•ืง ืžืื’ืจื™ ืื•ื“ื™ื•. ื‘ื–ืžืŸ ืฉ-pjsip ืขื™ื‘ื“ ืžืกื’ืจืช ืื—ืช, ื”ืกืคื™ืงื• ืœื”ืชืจื—ืฉ 2 ืคืกื™ืงื•ืช ืœื’ื‘ื™ ื”ืฉืœืžืช ืขื™ื‘ื•ื“ ื”ืžืื’ืจ, ื•ื–ื” ื™ื•ืชืจ ืžื“ื™. ื”ืžื—ืฉื‘ื” ื”ืจืืฉื•ื ื” ืœืžื”ื™ืจื•ืช ื”ื™ื™ืชื” ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืฉืœ ืžื”ื“ืจ, ืื‘ืœ ื”ื™ื ื›ื‘ืจ ื ื›ืœืœื” ื‘-PJSIP. ื”ืฉื ื™ ื”ื•ื ื ืงื•ื“ื” ืฆืคื” ื‘ื—ื•ืžืจื”, ื“ื™ื‘ืจื ื• ืขืœื™ื” ื‘ ัั‚ะฐั‚ัŒะต. ืื‘ืœ ื›ืคื™ ืฉื”ืจืื” ื‘ืคื•ืขืœ, FPU ืœื ื ืชืŸ ืขืœื™ื™ื” ืžืฉืžืขื•ืชื™ืช ื‘ืžื”ื™ืจื•ืช. ื”ืฉืœื‘ ื”ื‘ื ื”ื™ื” ืœืชืขื“ืฃ ืฉืจืฉื•ืจื™ื. ืœืืžื‘ื•ืงืก ื™ืฉ ืืกื˜ืจื˜ื’ื™ื•ืช ืชื–ืžื•ืŸ ืฉื•ื ื•ืช, ื•ืื ื™ ื›ืœืœืชื™ ืื—ืช ืฉืชื•ืžื›ืช ื‘ืกื“ืจื™ ืขื“ื™ืคื•ื™ื•ืช ื•ืžื’ื“ื™ืจื” ืืช ื–ืจืžื™ ื”ืื•ื“ื™ื• ื‘ืขื“ื™ืคื•ืช ื”ื’ื‘ื•ื”ื” ื‘ื™ื•ืชืจ. ื’ื ื–ื” ืœื ืขื–ืจ.

ื”ืจืขื™ื•ืŸ ื”ื‘ื ื”ื™ื” ืฉืื ื—ื ื• ืขื•ื‘ื“ื™ื ืขื ื–ื™ื›ืจื•ืŸ ื—ื™ืฆื•ื ื™ ื•ื–ื” ื™ื”ื™ื” ื ื—ืžื“ ืœื”ืขื‘ื™ืจ ืœืฉื ืžื‘ื ื™ื ืฉื ื™ื’ืฉื™ื ืืœื™ื”ื ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื‘ื™ื•ืชืจ. ืขืฉื™ืชื™ ื ื™ืชื•ื— ืจืืฉื•ื ื™ ืฉืœ ืžืชื™ ื•ืชื—ืช ืžื” simple_pjsua ืžืงืฆื” ื–ื™ื›ืจื•ืŸ. ื”ืชื‘ืจืจ ืฉืžืชื•ืš 190 Kb, ื”-90 Kb ื”ืจืืฉื•ื ื™ื ืžื•ืงืฆื™ื ืœืฆืจื›ื™ื ืคื ื™ืžื™ื™ื ืฉืœ PJSIP ื•ืื™ืŸ ื’ื™ืฉื” ืืœื™ื”ื ืœืขื™ืชื™ื ืงืจื•ื‘ื•ืช. ื™ืชืจื” ืžื›ืš, ื‘ืžื”ืœืš ืฉื™ื—ื” ื ื›ื ืกืช, ื ืงืจืืช ื”ืคื•ื ืงืฆื™ื” pjsua_call_answer, ืฉื‘ื” ืžื•ืงืฆื™ื ืื– ืžืื’ืจื™ื ืœืขื‘ื•ื“ื” ืขื ืžืกื’ืจื•ืช ื ื›ื ืกื•ืช ื•ื™ื•ืฆืื•ืช. ื–ื” ืขื“ื™ื™ืŸ ื”ื™ื” ื‘ืขืจืš 100 Kb. ื•ืื– ืขืฉื™ื ื• ืืช ื”ื“ื‘ืจ ื”ื‘ื. ืขื“ ืœืจื’ืข ื”ืฉื™ื—ื”, ืื ื• ืฉืžื™ื ืืช ื”ื ืชื•ื ื™ื ื‘ื–ื™ื›ืจื•ืŸ ื—ื™ืฆื•ื ื™. ืžื™ื“ ืขื ื”ืฉื™ื—ื”, ืื ื• ืžื™ื“ ืžื—ืœื™ืคื™ื ืืช ื”ืขืจื™ืžื” ื‘ืื—ืจ - ื‘-RAM. ืœืคื™ื›ืš, ื›ืœ ื”ื ืชื•ื ื™ื ื”"ื—ืžื™ื" ื”ื•ืขื‘ืจื• ืœื–ื™ื›ืจื•ืŸ ืžื”ื™ืจ ื™ื•ืชืจ ื•ืฆืคื•ื™ ื™ื•ืชืจ.

ื›ืชื•ืฆืื” ืžื›ืš, ื›ืœ ื–ื” ื™ื—ื“ ืื™ืคืฉืจ ืืช ื”ื”ืฉืงื” simple_pjsua ื•ืœื”ืชืงืฉืจ ื“ืจืš ื”ืฉืจืช ืฉืœืš. ื•ืื– ื“ืจืš ืฉืจืชื™ื ืื—ืจื™ื ื›ื’ื•ืŸ sip.linphone.org.

ืžืžืฆืื™ื

ื›ืชื•ืฆืื” ืžื›ืš, ื ื™ืชืŸ ื”ื™ื” ืœื”ืฉื™ืง simple_pjsua ืขื ืฉื™ื“ื•ืจ ืงื•ืœื™ ืœืฉื ื™ ื”ื›ื™ื•ื•ื ื™ื ื“ืจืš ื”ืฉืจืช. ื ื™ืชืŸ ืœืคืชื•ืจ ืืช ื”ื‘ืขื™ื” ืขื ื”ื•ืฆืื” ื ื•ืกืคืช ืฉืœ 128 KB ืฉืœ SDRAM ืขืœ ื™ื“ื™ ืฉื™ืžื•ืฉ ื‘-Cortex-M7 ืงืฆืช ื™ื•ืชืจ ื—ื–ืง (ืœื“ื•ื’ืžื”, STM32F769NI ืขื 512 KB ืฉืœ ื–ื™ื›ืจื•ืŸ RAM), ืืš ื™ื—ื“ ืขื ื–ืืช, ืขื“ื™ื™ืŸ ืœื ื•ื™ืชืจื ื• ืขืœ ื”ืชืงื•ื•ื” ืœื”ื™ื›ื ืก ืœ-256 KB ๐Ÿ™‚ ื ืฉืžื— ืื ืžื™ืฉื”ื• ืžืขื•ื ื™ื™ืŸ, ืื• ื™ื•ืชืจ ื˜ื•ื‘, ื ืกื” ื–ืืช. ื›ืœ ื”ืžืงื•ืจื•ืช, ื›ืจื’ื™ืœ, ื ืžืฆืื™ื ืืฆืœื ื• ืžืื’ืจื™ื.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”