• No results found

An Abstract Call Control Model for Modular SIP Implementations

N/A
N/A
Protected

Academic year: 2021

Share "An Abstract Call Control Model for Modular SIP Implementations"

Copied!
23
0
0

Loading.... (view fulltext now)

Full text

(1)

The Message Bus (Mbus):

An Abstract Call Control Model

for Modular SIP Implementations

Jörg Ott [email protected]

Dirk Kutscher [email protected]

(2)

The Issue: Controlling an IP Telephone...

?

• HTTP?

• SIP?

• MEGACOP?

• …?

(3)

The Issue: Controlling an IP Telephone...

?

• HTTP?

• SIP?

• MEGACOP?

• …?

It’s not just about CTI-style control

of a telephone...

...it’s about creating

an integrated desk area environment!

(4)

Decomposing a Telephone...

IP Telephone

Display

Keypad

Phone

Appl.

A

P

I

(5)

…further...

Display Keypad Phone “logic” SIP UA RTP User settings Audio device

(6)

…and adding “external” entities

Display Keypad Phone “logic” SIP UA RTP User settings Audio device IP Phone Palm Pilot GUI User Key Workstation GUI RTP Video device App Sharing Browser Applet

Desk

Environment

Message Bus

(7)

BTW: Mbus and (Telephony) APIs

API lib Mbus mapping Mbus transport

User

Application

Application Functionality Mbus transport Mbus mapping

“Server”

Application(s)

Server Functionality Parlay JAIN JTAPI ...

(8)

Introducing Mbus (Message Bus)

… and Mbus is not...

u

MEGACO (or another form of wide area control)

u

CORBA

u

simply yet another RPC mechanism

u

...

Mbus is not an API…

u

but may well be used underneath emerging APIs

Mbus is a message-oriented coordination mechanism for

component-based systems.

(9)

Mbus Features (1)

u

Message-based communication between components

u

Simple(!) local group coordination

autoconfiguration

supports unicast, multicast, broadcast

u

Security mechanisms

message authentication, encryption (optional)

u

Programming language independence

u

Capable of spanning multiple hosts (on a link)

u

Supports variety of interactions

peer-to-peer, client-server, multipoint, ...

(10)

Mbus Features (2)

u

Collection of basic semantics

synchronization, entity awareness, robustness

u

Building blocks for application semantics

defined in guidelines documents

voting/polling

RPC-style

transparent carriage of data

u

Extensibility through profiles

to be defined for (classes of) modules and applications

(11)

Mbus Transport Overview

u

Tuple-based addressing

(name:value) pairs

u

Group communication

recipients flexibly chosen by destination address

allows arbitrary grouping, semantics-based addressing, ...

u

Underlying Transport: UDP (multicast/unicast)

u

Mbus-layer Reliability

provided for point-to-point only

one-to-many is best-effort

u

Messages

UTF-8 encoding

header

(12)

Mbus Semantics: Profiles

u

Define generic building blocks

e.g. voting/polling for policy modules

u

Define a framework for a particular type of application

e.g. multimedia communication endpoints

addressing scheme to use

u

Define Mbus “commands” for entities within a framework

protocol engines, functional entities, etc.

e.g. (G)UI, call/conference control, media channel, audio device

u

Profiles follow “Mbus guidelines”

(13)

Sample Message

<MESSAGE DIGEST BASE64 ENCODED>

mbus/1.0 4711 94593893434 R \

(module:ui media:audio id:[email protected]) \

(module:engine media:audio id:[email protected]) ()

rtp.ssrc (42)

rtp.source.cname (42 "[email protected]") rtp.source.name (42 "Dirk Kutscher")

security.encryption.algorithm ("des") security.encryption.key ("ABCDEF") security.encryption.state (1) audio.codec ("g711-u") audio.channel.coding ("redundant" "gsm") conf.transport.address (42 10.0.1.2 (50000 50001) 127) Header Configure RTP Configure codec Select codec Auth Info ENCRYPTED

(14)

Component Discovery and Identification

u

Components implement Mbus application profiles, sets of

Mbus resource definitions

t RPCs

t events notifications t properties

Naming schemes

t Use of Mbus addressing mechanisms

Control Relations

u

Mbus entities announce their presence on the Mbus

Mbus addresses used to express compliance to application profiles

u

Mbus entities enter control relationships with each other

E.g.: A phone controller takes control of a call signaling engine

Resources provided by an Mbus entity defined by application profiles it implements

(15)

Call Control Profile: Overview

Goal:

u Provide an abstraction from the specifics of a protocol e.g. (which SIP extensions are available)

