python編程 如何用tcpdump抓取sip信令?
如何用tcpdump抓取sip信令?1. 開源SIP服務(wù)器,較好的使用是星號(hào),標(biāo)準(zhǔn)C程序?qū)崿F(xiàn),代碼清晰。2. SIP有許多客戶端,主要包括exosip、pjsip和opal。Exosip簡(jiǎn)單易用,在P
如何用tcpdump抓取sip信令?
1. 開源SIP服務(wù)器,較好的使用是星號(hào),標(biāo)準(zhǔn)C程序?qū)崿F(xiàn),代碼清晰。
2. SIP有許多客戶端,主要包括exosip、pjsip和opal。Exosip簡(jiǎn)單易用,在PC機(jī)上使用更方便,但涉及到的相關(guān)資源太多,如oSIP、SRTP、MS2等許多開源庫(kù)。Ffmpeg也用于MS2。再說,只是編譯是一場(chǎng)噩夢(mèng)。Opal是最強(qiáng)大的,雖然它也使用ffmpeg,但是它本身的包裝非常好,采用插件模式,調(diào)用靈活。Opal使用類提供封裝,接口非常友好。我唯一感到不舒服的是在底層使用ptlib。雖然它很容易在多個(gè)平臺(tái)上使用,但是當(dāng)它被放置在嵌入式系統(tǒng)中時(shí),感覺它有點(diǎn)大。Pjsip協(xié)議具有很高的靈活性和易移植性,是嵌入式系統(tǒng)的首選。然而,視頻支持比opal更難擴(kuò)展。就個(gè)人而言,對(duì)于Windows開發(fā)人員來說,pjsip的最大優(yōu)勢(shì)是代碼調(diào)試的便利性。整個(gè)項(xiàng)目是一次編譯和傳遞的,另外兩個(gè)庫(kù)需要找到很多相關(guān)的資源。
3. 其他一些協(xié)議棧也被調(diào)試過,比如resipphone,它似乎就是名字,Yate。但是,從快速發(fā)展的角度來看,它們并不適合。現(xiàn)在,在SIP開發(fā)中,我們首先需要找到一個(gè)好的協(xié)議棧。Linphone,ekiga什么的,但是很大。對(duì)于剛剛開始的內(nèi)容,最好制作一個(gè)簡(jiǎn)潔的演示。后來,我找到了以下pjsip的例子,慢慢地理解了SIP的工作流程。當(dāng)然,還有包捕獲工具和tcpdump。
事實(shí)上,SIP并不像預(yù)期的那樣麻煩?,F(xiàn)在回顧一下,在項(xiàng)目開始時(shí),使用協(xié)議棧絕對(duì)不是一個(gè)好主意。如果改變方向,應(yīng)該先熟悉基本的SIP協(xié)議,然后修改一個(gè)或者完全寫一個(gè),效果可能會(huì)更好。
如何控制sip協(xié)議棧使用那個(gè)網(wǎng)卡發(fā)送數(shù)據(jù)?
這取決于您是哪個(gè)協(xié)議棧,RV、oSIP或volvida。一般來說,網(wǎng)絡(luò)是通過套接字句柄發(fā)送到網(wǎng)絡(luò)的。綁定到此句柄的網(wǎng)卡的地址不是最終的物理網(wǎng)卡,而是通過本地路由表后選擇從中傳出的網(wǎng)卡。也就是說,它通常是通過默認(rèn)路由發(fā)送出去的,在多個(gè)網(wǎng)絡(luò)的情況下,我建議你:1。將套接字綁定到IP地址。為每個(gè)網(wǎng)卡設(shè)置路由/網(wǎng)關(guān)。使用ipru和iPro設(shè)置“源地址”路由,以便您的句柄可以綁定到物理網(wǎng)卡