Giter Site home page Giter Site logo

v6bit / xui Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mariahyang/xui

0.0 2.0 0.0 4.61 MB

XUI is a micro UI framework and implementation for FreeSWITCH

Makefile 0.17% Python 1.33% Lua 25.02% PLpgSQL 1.85% Shell 0.17% HTML 3.65% CSS 9.44% JavaScript 58.16% Ruby 0.21%

xui's Introduction

the XUI Project

This project is in active development and is not ready for production use.

Design

Use the built-in HTTP server in mod_verto, no depends on anything except FreeSWITCH.

Support SQLite and PostgreSQL.

Follow the morden https://freeswitch.org/stash/projects/FS/repos/fs18configs/browse config layouts, old configs layouts should also work with trival changes. The goals is to remove all static XML configs and store everything in DB and dynamically serve with lua or xml_curl bindings.

xTra

A Sintra like micro MVC framework called xTra is made in vendor for easier backend development.

xdb is included as a simple ORM.

xtra_config.lua for sample configurations.

xTra will search xtra_config.lua first in /etc/xtra/ and then in a dir including vendor. e.g. if you want to edit xtra_config.lua to include custom configs, do

cd vendor
cp xtra_config.lua ..
cd ..
vi xtra_config.lua

ToDo

  • Make more todos ...

Coding Style:

C: 4 spaces TAB CSS/JS/HTML: https://github.com/felixge/Node-style-guide

run

Install npm (optional)

  • Linux

Debian 8/9

need recent version of npm, check https://docs.npmjs.com/getting-started/what-is-npm for more info.

curl -sL https://deb.nodesource.com/setup_4.x | bash -
apt-get install -y nodejs
  • Mac

    brew install npm

Install npm tools

Optionally use the taobao mirror would be faster if you are in China

npm config set registry https://registry.npm.taobao.org

npm install -g jshint
npm install -g watch
npm install -g wiredep-cli
npm install -g usemin-cli
npm install -g watchify
npm install -g babel-cli
npm install -g uglifyjs
npm install -g uglify-js

cd jsapp
npm install

Alternatively can use cnpm see https://npm.taobao.org/ for more info.

cnpm install -g jshint
cnpm install -g watch
cnpm install -g wiredep-cli
cnpm install -g usemin-cli
cnpm install -g watchify
cnpm install --save-dev babel-cli

cd jsapp
cnpm install

Development

init db:

cd db/schema && make

or, if your freeswitch is not installed in /usr/local/freeswitch

cd db/schema && cat sqlite.sql init*.sql | sqlite3 /usr/local/freeswitch/db/xui.db

prepare:

mkdir /usr/local/freeswitch/storage/{recordings,upload}
make setup

build:

make

watch file change and build automatically:

make watch

It's not required but sometimes the following command is helpful, don't ask why:

make init

Enjoy!

config

  1. backup old config files and use our recommended ones:

    mv /usr/local/freeswitch/conf /usr/local/freeswitch/conf.old cp -R conf/xui /usr/local/freeswitch/conf

  2. or you can edit existing configs following the examples:

conf/samples/verto-directory-conf.xml conf/samples/lua.conf.xml conf/samples/verto.conf.xml

enable livearry-sync on conference profile:

<param name="conference-flags" value="livearray-sync"/>

then goto https://your-ip:8082 or http://your-ip:8081

only Chrome is tested but you could try other browsers and report back.

Update

If you pull/update code from github chances are we added new npm packages, so make sure cd jsapp && npm install if you see wired erros.

More:

Pull request

Pull request is welcome.

Docker

It is recommended to develop or run XUI in docker. See Docker for more information.

Documentation

Check our Wiki for more info.

Have fun!

xui's People

Contributors

seven1240 avatar sunjiaxing1992 avatar mariahyang avatar 954127295 avatar yuguozhu avatar wangyupeng520 avatar iccssd1 avatar jooodoooy avatar jdykevin avatar kkkplayer7 avatar dulinjun avatar liyang051 avatar wangshuying2018 avatar

Watchers

James Cloos avatar  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.