online web demo(old version): https://mbstudio.cn/mbwebphone .
freeswitch server(docker):
#docker pull safarov/freeswitch
#docker run -d --name fs -v  ~/fscfg:/etc/freeswitch --net=host safarov/freeswitch
~~#docker run -d --name ice --network=host coturn/coturn~~  
#cd ~/fscfg/
#nano vars.xml
<X-PRE-PROCESS cmd="set" data="default_password=mbstudio"/>
<X-PRE-PROCESS cmd="set" data="domain=172.21.2.210"/>   #using your fs server ip or domain
<X-PRE-PROCESS cmd="stun-set" data="external_rtp_ip=172.21.2.210"/>
<X-PRE-PROCESS cmd="stun-set" data="external_sip_ip=172.21.2.210"/> 
#nano sip_profiles/internal.xml
<param name="ext-rtp-ip" value="$${external_rtp_ip}""/>
<param name="ext-sip-ip" value="$${external_sip_ip}""/>
#nano dialplan/default.xml  
<!--<action application="set" data="ringback=${us-ring}"/>--> #183 make video call ring mis
<action application="ring_ready"/>  #180 ring event only, play ring tone by web app
#nano autoload_configs/switch.conf.xml
<!-- RTP port range -->
<param name="rtp-start-port" value="8000"/> #using your fs server udp port range
<param name="rtp-end-port" value="8100"/>
fix 488 error
#nano autoload_configs/acl.conf.xml 
<list name="wan.auto" default="allow">
  <node type="allow" cidr="172.21.0.0/16"/>  
</list>   
or 
#nano sip_profiles/internal.xml 
<param name="apply-candidate-acl" value="any_v4.auto"/>
#nano autoload_configs/event_socket.conf.xml  
    <param name="listen-ip" value="0.0.0.0"/>   #fix fs_cli.c:1699 main() Error Connecting []  
#docker restart fs
#docker exec -ti fs fs_cli
fs>sofia global siptrace on   #sip message debug
WEB release
#npm run web
send dist/meconf.tgz to users:
#tar zxvf meconf.tgz
#node miniweb.js
visit http://localhost:3000 in chrome, edge, safari.
always use ws://172.21.2.210:5066 in localhost.
Windows/Linux/MacOS release
package MeConf as an Windows/Linux/MacOS app|exe:
#npm install yarn
#yarn config set electron_mirror "https://npmmirror.com/mirrors/electron/"
#yarn add electron-builder -g --verbose
#npm run start  #dev
#npm run dist   #make all release
- windows exe
 
#npm run win   #make windows portable exe
#npx electron-builder -w nsis   #make windows installer exe
send dist/MeConf Setup 1.3.1.exe or dist/MeConf 1.3.1.exe to users.
- macos dmg
 
#npm run mac
send dist/MeConf-1.3.1.dmg to users.
- linux deb
 
npm run lin
send dist/MeConf_1.3.1_amd64.deb to users.
- other OS or CPU?
 
npx electron-builder -w nsis -l rpm -m dmg --arm64 --ia32
how to build rpm, msi, pkg, snap, etc., see: https://www.electron.build/mac https://www.electron.build/win https://www.electron.build/linux
Freeswitch DEMO
- call 
1000-1019to start p2p audio/video call. - call 
9196to start audio/video loopback echo test. - call 
3500-3599to start video conference (up to 100 rooms). 
all these defined on sip server in fscfg/dialplan/default.xml.
