【FreeSWITCH: JAVA模块的简单应用(mod_java) 】

FreeSWITCH提供了一个mod_java模块,用于使用JAVA语言来实现对FreeSWITCH的控制。最近正好接触了下,很是被里面的部分问题困扰过,现整理出来与大家共享下:

    注:已提前将windows7旗舰版官方wiki中的demo(Java">http://wiki.freeswitch.org/wiki/Java)做成jar包,名字是freeswitchJavaScript.jar

    1、将文件freeswitchJavaScript.jar上传到linux目录,如下:

    /usr/local/freeswitch/jar/freeswitchJavaScript.jar

    2、将文件freeswitch.jar上传到该目录下,如下:

    /usr/local/freeswitch/scripts/freeswitch.jar

    3、将freeswitchJavaScript.jar引用的jar文件上传到/javapath目录

    注:/javapath目录用于存放引用第三方的jar包

    4、配置java模块

    文件:/usr/local/freeswitch/conf/autoload_configs/java.conf.xml

    主要配置下面两个内容

    <javavm path="/usr/java/jdk1.6.0_16/jre/lib/i386/client/libjvm.so"/>

    <option value="- Djava.class.path=/usr/local/freeswitch/scripts/freeswitch.jar:/javapath/axis.jar:/javapath/activation.jar:/javapath/axis-ant.jar:/javapath/commons-discovery-0.2.jar:/javapath/commons-logging-1.0.4.jar:/javapath/freeswitch.jar:/javapath/jaxrpc.jar:/javapath/log4j-1.2.8.jar:/javapath/log4j.properties:/javapath/mail.jar:/javapath/saaj.jar:/javapath/wsdl4j-1.5.1.jar:/javapath/jetty-6.1.9.jar:/javapath/jetty-util-6.1.9.jar:/javapath/servlet_jetty.jar"/>

    注:classpath中指向的是第三步引用的jar文件

    5、dialplan配置

    文件:/usr/local/freeswitch/conf/dialplan/default.xml

    拨号方案:

    <extension name="java_demo">

    <condition field="destination_number" expression="^(9000)$">

    <action application="answer"/>

    <action application="java" data="/usr/local/freeswitch/jar/freeswitchJavaScript.jar PhoneTest"/>

    <action application="sleep" data="2000"/>

    </condition>

    </extension>

转载于:https://www.cnblogs.com/qq1287527359/p/3234601.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这个错误是由于证书中的公共名称与正在连接的主机名称不匹配而引起的。这通常是因为证书被签发给了另一个主机名,或者是证书被签发给了一个子域而不是根域。要解决这个问题,可以尝试使用已签发的证书或重新生成证书,并确保将公共名称设置为正确的主机名。另外,也可以尝试在freeswitch jssip中忽略证书错误,但这会降低安全性。在生产环境中,建议解决证书问题以确保通信的安全性。 ### 回答2: 这个错误是由于JSSIP尝试通过HTTPS连接到freeswitch,但是证书中的Common Name与请求的域名不匹配。要解决这个问题,有以下几个步骤: 1. 您可以尝试使用HTTP替换HTTPS,它不需要证书。 2. 如果您希望使用HTTPS,请确认您使用的证书中的Common Name与请求的域名匹配。如果不匹配,请更新您的证书或更改请求的域名。 3. 如果您使用的是自签名证书,请先将证书添加到信任列表中。如果使用的是第三方证书,请确认证书颁发机构已被浏览器信任。 4. 您可以通过将JSSIP的strictSSL选项设置为false来禁用SSL证书验证。但是,这仅适用于开发环境,不建议在生产环境中使用。 总的来说,这个错误是由SSL证书问题引起的,需要确保证书和请求域名匹配以及证书被信任。 ### 回答3: 在使用Freeswitch和JSSIP时,可能会遇到“error in connection establishment: net::err_cert_common_name”的错误。这个错误的意思是SSL证书中的common name与你正在连接的服务器的主机名不匹配。通常这种情况会出现在以下两种情况下: 1. 服务器正在使用一个自制的SSL证书,而不是来自公认的SSL颁发机构(CA)的证书。 2. 你正在连接的服务器主机名与SSL证书的common name不匹配。 如果是第一种情况,我们需要确认服务器是使用的自签名证书,软件会默认不信任此类证书,需要手动进行信任。如果是第二种情况,我们需要修改Freeswitch或JSSIP的配置文件,以使用正确的主机名连接服务器。 解决方法如下: 步骤1:检查证书 先检查证书是否是自制证书,是否已经过期。如果检查发现证书的有效期已过,则需要更新证书。如果证书是自制的,则需要将证书导入到信任区,或者使用可信的证书颁发机构颁发的CA证书。如果是公开证书,则可以问管理员是否已经安装证书,一般来说可以直接使用。 步骤2:配置FreeswitchFreeswitch中修改配置文件,将JSSIP的ssl_mode选项改为strict,这样就不会接受IP地址/主机名与证书中的主机名不匹配的连接。 步骤3:配置JSSIP 在JSSIP中也需要修改相关配置文件,将ssl_verify_mode选项设置为strict,使其也能够检查证书中的主机名与连接的主机名是否匹配。 总的来说,在使用Freeswitch和JSSIP时遇到“error in connection establishment: net::err_cert_common_name”错误时,我们需要检查证书和相关配置,确保证书有效,证书主机名与连接主机名一致,ssl_mode和ssl_verify_mode设置正确。这样才能顺利建立连接,避免出现错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值