SIP vs. API How Will You Be Developing Your Next Application? (SIP-01)

29

Transcript of SIP vs. API How Will You Be Developing Your Next Application? (SIP-01)

Page 1: SIP vs. API How Will You Be Developing Your Next Application? (SIP-01)
Page 2: SIP vs. API How Will You Be Developing Your Next Application? (SIP-01)

SIP vs. APIHow Will You Be Developing Your Next

Application?(SIP-01)

Page 3: SIP vs. API How Will You Be Developing Your Next Application? (SIP-01)

3

Competing methods

Page 4: SIP vs. API How Will You Be Developing Your Next Application? (SIP-01)

4

Drivers

Hardware

NETANN

Development Building Blocks

Your Application

Compiled XML Graphical

C/C++ Java VoiceXML

API

SIP

MSCML MSML/MOML

Page 6: SIP vs. API How Will You Be Developing Your Next Application? (SIP-01)

6

Legacy API Architecture

Application

API

Device Driver

T1 InterfaceHardware

API

Device Driver

ResourceHardware

PSTN

H.100

Proprietary

Proprietary

Proprietary

Proprietary

Page 7: SIP vs. API How Will You Be Developing Your Next Application? (SIP-01)

7

API Development

Key Attributes:• Powerful• Feature Rich• Highly Efficient• Highly Complex• Slow to Develop• Hard to Debug• Proprietary (mostly)

Page 8: SIP vs. API How Will You Be Developing Your Next Application? (SIP-01)

8

Drivers

Hardware

NETANN

Development Building Blocks

Your Application

Compiled XML Graphical

C/C++ Java VoiceXML

API

SIP

MSCML MSML/MOML

Page 9: SIP vs. API How Will You Be Developing Your Next Application? (SIP-01)

9

SIP – What is it?

Wikipedia:

SIPThe Session Initiation Protocol (SIP) is an application-layer

control (signalling) protocol for creating, modifying, and terminating sessions with one or more participants. These sessions include Internet telephone calls, multimedia distribution, and multimedia conferences. (cit. RFC 3261).

Page 10: SIP vs. API How Will You Be Developing Your Next Application? (SIP-01)

10

SIP – Where does it fit?

RTP SIPHTTPSMTPL5

TCP UDP

IP

Ethernet PPP

Copper Fiber Wireless

L4

L3

L2

L1

Page 11: SIP vs. API How Will You Be Developing Your Next Application? (SIP-01)

11

SIP Development

Key Attributes:• Open• Standard• Interoperable• Easy to Debug• Inefficient• Moving Target• Slow to evolve

Page 12: SIP vs. API How Will You Be Developing Your Next Application? (SIP-01)

12

SIP Architecture

Service CreationEnvironment

SIP Protocol Stack

MediaGatewayResource

MediaResource

LAN

SIP

PSTN

Application

Page 13: SIP vs. API How Will You Be Developing Your Next Application? (SIP-01)

13

Two Classes of Resources

• Media Gateways– Provide connectivity to existing TDM infrastructure– 90% + of installed base is still TDM

• Media Resources– IVR – Play / Record / DTMF– Conferencing– Fax– Tone Detection/Generation– Announcements– Transcoding

Page 14: SIP vs. API How Will You Be Developing Your Next Application? (SIP-01)

14

Speeds Development Time

PCI

SIP

IntegrationTime inMan-Years

1

2

3 Customer A:Just over 3 Man-years to integrate and test with a Legacy PCI

BladeSame customer using SIP based hardware,

88% less time to market!

Page 15: SIP vs. API How Will You Be Developing Your Next Application? (SIP-01)

15

Drivers

Hardware

NETANN

Development Building Blocks

Your Application

Compiled XML Graphical

C/C++ Java VoiceXML

API

SIP

MSCML MSML/MOML

Page 16: SIP vs. API How Will You Be Developing Your Next Application? (SIP-01)

16

NetAnn – What is it?

NetAnn• RFC 4240 as of December of 2005 • Predecessor to MSCML. • Basic announcements• Simpler conference model (no control dialog)• Doesn’t provide for mid-call requests and responses.

Page 17: SIP vs. API How Will You Be Developing Your Next Application? (SIP-01)

17

MSCML – What is it?

MSCML – Media Server Control Markup Language• RFC 4722 in November 2006• Provides “services” to users at an application level• Services specified in user part of URI.

• For example – “Conf” service implies a star connection topology with a mixer at the center, or PlayCollect connects a “player” and a “dtmf-receiver” to the call

• Conf, IVR (Play, PlayCollect, PlayRecord, FaxPlay, FaxRecord)

