메뉴 건너뛰기

그외 개발정보


0. 필요 패키지 설치

sudo apt-get install libasound2-dev


1. 먼저 PJSIP 소스 다운로드

wget http://www.pjsip.org/release/2.6/pjproject-2.6.tar.bz2
tar -xf pjproject-2.6.tar.bz2
cd pjproject-2.6


2. pjlib/include/pj/config_site.h 파일에 아래와 같은 내용 추가

#define PJMEDIA_AUDIO_DEV_HAS_ALSA 1
#define PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO 0


3. user.mak 파일 작성

export CFLAGS += -march=armv8-a -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -mlittle-endian -munaligned-access -ffast-math -fPIC
export LDFLGS +=


4. third_party/build/os-auto.mak.in 파일의 내용을 아래의 내용으로 대치

ifneq (@ac_no_gsm_codec@,1)
ifeq (@ac_external_gsm@,1)
# External
else
DIRS += gsm
endif
endif

ifneq (@ac_no_ilbc_codec@,1)
DIRS += ilbc
endif

ifneq (@ac_no_speex_codec@,1)
ifeq (@ac_external_speex@,1)
# External speex
else
DIRS += speex
endif
endif

ifneq (@ac_no_g7221_codec@,1)
DIRS += g7221
endif

ifneq ($(findstring pa,@ac_pjmedia_snd@),)
ifeq (@ac_external_pa@,1)
# External PA
else
#DIRS += portaudio
endif
endif

ifeq (@ac_external_srtp@,1)
# External SRTP
else
DIRS += srtp

ifeq (@ac_ssl_has_aes_gcm@,0)
CIPHERS_SRC = crypto/cipher/aes.o crypto/cipher/aes_icm.o       \
              crypto/cipher/aes_cbc.o
HASHES_SRC  = crypto/hash/sha1.o crypto/hash/hmac.o 		\
	      # crypto/hash/tmmhv2.o
RNG_SRC     = crypto/rng/rand_source.o crypto/rng/prng.o 	\
	      crypto/rng/ctr_prng.o
else
CIPHERS_SRC = crypto/cipher/aes_icm_ossl.o crypto/cipher/aes_gcm_ossl.o
HASHES_SRC  = crypto/hash/hmac_ossl.o
RNG_SRC     = crypto/rng/rand_source_ossl.o
SRTP_OTHER_CFLAGS = -DOPENSSL
endif


endif

ifeq (@ac_pjmedia_resample@,libresample)
DIRS += resample
endif

ifneq (@ac_no_yuv@,1)
ifeq (@ac_external_yuv@,1)
# External yuv
else
DIRS += yuv
endif
endif

ifneq (@ac_no_webrtc@,1)
ifeq (@ac_external_webrtc@,1)
# External webrtc
else
DIRS += webrtc
WEBRTC_OTHER_CFLAGS = -fexceptions -DWEBRTC_POSIX=1 @ac_webrtc_cflags@
#ifneq ($(findstring sse2,@ac_webrtc_instset@),)
#    WEBRTC_SRC = \
#    	      modules/audio_processing/aec/aec_core_sse2.o		 \
#	      modules/audio_processing/aec/aec_rdft_sse2.o	         \
#	      modules/audio_processing/aecm/aecm_core_c.o	         \
#	      modules/audio_processing/ns/nsx_core_c.o	                 \
#	      system_wrappers/source/cpu_features.o
#else ifneq ($(findstring neon,@ac_webrtc_instset@),)
WEBRTC_SRC = \
    modules/audio_processing/aec/aec_core_neon.o               \
    modules/audio_processing/aec/aec_rdft_neon.o               \
    modules/audio_processing/aecm/aecm_core_c.o                \
    modules/audio_processing/aecm/aecm_core_neon.o             \
    modules/audio_processing/ns/nsx_core_c.o                   \
    modules/audio_processing/ns/nsx_core_neon.o                \
    common_audio/signal_processing/cross_correlation_neon.o    \
    common_audio/signal_processing/downsample_fast_neon.o      \
    common_audio/signal_processing/min_max_operations_neon.o
