VoIP
Contents 1. VoIP NAT 환경. 2. NAT, Firewall. 3. 대응방법소개. 3. 실전 SIP 서버구축 / 테스트. 1. 환경설정. 2. SIP 서버구축. 3. Client 설치. 4. 방화벽설정. 5. SIP Call Flow. 4. 참고문헌 / 관련정보
1. VoIP OverView
1. VoIP? (Voice Over IP) VoIP 란무엇인가? Voice Over IP, IP 네트워크에서음성을전달한다는의미. 음성망 (PSTN-Public Switched Telephone Newtwork) IP Network. 기간통신사업교환센터 VoIP Gateway 장비를설치. 음성망사용자의음성신호 ---> VOIP로변환 ---> PC 사용자. PC사용자 ---> 음성신호로변환 ---> 음성망사용자.
2. VoIP 이점? VoIP 이점? 통신비용절감. 시간과공간의제약을받지않는통화방식. 통신망의효율적사용. 고성능음성통신. 사용자인터페이스통일. 다양한부가서비스 ( 어플리케이션 ) 개발.
3. VoIP 시스템 VoIP 시스템구축을위한기본구성요소 4 가지. Media Gateway 멀티미디어데이터간의교환작업 / 전송 Signaling Gateway 음성망 (PSTN) / IP 네트워크시그널들사용가능하도록변환 Addressing/Naming & Routing 네트워크요소를고유하게구별하는방법과콜설정을하기위해시그널이해당목적지로도달하도록하는기술. QoS(Qulity of Service) 보장 통화품질보장.
4. VoIP 시스템구현 관련표준화기구 ITU (Internet Telecommunication Union) H.323 프로토콜이용한시스템구현 IETF (Internet Engineering Task Force) SIP(Session Initiation Protocal), MMUSIC, IPTEL, PINT, IMPP, ENUM. ETSI (European Te lecomm. Standards Institute) TIPHON, SPS5 VoIP 시그널링프로토콜 : H.323, SIP
2. SIP Protocal
1. SIP 정의 정의 IETF (Internet Engineering Task Force) 표준화기구. 1999년 3월 RFC 2543으로공식프로토콜로서제안됨. End to End의멀티미디어세션을생성, 수정, 해제하는응용계층의제어 ( 시그널링 ) 프로토콜. H.323 : 여러프로토콜들의조합으로 VoIP 서비스를수행하는 (Internet Engineering Task Force) 프로토콜. SIP : 단순세션설정만을다루는프로토콜.
2. SIP 구성요소 / 기능 SIP 구성요소 UA(User agent) UAC(User agent client) 세션에참여시키고자하는상대방에게 Request 보내는역할. UAS(User agent server) SIP 요청에대한 Response를반환하는역할. NS(Network server) Proxy Server Caller와 Callee 사이의 SIP Message들을 Forwarding 해줌. Redirect Server Caller의 request( 세션참여 ) SIP 메세지를받고, Callee에대한정보를 Caller에게전달하는역할.
2-1. SIP 구성요소 / 기능 주소지정방식 각사용자마다고유한 SIP URI( 주소 ) 를부여함. Ex) sip:user@host Sip: : sip 프로토콜주소타입. user : 사용자의이름. Host : 해당터미널의주소 (PC, 네트워크서버등의 IP/Domain, 전화번호, 팩스번호등 )
2-2. SIP 구성요소 / 기능 Request 주요메서드 INVITE : Call 요청 ACK : INVITE 요청에대해서서버로부터최종응답을받았을때, 이에대한 Acknowledge(ACK) 함. BYE : call을 Release함. CANCEL : Pending request를 Cancel한다. (BYE : 세션종료, CANCEL : request를 cancel) OPTIONS : capability에대한정보요구 REGISTER : SIP location server에사용자자신의위치 (location) 정보알려줌.
2-3. SIP 구성요소 / 기능 Response Http에서와같이클래스의특정의미를나타내는 6가지클래스를갖음. Privisional : 세션설정을하는동안필요한정보를전달하기위한응답. Final : 세션설정의제일마지막에성공 / 실패를알려주기위한응답. 세션설정 성공 : INVITE/200/ACK 실패 : INVITE/4xx, 5xx 또는 6xx/ACK
2-4. SIP 구성요소 / 기능 메시지전송프로토콜 SIP : 응용계층프로토콜 전송방식 : TCP, UDP, SCTP(Stream Control Transmission Protocol) SDP(Session Description Protocol) 사용 SIP 세션설정후에양쪽 endpoint에서실제데이터를주고받는방법을명시하기위해 SDP를사용. 세션이름과목적. 세션의 active되어있는시간. 세션에사용될미디어정보. 미디어전송을위한정보 ( 주소, 포트, 포멧등 ).
3. 동작방식 Registration Location Server 내의 DB 에사용자의위치정보를알려주고, Register 메서드에사용자의정보를포함시켜서버측으로보냄.
3-1. 동작방식 Proxy Server Proxy - Caller 와 Callee 사이의 SIP Message 들을 Forwarding 해줌. USC 로부터세션연결요청을 Proxy server 에서받아처리한다. 해당요청을사용자의장치 (UAS 에게 Forwarding 해주고, UAS 로부터의응답을대 신 UAC 로전달해준다.
3-2. 동작방식 Redirect Server - Caller의 request( 세션참여 ) SIP 메세지를받고, Callee에대한정보를 Caller에게전달하는역할. Redirect Caller(UAC) 가 Redirect Server에연결세션요청. 서버측에서 Callee(UAS) 에대한적절한정보 ( 주소 ) 를 Caller에게전달해준다. Caller 가다시 INVITE 요청 ( 세션요청 ) 을수행하도록하게함.
3. SIP 서버구축 / 테스트
1. 환경설정 환경설정 Hardware 사운드카드가있는 PC 2대 or Vmware에가상 PC 2대. Software Call Agent : 전화교환기역을담당할서버및장비 Cisco CUCVM : www.cisco.com Asterisk : www.asterisk.org Trixbox : www.trixbox.org Brekeke : www.brekeke.com Call Client : 전화기, 하드웨어및소프트웨어폰 X-lite : www.counterpath.com Port SIP : www.portsip.com Android SIP : sipdroid(freeware)
2. SIP 서버구축. SIP Server 구축. http://www.brekeke.com/sip/ 라이선스정책. http://www.brekeke.com/download/download_license_sip.php Free 60-Day Evaluation 또는 Academic Edition( 학교이메일로신청시 무료인증번호를학교메일로제공해줍니다.- 반드시학교메일만가능 )
2-1. SIP 서버구축. Brekeke Server(BSS 라칭함.) BSS Install.( 웹서버 Tomcat 자동으로설치되어집니다.) http:localhost:18080/proxy ID/PW : sa/sa BSS는웹에서관리를함.
2-2. SIP 서버구축. BSS Server 설정. Configuration -> SIP -> Authentication(REGISTER, INVITE) : off 설정. Client 접근테스트를위해인증기능을비활성화처리. 오른쪽상단 RESTART/SHUTDOWN 에서꼭재실행. User Authentication SIP 등록을원하는사용자정보입력. Registered Clients 현재 SIP Server에접속한 UAC의정보를타나냄. Active Sessions 세션이연결되었을때의상태.
3. Clinet 설치 (x-lite) X-lite : www.counterpath.com Display Name : p1001 User ID : p1001 Domain : 211.232.xxx.xxx (BBS의서버주소 ) Register with domain add receive incoming calls 체크 ( 도메인을통해들어오는호허용 ) Send outbound via - domain( 외부호는 Domain장치를통해나감 )
4. 방화벽설정. 방화벽설정 제어판 -> 고급설정 -> 인바운드규칙 -> 새규칙 SIP Port를등록해주어야한다. 포트정보 http://localhost:18080/proxy 를통해로그인을하면오른쪽상당에 Server status 가있다. 이를클릭하면, UDT, 5060 포트가설정되어있음.
5. SIP Call Flow BBS 82102260 p1001
6. 참고문헌 / 관련정보 참고문헌 차세대 VoIP 서비스를위한 IETF SIP의기술동향분석 ( 정보통신산업진흥원 ) VoIP 서비스보안을위한 Virtual SIP Proxy 시스템 ( 한국인터넷정보학회 ) RTP_ 전송 _ 모듈을 _ 포함한 _Java_ 기반의 _SIP_User_Agent의_ 구현 Fredrik Fingal, Patrik Gustavsson. A SIP of IP-telephony http://www.cs.columbia.edu/sip/papers.html 관련정보 VoIP 관련사이트정보 http://www.voip-forum.or.kr/html/index-e.html ITU SG 16 http://www.itu.int/itu-t/com16/index.html SIP http://www.ietf.org/html.charters/sip-charter.html (IETF SIP WG) http://datatracker.ietf.org/doc/rfc3261/ (SIP: Session Initiation Protocol )
THANK YOU