2010-03-04 165 views
17

我正在尋找一個測試SIP調用的工具。從SIP設備A呼叫SIP設備B並報告結果的平臺...SIP測試平臺

任何想法?仿真平臺將是理想的。

日Thnx, cateof

+0

出於好奇,什麼是SIP? – NotMe 2010-03-04 14:50:57

+0

會話啓動協議,用於VOIP呼叫信令(呼叫,掛斷,添加其他人對話等) – Marius 2010-03-04 14:53:33

回答

9

在SourceForge檢出SIPp。它有很多不同的測試場景,可以測試哪些UAS模式(服務器)可能會讓你感興趣,並且似乎允許INVITE,BYE等。

+0

看起來不錯。這似乎足以滿足我的需求。 – cateof 2010-03-04 15:15:51

+0

如果您正在尋找基於GUI的免費SIP測試工具,您可能想參考加載乘數(https://loadmultiplier.com)。 SIP功能測試是免費的,有限的負載測試是免費的。 – Kamal 2016-03-17 16:46:47

-2

什麼你想從該呼叫是否獲得通過測試分開?你不能簡單地從設備A撥打設備B,看看你是否可以通過連接進行通話?如果你想看看發送的數據包,你應該看看wireshark

+0

我想測試複雜的場景。例如A呼叫B,B轉移到C等等。不過,我不想在我的桌面上安裝5個SIP軟電話。 – cateof 2010-03-04 14:54:16

26

有許多解決方案。一些比別人更壞。以下是我在尋找合適自動化測試解決方案基礎時發現的內容的簡要總結。

,如果你想一次只能一個對話框這沒關係。這裏不起作用的是複雜的解決方案,您需要同步2個呼叫線路,在同一場景中進行註冊,呼叫和在線狀態。如果你這樣做,你將最終爲每個對話元素單獨運行多個sipp場景。 Sipp也根本沒有媒體轉移的規模。儘管它是多線程的,但它阻止了它同時運行 - 例如,如果您看到htop例如,您會看到sipp從未穿過100%線。大約50個媒體通話它開始削減音頻並採取機器的所有CPU。

它有時會丟失發生的事情,一些甚至不屬於該呼叫的數據包可能無法通過測試。它有一些愚蠢的錯誤,比如頭文件區分大小寫。

基於Ruby的解決方案,你必須寫在Ruby中您自己的方案。它有自己的SIP堆棧和大量的測試。雖然它通常很好,並且很好地處理了很多複雜的場景,但它的設計非常糟糕。錯誤很難追蹤,一個星期後,我有超過10個補丁,我只是爲了讓它做基本的東西。後來我瞭解到一些場景只是用不同的方式寫的,但是SIPr開發人員並沒有真正的響應,並且花了很多時間才找到它。如果一個難題同步許多代理的行爲,因爲他們寧願使用基於事件的,但仍然是單線程的版本......它只是讓你過分關注「這種情況發生的順序,我能處理它正確「,而不是寫實際的測試。

商業解決方案。由於評估版本中缺少基本功能,所以從未進行過適當的測試,並且很難將這麼多錢花在不確定的工作上......

基於Java的溶液重用耆那-SIP棧。它幾乎可以做任何場景,並且相當不錯。它試圖使一切都基於非阻塞/動作,導致SIPr具有相同的問題,但在這種情況下,使其成爲並行/線程是微不足道的。它有自己的錯誤分享,所以不是所有的東西在香草套裝中都能很好地工作,但大部分東西都是可以修補的。開發人員似乎忙於其他項目,所以很長一段時間沒有更新。如果您需要傳輸,存在,對話信息,自定義消息,RTP處理等 - 您必須編寫自己的修改來支持它們。這對性能測試並不好。

如果你像我這樣的Java厭惡者,可以通過Jython,JRuby或任何其他JVM語言以簡單的方式使用它。

最後,我選擇了SIPunit作爲最壞的/邪惡的/無法使用的解決方案。這絕不是完美的,但是......它在大多數情況下都有效。如果我再次用這些知識來完成項目,我可能會重用SIPp配置,並嘗試編寫我自己的,理性的解決方案,使用適當的線程 - 但這對於一個人來說至少需要一年半的時間才能完成足夠用於生產。

+0

+1爲好答案!我使用SipUnit和SIPp。 – Paaske 2012-08-10 07:18:27

2

嘗試SIPInspector。這是一個基於JAVA的實用程序來重新創建不同的SIP信號情況。它可以播放RTP並對你的系統進行壓力測試。由於使用JAVA編寫,因此它具有高度的便攜性,適用於不同的操作系統。用戶比SIPp更容易。