1 / 26

Video Conference over SIP using VOCAL

Video Conference over SIP using VOCAL. 2006. 6. 18 ( 월 ) 한 민 규 / 백 일 우 hufs96mk@hufs.ac.kr. Contents. JMF 배경 Project 개요 JAIN SIP Object Architecture JMF Abstract Structure SIP Server (Using Vocal). JMF 배경. JMF 2.0 Version Audio & Video Capture Audio & Video 를 Stream 형태로 관리

tova
Télécharger la présentation

Video Conference over SIP using VOCAL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Video Conference over SIP using VOCAL 2006. 6. 18 (월) 한 민 규/백 일 우 hufs96mk@hufs.ac.kr

  2. Contents • JMF 배경 • Project 개요 • JAIN SIP Object Architecture • JMF Abstract Structure • SIP Server (Using Vocal)

  3. JMF 배경 • JMF 2.0 Version • Audio & Video Capture • Audio & Video를 Stream 형태로 관리 • Stream을 이용한 모든 서버 클라이언트 모델에 추가할 수 있음 • Player에서의 Pluggable Codec 지원 • Support Platform • Solaris, Window, Linux • http://java.sun.com/products/java-media/jmf/2.0/supported.html

  4. Project 개요 • 목표 • SIP 기반의 VoIP Application Implementation • Project Spec • JAIN-SIP을 사용하여 Simple Call Setup Implemenation • JMF의 Capture Function을 사용하여 Media Data를 Receive하고, JMF RTP API를 사용하여 Media data를 Realtime으로 Client의 모니터와 스피커에 출력한다. • Server • Output Port를 제공한다. • 캠과 마이크를 이용하여 Media data를 실시간 Buffering 한다. • Buffering된 데이터를 접속한 Client에게 실시간으로 전송한다. • Client • Server의 Output Port로 연결 • Server에서 전송하는 Media Data를 Receive한다. • 전송받은 Media Data를 Play 한다.

  5. Project Step • JMF Study • JMF Architecture • JMF API & Basic Operation • Vocal SIP Server Configuration • Marshal Server Configure • Add User • Static Registration • Test • JAIN-SIP Study • Call Setup Implementation & Study

  6. SIP Server (Using Vocal 1/3) • Vocal Server Status & Add User

  7. SIP Server (Using Vocal 2/3) • Vocal Provgui App & Vocal User Configuration

  8. SIP Server (Using Vocal 3/3) • EDIT_USER & Marshal Server Setting

  9. JAIN-SIP • JAIN SIP is the standardize Java interface to the Session Initiation Protocol for desktop and server applications. • Standardizes the interface to the stack. • Standardizes message interface. • Standardized events and event semantics. • Application portability – verified via the TCK. • JAIN SIP enables transaction stateless, transaction stateful and dialog stateful control over the protocol • Designed for developers who require powerful access to the SIP protocol • JAIN SIP can be utilized in a user agent, proxy, registrar or imbedded into a service container.

  10. SIP Functional Layers • SIP Functional Layers일뿐 실제 Network Protocol Stack같은 개념과는 다르다.

  11. JAIN SIP Object Architecture • Manages Listening Points and Provides. • SipStack associated with an IP address. • Application can have multiple SipStacks. • ‘javax.sip.*’ properties are reserved and names defined for stack configuration properites <JAIN-SIP Stack> <Message Architecture>

  12. SIP Stack Property • IP_ADDRESS • Sets the IP Address of the SipStack • STACK_NAME • Sets a user friendly name to identify the underlying stack implementation. • OUTBOUND_PROXY • Sets the outbound proxy of the SIP Stack

  13. SIP Factory Source • HeaderFactory • This interface defines methods to create new Headers objects • AddressFactory • This interface defines methods to create SipURI’s and TelURL’s • MessageFactory • This interface defines methods to create new Request and Response objects • 위의 Factory들은 실제 Sip Header를 만드는 Parameter로 사용된다. Create Dialog

  14. processResponse Method • Dialog 내의 Request.ACK Creation • Cancel일 경우 BYE Msg 전송 • SIP Terminal이 비정상적으로 종료될시에 Cancel Msg Creation

  15. JAIN-SIP Communication Architechture > SIP STACK : Virtual SIP network for using existing IP network( PORT should be 5060) > Listening Point 1. For setting Port and Transport type(TCP/UDP) 2. Getting info from SIP STACK and passing to SIP provider > SIP Provider • 1. Register Siplistener into SIP STACK • 2. PASS EVENT from SIPlistener to SIPSTACK > SIP listener 1. Interface for application on SIP STACK

  16. SIP Transactions • A SIP transaction consists of a single request and any responses to that request. Use Vocal Marshal Server

  17. JMF Abstract Structure • DataSource • SourceStream 객체들의 집합을 관리 • 가장 기본적인 Data Source의 전송단위로는 바이트 배열을 사용 • Buffer 객체를 전송단위로 사용하는 DataSource도 있다. • DataSource Type • PullDataSource (Client Side) • Data 전송초기화, 데이터흐름 조절 • PushDataSource (Server Side) • VoD, RTP • Cloneable DataSource • Merging DataSource

  18. JMF Package & Main Classes < Generic JMF Package > < Generic Main Classes > javax.media javax.media.bean.playerbean javax.media.cdm javax.media.control javax.media.datasink javax.media.format javax.media.pim javax.media.pm javax.media.protocol javax.media.renderer javax.media.rtp javax.media.rtp.event javax.media.rtp.rtcp javax.media.util • Media Stream : 로컬 파일, 네트워크를 통해 전송되어진 자료, 그리고 비디오나 오디오등의 • 캡쳐장치를 통해 획득된 미디어 데이터, Track이라 불리는 다 채널 데이터로 구성되어 있다. • DataSource : 멀티미디어 데이터에 대한 위치정보, 프로토콜 정보, 전송에 관한 정보를 나타내는 • 클래스임 • Cloneable DataSource :  해당 데이터 소스를 복제하여 마치 여러 개의 데이터소스를 독립적으로 • 이용할 수 있도록 도와주는 역할을 한다. • Player, Processor : Player는 실제 미디어의 재생기능을 위주로 만들어진 클래스이고 포맷 변환, • 네트워크 전송, 파일로의 저장 등의 기능을 확장한 것이 Processor입니다. Processor는 Player를 • 상속하게 된다. • DataSink : 출력 장치가 아닌 주로 다른 곳으로의 미디어 데이터의 전송에 사용됩니다. 주로 • 파일이나 네트워크로 전송을 위해 사용됩니다. DataSink를 통하여 DataSource의 출력 방향을 • 네트워크의 스트림으로   설정하여 RTP에서도 사용된다. • RTPManager :  RTP session이 설정될 때 생성되어 DataSource와 IP address, Port number • 정보를 입력 받아 RTP 전송을 담당한다.

  19. JMF Media Capture(1/2) • Format Object Creation  Format Object에 적합하게 Capture할 수 있는 DataSource를 생성한다.

  20. JMF Media Capture(2/2) Capture Device에 관한 관리를 맡는 클래스 - 현재 컴퓨터에서 캠 혹은 마이크등의 USB장비들을 인식한다. CaptureDeviceManager는 Device들의 Collector를 반환한다. - 첫번째 드바이스 즉 캠에 대한 정보를 가져온다. • MediaLocator 객체는 미디어 데이터를 캡슐화 하는 클래스인 DataSource • 객체를 생성하는데 기본적으로 필요한 클래스 • MediaLocator객체를 사용하여 캡쳐되는 미디어 정보를 Player Class Object를 통해 플레이하거나, 조작하는 것이 가능하게 된다.

  21. JMF RTP Implementation • RTP Reception • RTP Transmission

  22. JMF RTP Implementation(2/3) • Type • MediaLocator와 DataSink를 이용하여 전송하는 방법 • SessionManager(RTP Manager)를 이용하는 방법 • SessionManager는 세션에 참여하고 있는 참여자들의 정보와 전송되어지는 Stream을 관리하는 클래스이다. • Stream • RTP Stream : ReceiveStream, SendStream • SendStream은 Processor(Player)에서 생성되어 넘겨지는 데이터를 네트웍으로 전송하는 Stream을 말한다. • SendStream은 SessionManager 클래스의 createSendStream 메소드를 이용해 생성한다. • SendStream 생성과 Client에게 RTP Stream 전송

  23. VOCAL SERVER CPLFeature Server Marshal Server 200 OK 180 ringing 200 OK INVITE sip: STEIGENSONNE@hufs.ac.kr SIP/2.0 INVITE sip: STEIGENSONNE@hufs.ac.kr SIP/2.0 RTP Stream( using contact address) Media Client Media Server Video,Voice, String Communication Video,Voice, String Communication REALMK STEIGENSONNE Testbed

  24. Reference Relative

  25. Reference • 참고문헌 • ‘SIP(Session Intiation Protocol) ' 저자 Alan B.Johnston • - 'Practical VoIP ' 저자 Luan Dang, Cullen Jennings & David Kelly • - ‘SIP Demystified ' 저자 McGraw-Hill • - ' Internet Communications Using SIP ' 저자 John Wiley & Sons • - ‘SIP ’  - RFC 3261 - • - ‘SIP Extensions for instant Messaging ‘ - RFC 3428 - • - ‘SIP Specific event notification  ’ - RFC 3265 - • - ‘Proxy servers & Location SIP servers ’ - RFC 3263 - • 참조 사이트 • 'National Institute of Standards and Technology ' :  http://snad.ncsl.nist.gob/proj/iptel/ • ‘Riverbank ' : http://www.riverbankcomputing.co.uk/sip/download.php • ‘콜롬비아 대학 ’ : http://www.cs.columbia.edu/sip • ' SIP forum ' : http://www.sipforum.com • 'IETF's SIP page ' : http://www.ietf.org/html.charters/sip-charter.html • 'SIP Working group Supplemental Home Page ' : •   http://www.softarmor.com/sipwg/ • 'Vovida Company ' : http://www.vovida.org/ • 'SipCenter ' : http://www.sipcenter.com/sip.nsf/html/SIP+Signaling • 'KLDP ' : http://wiki.kldp.org/wiki.php/DocbookSgml/VoIP-HOWTO • 'Korea Internet Conference ' : http://www.krnet.or.kr/ • 'Jain CVS ' : •   https://jain-sip.dev.java.net/servlets/ProjectDocumentList • 'Jain CVS ' : •  http://www1.cs.columbia.edu/~pallavi/jain/JainSip1.0/api/index.html • 'Jain SIP API ' : •  http://www1.cs.columbia.edu/~pallavi/jain/JainSip1.0/api/index.html • 'Java Community Process ' : http://jcp.org/en/jsr/stage?listBy=final • 'Jain World ' : http://jainworld.com/JWNew/jainworld/index.asp

  26. PLAY DEMO THANK YOU

More Related