No Towers. No Spectrum. No Problem.

Demand for mobile voice communication services continues to grow, blurring the line between traditional Mobile Network Operators and Mobile Virtual Network Operators. Interop Technologies’ Voice-Over-Data-Only (VoDO) solution makes it possible for anyone to offer carrier-grade mobile voice services by leveraging existing data networks—including WiFi and LTE.

Launch voice calling, text messaging, and other voice services on a locally assigned number—all without the need for your own towers, switches, or spectrum.

vodo-cpx-orange.pngKey Benefits

  • Lower deployment costs
  • Faster time-to-market
  • Carrier-grade voice and text messaging services
  • Support for a wide variety of devices
  • Integrates into the native dialer
  • Infrastructure- and network-agnostic
  • Seamless voice call handoffs between WiFi and LTE

Interop Cloud Interop Cloud™

Interop Technologies delivers the latest Network Function Virtualization (NFV) technology from the cloud — providing communication service providers of all types with the infrastructure they need to quickly launch the services their market demands most. Our flexible cloud solutions can be deployed as fully managed from our secure cloud or deployed on-premise with systems management to suit individual operator needs. Learn More...

Ready to find a better way? Let's Talk!

Contact Us
/* * jQuery Reveal Plugin 1.0 * www.ZURB.com * Copyright 2010, ZURB * Free to use under the MIT license. * http://www.opensource.org/licenses/mit-license.php */ (function ($) { $('a[data-reveal-id]').live('click', function (event) { event.preventDefault(); var modalLocation = $(this).attr('data-reveal-id'); $('#' + modalLocation).reveal($(this).data()); }); $.fn.reveal = function (options) { var defaults = { animation: 'fadeAndPop', // fade, fadeAndPop, none animationSpeed: 300, // how fast animtions are closeOnBackgroundClick: true, // if you click background will modal close? dismissModalClass: 'close-reveal-modal' // the class of a button or element that will close an open modal }; var options = $.extend({}, defaults, options); return this.each(function () { var modal = $(this), topMeasure = parseInt(modal.css('top')), topOffset = modal.height() + topMeasure, locked = false, modalBg = $('.reveal-modal-bg'); if (modalBg.length == 0) { modalBg = $('
').insertAfter(modal); modalBg.fadeTo('fast', 0.8); } function openAnimation() { modalBg.unbind('click.modalEvent'); $('.' + options.dismissModalClass).unbind('click.modalEvent'); if (!locked) { lockModal(); if (options.animation == "fadeAndPop") { modal.css({'top': $(document).scrollTop() - topOffset, 'opacity': 0, 'visibility': 'visible'}); modalBg.fadeIn(options.animationSpeed / 2); modal.delay(options.animationSpeed / 2).animate({ "top": $(document).scrollTop() + topMeasure + 'px', "opacity": 1 }, options.animationSpeed, unlockModal); } if (options.animation == "fade") { modal.css({'opacity': 0, 'visibility': 'visible', 'top': $(document).scrollTop() + topMeasure}); modalBg.fadeIn(options.animationSpeed / 2); modal.delay(options.animationSpeed / 2).animate({ "opacity": 1 }, options.animationSpeed, unlockModal); } if (options.animation == "none") { modal.css({'visibility': 'visible', 'top': $(document).scrollTop() + topMeasure}); modalBg.css({"display": "block"}); unlockModal(); } } modal.unbind('reveal:open', openAnimation); } modal.bind('reveal:open', openAnimation); function closeAnimation() { if (!locked) { lockModal(); if (options.animation == "fadeAndPop") { modalBg.delay(options.animationSpeed).fadeOut(options.animationSpeed); modal.animate({ "top": $(document).scrollTop() - topOffset + 'px', "opacity": 0 }, options.animationSpeed / 2, function () { modal.css({'top': topMeasure, 'opacity': 1, 'visibility': 'hidden'}); unlockModal(); }); } if (options.animation == "fade") { modalBg.delay(options.animationSpeed).fadeOut(options.animationSpeed); modal.animate({ "opacity" : 0 }, options.animationSpeed, function () { modal.css({'opacity': 1, 'visibility': 'hidden', 'top': topMeasure}); unlockModal(); }); } if (options.animation == "none") { modal.css({'visibility': 'hidden', 'top': topMeasure}); modalBg.css({'display': 'none'}); } } modal.unbind('reveal:close', closeAnimation); } modal.bind('reveal:close', closeAnimation); modal.trigger('reveal:open'); var closeButton = $('.' + options.dismissModalClass).bind('click.modalEvent', function () { modal.trigger('reveal:close'); }); if (options.closeOnBackgroundClick) { modalBg.css({"cursor": "pointer"}); modalBg.bind('click.modalEvent', function () { modal.trigger('reveal:close'); }); } $('body').keyup(function (event) { if (event.which === 27) { // 27 is the keycode for the Escape key modal.trigger('reveal:close'); } }); function unlockModal() { locked = false; } function lockModal() { locked = true; } }); }; })(jQuery);