Difference between revisions of "SIP balancer"

From Kolmisoft Wiki
Jump to navigationJump to search
 
(20 intermediate revisions by 4 users not shown)
Line 1: Line 1:
Currently KOLMISOFT offers a SIP balancer with multiple Asterisk server [[Implementations | solutions]]. <br>
<div align="center"><BIG>[[Image:warning.png|30px]]'''IMPORTANT! Asterisk handles non-RFC compliant SIP call flow, local IPs in the SIP/SDP packets, wrong ports in SDP media, etc. The SIP proxy does not handle all such cases and expects traffic to comply with the RFC SIP standards. So there could be problems if your endpoints send malformed SIP traffic.'''</BIG></div>
The balancer is based on the [http://opensips.org/ OpenSIPS]
<br><br>
Also called "SIP Proxy"
 
''SIP balancer is available starting from  MOR X4'' and is available only with multiple Asterisk server [[Implementations | solutions]]. Technology of SIP balancer is based on the [http://opensips.org/ OpenSIPS]<br>
 


== Benefits ==
== Benefits ==
Line 15: Line 19:
* If one Asterisk server becomes unresponsive or reached call limit, no more calls are sent to that server
* If one Asterisk server becomes unresponsive or reached call limit, no more calls are sent to that server
* A simple GUI to manage the SIP balancer.
* A simple GUI to manage the SIP balancer.
== Current Limitations (will be resolved upon request): ==


== Architecture ==
== Architecture ==


[[Image:SIP_balancer_for_docs.png]]
Possible implementation scenarios can be found [[Implementations | here]]  


== Logic ==
== Logic ==
Line 31: Line 31:
as it handles the SIP registrations. Same applies to trunks, so trunks should authorize calls from the  
as it handles the SIP registrations. Same applies to trunks, so trunks should authorize calls from the  
proxy IP.
proxy IP.
* Outgoing calls to providers are sent from Asterisk servers, so your provider should allow
* Outgoing call set-up is done by Proxy.
calls from the Asterisk server IPs.
* Incoming calls from providers should be sent to Proxy.
* Incoming calls from providers should be sent to Proxy, but the system could be adjusted to
send accept them on Asterisk servers too.
* All media requests are handled by Asterisk servers
* All media requests are handled by Asterisk servers


Line 44: Line 42:


For more servers you should use more powerful hardware.
For more servers you should use more powerful hardware.
== Limitations ==
* Only RFC2833 DTMF is supported when Proxy is in use;
* Proxy balances SIP traffic only (IAX and H323 does not go through Proxy at all);
* Only one Domain name can be used.
* If you have a system with a [https://wiki.kolmisoft.com/index.php/SIP_balancer SIP proxy], Spy functionality will not work.
<br><br>
== What else you should know ==
* Customizing system configuration files and data on the database, may affect system security and integrity. Please use only MOR GUI to manage the system.
<br><br>
== How does the call flow change after connecting SIP proxy? ==
With SIP proxy added, all SIP traffic goes through SIP Proxy, while Asterisks handle RTP media.
Customers only need to know SIP proxy IP.
If Proxy is added to an already running system, there are two approaches:
a) Update customers with new SIP proxy IP so that they would send traffic to this new IP
b) After SIP proxy installation, assign Asterisk IP to the SIP proxy server. This way, nothing will change from the customers' Perspective.
After the SIP proxy is added, all SIP communication is handled by Opensips, not Asterisk, so some SIP-related dialogs might be a bit different in subtle ways.
The advantage of adding a SIP proxy instead of simply adding a separate Asterisk is flexibility and convenience in the long run.
Once the SIP proxy is added, customers send calls to one IP, and calls are dynamically routed to Asterisks, so it is possible to add (or remove) additional Asterisks without downtime and without any changes for the customer.
Adding a separate Asterisk without Proxy will require statically assigning one or other Asterisk to each device, updating customers with new Asterisk IP.
<br><br>
= Configuration =
== Accept calls from any port ==
When SIP balancer is in use and Device/Provider type is '''SIP''' and it is IP Authenticated then near to Port input you can find "Accept calls from any port" setting.
1. By default pressed '''No''' and you can type any port you want
2. When '''Yes''' is pressed, you are not able to type any port and calls will be accepted from any port.
<br><br>
[[Image:allow_calls_from_any_port.png]]
<br><br>


= See also =  
= See also =  


* [[4 server redundant solution]]
* [[2 server redundant solution]]
* [[Implementations]]
* [[Implementations]]
* For pricing quotes contact our [http://kolmisoft.com/contacts/ sales department]
* For pricing quotes contact our [http://kolmisoft.com/contacts/ sales department]

Latest revision as of 06:21, 23 August 2023

Warning.pngIMPORTANT! Asterisk handles non-RFC compliant SIP call flow, local IPs in the SIP/SDP packets, wrong ports in SDP media, etc. The SIP proxy does not handle all such cases and expects traffic to comply with the RFC SIP standards. So there could be problems if your endpoints send malformed SIP traffic.



Also called "SIP Proxy"

SIP balancer is available starting from MOR X4 and is available only with multiple Asterisk server solutions. Technology of SIP balancer is based on the OpenSIPS


Benefits

  • Provide one unique hostname or IP for your providers/clients
  • Handle multiple DID numbers from different providers by sending them to one IP address
  • Distribute calls evenly to servers depending on the load each server can handle
  • Scalable architecture - you can add new Asterisk servers at any time or remove them

Features

  • Handle incoming calls from DIDs, trunks, providers
  • Monitoring of Asterisk server capacity - allows to set how many calls a certain Asterisk server can handle
  • If one Asterisk server becomes unresponsive or reached call limit, no more calls are sent to that server
  • A simple GUI to manage the SIP balancer.

Architecture

Possible implementation scenarios can be found here

Logic

  • All registrations and register requests are sent to the SIP balancer directly
  • In order to call any device it must be called through a DID (DID can be fake inside the system), otherwise calls

between devices will not work. When a call is made through a DID to device, that call is sent to proxy as it handles the SIP registrations. Same applies to trunks, so trunks should authorize calls from the proxy IP.

  • Outgoing call set-up is done by Proxy.
  • Incoming calls from providers should be sent to Proxy.
  • All media requests are handled by Asterisk servers

Recommended hardware

It should be similar to Recommended hardware for MOR server with minimum 2 GB RAM.

Such solution would be suitable to load the balance between 2-3 asterisk servers.

For more servers you should use more powerful hardware.

Limitations

  • Only RFC2833 DTMF is supported when Proxy is in use;
  • Proxy balances SIP traffic only (IAX and H323 does not go through Proxy at all);
  • Only one Domain name can be used.
  • If you have a system with a SIP proxy, Spy functionality will not work.



What else you should know

  • Customizing system configuration files and data on the database, may affect system security and integrity. Please use only MOR GUI to manage the system.




How does the call flow change after connecting SIP proxy?

With SIP proxy added, all SIP traffic goes through SIP Proxy, while Asterisks handle RTP media.

Customers only need to know SIP proxy IP.

If Proxy is added to an already running system, there are two approaches:

a) Update customers with new SIP proxy IP so that they would send traffic to this new IP

b) After SIP proxy installation, assign Asterisk IP to the SIP proxy server. This way, nothing will change from the customers' Perspective.

After the SIP proxy is added, all SIP communication is handled by Opensips, not Asterisk, so some SIP-related dialogs might be a bit different in subtle ways.

The advantage of adding a SIP proxy instead of simply adding a separate Asterisk is flexibility and convenience in the long run.

Once the SIP proxy is added, customers send calls to one IP, and calls are dynamically routed to Asterisks, so it is possible to add (or remove) additional Asterisks without downtime and without any changes for the customer.

Adding a separate Asterisk without Proxy will require statically assigning one or other Asterisk to each device, updating customers with new Asterisk IP.




Configuration

Accept calls from any port

When SIP balancer is in use and Device/Provider type is SIP and it is IP Authenticated then near to Port input you can find "Accept calls from any port" setting.

1. By default pressed No and you can type any port you want

2. When Yes is pressed, you are not able to type any port and calls will be accepted from any port.

Allow calls from any port.png

See also