题目:JVoiceBridge使用简介
作者:kagula
时间:2008-10-10
[A]知识背景简介
JVoiceBridge是一套多人语音聊天系统,由纯Java开发。
JVoiceBridge工作环境由一个Bridge和若干个Softphone组成,
其中Bridge可能看成是语音服务器,Softphone可以看成是客户端。
[B]工作环境:
假设有一个局域网,由以下几台机器组成
机器名 用户名 IP地址
PC-S: 略 192.168.0.38
PC-A: aa 192.168.0.211
PC-B: boso 192.168.0.112
控制台下,均已经正确设置了Java、ANT的运行环境
其中PC-S上运行Bridge,其它机器中运行Softphone。
JVoiceBridge运行的具体要求,请查阅JVoiceBridge的官网。
这里用的JVoiceBridge是
[C]建立工作环境
[1]在下面的地址中下载jVoiceBridge.zip文件,并解压缩包
https://jvoicebridge.dev.java.net
你可以看到有一个bridge目录,一个softphone目录和一个Doc目录。
[2]启动Bridge
在PC-S中
进入bridge目录,然后输入下面的命令,启动bridge
ant -f run.xml
[3]启动Softphone
在其它机器中,先假设是PC-A,对其它机器的设置类似。
进入softphone目录,输入下面命令,启动softphone
java -jar softphone.jar
启动窗口后,按下面途径点取菜单项
[Settings]->[Configure]->[custom properties]->[sip]
打开设置窗口。User Name设置为aa,Registrar Address设置为192.168.0.38
其它选项都可以选取默认值。
设置好选项后,你可能需要重启softphone,使设置有效。
[D]基本使用
[D-1]使用Softphone建立两人之间的通话
本机的PhoneNumber=用户名@本地计算机的IP地址:5070
PC-B 要打电话给 PC-A
首先需要在PC-B的Softphone中键入PC-A的PhoneNumber [email protected]:5070,然后Dial.
然后在PC-A中,Answer就可以了
[D-2]使用Softphone建立多人语音会议通话
要加入会议的Softphone,应该键入以下格式的PhoneNumber
6666@<bridge的地址> c=<会议ID字符串>
如本例:
PC-A中可键入 [email protected] c=cc
PC-B中可键入 [email protected] c=cc
其中,cc为会议ID字符串
[D-3]使用PlaceCall.java邀请某人加入多人语音会议通话
<解压路径>/doc/example/PlaceCall.java
第一步:编译源文件
进入<解压路径>/doc/example/目录
javac -cp ../../bridge/bridge_connector.jar PlaceCall.java
第二步:运行编译好的文件(假设是邀请PC-A上的用户aa加入多人语音会议cc中的通话)
java -cp ../../bridge/bridge_connector.jar:. PlaceCall 192.168.0.38 6666 cc sip:[email protected]:5062
个人觉的前面两步工作,在Eclipse中完成也很方便,因为,更容易把PlaceCall.java中的代码引入到其它Java项目中。
不带参数运行PlaceCall可以在控制台中看到它的参数列表。
备注:
当用户aa接收邀请,会激发PlaceCall.java第104行,case CallStatus.ESTABLISHED:的代码
当用户aa退出会议,会激发PlaceCall.java第112行,case CallStatus.ENDED:的代码
[D-4]通过Telnet设置会议语音质量
PCM编码、16000采样、2声道
telnet <voice bridge IP Address> 6666
createConference=<会议ID字符串>:PCM/16000/2
detach
备注:
[1]java -jar softphone.jar -help 可以查看参数列表
例如java -jar softphone.jar -nogui -answer命令行,当PlaceCall启动后,可以
使执行这条语句的机器,以后台方式,自动加入到语音会议中。
参考资料:
[1]《Joining conference with softphone》
https://jvoicebridge.dev.java.net/servlets/ReadMsg?listName=dev&msgNo=95