![[phone_server_diagram.png]]
- **Customer Phone** - We use Yealink phones primarily, though we will work with Polycom, Grandstream, and more VoIP phones. 
    

- **Customer Router** (*Edgemarc*) - Edgemarc is a brand of router that is specifically designed to handle VoIP and particularly NATed VoIP traffic. The current model we use is a 2900e, and there are some older 4550 models in the field as well. 
    

- **Phone Server Router** (*PfSense*) - The PfSense Router will route traffic from the Edgemarc or customer router (based on it's public IP address) directly to the customer's phone server in our NOC. It is important because we can have many (100+) phone servers behind one PfSense in our datacenter, while only using 1 public IP address. 
    

- **Phone Server** (*FreePBX*) - The FreePBX phone server is our primarily used phone server for customers. It historically ran on CentOS Linux, and moving forward will be on Debian Linux. 
    

- **Head-End** (*Kamailio*) - The Kamailio server, also referred to as a "Kam" or "Headend" server. It routes all incoming and outgoing calls for our datacenters. There are two Kamailio servers in each datacenter for failover and load balancing. The number routing database can be interfaced with through RAMP. 
    

- **DSIP Router** - The DSIP Router is a Dynamic SIP router that routes SIP connections from phones based on the hostname they are trying to connect to. For example, If I was trying to connect to pbx3.ccproxy.net, the DSIP router would see that URL and automatically route packets from my phone to the pbx3 phone server. This allows us to have roaming clients like cell phones connect to servers over the public internet without needing to constantly whitelist a dynamic IP address. It also helps with security as the PBXs do not have a public IP address. 
    

- **SIP Carrier** (*Bandwidth*) - Our SIP Carrier connects our VoIP Traffic to the global PSTN network.