Coder Social home page Coder Social logo

moho's Introduction

Voxeo Labs Moho

Overview

Moho is an open source Java framework for developing multi-channel communications applications. Today, building communications apps in Java requires that you write to several different standards and cobble together multiple technologies. Moho unifies real time communications under a single API, allowing developers to write better applications faster, with less code. Moho’s unified API for connecting to communications standards is shipping today with drivers for SIP Servlets and Media Control (JSR 289 and JSR 309) allowing developers to rapidly build SIP applications. The platform supports the creation of drivers for other protocols like XMPP, Jingle, SNMP, and other voice, IM, and SMS standards.

Moho runs on any application server that supports SIP servlets, including Voxeo Prism, Sailfin, and Mobicents. It features an asynchronous programming model and comes with many commonly-needed concepts for telephony applications built in, including conferencing, muting, answering machine detection, transcoding, and call queues.

Building an IVR system can be as simple as answering the call and playing a prompt.

   MediaService media;
   ApplicationContext context;
   CallableEndpoint salesEndpoint;

   @State
   public void start(final InviteEvent invite) throws Exception {
     final Call call = invite.acceptCall(this);
     call.join().get();
     call.setApplicationState("main menu");
     media = call.getMediaService(false);
     salesEndpoint = (CallableEndpoint) context.getEndpoint("tel:18005551212");
     media.prompt("Press 1 for sales or 2 for support", "1,2", 0);
   }

   @State("main menu")
   public void mainMenu(final InputCompleteEvent event) {
       switch (event.getCause()) {
       case MATCH:
           final Call call = (call) event.getSource();
           if (event.getConcept().equals("1")) {
               call.setApplicationState("sales");
               media.prompt("Who would you like to speak with?", SALES_GUYS, 0);
           }
           else {
               call.setApplicationState("support");
               final Call outgoingCall = salesEndpoint.call(null, null, this);
               call.join(
                  outgoingCall, 
                  JoinType.DIRECT, 
                  Joinable.Direction.DUPLEX
               );
           }
           break;
       }
   }

The repository also includes a series of Moho code samples.

How to Install

Moho projects are built using Maven. To build it, simply follow these steps:

  • Verify that Maven has been installed in your box. you can do this by running the command mvn --version in a terminal.
  • If Maven has been installed, it should print out your installed version of Maven. If not, please install Maven first, refer to Maven site.
  • Now you can run Maven to build Moho projects. Run mvn package to build the project and package the jars.

How to Use

Moho is designed to run on any platform that supports JSR 289 and JSR 309. Voxeo Prism is recommended and has Moho included by default.

To run Moho applications on Voxeo Prism, simply deploy any Moho application package to Prism’s app directory. Please note that unless you deploy a custom application router to Voxeo Prism, only one Moho application can be deployed and run at any time.

License

Moho is released under Apache 2 license. Please refer to Apache 2.0 License for details.

About Voxeo Corporation

Voxeo unlocks communications. We loathe the locks that make voice, SMS, instant messaging, Twitter, web chat, and mobile web unified communication and self-service applications difficult to create, manage, analyze, optimize and afford. Every day we work to unlock the neglected value of these communications solutions with open standards, disruptive innovation and a passion for problem solving—fueled by a company-wide obsession with customer success. We do so for more than 100,000 developers, 45,000 companies and half of the Fortune 100 from our headquarters in Orlando, Beijing, Cologne, and London.

Visit us or join our conversations on the web at blogs.voxeo.com or on Twitter @voxeo.

moho's People

Contributors

williezhu avatar mpermar avatar tcheng avatar loopingrage avatar kliu avatar jsgoecke avatar akalsey avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.