AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
SIPp 테스트 도구
The SIPp testing tool
개발 도구C++ · RustGitHub @SIPp직접 설치운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
설치형 프로젝트는 배포 도메인 없이도 확인할 수 있습니다. 개인 저장소는 GitHub 로그인으로, 조직 저장소는 위의 저장소 확인 파일로 직접 확인해 주세요.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗SIPp - a SIP protocol test tool Copyright (C) 2003-2026 - The Authors
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.
See the docs/ directory. It should also be available in html format at:
https://sipp3.readthedocs.io/en/latest/
Build a local copy using: sphinx-build docs _build
This is the SIPp package. Please refer to the webpage for details and documentation.
Normally, you should be able to build SIPp by using CMake:
cmake .
make
The SIPp master branch (3.8.x) requires a modern C++17 compiler.
There are several optional flags to enable features (SIP-over-SCTP, media playback from PCAP files and the GNU Scientific Libraries for random distributions):
cmake . -DUSE_SCTP=1 -DUSE_PCAP=1 -DUSE_GSL=1
To enable TLS key logging pass -DTLS_KEY_LOGGING=1 to cmake.
TLS key logging records the TLS Session Keys to a key log file when the SSLKEYLOGFILE environment variable is set. It allows to decrypt SIPS traffic generated or received by SIPp using Wireshark. For more details see: https://wiki.wireshark.org/TLS
You need to compile with OpenSSL>=1.1.1 in order to use TLS key logging.
The TLS key log file format is described here: https://datatracker.ietf.org/doc/draft-ietf-tls-keylogfile/
Please note the security considerations ("3. Security Considerations")!
The regression tests live in regress/. Run them all with:
regress/runtests
On Linux, the tests run as many at once as there are CPUs (-j N for
another number), each in a network namespace of its own as they use
fixed ports; this needs unprivileged user namespaces (unshare -rn) and
ip. -j 1, or no such namespaces, runs them one at a time. A test
that fails among the others is run again on its own before it counts as
a failure.
A single test can be run with regress/github-#NNNN/run. The tests look
for the sipp binary in the source directory and in build/. For any
other build directory, point them at the binary with an absolute path:
SIPP=/path/to/sipp regress/runtests
SIPp can be built into a single static binary, removing the need for libraries to exist on the target system and maximising portability.
This is a fairly complicated process, and for now, it only works on Alpine Linux.
To build a static binary, pass -DBUILD_STATIC=1 to cmake.
An Alpine-based Dockerfile is provided, which can be used as a
build-environment. Build with the following commands:
git submodule update --init
docker build -t sipp -f docker/Dockerfile --output=. --target=bin .
Special arguments can be passed with --build-arg:
FULL=1 - build all optional components.DEBUG=1 - build with debug symbols.SIPp can be built in a Debian-based docker container. Unlike the Alpine build, this build is not static, and it supports wolfSSL.
To build a Debian-based docker container, run:
git submodule update --init
docker build -t sipp -f docker/Dockerfile.debian .
Special arguments can be passed with --build-arg:
FULL=1 - build all optional components.WOLFSSL=1 - build with wolfSSL (only works without FULL).DEBUG=1 - build with debug symbols.I try and be responsive to issues raised on Github, and there's a reasonably active mailing list.
sipp.1 by calling:
help2man --output=sipp.1 -v -v --no-info \
--name='SIP testing tool and traffic generator' ./sipp
git ls-files -z | grep -zv '^\.\|gtest\|gmock\|version.h' | \
tar --transform "s:^version.h:include/version.h:" \
--transform "s:^:sipp-$VERSION/:" \
--sort=name --mtime="@$(git log -1 --format=%ct)" \
--owner=0 --group=0 --null --files-from=- \
--numeric-owner -zcf sipp-$VERSION.tar.gz \
sipp.1 version.h
docker build -t sipp -f docker/Dockerfile --output=. --target=bin .
SIPp is free software, under the terms of the GPL licence (see the LICENCE.txt file for details). You can contribute to the development of SIPp and use the standard Github fork/pull request method to integrate your changes integrate your changes. If you make changes in SIPp, PLEASE follow a few coding rules:
Please stay conformant with the current indentation style (4 spaces indent, standard Emacs-like indentation). Examples:
if (condition) { /* "{" even if only one instruction */
f(); /* 4 space indents */
} else {
char* p = ptr; /* C++-style pointer declaration placement */
g(p);
}
If possible, check that your changes can be compiled on:
Thanks,
Rob Day [email protected]