Hello, Daniel-Constantin!

I see attached two patches:

docs.patch - some documentation changes

functions.patch: 
+ patch 'bout IPv4 (ipaddr) attributes
+ in radius_load_callee_avps/radius_load_caller_avps when
  common_response set 1, avp's set even in negative radius response
  (usable for error handle).


Looks like I successfully combine kamailio and abills via radius.

--
 WBR, Victor
  JID: coy...@bks.tv
  JID: coy...@bryansktel.ru
  I use FREE operation system: 3.9.2-calculate GNU/Linux
diff --git a/modules/misc_radius/functions.c b/modules/misc_radius/functions.c
index 7a2468b..50c63cf 100644
--- a/modules/misc_radius/functions.c
+++ b/modules/misc_radius/functions.c
@@ -196,11 +196,12 @@ static void generate_avps(struct attr *attrs, VALUE_PAIR* received)
 	do {								\
 		if ((_len) != 0) {						\
 			if ((_len) == -1) {						\
-				if (_attrs[_attr].t != PW_TYPE_INTEGER) {		\
-					LM_ERR("attribute %d is not of type integer\n",	\
-							_attrs[_attr].v);				\
-					goto error;						\
-				}							\
+				if (_attrs[_attr].t != PW_TYPE_INTEGER) \
+                                if (_attrs[_attr].t != PW_TYPE_IPADDR) { 		\
+                                    LM_ERR("attribute %d is not of type integer or ipaddr\n",	\
+				    _attrs[_attr].v);				\
+				    goto error;						\
+				 }							\
 			}								\
 			if (!rc_avpair_add( rh, &send, _attrs[_attr].v, _val, _len, 0)) { \
 				LM_ERR("failed to add %s, %d\n", _attrs[_attr].n, _attr); \
@@ -274,6 +275,7 @@ int radius_load_caller_avps(struct sip_msg* _m, char* _caller, char* _s2)
 		return 1;
 	} else {
 		rc_avpair_free(send);
+               if (common_response) generate_avps_rad(received);
 		rc_avpair_free(received);
 #ifdef REJECT_RC
 		if (res == REJECT_RC) {
@@ -359,6 +361,7 @@ int radius_load_callee_avps(struct sip_msg* _m, char* _callee, char* _s2)
 		return 1;
 	} else {
 		rc_avpair_free(send);
+               if (common_response) generate_avps_rad(received);
 		rc_avpair_free(received);
 #ifdef REJECT_RC
 		if (res == REJECT_RC) {
diff --git a/modules/misc_radius/doc/misc_radius_admin.xml b/modules/misc_radius/doc/misc_radius_admin.xml
index aff0973..d39cd06 100644
--- a/modules/misc_radius/doc/misc_radius_admin.xml
+++ b/modules/misc_radius/doc/misc_radius_admin.xml
@@ -307,18 +307,35 @@ modparam("misc_radius", "use_sip_uri_host", 1)
 		<title><varname>common_response</varname> (integer)</title>
 		<para>
 		Set it to 1 if you need common radius response attributes to
-		be added as AVPs.
+		be added as AVPs in <function moreinfo="none">radius_load_caller_avps</function>
+        and <function moreinfo="none">radius_load_callee_avps</function>
+        with name as radius attribute name and value as radius attribute value.
 		</para>
 		<para>
 		Default value is <quote>0</quote>.
 		</para>
 		<example>
-		<title><varname>common_response</varname> parameter usage</title>
+		<title>radius responce with <varname>common_response</varname> value 1</title>
 		<programlisting format="linespecific">
+modparam("misc_radius", "common_response", 1)
 ...
-modparam("misc_radius", "common_response", 21)
+radius_load_caller_avps($fU);
 </programlisting>
-		</example>
+    Sending Access-Accept of id 60 to 192.168.25.32 port 59736
+    Session-Timeout = 4261674
+    next-hop-ip = "SIP/00111222333444@cisco-out"
+    SIP-AVP = "email:sr-users@lists.sip-router.org session-timeout#161 next-hop-ip:h323/0001...@myvoip-gate.kamailio.org"
+    session-protocol = "SIP"
+
+$avp(Session-Timeout) has integer value 4261674
+$avp(next-hop-ip) has string value "SIP/005555777888@cisco-out"
+$avp(session-protocol) has string value "SIP"
+$avp(SIP-AVP) has string value  "email:sr-users@lists.sip-router.org session-timeout#161 next-hop-ip:h323/0001...@myvoip-gate.kamailio.org"
+
+    When recieving negative response, check appropriate avp's:
+    $avp(Reply-Message) = "Not enough money on deposit '-89.83'. Rejected"
+    $avp(Filter-Id) = "neg_deposit"
+    </example>
 	</section>
 
 	</section>
_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

Reply via email to