chai-sip

安装

$ npm install chai-sip --save

简介

Chai 插件简化了为 CI/CD 管道编写的 Node 中 SIP 服务器测试的开发。它支持发送 SIP 请求并根据响应进行断言。

它还支持需要发送 RTP 媒体的测试用例,因为它会将音频发送到发送的 SIP 邀请请求的 200 OK 所接收的 SDP 中的目的地。

当前版本支持

  • 使用以下参数发送 SIP 邀请请求
    • SIP 请求 URI
    • 自定义标题和值
    • 内容类型
    • 请求正文
  • 使用以下参数发送 SIPRec 邀请请求的高级 API
    • SIP 请求 URI
    • 自定义标题和值
    • 内容类型
    • 请求正文
  • 使用以下参数发送 SIP 消息请求
    • SIP 请求 URI
    • 自定义标题和值
    • 内容类型
    • 请求正文
  • 从临时响应构建 SIP 取消请求
  • 等待传入 SIP 请求
  • 在已建立的对话中发送 SIP 拜访请求的高级 API
  • 最终 SIP 响应时的回调
  • 临时 SIP 响应时的回调
  • 支持使用 SIP 摘要身份验证的代理身份验证
  • 支持通过 UDP、TCP 和 TLS 传输的 SIP
  • 支持具有多个代理跃点和记录路由的部署

除了能够发送和接收 SIP 请求外,它还提供了以下新的断言

  • to.be.method() - 用于断言接收到的 SIP 请求方法类型,例如 request.to.be.method("INVITE")
  • to.be.status() - 用于断言接收到的 SIP 响应状态代码,例如 response.to.be.status(200)

如果未将标题、内容类型和正文传递给请求函数,则插件将生成适用于基本测试场景的默认标题和正文。

该插件使用 sip.js,请查看其 文档 以更详细地了解配置选项以及 SIP 请求和响应模型以及标题配置。

如果您需要对测试进行故障排除并获取有关正在发生情况的更多信息,请将 LOG_LEVEL 环境变量设置为 verbose 值,例如

$ export LOG_LEVEL=verbose

入门

查看 此存储库 中的示例。

该项目由 iotcomms.io 赞助。