• Command oriented protocol (vs scripted)• MSCML IVR syntax is modeled on the H.248 and

MGCP• Includes the composite PlayCollect and PlayRecord

functions

Page 18: SIP vs. API How Will You Be Developing Your Next Application? (SIP-01)

18

MSCML - Sample

Example of a Play command:

<?xml version="1.0" encoding="utf-8"?><MediaServerControl version="1.0"><request><play id="234"><prompt><audio url="http://10.3.0.2/hello.wav"/>

<variable type="date" subtype="ymd" value="19760102"/>

<variable type="silence" value="5"/>

<variable type="duration" value="2"/></prompt></play></request></MediaServerControl>

Page 19: SIP vs. API How Will You Be Developing Your Next Application? (SIP-01)

19

MSCML Conferencing – Create

Page 20: SIP vs. API How Will You Be Developing Your Next Application? (SIP-01)

20

MSCML Conferencing – Play

Page 21: SIP vs. API How Will You Be Developing Your Next Application? (SIP-01)

21

MSML / MOML – What is it?

MSML – Media Sessions Markup Language•Device Control Protocol that focuses on internal media server resources

• SIP is normally concerned with the behavior external to the media server

•Provides a mechanism for invoking MOML or VXML scripts.•Provides a mechanism for creating conferences and modifying their topologies.•Does not provide for IVR control

MOML – Media Objects Markup Language•MOML is a scripting languages that provides a defined set of useful IVR primitives: play, generate dtmf, recognize dtmf, record, recognize speech, and others•Primitives can be combined into groups, and multiple groups can be established concurrently. Lots of flexibility at the cost of complexity•It is a scripting language with an internal state machine, but only 2 primitives have state, and they only have 2 states (stop/go).

• Absence of flow control limits scripts to functions rather than applications (eg VXML)

IETF Draft (no RFC)

Page 22: SIP vs. API How Will You Be Developing Your Next Application? (SIP-01)

22

MSCML vs MSML/MOML

Application Level Services vs Device Control• MSML provides explicit internal connection topology.• MSCML provides predefined services with implicit internal connection

topologies• Provides a less complex interface for 99% of what’s required.

Scripting• MOML provides a script execution capability to build composite functions.

• State Machines within primitives are so limited as to be of little general use.• Requires a script execution framework.

• MSCML provides defined composite functions• For example PlayCollect/Record provide integration between the Play and the

Collect/Record functions. Much simpler for 99+% of use cases• No script engine required: provides performance advantages as well as

simplicity

Page 23: SIP vs. API How Will You Be Developing Your Next Application? (SIP-01)

23

Who supports what?

MSCML / NetAnn MSML / MOML

Page 24: SIP vs. API How Will You Be Developing Your Next Application? (SIP-01)

24

Media Control -Bottom Line

• Neither MSCML nor MSML/MOML are likely to be the “Final Answer”.– Both rely on INFO messages which the IETF SIP arbiters do not like

• Both will allow you to do what you need to get done• MSCML is our favorite:

– Greater standards “coverage” (RFC vs not RFC)

– Easier to use (Operates at application level vs device control)

– More widely adopted

– Better adapted to 3GPP MRF (IVR mapping to H.248 used in MRFC-to-MRFP)

• Discussion is carried out in the “mediactrl” - Media Control BOF Discussion List – “Final Answer” likely 2 to 3 years out.

Page 25: SIP vs. API How Will You Be Developing Your Next Application? (SIP-01)

25

Will we need APIs and SIP?

Page 26: SIP vs. API How Will You Be Developing Your Next Application? (SIP-01)

26

How do they compare

Capability / Feature API SIP+NetAnn SIP+MSCML

TDM Bus Switching (H.100)

Yes No No

Industry Standard (RFC?)

No Yes Yes

Basic IVR Yes Yes Yes

Complex IVR Yes No Yes

Mixing/Recording Yes No No

Simple Conference Yes Yes Yes

Complex Conference Controls

Yes No Yes

Page 27: SIP vs. API How Will You Be Developing Your Next Application? (SIP-01)

27

The Future

• Expect many new applications to leverage SIP– With one of the media server control protocols

• APIs will continue, but only for very complex apps.– Secret: our SIP and MSCML uses our API under the covers!

• Expect continued refinement – of SIP and related media server protocols

Page 28: SIP vs. API How Will You Be Developing Your Next Application? (SIP-01)

28

Questions?

?

Page 29: SIP vs. API How Will You Be Developing Your Next Application? (SIP-01)

29

Booth #115

More information