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