1 video conference over sip using vocal 2006. 6. 18 ( 월 ) 한 민 규 / 백 일 우...

26
1 Video Conference over SIP using VOCAL 2006. 6. 18 ( 월 ) 월 월 월 / 월 월 월 [email protected]

Upload: frederica-casey

Post on 17-Dec-2015

220 views

Category:

Documents


3 download

TRANSCRIPT

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

1

Video Conference over SIP using VOCAL

2006. 6. 18 ( 월 )한 민 규 / 백 일 우

[email protected]

Page 2: 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)

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

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

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

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 한다 .

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

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

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

6

SIP Server (Using Vocal 1/3)

Vocal Server Status & Add User

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

7

SIP Server (Using Vocal 2/3)

Vocal Provgui App & Vocal User Configuration

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

8

SIP Server (Using Vocal 3/3)

EDIT_USER & Marshal Server Setting

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

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.

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

10

SIP Functional Layers

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

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

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>

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

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

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

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

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

14

processResponse Method

Dialog 내의 Request.ACK Creation Cancel 일 경우 BYE Msg 전송

▲ SIP Terminal 이 비정상적으로 종료될시에 Cancel Msg Creation

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

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

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

16

SIP Transactions

A SIP transaction consists of a single request and any responses to that request.

Use Vocal Marshal Server

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

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

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

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 >

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

19

JMF Media Capture(1/2)

Format Object Creation Format Object 에 적합하게 Capture 할 수 있는 DataSource 를 생성한다 .

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

20

JMF Media Capture(2/2)

Capture Device 에 관한 관리를 맡는 클래스- 현재 컴퓨터에서 캠 혹은 마이크등의 USB 장비들을 인식한다 .

CaptureDeviceManager 는 Device 들의 Collector 를 반환한다 .- 첫번째 드바이스 즉 캠에 대한 정보를 가져온다 .

MediaLocator 객체는 미디어 데이터를 캡슐화 하는 클래스인 DataSource객체를 생성하는데 기본적으로 필요한 클래스-MediaLocator 객체를 사용하여 캡쳐되는 미디어 정보를 Player Class Object 를 통해 플레이하거나 , 조작하는 것이 가능하게 된다 .

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

21

JMF RTP Implementation

RTP Reception

RTP Transmission

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

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 전송

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

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)

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

24

Reference Relative

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

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

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

26

PLAY DEMO

THANK YOU