All Projects → seven1240 → xui

seven1240 / xui

Licence: other
XUI is a micro UI framework and implementation for FreeSWITCH

Programming Languages

javascript
184084 projects - #8 most used programming language
lua
6591 projects
CSS
56736 projects
HTML
75241 projects
PLpgSQL
1095 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to xui

NEventSocket
A reactive FreeSwitch eventsocket library for Modern .Net
Stars: ✭ 68 (-20.93%)
Mutual labels:  freeswitch
FSlmx
FreeSWITCH GUI 简体中文GUI for PHP (UTF8)
Stars: ✭ 43 (-50%)
Mutual labels:  freeswitch
switchy
async FreeSWITCH cluster control
Stars: ✭ 67 (-22.09%)
Mutual labels:  freeswitch
freeswitch-esl-all
freeswitch event socket base on netty 4 and has some new features.
Stars: ✭ 110 (+27.91%)
Mutual labels:  freeswitch
pyfreebilling
Routing and rating VoIP application for service providers - API based - AGPL v3 - Based on kamailio
Stars: ✭ 75 (-12.79%)
Mutual labels:  freeswitch
freeswitch-docker
Dockerfile for freeswitch
Stars: ✭ 40 (-53.49%)
Mutual labels:  freeswitch
siphub
sip capture server by hep。work with OpenSIPS, Kamailo, and FreeSWITCH。
Stars: ✭ 23 (-73.26%)
Mutual labels:  freeswitch
books-and-articles
Books written from me to my own language
Stars: ✭ 15 (-82.56%)
Mutual labels:  freeswitch
paStash
pastaʃ'ʃ = Spaghetti I/O Event Data Processing, Interpolation, Correlation and beyond 🍝
Stars: ✭ 89 (+3.49%)
Mutual labels:  freeswitch
mod event kafka
Freeswitch Kafka Plugin
Stars: ✭ 20 (-76.74%)
Mutual labels:  freeswitch
freeswitch-asr
TTS and ASR module with auto Voice Active Detecting supported for Freeswitch. I build it for Nature sound interactive, With the embedded LUA engine we could easly build a Freeswtich application like this.
Stars: ✭ 36 (-58.14%)
Mutual labels:  freeswitch
esl
Node.js client and server for FreeSwitch Event Socket
Stars: ✭ 106 (+23.26%)
Mutual labels:  freeswitch
sipp2freeswitch
sample sipp scenarios for testing freeswitch
Stars: ✭ 18 (-79.07%)
Mutual labels:  freeswitch

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!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].