Module: kamailio
Branch: master
Commit: 750248ca22f0b8f03373cae2a56d56c3e0ae6d81
URL: 
https://github.com/kamailio/kamailio/commit/750248ca22f0b8f03373cae2a56d56c3e0ae6d81

Author: Yasin CANER <[email protected]>
Committer: Yasin CANER <[email protected]>
Date: 2015-10-23T11:12:43+03:00

acc_radius : added radius time mode


added radius time mode for new event-timestamp . Format is seconds.microseconds

---

Modified: modules/acc_radius/acc_radius_mod.c

---

Diff:  
https://github.com/kamailio/kamailio/commit/750248ca22f0b8f03373cae2a56d56c3e0ae6d81.diff
Patch: 
https://github.com/kamailio/kamailio/commit/750248ca22f0b8f03373cae2a56d56c3e0ae6d81.patch

---

diff --git a/modules/acc_radius/acc_radius_mod.c 
b/modules/acc_radius/acc_radius_mod.c
index 5a660d6..e3be7df 100644
--- a/modules/acc_radius/acc_radius_mod.c
+++ b/modules/acc_radius/acc_radius_mod.c
@@ -74,6 +74,7 @@ static char *radius_config = 0;
 int radius_flag = -1;
 int radius_missed_flag = -1;
 static int service_type = -1;
+int rad_time_mode=0;
 void *rh;
 /* rad extra variables */
 static char *rad_extra_str = 0;
@@ -91,11 +92,12 @@ static cmd_export_t cmds[] = {
 
 
 static param_export_t params[] = {
-       {"radius_config",        PARAM_STRING, &radius_config        },
+       {"radius_config",        PARAM_STRING, &radius_config     },
        {"radius_flag",          INT_PARAM, &radius_flag          },
        {"radius_missed_flag",   INT_PARAM, &radius_missed_flag   },
        {"service_type",         INT_PARAM, &service_type         },
-       {"radius_extra",         PARAM_STRING, &rad_extra_str        },
+       {"radius_extra",         PARAM_STRING, &rad_extra_str     },
+       {"rad_time_mode",          INT_PARAM, &rad_time_mode      },
        {0,0,0}
 };
 
@@ -328,6 +330,8 @@ int acc_radius_send_request(struct sip_msg *req, acc_info_t 
*inf)
        int m=0;
        int o=0;
        int rc_result=-1;
+       double tsecmicro;
+       char smicrosec[18];
        
        send=NULL;
 
@@ -347,9 +351,18 @@ int acc_radius_send_request(struct sip_msg *req, 
acc_info_t *inf)
        av_type = req->REQ_METHOD; /* method */
        ADD_RAD_AVPAIR( RA_SIP_METHOD, &av_type, -1);
 
-       /* unix time */
-       av_type = (uint32_t)inf->env->ts;
-       ADD_RAD_AVPAIR( RA_TIME_STAMP, &av_type, -1);
+       // Event Time Stamp with Microseconds
+        if(rad_time_mode==1){
+                gettimeofday(&inf->env->tv, NULL);
+                
tsecmicro=inf->env->tv.tv_sec+((double)inf->env->tv.tv_usec/1000000.0);
+                //radius client doesn t support double so convert it
+                sprintf(smicrosec,"%f",tsecmicro);
+                ADD_RAD_AVPAIR(RA_TIME_STAMP, &smicrosec, -1);
+        }else{
+                av_type = (uint32_t)inf->env->ts;
+                ADD_RAD_AVPAIR(RA_TIME_STAMP, &av_type, -1);
+        }
+
 
        /* add extra also */
        o = accb.get_extra_attrs(rad_extra, req, inf->varr+attr_cnt,


_______________________________________________
sr-dev mailing list
[email protected]
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev

Reply via email to