chai-sip

安裝

$ npm install chai-sip --save

簡介

Chai 外掛程式,簡化在 Node 中編寫的 SIP 伺服器測試,適用於 CI/CD 流程。它支援傳送 SIP 請求並根據回應進行斷言。

它也支援需要傳送 RTP 媒體的測試案例,因為它會將音訊傳送到在對傳送的 SIP invite 請求回覆 200 OK 時收到的 SDP 中指定的目的地。

目前版本支援

  • 傳送具有以下參數的 SIP Invite 請求
    • SIP 請求 URI
    • 自訂標頭和值
    • Content-type
    • 請求主體
  • 具有以下參數的進階 API,用於傳送 SIPRec Invite 請求
    • SIP 請求 URI
    • 自訂標頭和值
    • Content-type
    • 請求主體
  • 具有以下參數的 SIP Message 請求
    • SIP 請求 URI
    • 自訂標頭和值
    • Content-type
    • 請求主體
  • 從臨時回應建立 SIP Cancel 請求
  • 等待接收 SIP 請求
  • 在已建立的對話中傳送 SIP Bye 請求的進階 API
  • 最終 SIP 回應的回呼
  • 臨時 SIP 回應的回呼
  • 支援使用 SIP 摘要驗證進行 Proxy 驗證
  • 支援透過 UDP、TCP 和 TLS 傳輸的 SIP
  • 支援具有多個 Proxy 跳躍和 Record-Route 的部署

除了能夠傳送和接收 SIP 請求外,它還提供以下新的斷言

  • to.be.method() - 用於斷言收到的 SIP 請求的方法類型,例如 request.to.be.method("INVITE")
  • to.be.status() - 用於斷言收到的 SIP 回應的狀態碼,例如 response.to.be.status(200)

如果沒有將標頭、content-type 和主體傳遞給 request 函式,外掛程式將會產生預設的標頭和主體,這對於基本測試情境很有用。

此外掛程式使用 sip.js,請查看其文件,以更詳細地了解設定選項以及 SIP 請求和回應模型和標頭設定。

如果您需要對測試進行疑難排解並獲取有關正在發生的事情的更多資訊,請將 LOG_LEVEL 環境變數設定為 verbose 值,例如

$ export LOG_LEVEL=verbose

開始使用

請查看此儲存庫中的範例。

此專案由iotcomms.io贊助。