290 likes | 311 Views
SIP vs. API. How Will You Be Developing Your Next Application? (SIP-01). Competing methods. Development Building Blocks. Your Application. Compiled. XML. Graphical. VoiceXML. C/C++. Java. API. NETANN. MSCML. MSML/MOML. Drivers. SIP. Hardware. API – What is it?.
E N D
SIP vs. API How Will You Be Developing Your Next Application?(SIP-01)
Development Building Blocks Your Application Compiled XML Graphical VoiceXML C/C++ Java API NETANN MSCML MSML/MOML Drivers SIP Hardware
API – What is it? If all else fails, refer to Wikipedia: API An application programming interface (API) is a source codeinterface that a computer system or program library provides to support requests for services to be made of it by a computer program.
Legacy API Architecture Application Proprietary Proprietary API API Proprietary Proprietary Device Driver Device Driver H.100 T1 Interface Hardware Resource Hardware PSTN
API Development Key Attributes: • Powerful • Feature Rich • Highly Efficient • Highly Complex • Slow to Develop • Hard to Debug • Proprietary (mostly)
Development Building Blocks Your Application Compiled XML Graphical VoiceXML C/C++ Java API NETANN MSCML MSML/MOML Drivers SIP Hardware
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).
SIP – Where does it fit? SMTP HTTP RTP SIP L5 L4 TCP UDP L3 IP L2 Ethernet PPP Copper Fiber Wireless L1
SIP Development Key Attributes: • Open • Standard • Interoperable • Easy to Debug • Inefficient • Moving Target • Slow to evolve
SIP Architecture Application Service CreationEnvironment SIP SIP Protocol Stack LAN Media Gateway Resource MediaResource PSTN
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
Speeds Development Time Customer A: Just over 3 Man-years to integrate and test with a Legacy PCI Blade 3 PCI Same customer using SIP based hardware, 88% less time to market! 2 Integration Time in Man-Years 1 SIP
Development Building Blocks Your Application Compiled XML Graphical VoiceXML C/C++ Java API NETANN MSCML MSML/MOML Drivers SIP Hardware
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.
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
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>
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)
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
Who supports what? MSCML / NetAnn 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 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.
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
More information Booth #115