Sign inSign up

orangemeow/sipproxy

By orangemeow

Updated about 1 year ago

Image
0

264

orangemeow/sipproxy repository overview

SipProxy

A proxy tool to wrap SIP/RTP traffic in a reliable manner.

Use case

  1. You have a FreePBX server, and several SIP clients in a LAN.
  2. Setup SipProxy(server) on the same machine(and same network) as FreePBX, configure it as upstream SIP server.
  3. Setup SipProxy(client) in the same network as SIP clients, configure SIP clients to use it as SIP server(plaintext TCP transport).

Docker Usage

As server:

docker run -itd --network=host -v /somewhere/config.json:/app/config/config.json -e MODE=server --restart=always --name sipproxy orangemeow/sipproxy:0.0.1

As client:

docker run -itd --network=host -v /somewhere/config.json:/app/config/config.json -e MODE=client --restart=always --name sipproxy orangemeow/sipproxy:0.0.1

Configuration

config.json

{
  "server": {
    "listen_ip": "0.0.0.0",  # IP to listen on, for ProxyClient to connect
    "listen_port": 9050,  # UDP Port to listen on, for ProxyClient to connect
    "channel_key": "some_password",
    "target_sip_host": "172.20.0.2", # Upstream SIP server's IP address(as a SIP server)
    "target_sip_port": 5160, # Upstream SIP server's SIP TCP port
    "proxy_rtp_listen_ip": "0.0.0.0", # ProxyServer's listen IP(as a RTP client)
    "rtp_port_start": 23211, # ProxyServer's RTP range start port(to communicate with upstream SIP server)
    "target_rtp_host": "172.20.0.2", # Upstream SIP server's IP address(as a RTP server)
    "target_rtp_port_start": 52011, # Upstream SIP server's RTP range start port
    "rtp_port_count": 101, # Upstream SIP server's RTP range length(How many RTP ports to use)
    "log_rtp_packets": false
  },
  "client": {
    "server_host": "45.203.33.22",  # ProxyServer public IP
    "server_port": 9050,  # ProxyServer listen UDP port
    "channel_key": "some_password",
    "local_sip_listen_ip": "0.0.0.0",  # ProxyClient's listen IP(as a SIP server)
    "local_sip_listen_port": 5160,  # ProxyClient's SIP TCP port
    "local_rtp_listen_ip": "0.0.0.0", # ProxyClient's listen IP(as a RTP server)
    "rtp_port_start": 33211, # ProxyClient's RTP range start port
    "rtp_port_count": 101, # ProxyClient's RTP range length(How many RTP ports to use)
    "rtp_advertised_ip": "192.168.0.31", # ProxyClient will tell SIP clients to reach it by this IP 
    "log_rtp_packets": true
  }
}

Tag summary

Content type

Image

Digest

sha256:99ec761f8

Size

124.1 MB

Last updated

about 1 year ago

docker pull orangemeow/sipproxy:0.0.5