最近在給自己開發的SIP協議棧增加了TCP傳輸,需要找其他SIP客戶端測試。免費的xlite版本只能使用UDP,但專業版eyeBeam可以指定UDP、TCP或TLS。
不知道eyeBeam使用的什麼SIP協議棧,TCP存在下面的問題:
由eyeBeam發起呼叫,Invite是用TCP傳輸的,對端順着這個連接回100,180,200,這時候eyeBeam應該在這個同樣的TCP連接上發送ACK消息,可eyeBeam卻用UDP去發送這個ACK消息。
因爲通常支持TCP和UDP的SIP服務器,會同時偵聽相同的UDP和TCP端口(一般都是5060),UDP返回的ACK也照樣能收到,因此這個Bug較難發現。
我是在eyeBeam的log文件發現這個問題,後來搜索到有個老外在幾年前在官方論壇上也提出這個問題,但沒有人搭理。
我後來安裝較新的1.5.20版本的eyeBeam這個bug依然存在。