=Terms=
* Server: 指的我们服务器
* Client: 终端和网页页面等。
=一些默认数据=
* 系统里面（包括主机和终端）都有可能会出现一些默认值，而这些默认值很多都可以被修改，但是还会有一个reset按钮，可以将它们reset到出厂设计里面。这里面的默认数值，我们考虑可以使用备份的方式。就是我们默认保留一个出厂备份，他把安放在系统的某一个地方，需要reset的时候，直接就行restore.但是问题在于，这个需要支持不同功能区的备份和还原。需要考虑一下，是否有别的方式。
* 一些数据可能是在db里面的，所以也需要考虑是否使用备份方式
=database=
client/Server都需要保存和存储数据，所以建议使用db的方式。client端估计会使用litesql,而server段使用mysql.所以，希望有一个middle layer，可以处理这个部分。
=Realtime双向 data/command=
对于client/server需要一种可以方便的沟通和信息传递的方式，比如说一个执行命令,一个新的配置项。这个需要考虑的是兼容javascript/ruby software。在webBrowser里面也可以直接进行使用。
可能会使用的功能部件有：
* 日志：终端的日志上传。
* 执行命令的同步：主机需要向终端发布一个及时施行的命令，非freeswitch,sip,rtp等命令，所以不能走他们的协议。比如说：让终端开始接听某一个广播频道。
* 同步配置数据。(有可能，终端配置播放音乐，然后上传到服务器同步)
* 终端半托管，全托管：通过终端b/s界面比如说创建会议，邀请加入会议,或者收到incoming call等。
如果这个部分的同步性很好，可以实现及时性和大数据量的同步，我们可以考虑把基本上所有需要交互信息（除了普通http,https,ajax）外的信息都通过这个来同步。<br/>
备注：当然可以考虑只是用http/https/ajax等方式，不过希望可以进一步提高同步性（希望可以实现减低延迟）。
[[File:Whiteboard Luna structure of functionality Photo.JPG]]

=用户的在线状态=
client是不是一直需要open一个connection到server，还是使用别的方式，比如long polling.这里，可以考虑是否和sync data合并

=Module性好一点=
再编写的过程中，需要把module性写的灵活一些，有助于分开，为cluster框架做准备。
=管理权限管理=
希望有一个类似role-based-permission-control system.主要用于限制用户的权限管理等方式。希望使用一个framework,最好可以直接兼容在controller。如果支持用户组或者多层级管理更好。比如可以细分一个管理权限为：添加，删除，编辑，如果用户有管理权限，就说有这三个，如果只有添加，这个用户则不可以删除。
=网络速度ping=
需要一部分的功能模块，可以让我们发现一些网络相关数据，比如说：终端到主机的贷款，延迟等。希望可以做精准测量