Top Banner
Java Voice Mail with JSLEE, SIP & RTP Ivelin Ivanov
17

Java Voice Mail with JSLEE, SIP & RTP Ivelin Ivanov

Feb 03, 2022

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Java Voice Mail with JSLEE, SIP & RTP Ivelin Ivanov

Java

Voice Mail with JSLEE, SIP & RTP

Ivelin Ivanov

Page 2: Java Voice Mail with JSLEE, SIP & RTP Ivelin Ivanov

Agenda

• Review Application Requirements

• Evaluate Technology Alternatives

• Review Design

• Demo

• Code Review

• Q&A

Page 3: Java Voice Mail with JSLEE, SIP & RTP Ivelin Ivanov

Requirements

• Functional– Manage subscribers– Record voice messages to subscribers

• System– Support standard SIP/RTP clients– Web based admin interface– All Java (d’uh, this is the Java track)– Fully functional demo on one laptop– Scale to millions of users without code

redesign

Page 4: Java Voice Mail with JSLEE, SIP & RTP Ivelin Ivanov

Use CaseOperator

Subscriber A

User provisioning

[http]

Calling Subscriber B (fwd to vmail)

[SIP, RTP]

Page 5: Java Voice Mail with JSLEE, SIP & RTP Ivelin Ivanov

Provisioning Sequence

Operator

Web Server

http session

Login

Add Subscriber Profile

Logout

Page 6: Java Voice Mail with JSLEE, SIP & RTP Ivelin Ivanov

Call SequenceRTP Server

RTP sessionREGISTER

SIP Server

SIP dialog

INVITE

TRYING

RINGING

OK + SDP (RTP Session Info)

New Session

RTP Session Info

ACK

BUY

OK

VMail Greeting

Record message

Page 7: Java Voice Mail with JSLEE, SIP & RTP Ivelin Ivanov

Technology Alternatives (1)

• Option 1:– Servlet container

– JSIP library

– JMF library

• Option 1 issues:– Hard to associate SIP Dialog with RTP session

– Explicit thread pooling

– Explicit logic for garbage collection of stale calls

– Explicit transaction demarcation

Page 8: Java Voice Mail with JSLEE, SIP & RTP Ivelin Ivanov

Technology Alternatives (2)

• Option 2:– JSLEE container

– JSIP Resource Adaptor

– Media Resource Adaptor

• Option 2 advantages:– Service Building Block (SBB) construct

– Activity primitive. Easy to associate SBB entitiy with related SIP Dialog and RTP session

– Container managed thread pooling

– Container managed garbage collection of stale calls

– Container managed transactions

Page 9: Java Voice Mail with JSLEE, SIP & RTP Ivelin Ivanov

Mobicents JSLEE Architecture

Page 10: Java Voice Mail with JSLEE, SIP & RTP Ivelin Ivanov

JSLEE component interaction

SIP

RTP

SBBSBB

- An SBB entity attached to 2 related activities:

SIP Dialog and RTP Session

- Asynchronous event channels

-Container assures thread isolation of

independent simultaneous calls

Page 11: Java Voice Mail with JSLEE, SIP & RTP Ivelin Ivanov

Low level protocol stack

Java SIP API (JSIP, JSR 32)

Java VM

javax.sip.request.INVITE

SipProvider

JSIP

java.net.*

OS level

Network Socket

SipListener

Custom Application

javax.sip.request.OK

SIP INVITE

From: Alice

To: Bob

SIP OK

response

= sync call= async

Page 12: Java Voice Mail with JSLEE, SIP & RTP Ivelin Ivanov

Java VM

JSLEE

JSLEE Resource Adaptor Architecture

SIP INVITE

From: Alice

To: Bob

javax.sip.request.INVITEJSIP

java.net.*

SipListener

Resource Adaptor

javax.sip.request.OK

SIP Proxy

SBB

Forwarding

SBB

Call Blocking

SBB

SIP Dialog Activity Context

Event Router

javax.sip.request.OK

javax.sip.request.INVITE

SipProvider

SIP OK

response

= sync call= async

Create Activity

Page 13: Java Voice Mail with JSLEE, SIP & RTP Ivelin Ivanov

Initial Events

Voice Mail

SBB

SIP Dialog Activity Context (one instance per SIP Dialog)

Event Router

•Bob

•Charlie

Service Profiles

Is initial event?

1) SIP INVITE

From: Alice

To: Bob

2) SIP UPDATE

From: Alice

To: Bob

Is subscriber?

Page 14: Java Voice Mail with JSLEE, SIP & RTP Ivelin Ivanov

Demo

• Let’s see it.

Page 15: Java Voice Mail with JSLEE, SIP & RTP Ivelin Ivanov

Code review

• So what do you need to write exactly?

Page 16: Java Voice Mail with JSLEE, SIP & RTP Ivelin Ivanov

Q&A

[email protected]

• http://www.mobicents.org

• http://wiki.java.net/bin/view/Communications/MobicentsExamples

Page 17: Java Voice Mail with JSLEE, SIP & RTP Ivelin Ivanov

Remember! Enter the evaluation form and be a part of making Øredev even better.

You will automatically be part of the evening lottery