'XMPP'에 해당되는 글 2건
- 2011.04.21 304.libjingle 빌드 시즌2
- 2011.04.21 XMPP
304.libjingle 빌드 시즌2
빌드 로그#
- 프로젝트 생성 및 파일 추가
- DEFINE 분석 및 적용
-
오류제거
-
헤더 경로 오류
- #include "third_party/expat/v2_0_1/Source/lib/expat.h"
- #include "third_party/libsrtp/include/srtp.h"
- 추가 포함 디렉토리 설정 후 아래 옵션 추가
- EXPAT_RELATIVE_PATH
- SRTP_RELATIVE_PATH
-
fatal error C1083: 포함 파일을 열 수 없습니다. 'linux/types.h': No such file or directory
- v4llookup.cc 제거
-
error C3861: 'waveInGetNumDevs': 식별자를 찾을 수 없습니다.
- #include <mmsystem.h> 추가
-
error C4430: 형식 지정자가 없습니다. int로 가정합니다. 참고: C++에서는 기본 int를 지원하지 않습니다.
- #include "talk/base/win32.h"
#include "talk/base/winfirewall.h" - win32를 먼저 참조할 수 있도록 winfirewall.cc 수정
- #include "talk/base/win32.h"
-
fatal error C1083: 포함 파일을 열 수 없습니다. 'unistd.h': No such file or directory
- unixfilesystem.cc 제거
-
openssl 사용
- SSL_USE_OPENSSL 전처리기 추가
- openssl 다운로드 및 third_party에 압축 해제 : http://www.openssl.org/source/
-
third_party\openssl-1.0.0d\inc32 참조 추가 <-- 아래 openssl을 빌드해야 생성
-
openssl 빌드
- INSTALL.W32 참조
- win32용 perl 다운로드 및 설치 : http://www.perl.org/get.html#win32
-
> perl Configure VC-WIN32 no-asm --prefix=D:\프로젝트\XMPP\LiveJingle\talk\third_party\openssl-1.0.0d/dir
- masm 사용하지 않음 옵션
- > ms\do_ms
- > nmake -f ms\ntdll.mak
- > nmake -f ms\ntdll.mak test
-
-
c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h(91) : warning C4005: 'AF_IPX' : 매크로 재정의
- opensslidentity.cc 최상단에 추가
- #ifdef WIN32
#include "talk/base/win32.h"
#endif
-
fatal error C1083: 포함 파일을 열 수 없습니다. 'CoreFoundation/CoreFoundation.h': No such file or directory
- macutils.cc 제거
- relayserver_main.cc, stunserver_main.cc 제거
- openssladpter.cc
- // gobuksun
#ifdef WIN32
static DWORD id_function() {
return GetCurrentThreadId();
}
#else
static pthread_t id_function() {
return THREAD_ID;
}
#endif
- md5.cc 추가 및 md5.h 수정 : http://kimsumin75.blog.me/20071048665 참고
- p2p/base/constants.cc --> p2pconstants.cc 파일명 변경
- p2pconstants.cc 에 추가
- // gobuksun
const std::string NS_GINGLE_RAW("http://www.google.com/transport/p2p");
const buzz::QName QN_GINGLE_RAW_CHANNEL(true, NS_GINGLE_RAW, "raw-channel");
-
- latebindingsymboltable.cc, libudevsymboltable.cc 제거
전처리 선언 및 포함 라이브러리 정의#
- DEBUG;_DEBUG;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;NO_ATL;_ATL_CSTRING_EXPLICIT_CONSTRUCTORS;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_USE_32BIT_TIME_T;_UNICODE;UNICODE;_HAS_EXCEPTIONS;WIN32;WINVER=0x0500;_WIN32_WINNT=0x0501;_WIN32_IE=0x0501;NTDDI_VERSION=NTDDI_WINXP;_WINDOWS;FEATURE_ENABLE_SSL;FEATURE_ENABLE_VOICEMAIL;FEATURE_ENABLE_PSTN;HAVE_SRTP;EXPAT_RELATIVE_PATH;SRTP_RELATIVE_PATH;SSL_USE_OPENSSL;
- wininet.lib Iphlpapi.lib secur32.lib ws2_32.lib crypt32.lib strmiids.lib winmm.lib libexpat.lib srtp.lib libeay32.lib ssleay32.lib
빌드된 libjingle 소스 파일#
- talk.zip : 파일 크기 문제로 중간파일, 실행파일 등은 최소한으로 줄였음.
느낀점 및 TODO#
- 로그인만 해보고 아직 통화를 못해봤음.
- 프로그램이 종료되면서 스레드 언로드하면서 프로그램이 죽는 버그가 있음.
- 할일이 많아 보인다. ㅡㅡ;
이 글은 스프링노트에서 작성되었습니다.
XMPP(Extensible Messaging and Presence Protocol)
XMPP는 무엇인가요 ?
-
XMPP는 XML 기반 인터넷 통신을 위한 오픈 프로토콜로써 인터넷상의 두 지점 간 통신 규격에 관한 것입니다.
-
두 지점은 이메일주소와 같은 방식으로 표현되며, 이들 지점 간 확장 가능한 메시지(message) 그리고 프레즌스(presence)를 거의 실시간(near-realtime)으로 전달해주는 규격입니다.
-
이 규격에 의하면 인터넷상의 지점은 DNS(Domain Name Service) 서비스에 의해 명명될 수 있는 위치들 간의 통신으로 예를 들어 yourhost.com 이라는 주소도 하나의 지점이며 yourid@yourhost.com 또한 하나의 주소가 됩니다.
-
결국 DNS에 의해 표현될 수 있는 주소 공간은 새로이 등록되는 도메인 이름에 의해서 계속해서 증가하므로 이론상 무한대의 사용자가 서로 통신이 가능하게 되는 규격인 셈이 됩니다.
-
확장 가능한 프로토콜인 XMPP는 다양한 엔드 포인트 프로토콜 간의 보편적인 연결을 제공하는 이상적인 백본 프로토콜입니다. XMPP 게이트웨이를 사용하면 지정된 클라이언트-투-서버 세션을 종료하고 대상 엔드 포인트 프로토콜에 대한 새 세션을 필요한 프로토콜 변환과 함께 시작할 수 있습니다. 이 의미는 서로 다른 프로토콜을 지원하는 시스템간에 확장정의를 통해 통신이 가능해진다는것을 의미합니다.
누가 사용하나요 ?
-
Psi is a free instant messaging application designed for the Jabber IM network (including Google Talk). Fast and lightweight, Psi is fully open-source and compatible with Windows, Linux, and Mac OS X
-
Pidgin, the universal chat client.
-
gtalk : 구글 메신저, GMail 에서의 채팅
-
openfire, spark : 완성도 높은 JAVA 기반의 XMPP 서버 및 클라이언트
-
adium : 맥 유저에게 익숙한 메신저
XMPP에 대해 더 자세한 정보를 알고 싶어요.
-
http://xmpp.org/ : XMPP 공식 사이트
이 글은 스프링노트에서 작성되었습니다.



