⑴ 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棧 :傳輸語言或者視頻數據的協議棧
抓包測試工具: 調試網路程序最有效的辦法
以下介紹這些軟體主要以開源軟體為主
一 伺服器端軟體