免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2260 | 回复: 0
打印 上一主题 下一主题

用开源软件搭建企业内部协作平台, Kill QQ MSN [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-23 02:43 |只看该作者 |倒序浏览

作为公司的一分子, 您可能忧心忡忡于通过 MSN, QQ 流入的各种名目繁多的病毒, 木马, 例如熊猫烧香, 以及通过 MSN 传播的导致公司网络瘫痪的蠕虫病毒. 换句话说, 我们需要企业内部协作平台, 来保证信息安全和减少依赖外网办公所带来的高风险. 例如: 地震了, 外网断了, 同事们再也不能通过MSN/QQ交流了. 自然, QQ/MSN 有它的用途, 但是主要用途就是和私人的朋友交流, 很多同事也不希望有关自己隐私的QQ/MSN被公司知道. 在这种种的需求之下, 搭建企业内部 collaboration platform 很有必要性. 本文就介绍如何通过整合几种基于 Java 的开源软件来搭建企业内部协作平台, 包括知识库, 内部 IM 和能够方便的交流的在线 Web IM.

    首先就是文档库和知识库, 这个基本上通过安装 Wiki, 例如 JSPWiki, 通过它, 同事们可以方便的共同的编辑同一个需求页面, 设计文档, 也可以将已经写好的文档上传, 加上简短的说明, 这些说明都可以通过全文索引被搜索到. JSPWiki 的中文版本搭建可以阅读这里: Tomcat 下最简单的不改源码让 JSPWiki 支持中文文件/附件的方法.

    其次就是企业内部的 IM, 有人推荐 Tencent RTX, 但是请看: 第一: 其服务端是搭建于 Windows 的 Server, 而我希望在类 Linux 平台使用它; 第二: 商业软件, 需要掏钱; 第三: 客户端和 QQ 一样, 有诸多安全隐患, 而且还可以直接连接 QQ 好友, 不利于彻底封杀 QQ; 第四: 传输协议是不公开的, 如果我想日后升级到其它厂商的服务器, 很明显这是痴人说梦. 在此我的目光集中到了 Jabber 协议的服务器上, 而且重点考察基于 Java 构建的. 最后, 我看到了 Jive Software 的开源版本的服务器和客户端(Jabber 协议的), : WildFire 和 Spark, 他们的网站是 http://www.igniterealtime.org/. 从他们的首页可以看到他们的下一个版本即将推出语音聊天/会议支持. 然后我还找到了 JWChat, 它可以解决我们的 Web IM 问题. 虽然眼前来讲 Spark 和 JWChat 都没有中文版本的界面, 但是可以看到他们已经留下了资源文件, 等着汉化. 如果真的要使用, 这些都不是大问题, 汉化很容易解决.

这套系统很好用, 历史也很悠久了, 服务器有管理界面, 支持文件传送, 离线消息, 屏幕截图, 联系人查找, 个性头像, 用户自己注册, 改密码, 创建聊天室(ChatRoom)等等. 而且按照他们网站的许可协议是可以商用的. 也有 Windows, Linux, Mac 的版本, 基于 Java 构建.

Spark 这个客户端的安装很简单, 下载相应版本的(如果不熟悉 Java, 直接下载带 JRE 的即可), 一路 next 下去, 就 OK了. 然后启动它. 注意下面的 IP 是我们部署在局域网的 WildFire Jabber 服务器的地址.

注册:
在登录界面点击"Account"按钮进行注册.
spark_login.png
spark_reg.png

截图: spark_jackyl.png

服务器端叫 WildFire, 管理界面是基于 Web 的, 有简体中文的语言界面支持. 它的安装也很简单, 下载完全版本, 一路 next 下去, 需要注意的是: 启动后必须先设置一下方可开始使用. 点击WildFire 主窗口的 Launch Admin 按钮, 然后进入管理控制台, 语言选择 Simplified Chinese (zh_CN), 不要忘了给 admin 设置一个密码, 数据库选择默认的 HSQL Database Engine 1.8.0, 这样就完工了. 服务器的功能非常的强大, 包括禁止注册, 管理用户等等.

客户端下载:
http://www.igniterealtime.org/downloads/index.jsp#spark

服务器端下载:
http://www.igniterealtime.org/downloads/index.jsp#wildfire

最后我们可以在刚才的 JSPWiki 服务器上搭建一个 Web 版本的 Jabber 客户端, 支持 IE 和 Firefox 浏览器, 这样如果有人不方便通过客户端来交流的话, 也没有问题, 只不过一些功能, 例如文件传输, 就不可用了. JWChat 下载 war 版本, 然后重命名为 chat.war, 放到 Tomcat 的应用目录下, 然后修改配置文件 config.js 即可工作, 只要修改下面几行即可:

var SITENAME = "192.168.83.107";// 把这个改成 Jabber 服务器的地址

var DEFAULTCONFERENCEROOM = "talks";// 默认的聊天室名字
var DEFAULTCONFERENCESERVER = "conference.192.168.83.107";// 默认的聊天室服务器地址

然后键入 http://localhost:8080/chat, 即可开始聊天了!

最后, 在 JSPWiki 的左菜单(Edit.jsp?page=LeftMenu)上加入这个连接, 例如: http://jabber.mybiz.com:8080/chat/ , 然后同事们就可以边修改文档边在线进行交流了.

看看最后的效果:

jwchat_spark.png

准备好了嘛? 立即 Kill QQ MSN , 从此让同事们的沟通更安全, 更便捷.

配置trixbox 2.0与wildfire实现IM与VOIP整合.

a.   安装vmware5.5。

b.   安装trixbox2.0
1.   下载trixbox22.0的vmware镜像文件,下载地址为:
http://jaist.dl.sourceforge.net/sourceforge/asteriskathome/trixbox-2.0-vmware.zip
2.   解压 trixbox-2.0-vmware.zip 到E:\trixbox 2.0。
3.   启动VMware,选择“Open Existing VM or Term”,

4.   然后选择打开 E:\trixbox 2.0\Red Hat Enterprise Linux 4.vmx.

5.   启动虚拟机.

6.   创建uuid,点“OK”进行确认。

7.   点“OK”进行确认。(也可以先修改虚拟机的光驱设置为正确的配置)

8.   鼠标点进虚拟机,敲回车立即进入Linux(或者等系统自己启动)

9.   敲回车,准备修改硬件配置

10.   移除原有的网络配置,选择“Remove Configuration”,然后敲回车.

11.   新的网络配置。选择“Configure”,然后回车

12.   配置ip地址,敲空格 选中“Use dynamic IP configuration (BOOTP/DHCP)”

13.   然后按 tab键 切换到“OK”,敲回车进行确认。

14.   登录linxu,用户名是root,密码是password。

15.   登录成功。屏幕上显示配置trixbox的url.

16.   用hostname查看主机名,用ifconfig查看ip信息。


c.   配置trixbox.
1.   在浏览器中打开: http://10.108.20.188/
然后点右上角“switch”切换到 Admin Mode

2.   输入登录信息,用户名是maint,密码是password

3.   进入freepbx配置界面。

4.   也可以从最上方一排菜单里转到freePBX配置, Asterisk --> freePBX

5.   点“Setup”.

6.   进入配置界面,再点左边的“Extensions”,进入分机号码配置界面。

7.   Device使用默认选项“Generic SIP Device ” ,然后 点“submit”.

8.   填写分机号,和用户名字。这里填写的分机号是300,名字也填的300。

9.   拉动表单到下方,填写密码,也就是 secret的值,这里也填的300。

10.   再拉动表单到最下方,点“Submite”进行提交。

11.   分机添加成功,用同样方法,再添加”301”

12.   点左上方的红色“Apply Configuration Changes”,提交更改。


13.   确认。


14.   到这里为止,服务端的分机号码配置成功了。

d.   配置X-Lite 3.0
1.   X-Lite 的下载地址为:
https://s3.amazonaws.com/0W6GQ7E1ZFEHHTW1F082/downloads/X-Lite_Win32_1006e_34025.exe
2.   运行X-Lite_Win32_1006e_34025.exe进行安装。
3.   运行X-Lite。

4.   在主界面上点右键,从菜单中选择“SIP Accounts Settiings”,进入账号配置界面

5.   点“Add”添加账号,Display Name为:300,User name为:300,Password为:300,Authorization user name为:300,Domain为:10.108.20.188。钩上“Register with domain and receive incoming calls”, Send outbound via选择“domain”.然后点“确定”.

6.   该账号默认为 Enabled。,点“Close”。


7.   300登录成功。


8.   打电话给自己。输入号码:300,然后拨号。

9.   收到呼叫。


10.   linux控制台输出日志:


11.   web界面查询呼叫日志。


e.   安装Asterisk-IM 插件
1.下载最新的插件asterisk-im 1.2 beta,
http://www.igniterealtime.org/projects/wildfire/plugins-beta/asterisk-im.jar
2. 安装插件,但是由于我用的数据库是oracle,而插件中的脚本只更新了mysql的
因此需要手工用mysql的脚本改成oracle的来执行,主要是将字段类型bigint改成number.
再复制asterisk-im.jar到D:\xmpp\wildfire\plugins下面(光这一点就折腾了很久)。
3.启动wildfire。
f.   配置Asterisk-IM 参数信息
先在trixbox中增加管理账号:Config Edit ,编辑 manager.conf
增加:
[wildfire]
secret=mypass
allow=10.108.20.1.1/255.255.0.0
read = system,call,log,verbose,command,agent,user
write = system,call,log,verbose,command,agent,user

wildfire中进行配置.
2.打开http://10.108.20.198:9090/plugins/asterisk-im/phone-settings.jsp
Add Server,
Server Name 必须是: asterisk1.local (也就是vmware镜像的虚拟机里的主机名.)
Server Address为: 10.108.20.188
Port为: 5038
Username:wildfire
Password:mypass

添加成功之后,Configure Phone Manager
Drop-down device selection:     钩上 Yes
Asterisk Context为: from-internal
然后点 save.
图标绿色,表示连接成功了.
然后到 Phone Mappings 中映射电话.

在xmpp客户端Spark中 call对方即可.或者直接输入电话号码进行呼叫.

其中在使用asterisk-IM插件时,如果使用的数据库为postgresql,它的脚本有些错误,下面是正确脚本:

drop table phoneServer;
create table phoneServer (
serverID int8 not null,
serverName varchar(255) not null unique,
hostname varchar(255) not null,
port int not null,
username varchar(255) not null,
password varchar(255) not null,
primary key (serverID)
) WITHOUT OIDS;
ALTER TABLE phoneServer OWNER TO wildfire;

drop table phoneDevice;
create table phoneDevice (
deviceID int8 not null,
device varchar(255) not null,
extension varchar(255) not null,
callerID varchar(255),
isPrimary integer not null,
userID int8,
serverID bigint not null,
primary key (deviceID)
) WITHOUT OIDS;
ALTER TABLE phoneDevice OWNER TO wildfire;

drop table phoneUser;
create table phoneUser (
userID int8 not null,
username varchar(255) not null unique,
primary key (userID)
) WITHOUT OIDS;
ALTER TABLE phoneUser OWNER TO wildfire;

alter table phoneDevice add constraint pD_userID_fk foreign key (userID) references phoneUser;

delete from jiveVersion where name='asterisk-im';
INSERT INTO jiveVersion (name, version) VALUES ('asterisk-im', 2);

参考资料:

http://yixuesky.blog.163.com/blog/static/17504400200822282936521/

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP