java voice mail with jslee, sip & rtp ivelin ivanov

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

Upload: others

Post on 03-Feb-2022

3 views

Category:

Documents


0 download

TRANSCRIPT

Java

Voice Mail with JSLEE, SIP & RTP

Ivelin Ivanov

Agenda

• Review Application Requirements

• Evaluate Technology Alternatives

• Review Design

• Demo

• Code Review

• Q&A

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

Use CaseOperator

Subscriber A

User provisioning

[http]

Calling Subscriber B (fwd to vmail)

[SIP, RTP]

Provisioning Sequence

Operator

Web Server

http session

Login

Add Subscriber Profile

Logout

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

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

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

Mobicents JSLEE Architecture

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

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

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

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?

Demo

• Let’s see it.

Code review

• So what do you need to write exactly?

Q&A

[email protected]

• http://www.mobicents.org

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

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

You will automatically be part of the evening lottery