JAIN-SIP 1.2 Android版:缺少javax.sip.STACK_NAME财产 [英] JAIN-SIP 1.2 for Android: Missing javax.sip.STACK_NAME property
问题描述
我想在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的Android下工作?
) -在您的帮助提前感谢
丹尼尔
有是现在谁写了大量的原始JAIN SIP协议栈的人JAIN SIP的支持的Android端口:
http://www.telestax.com/jain-sip-stack -for-的Android /
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屋!