⑴ sip软电话归属地
由电销企业自己选择。并指外显是虚拟手机号码,归属地由电销企业自己选择。手机手差SIP软电话通过注册到SIP服务器,毕蔽皮即可拨打其他人的软电话(注册到到同一个软交换服务器)。
⑵ sip call-id 怎么生成 c++
利用SIP将C++封装为python,SIP采用手动书写,但对于比较庞大的工程手动书写碧神兄sip文件就显得很悔袭苍白无力。QT利用MetaSIP这款工具生成sip文件,然后手动修改部分SIP文件,然后利用python书写
configuer.py配置文件生成Makefile文件,最后执行Make脚本将C++生成为Python。下面主要介绍MetaSIP安装以及配置
过程瞎枣,以及利用如何利用MetaSIP生成SIP。
⑶ 如图,pyqt4.12安装中出现问题,已经安装SIP。环境是PYTHON 2.7。怎么编译 python configure.py后出现
如果可以,试试装下vs2010在安装模块
⑷ 树莓派安装pyQT5,求sip-4.19.14.tar.gz文件下载地址
/s/1VWN91Ji2A0eYuwrv_aRG8A 提取码: ufg6
⑸ 请问import javax.sip;应该导入什么jar包
https://jain-sip.dev.java.net/
下面键正这笑亮弊个碰族是JAVA DOC
http://snad.ncsl.nist.gov/proj/iptel/jain-sip-1.2/javadoc/javax/sip/package-summary.html
⑹ 毕业设计 SIP协议的实现
我们先进行一个简单的纯SIP信令(不带语音连接建立)的UAC的SIP终端的程序开发的试验(即一个只能作为主叫不能作为被叫的的SIP软电话模型),我们创建一个MFC应用程序,对话框模式,照上面的说明,设置工程包含我们上面得到的oSIP的相关开发库及SDK的一些开发库,并且由于默认LIBC的冲突,需要排除MSVCRT[D]开发库(其中D代表Debug模式下,没有D表示Release模式下),直接使用eXosip的几个主要函数就可以创建一个基本的SIP软电话模型。
其主要流程为:
初始化eXosip库-启动事件监听线程-向SIP Proxy注册-向某SIP终端(电话号码)发起呼叫-建立连接-结束连接
初始化代码:
int ret = 0;
ret = eXosip_init ();
eXosip_set_user_agent("##YouToo0.1");
if(0 != ret)
{
AfxMessageBox("Couldn't initialize eXosip!\n");
return false;
}
ret = eXosip_listen_addr (IPPROTO_UDP, NULL, 0, AF_INET, 0);
if(0 != ret)
{
eXosip_quit ();
AfxMessageBox("Couldn't initialize transport layer!\n");
return false;
}
启动事件监听线程:
AfxBeginThread(sip_uac,(void *)this);
向SIP Proxy注册:
eXosip_clear_authentication_info();
eXosip_add_authentication_info(uname, uname, upwd, "md5", NULL);
real_send_register(30); /* 自定义函数代码请见源码 */
发起呼叫(构建假的SDP描述,实际软电话使用它构建RTP媒体连接):
osip_message_t *invite = NULL; /* 呼叫发起消息体 */
int i = eXosip_call_build_initial_invite (&invite, dest_call, source_call, NULL, "## YouToo test demo!");
if (i != 0)
{
AfxMessageBox("Intial INVITE failed!\n");
}
char localip[128];
eXosip_guess_localip (AF_INET, localip, 128);
snprintf (tmp, 4096,
"v=0\r\n"
"o=josua 0 0 IN IP4 %s\r\n"
"s=conversation\r\n"
"c=IN IP4 %s\r\n"
"t=0 0\r\n"
"m=audio %s RTP/AVP 0 8 101\r\n"
"a=rtpmap:0 PCMU/8000\r\n"
"a=rtpmap:8 PCMA/8000\r\n"
"a=rtpmap:101 telephone-event/8000\r\n"
"a=fmtp:101 0-11\r\n", localip, localip, "9900");
osip_message_set_body (invite, tmp, strlen(tmp));
osip_message_set_content_type (invite, "application/sdp");
eXosip_lock ();
i = eXosip_call_send_initial_invite (invite);
eXosip_unlock ();
挂断或取消通话:
int ret;
ret = eXosip_call_terminate(call_id, dialog_id);
if(0 != ret)
{
AfxMessageBox("hangup/terminate Failed!");
}
⑺ ubuntu16.04怎么搭建python开发环境
简述
原来在windows下实现的python code,因为业务需要,要将其放到Ubuntu(其实是linux)下来进行开发和demo。因此安装了目前最新的Ubuntu16.04 64bit系统,并搭建带有GUI的python开发环境。
环境与工具选择
最终确认选择“Ubuntu16.04(64 bit)+ Python3.5 + Qt5.7.0 + SIP4.18.1 + PyQt5.7 + QScintilla2.9.2 + Eric6.0 ”
首先Ubuntu16.04是默认安装了python2.7和python3.5的,因此python这部分就可以不需要安装了。因为涉及GUI的开发,所以要准备pyqt的环境等东西。查看系统python版本:
python
python3
python3.5
另外,需要安装一个python模块:
sudo apt-get install python3-dev
否则后面的SIP安装会有找不到python.h的错误提示。
QT安装
软件安装
可以从官网下载,也可以从http://download.qt.io/archive/qt/下载,我下载了5.7.0的Linux 64bit版本,是一个.run文件。
使用上面的两行命令,进行安装,此时会弹出安装对话框:
然后按照提示一步步选择即可:
安装完成后,可以直接打开QT Creator:
软件配置
我的Qt5.7.0安装在/home/ethan下,这是在前面的安装步骤时选择的。而在/home/ethan/Qt5.7.0/5.7/gcc_64/bin/下有qmake。
安装完成后用下面的命令配置一下PATH,在当前用户主目录下的.bashrc (or .zshrc)文件中加入:
export QTDIR=/home/ethan/Qt5.7.0/5.7/gcc_64/
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${QTDIR}/lib
export PATH=${QTDIR}/bin:${PATH}
此时再在命令行中输入qmake,看到如下:
说明配置成功了。
另外需要将/usr/lib/x86_64-linux-gnu/qt4/bin/qmake软连接到/home/ethan/Qt5.7.0/5.7/gcc_64/bin/qmake上,否则后面在编译安装PyQt时可能会出问题:
sudo ln -s /home/ethan/Qt5.7.0/5.7/gcc_64/bin/qmake /usr/lib/x86_64-linux-gnu/qt4/bin/qmake
这里最好把OpenGL的库也安装上,不然后面的GUI相关工具的安装会有问题:
sudo apt-get install mesa-common-dev
sudo apt-get install libglu1-mesa-dev -y
SIP安装
因为系统接口都是C, C++的而python要调用这些C/C++接口,就需要这个SIP,安装PyQt之前必须先安装对应版本的SIP。PyQt编译时使用的SIP版本必须与python默认调用的SIP保持一致!否则python中是无法调用PyQt的。QT安装的是当前最新的QT5.7.0,这里SIP最新版本也到了4.18.1,从SIP下载https://riverbankcomputing.com/software/sip/download下载SIP安装文件,sip-4.18.1.tar.gz。在下载SIP之前,需要确认下自己的系统没有默认安装过其他版本,否则容易造成混乱。用
sip -V
可以看到系统的sip版本。不过我的系统并没有SIP的。
下载的sip-4.18.1.tar.gz是一个源码包,需要在本地编译后安装:
tar -zxvf sip-4.18.1.tar.gz
cd sip-4.18.1
python3 configure.py
sudo make
sudo make install
然后需要核对下当前的SIP版本以及python3中使用的SIP的版本,看两者是否一致。核对当前SIP版本:
sip -V
会看到是4.18.1
然后命令行中输入python3,打开python3.5环境,输入:
>>> import sip
>>> print(sip.SIP_VERSION_STR)
也看到显示是4.18.1的,这样就说明SIP版本一致了,安装OK。
QScintilla安装
QScintilla2是连接编译器和Python的接口,是Eric的必需前置组件。QScintilla2 中需要单独安装3个模块,本体,Designer和python bindings。这一步先只安装本体部分,后面两个需要等安装了PyQt5才能安装,这个顺序不能搞错,不然会在安装QScintilla的python bindings时会无法生成C++ code,导致安装的失败。首先需要从QScintilla下载https://www.riverbankcomputing.com/software/qscintilla/download下载源码包。下载完成后,对QScintilla_gpl-2.9.3.tar.gz进行解压:
tar -xzvf QScintilla_gpl-2.9.3.tar.gz
cd QScintilla-gpl-2.9.3
安装本体:
cd Qt4Qt5
qmake qscintilla.pro
sudo make
sudo make install
如果在上面的sudo make时,出现“/usr/bin/ld: cannot find -lGL”问题,可以用如下命令做个软连接:
sudo ln -s /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2.0 /usr/lib/libGL.so
之后再去sudo make。
PyQT5安装
PyQt是Python的一个跨平台图形开发工具集,是Python与Qt的成功融合。PyQt包含了大约440个类、超过6000个的函数和方法。
首先从PyQt5下载https://www.riverbankcomputing.com/software/pyqt/download5下载目前最新版本,PyQt5_gpl-5.7.tar.gz。使用如下命令编译安装:
tar -zxvf PyQt-gpl-5.7.tar.gz
cd PyQt-gpl-5.7
python3 configure.py
sudo make
sudo make install
然后使用python3命令进入python环境,输入:
>>>import PyQt5
此时没有任何提示,说明安装没有问题,PyQt5 mole import OK。
QScintilla安装后续部分
前面已经安装了本体Qt4Qt5部分了,这里在安装完PyQt5后,再继续安装后面的两个部分。
安装Designer
cd QScintilla-gpl-2.9.3/designer-Qt4Qt5
qmake designer.pro
sudo make
sudo make install
如果在sudo make时,遇到“fatal error: GL/gl.h: No such file or directory”的问题,这是由于系统中没有安装OpenGL库所导致。使用如下命令进行安装OpenGL库即可:
sudo apt-get install mesa-common-dev
sudo apt-get install libglu1-mesa-dev -y
安装后再进行sudo make,就OK了。
安装Python bindings
cd QScintilla-gpl-2.9.3/Python
python3 configure.py --pyqt=PyQt5
sudo make
sudo make install
这里Python bindings安装时需要指定 –pyqt=PyQt5参数,否则默认是为PyQt4安装。或者直接修改其configure.py,将pyqt5_is_default = False改为pyqt5_is_default = True也可。
Eric6安装
Eric是一款强大的开源Python IDE,支持Qt界面设计器的Eric在Python GUI开发中更是首屈一指,Python+PyQt+Eric已经成为一种标准的Python GUI开发平台。首先从Eric6下载https://sourceforge.net/projects/eric-ide/files/下载安装包代码–eric6-6.1.7.tar.gz。然后用如下命令解压安装:
tar -zxvf eric6-6.1.7.tar.gz
cd eric6-6.1.7
sudo python3 install.py
此过程会检测之前安装的各个软件及其版本信息,并且很快会安装完成:
因为是通过sudo python3 install.py来安装,在打开eric6时也要在前面加上sudo:
sudo eric6
接下来打开eric6界面进行配置,主要是配置eric编辑器功能:
刚打开界面,就提示需要进行配置:
选择Settings -> preference -> Editor -> Autocompation。勾选所有选框,打开代码自动完成功能:
选择Settings -> preference -> Editor -> QScintilla 。勾上左右的两个选框,然后在下面source中,选择from Document and API files:
选择Settings -> preference -> Editor -> APIs。勾选Complie APIs Autocompation,在Language中,选择python3。点面下面的Add from installed APIs按钮,选择住需要的.api文件。最后点击Compile APIs:
选择Settings -> preference -> Interface -> Interface。右侧Language根据喜好选择中文或者English,我这里并没有安装中文语言包,所以使用默认的English。
接下来选择自己的工程文档将要放置的位置:
最后要重启eric才生效。
接下来用一个小的demo简单验证下python开发环境是否搭建OK。
创建一个demo1.py的python源代码,demo code:
#!/usr/bin/env python
from PyQt5.QtWidgets import (QApplication, QLabel)
import sys
if __name__ == "__main__":
app = QApplication(sys.argv)
label = QLabel("<center>Hello World with PyQt5!</center>")
label.resize(200, 50)
label.show()
sys.exit(app.exec_())
然后在放置demo1.py路径下,使用如下命令运行该demo:
python3 demo1.py
⑻ C# SIP软电话问题,PJSIP,SIPEK,接收不到来电
接口的问题,你要看看他们怎么实现的,本人现在做的电话,是用的别人的接口
⑼ 怎么将python代码封装成一个程序
如何将python程序封装成exe可执行文件
将python程序直接转成exe程序的方法很多,主流的工具有PyInstaller、cx_freeze、py2exe等,论及优缺点,可谓各有千秋。然而,再好的工具在使用的时候也会遇到各种各样的问题。这里无法比较哪个好那个坏,不同工具对不同类型程序的处理能力不同,也许你用这个方法转化出来的程序出问题了,换个方法就行了。本文主要介绍py2exe的安装和使用。
py2exe的安装
点此下载和64位python2.7配套版本。
傻瓜式安装,就是一步一步往下点。
py2exe的使用
将python安装路径添加到系统环境变量Path值中。(若已添加,请忽略此步)
建立setup.py文件,文件中输入以下代码:
在终端(cmd)输入以下命令:
setup.py py2exe
这样便完成了从.py文件到 .exe文件的转换,生成的软件在dist文件夹内。
这里需要注意的是:不同python程序不能一概而论,具体情况需要具体讨论。
例:当运行出错,提示缺少sip文件时,setup.py可修改为:
例:当你不想dos窗口停留,需要其一闪而过时,setup.py可修改为:
⑽ 搭建SIP服务器所需资源
要在windows或者linux平台下开发基于SIP的软电话,需要以下软件
服务器端软件: 注册多个客户端到服务器上,可以进行通话测试
SIP客户端软件 :主要用于测试,可以对别人已经完成的客户端进行抓包,以比对自己程序的发包数据
SIP协议栈: 基于某个现成的SIP协议栈来开发会加快开发进度
RTP栈 :传输语言或者视频数据的协议栈
抓包测试工具: 调试网络程序最有效的办法
以下介绍这些软件主要以开源软件为主
一 服务器端软件