[OpenSIPS-Users] How to get call duration (AcctSessionTime ) in OPENSIPS
Tao Vu Hoang
taovuhoang at vnn.vn
Wed Aug 11 03:41:45 CEST 2010
-----Original Message-----
From: users-bounces at lists.opensips.org [mailto:users-bounces at lists.opensips.org] On Behalf Of Bogdan-Andrei Iancu
Sent: Tuesday, August 10, 2010 1:17 PM
To: OpenSIPS users mailling list
Subject: Re: [OpenSIPS-Users] How to get call duration ( AcctSessionTime ) in OPENSIPS
Hi Tao,
the accounting in opensips is transaction based and not call base -
which means opensips will generate (for each call) a START and STOP acc
events (when the call starts and when the call ends).
There is no variable to automatically provide the call duration (as
there is no call state) - each acc event has its own timestamp, so the
RADIUS server can calculate the duration based on the INVITE and BYE
timestamps.
Regards,
Bogdan
Hi Bogdan!
I know i can calculate call duration based on INVITE and BYE
timestamps , but because i don't control radius ( steel belt radius ) so
i have to send
AcctSessionTime = "Call Duration" ( Because at gateway (PSTN) can send AcctSessionTime ).
Now i can have "Call Duration" = $Ts ( When i recived BYE ) - start_time ( i get in table : dialog )
I get start_time in table dialog by :
When i recived ACK i use avp_db_query to get start_time from table dialog in database :OPENSIPS
avp_db_query("select start_time from dialog where callid='$ci'","$avp(s:time)");
store_dlg_value("starttime","$avp(s:time)"); ===> it has $dlg_val(starttime) = "start_time" persistent in dialog
When i recived BYE, I execute : ($Ts - $dlg_val(starttime)) BUT result = NULL ( $Ts = 1281435253& $dlg_val(starttime) = 1281436257 )
I think because $Ts type timestamp not type Interger ==> But i don't know how to convert type , can someone help me ?
> ----------------------------------------------------------------------
> Message: 1
> Date: Tue, 10 Aug 2010 15:57:41 +0300
> From: Bogdan-Andrei Iancu<bogdan at voice-system.ro>
> Subject: Re: [OpenSIPS-Users] How to get call duration (
> AcctSessionTime ) in OPENSIPS
> To: OpenSIPS users mailling list<users at lists.opensips.org>
> Message-ID:<4C614CC5.8050906 at voice-system.ro>
> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>
> Hi Alex,
>
> Of course, if you use the dialog support - anyhow, we have a ready patch
> for acc module to do accounting based on dialog support (directly CDRs).
>
> Regards,
> Bogdan
>
> Alex Massover wrote:
>
>> Hi,
>>
>> $DLG_lifetime will not work?
>>
>> -----Original Message-----
>> From: users-bounces at lists.opensips.org [mailto:users-bounces at lists.opensips.org] On Behalf Of Bogdan-Andrei Iancu
>> Sent: Tuesday, August 10, 2010 1:17 PM
>> To: OpenSIPS users mailling list
>> Subject: Re: [OpenSIPS-Users] How to get call duration ( AcctSessionTime ) in OPENSIPS
>>
>> Hi Tao,
>>
>> the accounting in opensips is transaction based and not call base -
>> which means opensips will generate (for each call) a START and STOP acc
>> events (when the call starts and when the call ends).
>>
>> There is no variable to automatically provide the call duration (as
>> there is no call state) - each acc event has its own timestamp, so the
>> RADIUS server can calculate the duration based on the INVITE and BYE
>> timestamps.
>>
>> Regards,
>> Bogdan
>>
>> Tao Vu Hoang wrote:
>>
>>
>>> Hi All!
>>>
>>> I configure Opensips send Accounting to Steel Belt Radius 4, but i
>>> can't get call duration time ( AcctSessionTime ) , i don't know variable
>>> of opensips container call duration time to definition in file :
>>> opensips.cfg like this :
>>> modparam("acc", "aaa_extra", "User-Name=$Au; \
>>> Calling-Station-Id=$from; \
>>> Called-Station-Id=$to; \
>>> Sip-Translated-Request-URI=$ru; \
>>> Sip-RPid=$avp(s:rpid); \
>>> Source-IP=$avp(s:source_ip); \
>>> Source-Port=$avp(s:source_port); \
>>> SIP-Proxy-IP=$avp(s:sip_proxy_ip); \
>>> Canonical-URI=$avp(s:can_uri); \
>>>
>>> Billing-Party=$avp(s:billing_party); \
>>>
>>> Divert-Reason=$avp(s:divert_reason); \
>>> User-Agent=$hdr(user-agent); \
>>> Contact=$hdr(contact); \
>>> Event=$hdr(event); \
>>> ENUM-TLD=$avp(s:enum_tld)")
>>>
>>> I use Opensips 1.6.3 to use function :
>>> get_dialog_info("start_time","$avp(s:starttime)","callid","$ci");
>>> to get Startime& Stoptime of one Call from table DIALOG in database
>>> OPENIPS but don't success, maybe i don't know how to use it.
>>> I also use module : EXEC to get Starttime& Stoptime from
>>> external cammand but don't success.
>>> Can someone help me ? Or recommend me how to get call duaration
>>> (AcctSessionTime).
>>> Thanks a lot.
>>>
>>>
>>>
>>> _______________________________________________
>>> Users mailing list
>>> Users at lists.opensips.org
>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>
>>>
>>>
>>>
>>
>>
>>
>
>
More information about the Users
mailing list