What is easySIPp?
A web-based frontend for SIPp, making SIP call testing accessible via a modern interface.
Make directory
mkdir easip
Create a docker compose file
vi docker-compose.ym
And paste this content there
version: '3.8'
services:
easysipp:
container_name: easysipp
image: krndwr/easysipp
network_mode: host
# If not using network_mode: host, map these required ports:
# ports:
# - "8089:8089" # Web GUI
# - "5060:5060/udp" # SIP Signaling
volumes:
- ./easysipp-nginx.conf:/etc/nginx/sites-available/easysipp-nginx.conf
- ./entrypoint.sh:/entrypoint.sh
- ./easySIPp/xml:/app/easySIPp/xml
cap_add:
- NET_RAW
- NET_ADMIN
entrypoint: [ "/bin/sh", "/entrypoint.sh" ]
restart: unless-stopped
Make easysipp-nginx.conf file
error_log /dev/stderr info;
access_log /dev/stdout;
server {
listen 8089;
server_name _;
location / {
proxy_pass http://127.0.0.1:8001;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
# NO "proxy_set_header Origin $http_origin;" here, let Nginx pass it by default
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options DENY;
}
# Specific location block for WebSocket connections
location /ws/ { # This path should match what your client-side JS connects to
proxy_pass http://127.0.0.1:8001; # Pass to your Uvicorn/Daphne server
proxy_http_version 1.1; # Crucial for WebSockets
proxy_set_header Upgrade $http_upgrade; # Crucial for WebSockets
proxy_set_header Connection "upgrade"; # Crucial for WebSockets
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /static/ {
alias /app/collectstatic/;
add_header Cache-Control "public, max-age=31536000, immutable";
autoindex off;
}
location /favicon.ico {
alias /app/static/favicon.ico;
}
}