and allow simple applications to be protocol-agnostic

u But still preserve powerful features of individual protocols

to support sophisticated applications (such as gateways) as well

Solution:

u Few general commands

u General commands: basic call control and supplementary services

u Protocol-specific commands

conf.call-control.xyz

(16)

Call Control Concept

u Controller/Controllee-Model

Call control engine (e.g. SIP UA)

t implemenents call signaling protocol t has well-defined Mbus interface (“API”)

Controller

t implements generic call control logic

t may interact with UI (if applicable), access user preferences, etc.

u Interactions

RPCs

t controller requests actions from call control engine

Event notifications

t call control engine reports call control events to controller (and others)

u Abstract Call Control Identifiers

Call-leg

t differentiate multiple call-legs of a single call, e.g. for proxies

Call identifier

t identifier of a single point-to-point call

Conference identifier

(17)

Generic Basic Call Control Commands

Command issued by actor

u conf.call-control.call u conf.call-control.ring u conf.call-control.proceed u conf.call-control.accept u conf.call-control.reject u conf.call-control.redirect u conf.call-control.forward u conf.call-control.disconnect u conf.call-control.caps-set

Indication received by peer

u conf.call-control.incoming-call u conf.call-control.ringing u conf.call-control.proceeding u conf.call-control.connected u conf.call-control.rejected u conf.call-control.redirected u conf.call-control.forwarded u conf.call-control.disconnected u conf.call-control.caps-indicate

(18)

Outline: Mbus Interactions in an Endpoint

From a controller’s perspective:

u

Determine which (media) engines are available

u

Determine which features (codecs, etc.) they support

u

Inform SIP UA about these

u

Configure preferences into the SIP UA

u

Make SIP UA register with registrar

u

Place outgoing / accept incoming calls

u

Configure media engines according to SDP

u

Possibly re-configure media engines upon re-INVITEs

(19)

Call Setup

100 Trying proceeding ring 180 Ringing ringing call INVITE incoming-call sip.register sip.register REGISTER / 200 OK caps-set caps-set 200 OK accept connected connected caps-indicate caps-indicate ACK

(20)

Traditional Telephony Services

u

Mbus commands for supplementary services

Focus on simplicity

Mapping to SIP (extensions)

t as well as H.323/H.450

u

Mbus abstractions for

Call Hold

Unattended Transfer

Attended Transfer

Call Park and Call Pickup

(21)

Example: Unattended Transfer

100 Trying proceeding ring 180 Ringing ringing call INVITE incoming-call 200 OK accept connected INVITE

transferred (to C) REFER transfer (to C)

call (C) INVITE (C)

A

B

(22)

Sample Application(s)

u

SIP endpoint

u

StarGate: SIP - H.323 - ISDN Gateway

u

AudioGate: ISDN - Mbone Gateway

u

SIP Redirect Server

u

Looking into stand-alone telephone sets as well…

u

Integration of awareness system ongoing...

All three use the same audio engine (RAT).

(23)

Conclusion

u

Mbus is a simple lightweight message-oriented

coordination protocol

allows decomposing applications into components on a local link

offers mechanisms for application extensibility and tailorability

enables module re-use

does not prescribe what to do with it

u

Abstract call-control model is a lean API for IP-Telephony

small set of generic functions + protocol-specific extensions

end systems, gateways, registrars, proxies/redirect servers, ...

References

Related documents

B Siltstone: thickness 62m-85m; extremely similar to unit C without abundant root traces; weathered surface is light tan, fresh surface is greyish brown; begins as fairly

At the end of the framework partnership period for which a Masters Course has been selected, the co- ordinating institution of the consortium shall submit a Final Summary Report

Contents Introduction PART I THE LIVING ROOM STUDIO 1 White Light, White Wall Edit for Effect Check Your Work Lit Background 2 It’s the Mood That Makes It Good Aesthetic

Because there are few studies in this area in the national literature, the objectives of the present study were to determine the prevalence of diastasis of rectus

Surprised at decor, dining table literally fit for in your family to this table is beautiful dining table with me a casual feel free plan from the build!. Luck with the dog are

Pedagogichni umovy` formuvannya kul`tury` movlennya studentiv z KNR u procesi profesijnoyi pidgotovky` [Pedagogical conditions for the formation of speech culture

Based on the analysis of the initial measurements, we proposed other architectures that combine OpenSAF high availability and the virtualization provided by VMware.. Our

College Students’ Social Network Characteristics and Perceived Social Exclusion: A Comparison Between Drinkers and Nondrinkers Based on PastMonth Alcohol Use&#34; (2018)..