« Previous - Version 9/56 (diff) - Next » - Current version
Redmine Admin, 12/16/2008 11:34 am


Call Control

Image(CallControl.png, align=right)

Call Control is an application that can be used together with OpenSIPS
callcontrol module and CDRTool rating engine to limit the duration of SIP
sessions based on a prepaid balance.

It does this by sending BYE messages to both SIP end-points, if the session
exceeds its maximum session limit or if Call Control receives a command to
forcefully close the call from outside. It will however not send these fake
BYE messages if the call is normally terminated by either party involved in
the conversation, before the call maximum allowed time is exceeded.

The software is able to handle parallel sessions for a single user balance.

=== Installation ===

You need to setup the following components:

  • OpenSIPS callcontrol module, version >=1.5
  • Call Control application (this project)
  • CDRTool rating engine, version >=6.7.0

=== OpenSIPS configuration === {{{
loadmodule "call_control.so"
modparam("call_control", "disable", 0)

route {
... # you need to call this function at the first INVITE # everything else is automatic
if ((method=="INVITE" && !has_totag())) {
call_control();
}

...
}

}}}

=== Call Control configuration ===

For all configuration options and their description see [source:config.ini.sample config.ini.sample]

{{{
[CDRTool]
; connection to cdrtool rating engine for MaxSessionTime() and DebitBalance()
address = cdrtool.hostname

[RadiusDatabase]
; connection to Radius database to detect timeout session. If you use the MediaProxy dialog mode, is not necessary
; user = radius
; password = password
; host = db
; database = radius
table = radacct%Y%m

[OpenSIPS]
; connection to OpenSIPS call_control module
;socket_path = /var/run/opensips/socket
;max_connections = 10
}}}

=== Prepaid engine API ===

http://download.ag-projects.com/CDRTool/doc/PREPAID.txt

CallControl.png (46.8 kB) Adrian Georgescu, 01/09/2009 11:40 am