WEBRTC_OTHER_CFLAGS += -DWEBRTC_HAS_NEON
#else ifneq ($(findstring mips,@ac_webrtc_instset@),)
#    WEBRTC_SRC = \
#              modules/audio_processing/aec/aec_core_mips.o               \
#	      modules/audio_processing/aec/aec_rdft_mips.o               \
#	      modules/audio_processing/aecm/aecm_core_mips.o             \
#	      modules/audio_processing/ns/nsx_core_mips.o                \
#	      common_audio/signal_processing/cross_correlation_mips.o    \
#	      common_audio/signal_processing/downsample_fast_mips.o      \
#	      common_audio/signal_processing/min_max_operations_mips.o
#
#    WEBRTC_OTHER_CFLAGS += -DMIPS_FPU_LE
#else # Generic fixed point
#    WEBRTC_SRC = \
#	      modules/audio_processing/aecm/aecm_core_c.o                \
#	      modules/audio_processing/ns/nsx_core_c.o                   \
#	      common_audio/signal_processing/complex_fft.o
#endif
endif
endif


5. 빌드하기

$ ./configure && make dep && make


6. python 라이브러리를 빌드하고 설치하기

$ cd pjsip-apps/src/python
$ sudo make
$ sudo make install


7. 아래 경로 참고해서 pjsua 라이브러리를 파이선에서 사용하기

- http://wiki.pchero21.com/wiki/Pjsip-pjsua_python


** 혹시, 라이브러리를 못 찾는다거나 하는 오류가 발생한다면 아래 내용을 진행해 보세요.


- openh264 라이브러리 빌드하고 설치하기

$ git clone https://github.com/cisco/openh264.git
$ cd openh264
$ make
$ sudo make install


- ~/.bashrc 파일에 아래의 내용을 추가 합니다 

#마지막줄에 추가
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib




번호 제목 글쓴이 날짜 조회 수
공지 [TIP] 라즈베리파이 3를 AP로 만들기 (How to make Raspberry Pi 3 to Access point device) 파이팅건맨 2018.01.22 7234
공지 [TIP] ASR 오픈소스 프로젝트 - Kaldi 로 나만의 STT 서비스 구축해 보기 파이팅건맨 2018.07.26 4882
공지 [TIP] NEXUS(넥서스) 5x 루팅 방법입니다. 파이팅건맨 2016.01.05 3985
130 [TIP] 라즈베리파이 3를 AP로 만들기 (How to make Raspberry Pi 3 to Access point device) 파이팅건맨 2018.01.22 7234
129 [TIP] ASR 오픈소스 프로젝트 - Kaldi 로 나만의 STT 서비스 구축해 보기 파이팅건맨 2018.07.26 4882
128 [TIP] NEXUS(넥서스) 5x 루팅 방법입니다. 파이팅건맨 2016.01.05 3985
127 [TIP] Raspberry Pi 3를 위한 Android 빌드 하기 (Compile and install Android for Raspberry Pi 3) [2] 파이팅건맨 2018.03.20 3548
126 [TIP] CentOS 7에 MySql 5.7 설치 & 업그레이드 하기 파이팅건맨 2017.11.15 3542
125 [TIP] 맥북의 스토리지에서 시스템이 차지하는 용량 줄이기 파이팅건맨 2019.04.20 3475
124 class callback호출시 에러가 나는데 뭐가 문제인지 모르겠습니다..ㅠㅠ [1] 나원오 2006.07.22 3313
123 mouclass 접근.. [3] 구리 2010.03.13 3113
122 [펌]Sony vegas - 영상의 객체를 따라다니는 텍스트 효과(Sony Vegas Motion Tracking Text) 파이팅건맨 2015.06.02 3092
121 USB Keyboard Filter Driver 제작 관련... [1] 나원오 2006.11.22 2646
120 실시간 동작감지 앱 - 추태(안드로이드용) 파이팅건맨 2011.05.29 2564
119 [TIP] 호스팅중인 GitLab에 접속하면 'Forbidden' 메시지가 표시될 때 파이팅건맨 2018.06.18 2513
118 운영체제에서 "철학자들의 만찬" 알고리즘에 대해.. [1] 정준욱 2004.06.04 2362
117 [TIP] CentOS 7에서 MySQL의 외부 접근 허용 파이팅건맨 2017.11.11 2349
116 https 패킷 디버깅 [5] ChazEpps 2012.04.30 2210
115 Soft ICE 기존 사용법 및 내용추가 파이팅건맨 2002.02.25 2181
114 "pc용 dos의 설계 및 구현" 책의 diskette 화일을 구합니다. [1] 주하 2009.11.10 2172
113 URI 대응방식(uri protocol handler)설정 방법 - 브라우저별 정리 [2] 파이팅건맨 2015.05.29 2145
112 inf 파일을 이용한 드라이버 자동 설치 [2] 안민선 2003.09.23 2097
111 플로피 필터 드라이버 관련 질문입니다..답변좀해주세요.. [2] 백종경 2006.12.12 1940
위로