Over View
With the widespread penetration and adoption of the voice, video telephony and messaging over Internet, there is a need for reliable and standards based solutions to help the users to seamlessly use these applications behind enterprise and residential NATs. Such solutions will help the users to enjoy the multimedia application experience seamlessly without being concerned with the network configuration and topology. Interactive Connectivity Establishment (ICE) is a technique used in computer networking involving network address translators (NATs) in Internet applications of Voice over Internet Protocol (VoIP), peer-to-peer communications, video, instant messaging and other interactive media.
MindBricks ICE SDK and toolkit is an implementation of the IETF ICE (Interactive Connectivity Establishment) protocol for NAT traversal. ICE helps facilitate multimedia Internet applications like VoIP, streaming and messaging to work seamlessly when the hosts are located on private network installations, often located behind firewalls. MindBricks has ICE Lite and Full SDK tool kit to support different customer needs. The ICE stack can be easily integrated into any of the IP signaling protocols like SIP/IMS, RTSP and others.
Technical Specification:
- Layered architecture
- Designed for better performance (MIPS and memory) and ease of integration
- Platform Independent code (easily ported to different platforms)
- Compliant to latest standards
- ICE - RFC5245
- STUN - RFC5389
- TURN - RFC5766
- Clean and intuitive APIs
Architecture
MindBricks ICE Lite and Full architected in a layered manner with each layer having distinct interface and APIs which makes these layers highly re-usable. The interface to the ICE stack is via API function calls. The ICE stack internally does not make use of or spawn any threads and does not block on any operation. Further, the OS related functionalities like timers and sending and receiving of STUN messages on sockets has been abstracted out to the application which makes the ICE stack to be easily ported to any platform in quick time.

Features
Some of the key features of the MindBricks ICE SDK are
- Support for latest ICE, STUN and TURN RFCs
- Support for ICE Full and ICE-Lite modes
- Modular and can be easily integrated with any VoIP/SIP/IMS/RTP, streaming, P2P and messaging client
- Platform independent
- Multiple media stream support
- Support for adding, removing and restarting of media
- Support for both IPv4 and IPv6
- Compliant with
- Interactive Connectivity Establishment (ICE): A Protocol for Network Address Translator (NAT) Traversal for Offer/Answer Protocols (RFC 5245)
- Session Traversal Utilities for NAT (STUN): RFC5389
- Traversal Using Relays around NAT (TURN): Relay Extensions to STUN (RFC 5766)
- Default Address Selection for Internet Protocol version 6 (IPv6) (RFC 3484)
- Modular architecture to fit various application requirements (both client and servers)
- Low footprint and high performance code
Application
ICE NAT traversal mechanism can be adopted for a wide number of applications and devices
- VoIP (SIP/IMS) and Video Phones
- VoIP and Media Gateway
- RTCWeb/WebRTC browsers and clients
- Network Communication Devices such as Cable Modems and Set Top Box
- Terminals
- Soft phones
- Mobile Devices
- Unified Communications
Business Model and Software Deliverables:
MindBricks believes in royalty free business model and wants to provide its customer a hassle free business model with quality and proven product.
MindBricks provides full source code access to its customer for onetime NRE fee. For further details contact sales@mindbricks.com
MindBricks software deliverables comprise a flexible API with:
- C Source code
- Programmers guide (API document)
- Sample application and examples
- Technical support for integration and customization.