記exosip使用過程中遇到的問題


1. 記exosip使用過程中遇到的問題

exosip是在基於osip之上再封裝的更高級API的GPL開源庫,osip庫只提供sip協議棧狀態機管理以及細粒度的接口,不提供任何網絡方面的相關組件。exosip則基於osip提供了udp、tcp、tls、dtls協議的網絡組件,並封裝了更便於使用的接口。

exosip官網:http://savannah.nongnu.org/projects/exosip/

1.1. 宏 ENABLE_MAIN_SOCKET

在exosip 5.1.2版本中使用接口eXosip_listen_addr監聽TCP端口時,系統中查詢不到指定端口被監聽的任何信息,這是因為該版本中有一個宏將TCP套接字的綁定和監聽進行條件限制了,需要在編譯時指定該預編譯宏(默認是未指定)。5.0.0版本中並無此問題。
對於UDP則給定什么端口就監聽什么端口。

使用該預編譯宏之后,指定的端口會被綁定並監聽,但是由exosip主動發起的sip消息使用的卻是一個隨機的端口號,並不是指定的端口號,包括5.0.0版本一樣會有此問題。關於這一點在exosip的源代碼有簡短的交代:
大意是exosip中的tcp消息進出使用的是兩個不同的socket。
tcp_tl_send_message

1.2. 宏 SOCK_CLOEXEC

在exosip 5.1.2版本中加入了這個預編譯宏,暫且先不詳盡關於此宏的作用。5.0.0中沒有此宏。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM