1 SIP vs API How Will You Be
1
SIP vs. API How Will You Be Developing Your Next Application? (SIP-01)
Competing methods 3
Development Building Blocks Your Application Compiled C/C++ API XML Voice. XML Java NETANN MSCML Drivers SIP Hardware 4 Graphical MSML/MOML
API – What is it? If all else fails, refer to Wikipedia: API An application programming interface (API) is a source code interface that a computer system or program library provides to support requests for services to be made of it by a computer program. 5
Legacy API Architecture Application Proprietary API Device Driver H. 100 PSTN 6 T 1 Interface Hardware Resource Hardware Proprietary
API Development Key Attributes: • Powerful • Feature Rich • Highly Efficient • Highly Complex • Slow to Develop • Hard to Debug • Proprietary (mostly) 7
Development Building Blocks Your Application Compiled C/C++ API XML Voice. XML Java NETANN MSCML Drivers SIP Hardware 8 Graphical MSML/MOML
SIP – What is it? Wikipedia: SIP The 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). 9
SIP – Where does it fit? L 5 SMTP HTTP L 4 TCP UDP L 3 L 2 L 1 10 RTP IP Ethernet Copper Fiber PPP Wireless SIP
SIP Development Key Attributes: • Open • Standard • Interoperable • Easy to Debug • Inefficient • Moving Target • Slow to evolve 11
SIP Architecture Application SIP Service Creation Environment SIP Protocol Stack LAN PSTN 12 Media Gateway Resource Media Resource
Two Classes of Resources • Media Gateways – Provide connectivity to existing TDM infrastructure – 90% + of installed base is still TDM • Media Resources – – – 13 IVR – Play / Record / DTMF Conferencing Fax Tone Detection/Generation Announcements Transcoding
Speeds Development Time 3 Integration Time in Man-Years 2 PCI Customer A: Just over 3 Man-years to integrate and test with a Legacy PCI Same customer using Blade SIP based hardware, 88% less time to market! 1 SIP 14
Development Building Blocks Your Application Compiled C/C++ API XML Voice. XML Java NETANN MSCML Drivers SIP Hardware 15 Graphical MSML/MOML
Net. Ann – What is it? Net. Ann • 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. 16
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 Play. Collect connects a “player” and a “dtmf-receiver” to the call • Conf, IVR (Play, Play. Collect, Play. Record, Fax. Play, Fax. Record) • Command oriented protocol (vs scripted) • MSCML IVR syntax is modeled on the H. 248 and MGCP • Includes the composite Play. Collect and Play. Record functions 17
MSCML - Sample Example of a Play command: <? xml version="1. 0" encoding="utf-8"? > <Media. Server. Control 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> </Media. Server. Control> 18
MSCML Conferencing – Create 19
MSCML Conferencing – Play 20
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) 21
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 Play. Collect/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 22
Who supports what? MSCML / Net. Ann 23 MSML / MOML
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 3 GPP 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. 24
Will we need APIs and SIP? 25
How do they compare 26 Capability / Feature API SIP+Net. Ann SIP+MSCML TDM Bus Switching (H. 100) Yes No No Industry Standard (RFC? ) No Yes Basic IVR Yes Yes Complex IVR Yes No Yes Mixing/Recording Yes No No Simple Conference Yes Yes Complex Conference Controls Yes No Yes
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 27
Questions? ? 28
More information Booth #115 29
- Slides: 29