1 Video Conference over SIP using VOCAL 2006. 6. 18 ( 월 ) 한 민 규 / 백 일 우...
-
Upload
frederica-casey -
Category
Documents
-
view
220 -
download
3
Transcript of 1 Video Conference over SIP using VOCAL 2006. 6. 18 ( 월 ) 한 민 규 / 백 일 우...
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 P
rovides. SipStack associated with an IP
address. Application can have multiple Si
pStacks. ‘javax.sip.*’ properties are reser
ved and names defined for stack configuration properites
<Message Architecture>
<JAIN-SIP Stack>
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
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
< Generic JMF Package >
-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 전송을 담당한다 .
< Generic Main Classes >
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
Testbed
VOCAL SERVER
CPLFeature Server
Marshal Server
Video,Voice, String
Communication
Media Client
Video,Voice, String
Communication
Media Server
REALMK STEIGENSONNE
180 ringing200 OK
200 OK
INVITE sip: [email protected] SIP/2.0 INVITE sip: [email protected] SIP/2.0
RTP Stream( using contact address)
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