Dear Sir
I have a problem with the billing system regarding to SIP Server,
My Problem can described as the following:
- If any UA's in SIP system want to make an International Call, he will dial the number and start in the session, and the Accounting start when recieving accounting request.
But, If this UA suddenly have an Internet Connection Failure, So the Billing system will not recieve a bye message, and will not stop Accounting, And this Is the problem.
So, Do you have an Idea to solve this problem.
Thank you
Amr
Accounting Problem
Moderator: Brekeke Support Team
-
- Posts: 528
- Joined: Tue Sep 20, 2005 9:10 am
- Location: Tannersville, Pennsylvania
Amr,
You bring up a very good point. However, it is not totally correct that the billing system does not receive any record when call terminates by disconnection. The Radius plug in and the Brekeke Sip log does record the end of the call. But the call has two parts.
1) To PBX (ua sends the call to the pbx)
2) From PBX (PBX sends the call to itsp)
It is only recording the end of the "From PBX" becuase until it gets an ACK back from the ua (who let's say unplugged their power to finish the call) they don't record the stop of the call. In other words the record is generated upon receipt of ACK from the UA to the PBX's BYE. Since the UA doesn't answer the PBX doesn't record the end of the call on the TO PBX Leg.
Usually we build billing systems based on the "To PBX" because it has the user number and the number being called which is the primary information you need to bill a call. The "From PBX" has the caller ID and the called number and since the caller ID is a less reliable way of billing because of spoofing and such I chose "To PBX" . What I never realized until I tested to help you out was that I miss the calls where the ua unplugs their unit to finish the call. I very much appreciate your bringing this up. Thank You!
Now, to focus on the solution to this problem.
When a call ends usually to to pbx and from pbx records are recorded. Since in this scenario only one is recorded our billing systems need to pay attention to both records, not just "to pbx" I found the common link between the two is acct_session_id. This value is the same for both records so a billing system must check both records and if it only finds one must do a lot of work to try to do the bill for this call.
I am talking about the records sent by the radius plug in to a radius server. The Sip logs does include both records, it's just the "from pbx" record takes a while to get written while the sip server keeps sending bye's to the ua that is unplugged. Eventually the record gets written to the sip log with a "disconected by system message".
The only other issue is that the call doesn't end immediately when the connection is lost. If you want it to end sooner than it is then look at the rtp session timeout settings in the sip server and pbx. When these numbers are high, usually the call ends when your itsp's setting on their server detects a loss of transmission which is usuall about 30-60 seconds.
You bring up a very good point. However, it is not totally correct that the billing system does not receive any record when call terminates by disconnection. The Radius plug in and the Brekeke Sip log does record the end of the call. But the call has two parts.
1) To PBX (ua sends the call to the pbx)
2) From PBX (PBX sends the call to itsp)
It is only recording the end of the "From PBX" becuase until it gets an ACK back from the ua (who let's say unplugged their power to finish the call) they don't record the stop of the call. In other words the record is generated upon receipt of ACK from the UA to the PBX's BYE. Since the UA doesn't answer the PBX doesn't record the end of the call on the TO PBX Leg.
Usually we build billing systems based on the "To PBX" because it has the user number and the number being called which is the primary information you need to bill a call. The "From PBX" has the caller ID and the called number and since the caller ID is a less reliable way of billing because of spoofing and such I chose "To PBX" . What I never realized until I tested to help you out was that I miss the calls where the ua unplugs their unit to finish the call. I very much appreciate your bringing this up. Thank You!
Now, to focus on the solution to this problem.
When a call ends usually to to pbx and from pbx records are recorded. Since in this scenario only one is recorded our billing systems need to pay attention to both records, not just "to pbx" I found the common link between the two is acct_session_id. This value is the same for both records so a billing system must check both records and if it only finds one must do a lot of work to try to do the bill for this call.
I am talking about the records sent by the radius plug in to a radius server. The Sip logs does include both records, it's just the "from pbx" record takes a while to get written while the sip server keeps sending bye's to the ua that is unplugged. Eventually the record gets written to the sip log with a "disconected by system message".
The only other issue is that the call doesn't end immediately when the connection is lost. If you want it to end sooner than it is then look at the rtp session timeout settings in the sip server and pbx. When these numbers are high, usually the call ends when your itsp's setting on their server detects a loss of transmission which is usuall about 30-60 seconds.
-
- Posts: 54
- Joined: Sun Nov 19, 2006 3:50 am
- Location: Kuwait
-
- Posts: 54
- Joined: Sun Nov 19, 2006 3:50 am
- Location: Kuwait
-
- Posts: 528
- Joined: Tue Sep 20, 2005 9:10 am
- Location: Tannersville, Pennsylvania