JAIN-SIP 1.2 Android版:缺少javax.sip.STACK_NAME财产 [英] JAIN-SIP 1.2 for Android: Missing javax.sip.STACK_NAME property

查看:741
本文介绍了JAIN-SIP 1.2 Android版:缺少javax.sip.STACK_NAME财产的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在Android的设备(4.0.2)中运行JAIN-SIP协议栈。
我能够重新包装这是需要(耆那教-SIP-API-1.2-src.jar,耆那教-SIP-SRC-1.2.1111.jar,concurrent.jar的是,log4j-1.2.8.jar)的jar-文件​​。

这是我用我的build.xml文件:

 <! - 这个项目的.class文件转换成.dex文件 - >
  <目标名称= - jarjar取决于= - 编译>
        <的taskdef NAME =jarjar类名=com.tonicsystems.jarjar.JarJarTask
                 CLASSPATH =编译工具/ jarjar-1.4.jar/>
        < jarjar jar文件=$ {} out.absolute.dir /JainSipApi1.2_re.jar>
            < zipgroupfileset DIR =MYLIB包括=耆那教-SIP-API-1.2-src.jar/>
            <sipper.sip @ 1规则模式=。javax.sip **的结果= />
        < / jarjar>
         < jarjar jar文件=$ {} out.absolute.dir /JainSipRi1.2_re.jar>
            < zipgroupfileset DIR =MYLIB包括=耆那教-SIP-SRC-1.2.1111.jar/>
            <sipper.nist @ 1规则模式=。gov.nist **的结果= />
        < / jarjar>
         < jarjar jar文件=$ {} out.absolute.dir /concurrent_re.jar>
            < zipgroupfileset DIR =MYLIB包括=concurrent.jar/>
            <规则模式=EDU **的结果=。sipper.EDU @ 1/>
        < / jarjar>
         < jarjar jar文件=$ {} out.absolute.dir /log4j-1.2.8_re.jar>
            < zipgroupfileset DIR =MYLIB包括=的log4j-1.2.8.jar/>
            <sipper.org.apache.log4j @ 1规则模式=。org.apache.log4j **的结果= />
        < / jarjar>
     < /目标与GT;

这是一个code-样,我试图测试在没有Android的环境中重新打包文件:

 进口sipper.sip.SipFactory;
...
sipFactory = SipFactory.getInstance();sipFactory.setPathName(sipper.nist);
属性属性=新特性();
properties.setProperty(javax.sip.STACK_NAME,吸管);
properties.setProperty(javax.sip.IP_ADDRESS,127.0.0.1);sipStack = sipFactory.createSipStack(属性);

当我尝试运行此code我得到了以下错误:

 问题初始化SIP协议栈。sipper.sip.PeerUnavailableException:缺少javax.sip.STACK_NAME财产
    在sipper.sip.SipFactory.createSipStack(SipFactory.java:144)
    在SipLayer<&初始化GT;(SipLayer.java:86)
    在SipperClient.main(SipperClient.java:51)

据我的理解,我只是改变了包的名字,但似乎它不为一些软件包的INTERNA工作。这就是为什么我看着源,看到有一些硬codeD字符串,如:

 如果(名称== NULL)抛出新PeerUnavailableException(缺少javax.sip.STACK_NAME财产);

现在是我的问题是有没有合适的方法/解决方案,使JAIN-SIP的Andr​​oid下工作?

-

在您的帮助提前感谢

丹尼尔


解决方案

有是现在谁写了大量的原始JAIN SIP协议栈的人JAIN SIP的支持的Andr​​oid端口:

http://www.telestax.com/jain-sip-stack -for-的Andr​​oid /

I'm trying to run JAIN-SIP Stack on an Android-Device (4.0.2). I was able to repackage the jar-files which were needed (jain-sip-api-1.2-src.jar, jain-sip-src-1.2.1111.jar, concurrent.jar, log4j-1.2.8.jar).

This is my build.xml file which I used:

    <!-- Converts this project's .class files into .dex files -->
  <target name="-jarjar" depends="-compile"> 
        <taskdef name="jarjar" classname="com.tonicsystems.jarjar.JarJarTask"
                 classpath="buildtools/jarjar-1.4.jar"/>
        <jarjar jarfile="${out.absolute.dir}/JainSipApi1.2_re.jar">
            <zipgroupfileset dir="mylib" includes="jain-sip-api-1.2-src.jar" />
            <rule pattern="javax.sip.**" result="sipper.sip.@1"/>
        </jarjar>
         <jarjar jarfile="${out.absolute.dir}/JainSipRi1.2_re.jar">
            <zipgroupfileset dir="mylib" includes="jain-sip-src-1.2.1111.jar" />
            <rule pattern="gov.nist.**" result="sipper.nist.@1"/>
        </jarjar>
         <jarjar jarfile="${out.absolute.dir}/concurrent_re.jar">
            <zipgroupfileset dir="mylib" includes="concurrent.jar" />
            <rule pattern="EDU.**" result="sipper.EDU.@1"/>
        </jarjar>
         <jarjar jarfile="${out.absolute.dir}/log4j-1.2.8_re.jar">
            <zipgroupfileset dir="mylib" includes="log4j-1.2.8.jar" />
            <rule pattern="org.apache.log4j.**" result="sipper.org.apache.log4j.@1"/>
        </jarjar>
     </target>

And this is a code-sample where I tried to test the repackaged file in a none Android environment:

import sipper.sip.SipFactory;
...
sipFactory = SipFactory.getInstance();

sipFactory.setPathName("sipper.nist");
Properties properties = new Properties();
properties.setProperty("javax.sip.STACK_NAME", "Sipper");
properties.setProperty("javax.sip.IP_ADDRESS", "127.0.0.1");

sipStack = sipFactory.createSipStack(properties);

When I try to run this code I got the following error:

 Problem initializing the SIP stack.

sipper.sip.PeerUnavailableException: Missing javax.sip.STACK_NAME property
    at sipper.sip.SipFactory.createSipStack(SipFactory.java:144)
    at SipLayer.<init>(SipLayer.java:86)
    at SipperClient.main(SipperClient.java:51)

As far as I understood, I've just changed the name of the packages, but it seems like that it doesn't work for the "interna" of some packages. That's why I looked into the source and saw there some hard coded strings like:

if (name == null ) throw new PeerUnavailableException("Missing javax.sip.STACK_NAME property");

Now is my question are there any appropriate ways/solutions to make JAIN-SIP under Android working?

Thanks for your help in advance :-)

Daniel

解决方案

There is now a supported Android port of JAIN SIP by the people who wrote much of the original JAIN SIP stack:

http://www.telestax.com/jain-sip-stack-for-android/

这篇关于JAIN-SIP 1.2 Android版:缺少javax.sip.STACK_NAME财产的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