i added my sample. repor_ack is setted in acc. i set flags for each INVITE packet.
#!define FLT_ACC 1
#!define FLT_ACCMISSED 2
#!define FLT_ACCFAILED 3
#!ifdef WITH_ACCDB
modparam("acc", "cdr_enable", 1)
modparam("acc", "early_media", 0)
modparam("acc", "report_ack", 1)
modparam("acc", "report_cancels", 1)
modparam("acc", "detect_direction", 0)
modparam("acc", "db_url", DBURLCDR)
modparam("acc", "log_flag", FLT_ACC)
modparam("acc", "db_missed_flag", FLT_ACCMISSED)
modparam("acc", "db_table_missed_calls", "missed_calls")
modparam("acc", "db_flag", 1)
modparam("acc", "db_missed_flag", 3)
modparam("acc", "acc_time_column", "calldatetime")
modparam("acc", "time_mode", 2)
modparam("acc", "time_exten", "micorsecs")
modparam("acc", "time_attr", "seconds")
modparam("acc",
"db_extra","src_user=$fU;src_domain=$fd;src_ip=$si;dst_user=$rU;dst_domain=$rd;src_ousername=$avp(poparty);networkdatetime=$avp(networkdatetime);dst_ouser=$avp(ptparty);provider=$avp(pprovider);m_id=$avp(maliyet_id);tibtip=$avp(tibtip);src_userid=$avp(userid);dst_userid=$avp(dst_userid);flags=$avp(ucrflag);op_kodu=$avp(op_kodu);lifetime=$avp(i:77);uniqueid=$avp(unique_id)")
#!endif
#!ifdef WITH_RAD
modparam("acc_radius",
"radius_config","/etc/radiusclient-ng/radiusclient.conf")
modparam("acc_radius", "radius_flag", FLT_ACC)
modparam("acc_radius", "radius_missed_flag", FLT_ACCMISSED)
modparam("acc_radius", "service_type", 15)
modparam("acc_radius", "radius_extra",
"src_ip=$si;Sip-Uri-User=$fu;provider=$avp(pprovider);uniqueid=$avp(unique_id);src_user=$fU;dst_user=$rU;dst_domain=$rd;src_ousername=$avp(poparty);networkdatetime=$avp(networkdatetime);dst_ouser=$avp(ptparty);m_id=$avp(maliyet_id);tibtip=$avp(tibtip);src_userid=$avp(userid);dst_userid=$avp(dst_userid);flags=$avp(ucrflag);op_kodu=$avp(op_kodu);lifetime=$avp(i:77)")
modparam("misc_radius", "radius_config",
"/etc/radiusclient-ng/radiusclient.conf")
modparam("misc_radius", "group_service_type", 12)
modparam("misc_radius", "uri_service_type", 10)
modparam("misc_radius", "caller_service_type", 30)
modparam("misc_radius", "callee_service_type", 31)
#Arayan
modparam("misc_radius", "caller_extra",
"Calling-Station-Id=$ci;Acct-Status-Type=$avp(ucrflag);Acct-Multi-Session-Id=$rU;Acct-Session-Id=$avp(servis)")
#Aranan
modparam("misc_radius", "callee_extra",
"Called-Station-Id=$ci;Acct-Status-Type=$avp(ucrflag);Acct-Multi-Session-Id=$rU;Acct-Session-Id=$avp(servis)")
modparam("misc_radius", "uri_extra",
"Called-Station-Id=$tu")
modparam("misc_radius", "common_response", 0)
#!endif
# Handle requests within SIP dialogs
route[WITHINDLG] {
if (has_totag()) {
# sequential request withing a dialog should
# take the path determined by record-routing
if (loose_route()) {
route(DLGURI);
if (is_method("BYE")) {
setflag(FLT_ACC); # do accounting ...
setflag(FLT_ACCFAILED); # ... even if the transaction
fails
}
else if ( is_method("ACK") ) {
# ACK is forwarded statelessy
route(NATMANAGE);
}
else if ( is_method("NOTIFY") ) {
# Add Record-Route for in-dialog NOTIFY as per RFC 6665.
record_route();
}
route(RELAY);
...
---
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/266#issuecomment-125192524