如何构建自己的SIP SERVER
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何构建自己的SIP SERVER相关的知识,希望对你有一定的参考价值。
1:软件准备:A: SIP SERVER h for Linux的:oss1_2_1_0.zip B:JAVA环境,这个是for Linux的, h 文件名:j2eesdk-1_4-linux.bin C: Tomcat, for Linux的:jakarta-tomcat-4.1.30.tar.gz 2:安装: (windows的很简单,安装j2re-1_4_2_04-windows-i586-p.exe 的JAVA环境,双击sip sever for windows的就安装了,配置都比较简单。) 下面主要说一下for Linux的: ./ j2eesdk-1_4-linux.bin (如果不行,得先:chmod a+x j2eesdk-1_4-linux.bin)按照提示安装就行。 然后是 tar zxvf jakarta-tomcat-4.1.30.tar.gz 然后到 jakarta-tomcat-4.1.30目录下的bin 目录下,查看 startup.sh里面的东东,在最后加上设置环境变量的语句:(用gedit startup.sh命令) export JAVA_HOME=/。。。。/jdk (应该填写你安装JAVA环境地方的jdk目录) export CLASSPATH=$ JAVA_HOME/lib: $ JAVA_HOME/jre/lib: export PATH=$PATH JAVA_HOME/bin: $ JAVA_HOME/jre/bin: (请不要直接Ctrl+c Ctrl+v,因为这里的冒号和Linux的不一样 ) 参考技术A JAVA_HOME/bin: $ JAVA_HOME/jre/bin:(请不要直接Ctrl+c Ctrl+v,因为这里的冒号和Linux的不一样 )
编辑完了后,就可以运行了。
./ startup.sh
如果没报错,就恭喜你了。
打开你的linux浏览器,看看
http://localhost:8080
看到tomcat的那个破猫就恭喜你了。。。
然后把oss1_2_1_0.zip里的oss.war拷贝到 Tomcat 的webapps目录下:
打开
http://localhost:8080/oss
看到了ONDO SIP SERVER了吧???恭喜你了。。。
(接受,选择for education,登陆用户是sa密码也是sa)
你的服务器已经搞好了,到Authentication建立几个用户,例如 用户名:1234 密码:1234
在Config里的Network setting里Interface address 1填写你自己的ip地址,然后别人就可以用SIP客户端登陆注册了。
3:测试:
然后在别的windows机器上下载安装SipPhone_Setup_b0305pm.msi这个软件(SIP PHONE),
安装,设置好。软件设置:服务器地址就是上面你的服务器的地址,用户,密码,注意,端口是5060,其他就没什么了。登陆后,在服务器页面上可以看到登陆的情况,你的SIP SERVER就搞定了。
如果你的电脑多的话,再找一台安装SipPhone_Setup_b0305pm.msi,开个用户5678,就可以对拨了。你就是一个完美的网络电话服务商了。
如何检查库是不是是在 Mac OS X 上构建的 32 位/64 位?
【中文标题】如何检查库是不是是在 Mac OS X 上构建的 32 位/64 位?【英文标题】:How to check if a library is 32bit/64bit built on Mac OS X?如何检查库是否是在 Mac OS X 上构建的 32 位/64 位? 【发布时间】:2011-03-13 12:56:51 【问题描述】:我在使用 PyQt/SIP 时遇到了一些麻烦。我猜 SIP 是编译成 64 位的,但是 Python 在找到它时遇到了一些问题。
文件“qtdemo.py”,第 46 行,在 进口小口 ImportError: dlopen(/Library/Python/2.6/site-packages/sip.so, 2): 找不到合适的图像。发现: /Library/Python/2.6/site-packages/sip.so:mach-o,但架构错误 我如何知道库 (so/dylib) 是 32 位还是 64 位? 如何知道我的 Python 是 32 位还是 64 位?【问题讨论】:
Determine if an executable (or library) is 32 -or 64-bits (on OSX)的可能重复 【参考方案1】:file
工具可用于识别可执行文件。
例子:
> file /Applications/TextEdit.app/Contents/MacOS/TextEdit
/Applications/TextEdit.app/Contents/MacOS/TextEdit: Mach-O universal binary with 2 architectures
/Applications/TextEdit.app/Contents/MacOS/TextEdit (for architecture x86_64): Mach-O 64-bit executable x86_64
/Applications/TextEdit.app/Contents/MacOS/TextEdit (for architecture i386): Mach-O executable i386
【讨论】:
虽然这适用于可执行文件,但不适用于库。道格在下面的回答是正确的。 (***.com/a/28856293/930949)【参考方案2】:要在您正在使用的 Python 实例中查找可用架构:
$ file "$( "$(which python)" -c "import sys;print(sys.executable)" )"
/usr/bin/python: Mach-O universal binary with 3 architectures
/usr/bin/python (for architecture x86_64): Mach-O 64-bit executable x86_64
/usr/bin/python (for architecture i386): Mach-O executable i386
/usr/bin/python (for architecture ppc7400): Mach-O executable ppc
要查找 Python 当前运行的是 32 位还是 64 位(10.6 示例):
$ /usr/bin/python2.6 -c "import sys;print('%x'%sys.maxint)"
7fffffffffffffff
$ arch -x86_64 /usr/bin/python2.6 -c "import sys;print('%x'%sys.maxint)"
7fffffffffffffff
$ arch -i386 /usr/bin/python2.6 -c "import sys;print('%x'%sys.maxint)"
7fffffff
$ arch -ppc /usr/bin/python2.6 -c "import sys;print('%x'%sys.maxint)"
7fffffff
对于python3,用sys.maxsize
替换sys.maxint
:
$ python3 -c "import sys;print('%x'%sys.maxsize)"
7fffffff
【讨论】:
【参考方案3】:lipo -info target/libexample-df07142d9bfd950a.a
input file target/libexample-df07142d9bfd950a.a is not a fat file
Non-fat file: target/libexample-df07142d9bfd950a.a is architecture: x86_64
或
lipo -info `which python`
Non-fat file: /usr/local/bin/python is architecture: x86_64
不要使用file
。
【讨论】:
“不要使用file
。”为什么?
@chakrit file
不适用于所有库类型。它会猜测格式,所以你会看到:'libn.a: current ar archive random library' 是一个静态库,你会从lipo
看到这个:'Non-fat file: libn.a is architecture: x86_64'。对于某些文件类型,它可以工作,但是为什么要使用一个使用一些“魔术测试”(参见 man 文件)猜测文件类型的工具,而不是为此目的明确存在的 lipo 工具?跨度>
以上是关于如何构建自己的SIP SERVER的主要内容,如果未能解决你的问题,请参考以下文章
开源sip server & sip client 和开发库 一览