-
Notifications
You must be signed in to change notification settings - Fork 181
DiameterBase
Diameter Event Charging service based on Location Service that performs call charging at a fixed-rate (event charging). When the call is initiated there's a debit of 10.0 euros. In case of the call being rejected or the caller hangs up before an answer is received, that value is refunded into the user account.
The steps performed by the application and container are as follows:
* Alice makes a call to sip:receiver@sip-servlets.com. The INVITE is received by the servlet container *which sends the debit request to the Charging Server* and invokes the location service * The location service determines, using non-SIP means, where the callee (receiver) is registered with two locations, identified by, say, two SIP URIs (sip:receiver@127.0.0.1:5090 and sip:receiver@127.0.0.1:6090). * The service proxies to those two destinations in parallel, without record-routing, and without the supervised mode. * Once one of the destinations return 200 (OK), the other branch is cancelled by the container. * The 200 is forwarded upstream to Alice and the call setup is completed as per usual. * *If none of the destinations accepts the call, a Diameter Accounting-Request for refund is sent to the Diameter Charging Server in order to credit the 10.0 euros debited.*
Download the latest version of the war file corresponding to this example from here
Drop the downloaded war file into your tomcat_home/webapps directory or jboss_home/server/default/deploy directory Get the corresponding dar configuration file.
To understand what the dar configuration file is used for, check the Application Router Documentation .
Drop it in your tomcat_home/conf/dars directory or jboss_home/server/default/conf/dars directory.
To use this dar file for this service, specify in the Service xml tag, darConfigurationFileLocation attribute of the tomcat_home/conf/server.xml file or jboss_home/server/default/deploy/jboss-web.deployer/server.xml , the following : conf/dars/diametereventcharging-dar.properties
You can now run your container (Tomcat or Jboss).
Please check out the speed dial example located under this location from the svn repository. Just call mvn clean install war:inplace to create the war file in the target directory
This example must be run under JBoss.
You will also need Ericsson SDK Charging Emulator v1.0.
Run the Charging Emulator (PPSDiamEmul.jar) and configure it like this:
Peer Id: aaa://127.0.0.1:21812 Realm: mobicents.org Host IP: 127.0.0.1
http://www.mobicents.org/config_options.png
Start two SIP Phones.
One phone should be setup as sip:receiver@sip-servlets.com on ip address 127.0.0.1 and port 5090
The other phone can be setup as anything.
The SIP phone doesn't have to be registered.
We recommend using Linphone, Twinkle or WengoPhone.
From the second phone, make a call to sip:receiver@sip-servlets.com you should have the other phone ringing.
You should see there is one first request, right after the invite and before the other party accept/reject the call, sent to the Charging Emulator, that's when the debit is made. In case the call is rejected, or the caller gives up, there's a new Diameter Request sent which will be the refund of the unused value. In case the call is accepted, nothing else will happen, related to Diameter.
You can see the user balance in the emulator: in the menu Config > Account > Click on "00001000-Klas Svensson" and watch the balance. Stretch the window down to see the history.
Please note that this is not the most correct way to do charging, as Diameter provides other means such as unit reservation, but only as purpose of a demo, where you can see debit and refund working. Also, this is a fixed price call, no matter what the duration. You can also have it using time-based charging.