]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
[mod_xml_radius] Remove from tree 2718/head
authorAndrey Volk <andywolk@gmail.com>
Thu, 12 Dec 2024 10:52:55 +0000 (13:52 +0300)
committerAndrey Volk <andywolk@gmail.com>
Mon, 13 Jan 2025 10:14:44 +0000 (13:14 +0300)
15 files changed:
build/modules.conf.in
build/modules.conf.most
conf/vanilla/autoload_configs/modules.conf.xml
configure.ac
debian/bootstrap.sh
debian/control-modules
src/mod/xml_int/mod_xml_radius/.gitignore [deleted file]
src/mod/xml_int/mod_xml_radius/00_dialplan_auth.xml [deleted file]
src/mod/xml_int/mod_xml_radius/Makefile.am [deleted file]
src/mod/xml_int/mod_xml_radius/config.c.diff [deleted file]
src/mod/xml_int/mod_xml_radius/dictionaries/dictionary [deleted file]
src/mod/xml_int/mod_xml_radius/dictionaries/dictionary.cisco [deleted file]
src/mod/xml_int/mod_xml_radius/dictionaries/dictionary.rfc5090 [deleted file]
src/mod/xml_int/mod_xml_radius/mod_xml_radius.c [deleted file]
src/mod/xml_int/mod_xml_radius/xml_radius.conf.xml [deleted file]

index 08f1711c372b74a3a524b60f9aea7b6db7223a27..8a0a6871996f9ba9059db081c357f624309a5bae 100755 (executable)
@@ -141,7 +141,6 @@ say/mod_say_en
 xml_int/mod_xml_cdr
 #xml_int/mod_xml_curl
 #xml_int/mod_xml_ldap
-#xml_int/mod_xml_radius
 xml_int/mod_xml_rpc
 xml_int/mod_xml_scgi
 
index e53d58b9ecc498846b13f4f884490b95706725c8..93327ff7c29c11cccc4e83962a6cec94010d38ca 100755 (executable)
@@ -136,6 +136,5 @@ timers/mod_timerfd
 xml_int/mod_xml_cdr
 xml_int/mod_xml_curl
 xml_int/mod_xml_ldap
-#xml_int/mod_xml_radius
 xml_int/mod_xml_rpc
 xml_int/mod_xml_scgi
index 0c3c99c7102734dba074790a0e6da8d7447198ee..8f7fa9285fd07cfb0be0fbb98e0492a553029848 100755 (executable)
@@ -16,7 +16,6 @@
     <!-- <load module="mod_xml_rpc"/> -->
     <!-- <load module="mod_xml_curl"/> -->
     <!-- <load module="mod_xml_cdr"/> -->
-    <!-- <load module="mod_xml_radius"/> -->
     <!-- <load module="mod_xml_scgi"/> -->
 
     <!-- Event Handlers -->
index b71e691434db5bc6bf576adbb6507fcea96e0de6..ac4fdca0b53ed6b1fe2881bd5e7b95568ca9eabd 100755 (executable)
@@ -2232,7 +2232,6 @@ AC_CONFIG_FILES([Makefile
                src/mod/xml_int/mod_xml_cdr/Makefile
                src/mod/xml_int/mod_xml_curl/Makefile
                src/mod/xml_int/mod_xml_ldap/Makefile
-               src/mod/xml_int/mod_xml_radius/Makefile
                src/mod/xml_int/mod_xml_rpc/Makefile
                src/mod/xml_int/mod_xml_scgi/Makefile
                src/mod/applications/mod_av/Makefile
index a21364d3fabeefdbd5aed59b51c29d82786d6a17..cf7ac11a69c9ab6e91069789cc0708a0117398d0 100755 (executable)
@@ -52,7 +52,6 @@ avoid_mods=(
   formats/mod_webm
   sdk/autotools
   xml_int/mod_xml_ldap
-  xml_int/mod_xml_radius
 )
 avoid_mods_armhf=(
   languages/mod_v8
index 4522649527111eeba3cab4096fa368ce0db48209..c63a93e7d2b10f3dc0b5bc6bbc3b1a611a79f0fb 100755 (executable)
@@ -706,10 +706,6 @@ Description: mod_xml_ldap
  Adds mod_xml_ldap.
 Build-Depends: libldap2-dev, libsasl2-dev
 
-Module: xml_int/mod_xml_radius
-Description: mod_xml_radius
- Adds mod_xml_radius
-
 Module: xml_int/mod_xml_rpc
 Description: mod_xml_rpc
  Adds mod_xml_rpc.
diff --git a/src/mod/xml_int/mod_xml_radius/.gitignore b/src/mod/xml_int/mod_xml_radius/.gitignore
deleted file mode 100644 (file)
index bb7ad3d..0000000
+++ /dev/null
@@ -1 +0,0 @@
-freeradius-client*
\ No newline at end of file
diff --git a/src/mod/xml_int/mod_xml_radius/00_dialplan_auth.xml b/src/mod/xml_int/mod_xml_radius/00_dialplan_auth.xml
deleted file mode 100644 (file)
index 2e17abb..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-<include>
-
-  <extension name="auth" continue="true">
-    <condition field="${radius_auth_result}" expression="^$">
-      <action application="radius_auth" inline="true"/>
-    </condition>
-  </extension>
-
-  <extension name="rejections">
-    <condition field="${radius_auth_result}" expression="^2$">
-      <action application="hangup" data="CALL_REJECTED"/>
-    </condition>
-  </extension>
-
-  <extension name="timeouts">
-    <condition field="${radius_auth_result}" expression="^1$">
-      <action application="hangup" data="SWITCH_CONGESTION"/>
-    </condition>
-  </extension>
-
-  <extension name="originate_leg" continue="true">
-    <condition>
-      <action application="export" data="nolocal:h323-call-origin=originate"/>
-    </condition>
-  </extension>
-</include>
-
diff --git a/src/mod/xml_int/mod_xml_radius/Makefile.am b/src/mod/xml_int/mod_xml_radius/Makefile.am
deleted file mode 100644 (file)
index bfac004..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-include $(top_srcdir)/build/modmake.rulesam
-MODNAME=mod_xml_radius
-
-RADCLIENT_VERSION=1.1.7
-RADCLIENT=freeradius-client-$(RADCLIENT_VERSION)
-RADCLIENT_DIR=$(switch_srcdir)/libs/$(RADCLIENT)
-RADCLIENT_BUILDDIR=$(switch_builddir)/libs/$(RADCLIENT)
-RADCLIENT_LIBDIR=$(RADCLIENT_BUILDDIR)/lib
-RADCLIENT_LA=${RADCLIENT_LIBDIR}/libfreeradius-client.la
-
-mod_LTLIBRARIES = mod_xml_radius.la
-mod_xml_radius_la_SOURCES  = mod_xml_radius.c
-mod_xml_radius_la_CFLAGS   = $(AM_CFLAGS) -I$(RADCLIENT_DIR)/include
-mod_xml_radius_la_LIBADD   = $(switch_builddir)/libfreeswitch.la $(RADCLIENT_LA)
-mod_xml_radius_la_LDFLAGS  = -avoid-version -module -no-undefined -shared
-
-BUILT_SOURCES=$(RADCLIENT_LA)
-
-$(RADCLIENT_DIR):
-       $(GETLIB) $(RADCLIENT).tar.gz
-
-$(RADCLIENT_BUILDDIR)/Makefile: $(RADCLIENT_DIR)
-       mkdir -p $(RADCLIENT_BUILDDIR)
-       cd $(RADCLIENT_BUILDDIR) && $(DEFAULT_VARS) $(RADCLIENT_DIR)/configure $(DEFAULT_ARGS) --srcdir=$(RADCLIENT_DIR)
-       $(TOUCH_TARGET)
-
-$(RADCLIENT_LA): $(RADCLIENT_BUILDDIR)/Makefile
-       cd $(RADCLIENT_BUILDDIR) && CFLAGS="$(CFLAGS)" $(MAKE)
-       $(TOUCH_TARGET)
-
-
diff --git a/src/mod/xml_int/mod_xml_radius/config.c.diff b/src/mod/xml_int/mod_xml_radius/config.c.diff
deleted file mode 100644 (file)
index 962c1e5..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
---- ../../../../libs/freeradius-client-1.1.6/lib/config.c      2012-08-18 22:13:13.000000000 -0700
-+++ ./config.c 2012-08-18 22:14:08.000000000 -0700
-@@ -301,6 +301,8 @@
-       int i;
-       SERVER *authservers;
-       SERVER *acctservers;
-+      OPTION *acct;
-+      OPTION *auth;
-         rh->config_options = malloc(sizeof(config_options_default));
-         if (rh->config_options == NULL) 
-@@ -311,8 +313,8 @@
-         }
-         memcpy(rh->config_options, &config_options_default, sizeof(config_options_default));
--        authservers = rc_conf_srv(rh, "authserver"); 
--      acctservers = rc_conf_srv(rh, "acctserver");
-+      acct = find_option(rh, "acctserver", OT_ANY);
-+      auth = find_option(rh, "authserver", OT_ANY);
-       authservers = malloc(sizeof(SERVER));
-       acctservers = malloc(sizeof(SERVER));
-@@ -334,6 +336,8 @@
-               acctservers->name[i] = NULL;
-               acctservers->secret[i] = NULL;
-       } 
-+      acct->val = acctservers;
-+      auth->val = authservers;
-       return rh;
- }
-@@ -894,11 +898,15 @@
-                       continue;
-               if (rh->config_options[i].type == OT_SRV) {
-                       serv = (SERVER *)rh->config_options[i].val;
--                      for (j = 0; j < serv->max; j++)
-+                      for (j = 0; j < serv->max; j++) {
-                               free(serv->name[j]);
--                      free(serv);
--              } else {
-+                              free(serv->secret[j]);
-+                      }
-                       free(rh->config_options[i].val);
-+                      rh->config_options[i].val = NULL;
-+                      
-+              } else {
-+                free(rh->config_options[i].val);
-               }
-       }
-       free(rh->config_options);
diff --git a/src/mod/xml_int/mod_xml_radius/dictionaries/dictionary b/src/mod/xml_int/mod_xml_radius/dictionaries/dictionary
deleted file mode 100644 (file)
index 431d92c..0000000
+++ /dev/null
@@ -1,244 +0,0 @@
-#
-# Updated 97/06/13 to livingston-radius-2.01 miquels@cistron.nl
-#
-#      This file contains dictionary translations for parsing
-#      requests and generating responses.  All transactions are
-#      composed of Attribute/Value Pairs.  The value of each attribute
-#      is specified as one of 4 data types.  Valid data types are:
-#
-#      string - 0-253 octets
-#      ipaddr - 4 octets in network byte order
-#      integer - 32 bit value in big endian order (high byte first)
-#      date - 32 bit value in big endian order - seconds since
-#                                      00:00:00 GMT,  Jan.  1,  1970
-#
-#      Enumerated values are stored in the user file with dictionary
-#      VALUE translations for easy administration.
-#
-#      Example:
-#
-#      ATTRIBUTE         VALUE
-#      ---------------   -----
-#      Framed-Protocol = PPP
-#      7               = 1     (integer encoding)
-#
-
-#
-#      Following are the proper new names. Use these.
-#
-$INCLUDE /usr/local/src/freeswitch/src/mod/xml_int/mod_xml_radius/dictionaries/dictionary.cisco
-$INCLUDE /usr/local/src/freeswitch/src/mod/xml_int/mod_xml_radius/dictionaries/dictionary.rfc5090
-
-ATTRIBUTE      User-Name               1       string
-ATTRIBUTE      Password                2       string
-ATTRIBUTE      CHAP-Password           3       string
-ATTRIBUTE      NAS-IP-Address          4       ipaddr
-ATTRIBUTE      NAS-Port-Id             5       integer
-ATTRIBUTE      Service-Type            6       integer
-ATTRIBUTE      Framed-Protocol         7       integer
-ATTRIBUTE      Framed-IP-Address       8       ipaddr
-ATTRIBUTE      Framed-IP-Netmask       9       ipaddr
-ATTRIBUTE      Framed-Routing          10      integer
-ATTRIBUTE      Filter-Id               11      string
-ATTRIBUTE      Framed-MTU              12      integer
-ATTRIBUTE      Framed-Compression      13      integer
-ATTRIBUTE      Login-IP-Host           14      ipaddr
-ATTRIBUTE      Login-Service           15      integer
-ATTRIBUTE      Login-TCP-Port          16      integer
-ATTRIBUTE      Reply-Message           18      string
-ATTRIBUTE      Callback-Number         19      string
-ATTRIBUTE      Callback-Id             20      string
-ATTRIBUTE      Framed-Route            22      string
-ATTRIBUTE      Framed-IPX-Network      23      ipaddr
-ATTRIBUTE      State                   24      string
-ATTRIBUTE      Class                   25      string
-ATTRIBUTE      Vendor-Specific         26      string
-ATTRIBUTE      Session-Timeout         27      integer
-ATTRIBUTE      Idle-Timeout            28      integer
-ATTRIBUTE      Termination-Action      29      integer
-ATTRIBUTE      Called-Station-Id       30      string
-ATTRIBUTE      Calling-Station-Id      31      string
-ATTRIBUTE      NAS-Identifier          32      string
-ATTRIBUTE      Proxy-State             33      string
-ATTRIBUTE      Login-LAT-Service       34      string
-ATTRIBUTE      Login-LAT-Node          35      string
-ATTRIBUTE      Login-LAT-Group         36      string
-ATTRIBUTE      Framed-AppleTalk-Link   37      integer
-ATTRIBUTE      Framed-AppleTalk-Network        38      integer
-ATTRIBUTE      Framed-AppleTalk-Zone   39      string
-ATTRIBUTE      Acct-Status-Type        40      integer
-ATTRIBUTE      Acct-Delay-Time         41      integer
-ATTRIBUTE      Acct-Input-Octets       42      integer
-ATTRIBUTE      Acct-Output-Octets      43      integer
-ATTRIBUTE      Acct-Session-Id         44      string
-ATTRIBUTE      Acct-Authentic          45      integer
-ATTRIBUTE      Acct-Session-Time       46      integer
-ATTRIBUTE      Acct-Input-Packets      47      integer
-ATTRIBUTE      Acct-Output-Packets     48      integer
-ATTRIBUTE      Acct-Terminate-Cause    49      integer
-ATTRIBUTE      Acct-Multi-Session-Id   50      string
-ATTRIBUTE      Acct-Link-Count         51      integer
-ATTRIBUTE      Event-Timestamp         55      integer
-ATTRIBUTE      CHAP-Challenge          60      string
-ATTRIBUTE      NAS-Port-Type           61      integer
-ATTRIBUTE      Port-Limit              62      integer
-ATTRIBUTE      Login-LAT-Port          63      integer
-ATTRIBUTE      Connect-Info            77      string
-
-#
-#      RFC3162 IPv6 attributes
-#
-ATTRIBUTE      NAS-IPv6-Address        95      string
-ATTRIBUTE      Framed-Interface-Id     96      string
-ATTRIBUTE      Framed-IPv6-Prefix      97      string
-ATTRIBUTE      Login-IPv6-Host         98      string
-ATTRIBUTE      Framed-IPv6-Route       99      string
-ATTRIBUTE      Framed-IPv6-Pool        100     string
-
-#
-#      Experimental Non Protocol Attributes used by Cistron-Radiusd
-#
-ATTRIBUTE      Huntgroup-Name          221     string
-ATTRIBUTE      User-Category           1029    string
-ATTRIBUTE      Group-Name              1030    string
-ATTRIBUTE      Simultaneous-Use        1034    integer
-ATTRIBUTE      Strip-User-Name         1035    integer
-ATTRIBUTE      Fall-Through            1036    integer
-ATTRIBUTE      Add-Port-To-IP-Address  1037    integer
-ATTRIBUTE      Exec-Program            1038    string
-ATTRIBUTE      Exec-Program-Wait       1039    string
-ATTRIBUTE      Hint                    1040    string
-
-#
-#      Non-Protocol Attributes
-#      These attributes are used internally by the server
-#
-ATTRIBUTE      Expiration                21    date
-ATTRIBUTE      Auth-Type               1000    integer
-ATTRIBUTE      Menu                    1001    string
-ATTRIBUTE      Termination-Menu        1002    string
-ATTRIBUTE      Prefix                  1003    string
-ATTRIBUTE      Suffix                  1004    string
-ATTRIBUTE      Group                   1005    string
-ATTRIBUTE      Crypt-Password          1006    string
-ATTRIBUTE      Connect-Rate            1007    integer
-
-#
-#      Integer Translations
-#
-
-#      User Types
-
-VALUE          Service-Type            Login-User              1
-VALUE          Service-Type            Framed-User             2
-VALUE          Service-Type            Callback-Login-User     3
-VALUE          Service-Type            Callback-Framed-User    4
-VALUE          Service-Type            Outbound-User           5
-VALUE          Service-Type            Administrative-User     6
-VALUE          Service-Type            NAS-Prompt-User         7
-
-#      Framed Protocols
-
-VALUE          Framed-Protocol         PPP                     1
-VALUE          Framed-Protocol         SLIP                    2
-
-#      Framed Routing Values
-
-VALUE          Framed-Routing          None                    0
-VALUE          Framed-Routing          Broadcast               1
-VALUE          Framed-Routing          Listen                  2
-VALUE          Framed-Routing          Broadcast-Listen        3
-
-#      Framed Compression Types
-
-VALUE          Framed-Compression      None                    0
-VALUE          Framed-Compression      Van-Jacobson-TCP-IP     1
-
-#      Login Services
-
-VALUE          Login-Service           Telnet                  0
-VALUE          Login-Service           Rlogin                  1
-VALUE          Login-Service           TCP-Clear               2
-VALUE          Login-Service           PortMaster              3
-
-#      Status Types
-
-VALUE          Acct-Status-Type        Start                   1
-VALUE          Acct-Status-Type        Stop                    2
-VALUE          Acct-Status-Type        Alive                   3
-VALUE          Acct-Status-Type        Accounting-On           7
-VALUE          Acct-Status-Type        Accounting-Off          8
-
-#      Authentication Types
-
-VALUE          Acct-Authentic          RADIUS                  1
-VALUE          Acct-Authentic          Local                   2
-VALUE          Acct-Authentic          PowerLink128            100
-
-#      Termination Options
-
-VALUE          Termination-Action      Default                 0
-VALUE          Termination-Action      RADIUS-Request          1
-
-#      NAS Port Types, available in 3.3.1 and later
-
-VALUE          NAS-Port-Type           Async                   0
-VALUE          NAS-Port-Type           Sync                    1
-VALUE          NAS-Port-Type           ISDN                    2
-VALUE          NAS-Port-Type           ISDN-V120               3
-VALUE          NAS-Port-Type           ISDN-V110               4
-
-#      Acct Terminate Causes, available in 3.3.2 and later
-
-VALUE           Acct-Terminate-Cause    User-Request            1
-VALUE           Acct-Terminate-Cause    Lost-Carrier            2
-VALUE           Acct-Terminate-Cause    Lost-Service            3
-VALUE           Acct-Terminate-Cause    Idle-Timeout            4
-VALUE           Acct-Terminate-Cause    Session-Timeout         5
-VALUE           Acct-Terminate-Cause    Admin-Reset             6
-VALUE           Acct-Terminate-Cause    Admin-Reboot            7
-VALUE           Acct-Terminate-Cause    Port-Error              8
-VALUE           Acct-Terminate-Cause    NAS-Error               9
-VALUE           Acct-Terminate-Cause    NAS-Request             10
-VALUE           Acct-Terminate-Cause    NAS-Reboot              11
-VALUE           Acct-Terminate-Cause    Port-Unneeded           12
-VALUE           Acct-Terminate-Cause    Port-Preempted          13
-VALUE           Acct-Terminate-Cause    Port-Suspended          14
-VALUE           Acct-Terminate-Cause    Service-Unavailable     15
-VALUE           Acct-Terminate-Cause    Callback                16
-VALUE           Acct-Terminate-Cause    User-Error              17
-VALUE           Acct-Terminate-Cause    Host-Request            18
-
-#
-#      Non-Protocol Integer Translations
-#
-
-VALUE          Auth-Type               Local                   0
-VALUE          Auth-Type               System                  1
-VALUE          Auth-Type               SecurID                 2
-VALUE          Auth-Type               Crypt-Local             3
-VALUE          Auth-Type               Reject                  4
-
-#
-#      Cistron extensions
-#
-VALUE          Auth-Type               Pam                     253
-VALUE          Auth-Type               Accept                  254
-
-#
-#      Experimental Non-Protocol Integer Translations for Cistron-Radiusd
-#
-VALUE          Fall-Through            No                      0
-VALUE          Fall-Through            Yes                     1
-VALUE          Add-Port-To-IP-Address  No                      0
-VALUE          Add-Port-To-IP-Address  Yes                     1
-
-#
-#      Configuration Values
-#      uncomment these two lines to turn account expiration on
-#
-
-#VALUE         Server-Config           Password-Expiration     30
-#VALUE         Server-Config           Password-Warning        5
-
-
diff --git a/src/mod/xml_int/mod_xml_radius/dictionaries/dictionary.cisco b/src/mod/xml_int/mod_xml_radius/dictionaries/dictionary.cisco
deleted file mode 100644 (file)
index b61c9d2..0000000
+++ /dev/null
@@ -1,161 +0,0 @@
-# -*- text -*-
-#
-# dictionary.cisco
-#
-#              Accounting VSAs originally by
-#              "Marcelo M. Sosa Lugones" <marcelo@sosa.com.ar>
-#
-# Version:     $Id$
-#
-#  For documentation on Cisco RADIUS attributes, see:
-#
-# http://www.cisco.com/univercd/cc/td/doc/product/access/acs_serv/vapp_dev/vsaig3.htm
-#
-#  For general documentation on Cisco RADIUS configuration, see:
-#
-# http://www.cisco.com/en/US/partner/tech/tk583/tk547/tsd_technology_support_sub-protocol_home.html
-#
-
-VENDOR         Cisco                           9
-
-#
-#      Standard attribute
-#
-#BEGIN-VENDOR  Cisco
-
-ATTRIBUTE      Cisco-AVPair                            1       string vendor=Cisco
-ATTRIBUTE      Cisco-NAS-Port                          2       string vendor=Cisco
-
-#
-#  T.37 Store-and-Forward attributes.
-#
-ATTRIBUTE      Cisco-Fax-Account-Id-Origin             3       string vendor=Cisco
-ATTRIBUTE      Cisco-Fax-Msg-Id                        4       string vendor=Cisco
-ATTRIBUTE      Cisco-Fax-Pages                         5       string vendor=Cisco
-ATTRIBUTE      Cisco-Fax-Coverpage-Flag                6       string vendor=Cisco
-ATTRIBUTE      Cisco-Fax-Modem-Time                    7       string vendor=Cisco
-ATTRIBUTE      Cisco-Fax-Connect-Speed                 8       string vendor=Cisco
-ATTRIBUTE      Cisco-Fax-Recipient-Count               9       string vendor=Cisco
-ATTRIBUTE      Cisco-Fax-Process-Abort-Flag            10      string vendor=Cisco
-ATTRIBUTE      Cisco-Fax-Dsn-Address                   11      string vendor=Cisco
-ATTRIBUTE      Cisco-Fax-Dsn-Flag                      12      string vendor=Cisco
-ATTRIBUTE      Cisco-Fax-Mdn-Address                   13      string vendor=Cisco
-ATTRIBUTE      Cisco-Fax-Mdn-Flag                      14      string vendor=Cisco
-ATTRIBUTE      Cisco-Fax-Auth-Status                   15      string vendor=Cisco
-ATTRIBUTE      Cisco-Email-Server-Address              16      string vendor=Cisco
-ATTRIBUTE      Cisco-Email-Server-Ack-Flag             17      string vendor=Cisco
-ATTRIBUTE      Cisco-Gateway-Id                        18      string vendor=Cisco
-ATTRIBUTE      Cisco-Call-Type                         19      string vendor=Cisco
-ATTRIBUTE      Cisco-Port-Used                         20      string vendor=Cisco
-ATTRIBUTE      Cisco-Abort-Cause                       21      string vendor=Cisco
-
-#
-#  Voice over IP attributes.
-#
-ATTRIBUTE      h323-remote-address                     23      string vendor=Cisco
-ATTRIBUTE      h323-conf-id                            24      string vendor=Cisco
-ATTRIBUTE      h323-setup-time                         25      string vendor=Cisco
-ATTRIBUTE      h323-call-origin                        26      string vendor=Cisco
-ATTRIBUTE      h323-call-type                          27      string vendor=Cisco
-ATTRIBUTE      h323-connect-time                       28      string vendor=Cisco
-ATTRIBUTE      h323-disconnect-time                    29      string vendor=Cisco
-ATTRIBUTE      h323-disconnect-cause                   30      string vendor=Cisco
-ATTRIBUTE      h323-voice-quality                      31      string vendor=Cisco
-ATTRIBUTE      h323-gw-id                              33      string vendor=Cisco
-ATTRIBUTE      h323-incoming-conf-id                   35      string vendor=Cisco
-
-ATTRIBUTE      Cisco-Policy-Up                         37      string vendor=Cisco
-ATTRIBUTE      Cisco-Policy-Down                       38      string vendor=Cisco
-
-ATTRIBUTE      sip-conf-id                             100     string vendor=Cisco
-ATTRIBUTE      h323-credit-amount                      101     string vendor=Cisco
-ATTRIBUTE      h323-credit-time                        102     string vendor=Cisco
-ATTRIBUTE      h323-return-code                        103     string vendor=Cisco
-ATTRIBUTE      h323-prompt-id                          104     string vendor=Cisco
-ATTRIBUTE      h323-time-and-day                       105     string vendor=Cisco
-ATTRIBUTE      h323-redirect-number                    106     string vendor=Cisco
-ATTRIBUTE      h323-preferred-lang                     107     string vendor=Cisco
-ATTRIBUTE      h323-redirect-ip-address                108     string vendor=Cisco
-ATTRIBUTE      h323-billing-model                      109     string vendor=Cisco
-ATTRIBUTE      h323-currency                           110     string vendor=Cisco
-ATTRIBUTE      subscriber                              111     string vendor=Cisco
-ATTRIBUTE      gw-rxd-cdn                              112     string vendor=Cisco
-ATTRIBUTE      gw-final-xlated-cdn                     113     string vendor=Cisco
-ATTRIBUTE      remote-media-address                    114     string vendor=Cisco
-ATTRIBUTE      release-source                          115     string vendor=Cisco
-ATTRIBUTE      gw-rxd-cgn                              116     string vendor=Cisco
-ATTRIBUTE      gw-final-xlated-cgn                     117     string vendor=Cisco
-
-# SIP Attributes
-ATTRIBUTE      call-id                                 141     string vendor=Cisco
-ATTRIBUTE      session-protocol                        142     string vendor=Cisco
-ATTRIBUTE      method                                  143     string vendor=Cisco
-ATTRIBUTE      prev-hop-via                            144     string vendor=Cisco
-ATTRIBUTE      prev-hop-ip                             145     string vendor=Cisco
-ATTRIBUTE      incoming-req-uri                        146     string vendor=Cisco
-ATTRIBUTE      outgoing-req-uri                        147     string vendor=Cisco
-ATTRIBUTE      next-hop-ip                             148     string vendor=Cisco
-ATTRIBUTE      next-hop-dn                             149     string vendor=Cisco
-ATTRIBUTE      sip-hdr                                 150     string vendor=Cisco
-
-#
-#      Extra attributes sent by the Cisco, if you configure
-#      "radius-server vsa accounting" (requires IOS11.2+).
-#
-ATTRIBUTE      Cisco-Multilink-ID                      187     integer vendor=Cisco
-ATTRIBUTE      Cisco-Num-In-Multilink                  188     integer vendor=Cisco
-ATTRIBUTE      Cisco-Pre-Input-Octets                  190     integer vendor=Cisco
-ATTRIBUTE      Cisco-Pre-Output-Octets                 191     integer vendor=Cisco
-ATTRIBUTE      Cisco-Pre-Input-Packets                 192     integer vendor=Cisco
-ATTRIBUTE      Cisco-Pre-Output-Packets                193     integer vendor=Cisco
-ATTRIBUTE      Cisco-Maximum-Time                      194     integer vendor=Cisco
-ATTRIBUTE      Cisco-Disconnect-Cause                  195     integer vendor=Cisco
-ATTRIBUTE      Cisco-Data-Rate                         197     integer vendor=Cisco
-ATTRIBUTE      Cisco-PreSession-Time                   198     integer vendor=Cisco
-ATTRIBUTE      Cisco-PW-Lifetime                       208     integer vendor=Cisco
-ATTRIBUTE      Cisco-IP-Direct                         209     integer vendor=Cisco
-ATTRIBUTE      Cisco-PPP-VJ-Slot-Comp                  210     integer vendor=Cisco
-ATTRIBUTE      Cisco-PPP-Async-Map                     212     integer vendor=Cisco
-ATTRIBUTE      Cisco-IP-Pool-Definition                217     string vendor=Cisco
-ATTRIBUTE      Cisco-Assign-IP-Pool                    218     integer vendor=Cisco
-ATTRIBUTE      Cisco-Route-IP                          228     integer vendor=Cisco
-ATTRIBUTE      Cisco-Link-Compression                  233     integer vendor=Cisco
-ATTRIBUTE      Cisco-Target-Util                       234     integer vendor=Cisco
-ATTRIBUTE      Cisco-Maximum-Channels                  235     integer vendor=Cisco
-ATTRIBUTE      Cisco-Data-Filter                       242     integer vendor=Cisco
-ATTRIBUTE      Cisco-Call-Filter                       243     integer vendor=Cisco
-ATTRIBUTE      Cisco-Idle-Limit                        244     integer vendor=Cisco
-ATTRIBUTE      Cisco-Subscriber-Password               249     string vendor=Cisco
-ATTRIBUTE      Cisco-Account-Info                      250     string vendor=Cisco
-ATTRIBUTE      Cisco-Service-Info                      251     string vendor=Cisco
-ATTRIBUTE      Cisco-Command-Code                      252     string vendor=Cisco
-ATTRIBUTE      Cisco-Control-Info                      253     string vendor=Cisco
-ATTRIBUTE      Cisco-Xmit-Rate                         255     integer vendor=Cisco
-
-VALUE  Cisco-Disconnect-Cause          Unknown                 2
-VALUE  Cisco-Disconnect-Cause          CLID-Authentication-Failure 4
-VALUE  Cisco-Disconnect-Cause          No-Carrier              10
-VALUE  Cisco-Disconnect-Cause          Lost-Carrier            11
-VALUE  Cisco-Disconnect-Cause          No-Detected-Result-Codes 12
-VALUE  Cisco-Disconnect-Cause          User-Ends-Session       20
-VALUE  Cisco-Disconnect-Cause          Idle-Timeout            21
-VALUE  Cisco-Disconnect-Cause          Exit-Telnet-Session     22
-VALUE  Cisco-Disconnect-Cause          No-Remote-IP-Addr       23
-VALUE  Cisco-Disconnect-Cause          Exit-Raw-TCP            24
-VALUE  Cisco-Disconnect-Cause          Password-Fail           25
-VALUE  Cisco-Disconnect-Cause          Raw-TCP-Disabled        26
-VALUE  Cisco-Disconnect-Cause          Control-C-Detected      27
-VALUE  Cisco-Disconnect-Cause          EXEC-Program-Destroyed  28
-VALUE  Cisco-Disconnect-Cause          Timeout-PPP-LCP         40
-VALUE  Cisco-Disconnect-Cause          Failed-PPP-LCP-Negotiation 41
-VALUE  Cisco-Disconnect-Cause          Failed-PPP-PAP-Auth-Fail 42
-VALUE  Cisco-Disconnect-Cause          Failed-PPP-CHAP-Auth    43
-VALUE  Cisco-Disconnect-Cause          Failed-PPP-Remote-Auth  44
-VALUE  Cisco-Disconnect-Cause          PPP-Remote-Terminate    45
-VALUE  Cisco-Disconnect-Cause          PPP-Closed-Event        46
-VALUE  Cisco-Disconnect-Cause          Session-Timeout         100
-VALUE  Cisco-Disconnect-Cause          Session-Failed-Security 101
-VALUE  Cisco-Disconnect-Cause          Session-End-Callback    102
-VALUE  Cisco-Disconnect-Cause          Invalid-Protocol        120
-
-#END-VENDOR    Cisco
diff --git a/src/mod/xml_int/mod_xml_radius/dictionaries/dictionary.rfc5090 b/src/mod/xml_int/mod_xml_radius/dictionaries/dictionary.rfc5090
deleted file mode 100644 (file)
index 4feda43..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-# -*- text -*-
-#
-#      Attributes and values defined in RFC 5090.
-#      http://www.ietf.org/rfc/rfc5090.txt
-#
-#      $Id$
-#
-ATTRIBUTE      Digest-Response                         103     string
-ATTRIBUTE      Digest-Realm                            104     string
-ATTRIBUTE      Digest-Nonce                            105     string
-ATTRIBUTE      Digest-Response-Auth                    106     string
-ATTRIBUTE      Digest-Nextnonce                        107     string
-ATTRIBUTE      Digest-Method                           108     string
-ATTRIBUTE      Digest-URI                              109     string
-ATTRIBUTE      Digest-Qop                              110     string
-ATTRIBUTE      Digest-Algorithm                        111     string
-ATTRIBUTE      Digest-Entity-Body-Hash                 112     string
-ATTRIBUTE      Digest-CNonce                           113     string
-ATTRIBUTE      Digest-Nonce-Count                      114     string
-ATTRIBUTE      Digest-Username                         115     string
-ATTRIBUTE      Digest-Opaque                           116     string
-ATTRIBUTE      Digest-Auth-Param                       117     string
-ATTRIBUTE      Digest-AKA-Auts                         118     string
-ATTRIBUTE      Digest-Domain                           119     string
-ATTRIBUTE      Digest-Stale                            120     string
-ATTRIBUTE      Digest-HA1                              121     string
-ATTRIBUTE      SIP-AOR                                 122     string
diff --git a/src/mod/xml_int/mod_xml_radius/mod_xml_radius.c b/src/mod/xml_int/mod_xml_radius/mod_xml_radius.c
deleted file mode 100644 (file)
index f359661..0000000
+++ /dev/null
@@ -1,1237 +0,0 @@
-/*
- * FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application
- * Copyright (C) 2005-2014, Anthony Minessale II <anthm@freeswitch.org>
- *
- * Version: MPL 1.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application
- *
- * The Initial Developer of the Original Code is
- * Anthony Minessale II <anthm@freeswitch.org>
- * Portions created by the Initial Developer are Copyright (C)
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *
- * William King <william.king@quentustech.com>
- *
- * mod_xml_radius.c -- Radius authentication and authorization
- *
- */
-#include <switch.h>
-#include <freeradius-client.h>
-
-static struct {
-       switch_memory_pool_t *pool;
-       switch_xml_t auth_invite_configs;
-       switch_xml_t auth_reg_configs;
-       switch_xml_t auth_app_configs;
-       switch_xml_t acct_start_configs;
-       switch_xml_t acct_end_configs;
-       /* xml read write lock */
-} globals = {0};
-
-SWITCH_MODULE_LOAD_FUNCTION(mod_xml_radius_load);
-SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_xml_radius_shutdown);
-SWITCH_MODULE_DEFINITION(mod_xml_radius, mod_xml_radius_load, mod_xml_radius_shutdown, NULL);
-
-int GLOBAL_DEBUG = 0;
-/*
- * Time format 0:
- * 20:16:33.479 UTC Thu May 02 2013
- *
- * Time format 1:
- * 2013-05-03T00:53:26.139798+0400
- *
- */
-int GLOBAL_TIME_FORMAT = 0;
-char *GLOBAL_TIME_ZONE = "UTC";
-static char radattrdays[7][4] = {
-       "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
-};
-static char radattrmonths[12][4] = {
-       "Jan", "Feb", "Mar", "Apr", "May", "Jun",
-       "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
-};
-
-switch_status_t mod_xml_radius_new_handle(rc_handle **new_handle, switch_xml_t xml) {
-       switch_xml_t server, param;
-
-       if ( (*new_handle = rc_new()) == NULL ) {
-               goto err;
-       }
-
-       if ( rc_config_init(*new_handle) == NULL ) {
-               *new_handle = NULL;
-               goto err;
-       }
-
-       if (rc_add_config(*new_handle, "auth_order", "radius", "mod_radius_cdr.c", 0) != 0) {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Error adding auth_order\n");
-               goto err;
-       }
-
-       if ((server = switch_xml_child(xml, "connection")) == NULL ) {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Could not find 'connection' section in config file.\n");
-               goto err;
-       }
-
-       for (param = switch_xml_child(server, "param"); param; param = param->next) {
-               char *var = (char *) switch_xml_attr_soft(param, "name");
-               char *val = (char *) switch_xml_attr_soft(param, "value");
-
-               if ( GLOBAL_DEBUG ) {
-                       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Attempting to add param '%s' with value '%s' \n", var, val);
-               }
-
-               if (strncmp(var, "dictionary", 10) == 0) {
-                       if ( rc_read_dictionary(*new_handle, val) != 0) {
-                               goto err;
-                       }
-               } else if (rc_add_config(*new_handle, var, val, "mod_xml_radius", 0) != 0) {
-                       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Error adding param '%s' with value '%s' \n", var, val);
-                       goto err;
-               }
-       }
-
-       return SWITCH_STATUS_SUCCESS;
-
- err:
-       if ( *new_handle ) {
-               rc_destroy( *new_handle );
-               *new_handle = NULL;
-       }
-       return SWITCH_STATUS_GENERR;
-}
-
-switch_status_t do_config()
-{
-       char *conf = "xml_radius.conf";
-       switch_xml_t xml, cfg, tmp, server, param;
-       int serv, timeout, deadtime, retries, dict, seq;
-
-       /* TODO:
-          1. Fix read/write lock on configs
-             a. read new configs
-             b. Create replacement xml and vas objects
-                 c. Get the write lock.
-                 d. Replace xml and vas objects
-                 e. unlock and return.
-          2. Don't manually check for proper configs. Use the function in the client library
-          3. Add api that would reload configs
-        */
-
-       if (!(xml = switch_xml_open_cfg(conf, &cfg, NULL))) {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "open of %s failed\n", conf);
-               goto err;
-       }
-
-       serv = timeout = deadtime = retries = dict = seq = 0;
-       if ((tmp = switch_xml_dup(switch_xml_child(cfg, "auth_invite"))) != NULL ) {
-               if ( (server = switch_xml_child(tmp, "connection")) != NULL) {
-                               for (param = switch_xml_child(server, "param"); param; param = param->next) {
-                                       char *var = (char *) switch_xml_attr_soft(param, "name");
-                                       if ( strncmp(var, "authserver", 10) == 0 ) {
-                                               serv = 1;
-                                       } else if ( strncmp(var, "radius_timeout", 14) == 0 ) {
-                                               timeout = 1;
-                                       } else if ( strncmp(var, "radius_deadtime", 15) == 0 ) {
-                                               deadtime = 1;
-                                       } else if ( strncmp(var, "radius_retries", 14) == 0 ) {
-                                               retries = 1;
-                                       } else if ( strncmp(var, "dictionary", 10) == 0 ) {
-                                               dict = 1;
-                                       } else if ( strncmp(var, "seqfile", 7) == 0 ) {
-                                               seq = 1;
-                                       }
-                               }
-
-                               if ( serv && timeout && deadtime && retries && dict && seq ) {
-                                       globals.auth_invite_configs = tmp;
-                               } else {
-                                       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Missing a require section for radius connections\n");
-                                       goto err;
-                               }
-               } else {
-                       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Could not find 'connection' section for auth_invite\n");
-                       goto err;
-               }
-       } else {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Could not find 'auth_invite' section in config file.\n");
-       }
-
-       serv = timeout = deadtime = retries = dict = seq = 0;
-       if ((tmp = switch_xml_dup(switch_xml_child(cfg, "auth_reg"))) != NULL ) {
-               if ( (server = switch_xml_child(tmp, "connection")) != NULL) {
-                               for (param = switch_xml_child(server, "param"); param; param = param->next) {
-                                       char *var = (char *) switch_xml_attr_soft(param, "name");
-                                       if ( strncmp(var, "authserver", 10) == 0 ) {
-                                               serv = 1;
-                                       } else if ( strncmp(var, "radius_timeout", 14) == 0 ) {
-                                               timeout = 1;
-                                       } else if ( strncmp(var, "radius_deadtime", 15) == 0 ) {
-                                               deadtime = 1;
-                                       } else if ( strncmp(var, "radius_retries", 14) == 0 ) {
-                                               retries = 1;
-                                       } else if ( strncmp(var, "dictionary", 10) == 0 ) {
-                                               dict = 1;
-                                       } else if ( strncmp(var, "seqfile", 7) == 0 ) {
-                                               seq = 1;
-                                       }
-                               }
-
-                               if ( serv && timeout && deadtime && retries && dict && seq ) {
-                                       globals.auth_reg_configs = tmp;
-                               } else {
-                                       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Missing a require section for radius connections\n");
-                                       goto err;
-                               }
-               } else {
-                       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Could not find 'connection' section for auth_invite\n");
-                       goto err;
-               }
-       } else {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Could not find 'auth_reg' section in config file.\n");
-       }
-
-       if ((tmp = switch_xml_child(cfg, "global")) != NULL ) {
-               for (param = switch_xml_child(tmp, "param"); param; param = param->next) {
-                       char *name = (char *) switch_xml_attr_soft(param, "name");
-                       char *value = (char *) switch_xml_attr_soft(param, "value");
-                       if ( strncmp(name, "time_format", 11) == 0 && value != NULL ) {
-                               GLOBAL_TIME_FORMAT = atoi(value);
-                               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Time format changed to %d\n", GLOBAL_TIME_FORMAT);
-                       }
-                       if ( strncmp(name, "time_zone", 9) == 0 && value != NULL ) {
-                               GLOBAL_TIME_ZONE = value;
-                               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Time zone changed to %s\n", GLOBAL_TIME_ZONE);
-                       }
-                       if ( strncmp(name, "debug", 5) == 0 && value != NULL ) {
-                               GLOBAL_DEBUG = atoi(value);
-                               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Debug changed to %d\n", GLOBAL_DEBUG);
-                       }
-               }
-       }
-
-       serv = timeout = deadtime = retries = dict = seq = 0;
-       if ((tmp = switch_xml_dup(switch_xml_child(cfg, "auth_app"))) != NULL ) {
-               if ( (server = switch_xml_child(tmp, "connection")) != NULL) {
-                               for (param = switch_xml_child(server, "param"); param; param = param->next) {
-                                       char *var = (char *) switch_xml_attr_soft(param, "name");
-                                       if ( strncmp(var, "authserver", 10) == 0 ) {
-                                               serv = 1;
-                                       } else if ( strncmp(var, "radius_timeout", 14) == 0 ) {
-                                               timeout = 1;
-                                       } else if ( strncmp(var, "radius_deadtime", 15) == 0 ) {
-                                               deadtime = 1;
-                                       } else if ( strncmp(var, "radius_retries", 14) == 0 ) {
-                                               retries = 1;
-                                       } else if ( strncmp(var, "dictionary", 10) == 0 ) {
-                                               dict = 1;
-                                       } else if ( strncmp(var, "seqfile", 7) == 0 ) {
-                                               seq = 1;
-                                       }
-                               }
-
-                               if ( serv && timeout && deadtime && retries && dict && seq ) {
-                                       globals.auth_app_configs = tmp;
-                               } else {
-                                       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Missing a require section for radius connections\n");
-                                       goto err;
-                               }
-               } else {
-                       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Could not find 'connection' section for auth_app\n");
-                       goto err;
-               }
-       } else {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Could not find 'auth_app' section in config file.\n");
-       }
-
-       serv = timeout = deadtime = retries = dict = seq = 0;
-       if (( tmp = switch_xml_dup(switch_xml_child(cfg, "acct_start"))) != NULL ) {
-               if ( (server = switch_xml_child(tmp, "connection")) != NULL) {
-                               for (param = switch_xml_child(server, "param"); param; param = param->next) {
-                                       char *var = (char *) switch_xml_attr_soft(param, "name");
-                                       if ( strncmp(var, "acctserver", 10) == 0 ) {
-                                               serv = 1;
-                                       } else if ( strncmp(var, "radius_timeout", 14) == 0 ) {
-                                               timeout = 1;
-                                       } else if ( strncmp(var, "radius_deadtime", 15) == 0 ) {
-                                               deadtime = 1;
-                                       } else if ( strncmp(var, "radius_retries", 14) == 0 ) {
-                                               retries = 1;
-                                       } else if ( strncmp(var, "dictionary", 10) == 0 ) {
-                                               dict = 1;
-                                       } else if ( strncmp(var, "seqfile", 7) == 0 ) {
-                                               seq = 1;
-                                       }
-                               }
-
-                               if ( serv && timeout && deadtime && retries && dict && seq ) {
-                                       globals.acct_start_configs = tmp;
-                               } else {
-                                       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Missing a require section for radius connections\n");
-                                       goto err;
-                               }
-               } else {
-                       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Could not find 'connection' section for acct_start\n");
-                       goto err;
-               }
-       } else {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Could not find 'acct_start' section in config file.\n");
-       }
-
-       serv = timeout = deadtime = retries = dict = seq = 0;
-       if (( tmp = switch_xml_dup(switch_xml_child(cfg, "acct_end"))) != NULL ) {
-               if ( (server = switch_xml_child(tmp, "connection")) != NULL) {
-                               for (param = switch_xml_child(server, "param"); param; param = param->next) {
-                                       char *var = (char *) switch_xml_attr_soft(param, "name");
-                                       if ( strncmp(var, "acctserver", 10) == 0 ) {
-                                               serv = 1;
-                                       } else if ( strncmp(var, "radius_timeout", 14) == 0 ) {
-                                               timeout = 1;
-                                       } else if ( strncmp(var, "radius_deadtime", 15) == 0 ) {
-                                               deadtime = 1;
-                                       } else if ( strncmp(var, "radius_retries", 14) == 0 ) {
-                                               retries = 1;
-                                       } else if ( strncmp(var, "dictionary", 10) == 0 ) {
-                                               dict = 1;
-                                       } else if ( strncmp(var, "seqfile", 7) == 0 ) {
-                                               seq = 1;
-                                       }
-                               }
-
-                               if ( serv && timeout && deadtime && retries && dict && seq ) {
-                                       globals.acct_end_configs = tmp;
-                               } else {
-                                       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Missing a require section for radius connections\n");
-                                       goto err;
-                               }
-               } else {
-                       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Could not find 'connection' section for acct_end\n");
-                       goto err;
-               }
-       } else {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Could not find 'acct_end' section in config file.\n");
-       }
-
-       if ( xml ) {
-               switch_xml_free(xml);
-               xml = NULL;
-       }
-
-       return SWITCH_STATUS_SUCCESS;
-
- err:
-       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "mod_xml_radius: Configuration error\n");
-       if ( xml ) {
-               switch_xml_free(xml);
-               xml = NULL;
-       }
-
-       return SWITCH_STATUS_GENERR;
-}
-
-switch_status_t mod_xml_radius_add_params(switch_core_session_t *session, switch_event_t *params, rc_handle *handle, VALUE_PAIR **send, switch_xml_t fields)
-{
-       switch_xml_t param;
-       void *av_value = NULL;
-
-       if ( (param = switch_xml_child(fields, "param")) == NULL) {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Failed to locate a param under the fields section\n");
-               goto err;
-       }
-
-       for (; param; param = param->next) {
-               DICT_ATTR *attribute = NULL;
-               DICT_VENDOR *vendor = NULL;
-               int attr_num = 0, vend_num = 0;
-
-               char *var = (char *) switch_xml_attr(param, "name");
-               char *vend = (char *) switch_xml_attr(param, "vendor");
-               char *variable = (char *) switch_xml_attr(param, "variable");
-               char *variable_secondary = (char *) switch_xml_attr(param, "variable_secondary");
-               char *val_default = (char *) switch_xml_attr(param, "default");
-               char *skip_if_set = (char *) switch_xml_attr(param, "skip_if_set");
-               char *format = (char *) switch_xml_attr(param, "format");
-               char *other_leg = (char *) switch_xml_attr(param, "other_leg");
-                char *regex = (char *) switch_xml_attr(param, "regex");
-
-               attribute = rc_dict_findattr(handle, var);
-
-               if ( attribute == NULL ) {
-                       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "mod_xml_radius: Could not locate attribute '%s' in the configured dictionary\n", var);
-                       goto err;
-               }
-
-               if ( GLOBAL_DEBUG ) {
-                       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "mod_xml_radius: dict attr '%s' value '%d' type '%d'\n",
-                                                         attribute->name, attribute->value, attribute->type);
-               }
-
-               attr_num = attribute->value;
-
-               if ( vend ) {
-                       vendor = rc_dict_findvend(handle, vend);
-
-                       if ( vendor == NULL ) {
-                               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "mod_xml_radius: Could not locate vendor '%s' in the configured dictionary %p\n",
-                                                                 vend, vend);
-                               goto err;
-                       }
-
-                       if ( GLOBAL_DEBUG ) {
-                               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "mod_xml_radius: dict vend name '%s' vendorpec '%d'\n",
-                                                                 vendor->vendorname, vendor->vendorpec);
-                       }
-
-                       vend_num = vendor->vendorpec;
-               }
-
-               if ( var ) {
-                       if ( session ) {
-                               switch_channel_t *channel = switch_core_session_get_channel(session);
-                               if ( skip_if_set && switch_channel_get_variable(channel, skip_if_set) ) {
-                                       goto end_loop;
-                               }
-
-                               /*  Accounting only */
-                               if ( strncmp( var, "h323-setup-time", 15) == 0 ) {
-                                       switch_caller_profile_t *profile = switch_channel_get_caller_profile(channel);
-                                       switch_time_t time = profile->times->created;
-                                       switch_time_exp_t tm;
-
-                                       if ( !time ) {
-                                               goto end_loop;
-                                       }
-
-                                       switch_time_exp_lt(&tm, time);
-
-                                       if ( GLOBAL_TIME_FORMAT == 1 ) {
-                                               av_value = switch_mprintf("%02u:%02u:%02u.%03u %s %s %s %02u %04u",
-                                                                                                 tm.tm_hour, tm.tm_min, tm.tm_sec, tm.tm_usec/1000,
-                                                                                                 GLOBAL_TIME_ZONE, radattrdays[tm.tm_wday], radattrmonths[tm.tm_mon],
-                                                                                                 tm.tm_mday, tm.tm_year + 1900);
-                                       } else {
-                                               av_value = switch_mprintf("%04u-%02u-%02uT%02u:%02u:%02u.%06u%+03d%02d",
-                                                                                                 tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday,
-                                                                                                 tm.tm_hour, tm.tm_min, tm.tm_sec, tm.tm_usec,
-                                                                                                 tm.tm_gmtoff / 3600, tm.tm_gmtoff % 3600);
-                                       }
-
-                                       if (rc_avpair_add(handle, send, attr_num, av_value, -1, vend_num) == NULL) {
-                                               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "mod_xml_radius: failed to add option to handle\n");
-                                               goto err;
-                                       }
-                                       if ( GLOBAL_DEBUG ) {
-                                               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "mod_xml_radius: value: %s\n", (char *) av_value);
-                                       }
-                               } else if ( strncmp( var, "h323-connect-time", 17) == 0 ) {
-                                       switch_caller_profile_t *profile = switch_channel_get_caller_profile(channel);
-                                       switch_time_t time = profile->times->answered;
-                                       switch_time_exp_t tm;
-
-                                       if ( !time ) {
-                                               goto end_loop;
-                                       }
-
-                                       switch_time_exp_lt(&tm, time);
-
-                                       if ( GLOBAL_TIME_FORMAT == 1 ) {
-                                               av_value = switch_mprintf("%02u:%02u:%02u.%03u %s %s %s %02u %04u",
-                                                                                                 tm.tm_hour, tm.tm_min, tm.tm_sec, tm.tm_usec/1000,
-                                                                                                 GLOBAL_TIME_ZONE, radattrdays[tm.tm_wday], radattrmonths[tm.tm_mon],
-                                                                                                 tm.tm_mday, tm.tm_year + 1900);
-                                       } else {
-                                               av_value = switch_mprintf("%04u-%02u-%02uT%02u:%02u:%02u.%06u%+03d%02d",
-                                                                                                 tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday,
-                                                                                                 tm.tm_hour, tm.tm_min, tm.tm_sec, tm.tm_usec,
-                                                                                                 tm.tm_gmtoff / 3600, tm.tm_gmtoff % 3600);
-                                       }
-
-                                       if (rc_avpair_add(handle, send, attr_num, av_value, -1, vend_num) == NULL) {
-                                               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "mod_xml_radius: failed to add option to handle\n");
-                                               goto err;
-                                       }
-                                       if ( GLOBAL_DEBUG ) {
-                                               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "mod_xml_radius: value: %s\n", (char *) av_value);
-                                       }
-                               } else if ( strncmp( var, "h323-disconnect-time", 20) == 0 ) {
-                                       switch_caller_profile_t *profile = switch_channel_get_caller_profile(channel);
-                                       switch_time_t time = profile->times->hungup;
-                                       switch_time_exp_t tm;
-
-                                       if ( !time ) {
-                                               if ( variable_secondary != NULL && strncmp(variable_secondary, "now", 3) == 0 ) {
-                                                       time = switch_time_now();
-                                               } else {
-                                                       goto end_loop;
-                                               }
-                                       }
-
-                                       switch_time_exp_lt(&tm, time);
-
-                                       if ( GLOBAL_TIME_FORMAT == 1 ) {
-                                               av_value = switch_mprintf("%02u:%02u:%02u.%03u %s %s %s %02u %04u",
-                                                                                                 tm.tm_hour, tm.tm_min, tm.tm_sec, tm.tm_usec/1000,
-                                                                                                 GLOBAL_TIME_ZONE, radattrdays[tm.tm_wday], radattrmonths[tm.tm_mon],
-                                                                                                 tm.tm_mday, tm.tm_year + 1900);
-                                       } else {
-                                               av_value = switch_mprintf("%04u-%02u-%02uT%02u:%02u:%02u.%06u%+03d%02d",
-                                                                                                 tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday,
-                                                                                                 tm.tm_hour, tm.tm_min, tm.tm_sec, tm.tm_usec,
-                                                                                                 tm.tm_gmtoff / 3600, tm.tm_gmtoff % 3600);
-                                       }
-
-                                       if (rc_avpair_add(handle, send, attr_num, av_value, -1, vend_num) == NULL) {
-                                               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "mod_xml_radius: failed to add option to handle\n");
-                                               goto err;
-                                       }
-                                       if ( GLOBAL_DEBUG ) {
-                                               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "mod_xml_radius: value: %s\n", (char *) av_value);
-                                       }
-                               } else if ( strncmp( var, "h323-disconnect-cause", 21) == 0 ) {
-                                       switch_call_cause_t cause = switch_channel_get_cause(channel);
-                                       av_value = switch_mprintf("h323-disconnect-cause=%x", cause);
-                                       if (rc_avpair_add(handle, send, 30, av_value, -1, 9) == NULL) {
-                                               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "mod_xml_radius: failed to add disconnect cause \n");
-                                               goto err;
-                                       }
-
-                               } else {
-                                       if ( format == NULL ) {
-                                               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Missing format attribute for %s variable\n", variable);
-                                               goto err;
-                                       }
-
-                                       if ( attribute->type == 0 ) {
-                                               const char *val = NULL;
-
-                                               if ( other_leg ) {
-                                                       val = switch_channel_get_variable_partner(channel, variable);
-                                                       if ( val == NULL && variable_secondary != NULL) {
-                                                               val = switch_channel_get_variable_partner(channel, variable_secondary);
-                                                       }
-                                               } else {
-                                                       val = switch_channel_get_variable(channel, variable);
-                                                       if ( val == NULL && variable_secondary != NULL) {
-                                                               val = switch_channel_get_variable(channel, variable_secondary);
-                                                       }
-                                               }
-
-                                               if ( regex && val ) {
-                                                        switch_regex_t *re = NULL;
-                                                        int ovector[30];
-                                                        int proceed;
-                                                        char replace[1024] = "";
-                                                        proceed = 0;
-                                                        proceed = switch_regex_perform(val, regex, &re, ovector, sizeof(ovector) / sizeof(ovector[0]));
-                                                        if ( proceed > 0 ) {
-                                                            switch_regex_copy_substring(val, ovector, proceed, proceed - 1, replace, sizeof(replace));
-                                                           switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "original value: %s, regex: %s, result: %s\n", val, regex, replace);
-                                                            val = replace;
-                                                        }
-                                                        else {
-                                                           switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "original value: %s, regex: %s, result: nomatch, value left intact\n", val, regex);
-                                                        }
-                                                        switch_regex_safe_free(re);
-                                               }
-
-                                               if ( val == NULL && val_default != NULL) {
-                                                       av_value = switch_mprintf(format, val_default);
-                                               } else {
-                                                       av_value = switch_mprintf(format, val);
-                                               }
-
-                                               if ( GLOBAL_DEBUG ) {
-                                                       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "mod_xml_radius: value: %s\n", (char *) av_value);
-                                               }
-
-                                               if (rc_avpair_add(handle, send, attr_num, av_value, -1, vend_num) == NULL) {
-                                                       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR,
-                                                                                         "mod_xml_radius: failed to add option with val '%s' to handle\n", (char *) av_value);
-                                                       goto err;
-                                               }
-                                       } else if ( attribute->type == 1 ) {
-                                               const char *data = switch_channel_get_variable(channel, variable);
-                                               int number = 0;
-
-                                               if ( data ) {
-                                                       number = atoi(data);
-                                               }
-
-                                               if (rc_avpair_add(handle, send, attr_num, &number, -1, vend_num) == NULL) {
-                                                       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR,
-                                                                                         "mod_xml_radius: failed to add option with value '%d' to handle\n", number);
-                                                       goto err;
-                                               }
-                                       }
-                               }
-                       } else if ( params ) {
-                               /* Auth only */
-                               char *tmp = switch_event_get_header(params, variable);
-
-                               if ( GLOBAL_DEBUG ) {
-                                       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "mod_xml_radius: param var '%s' val: %s\n", variable, tmp);
-                               }
-
-                               if ( tmp == NULL ) {
-                                       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "mod_xml_radius: Unable to locate '%s' on the event\n", variable);
-                                       goto err;
-                               }
-
-                               av_value = switch_mprintf(format, tmp);
-                               if (rc_avpair_add(handle, send, attr_num, av_value, -1, vend_num) == NULL) {
-                                       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "mod_xml_radius: failed to add option to handle\n");
-                                       goto err;
-                               }
-                       } else {
-                               goto err;
-                       }
-               } else {
-                       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "mod_xml_radius: all params must have a name attribute\n");
-                       goto err;
-               }
-
-       end_loop:
-               if ( av_value != NULL ) {
-                       free(av_value);
-                       av_value  = NULL;
-               }
-       }
-
-       return SWITCH_STATUS_SUCCESS;
- err:
-       if ( av_value != NULL ) {
-               free(av_value);
-               av_value  = NULL;
-       }
-       return SWITCH_STATUS_GENERR;
-
-}
-
-/* static switch_status_t name (_In_opt_z_ const char *cmd, _In_opt_ switch_core_session_t *session, _In_ switch_stream_handle_t *stream) */
-SWITCH_STANDARD_API(mod_xml_radius_debug_api)
-{
-       if ( !strncmp(cmd, "on", 2) ) {
-               GLOBAL_DEBUG = 1;
-       } else if ( !strncmp(cmd, "off", 3)){
-               GLOBAL_DEBUG = 0;
-       } else {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CONSOLE, "Valid options are [yes|no]\n" );
-       }
-
-       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CONSOLE, "debug is %s\n", (GLOBAL_DEBUG ? "on" : "off") );
-       return SWITCH_STATUS_SUCCESS;
-}
-
-switch_xml_t mod_xml_radius_auth_invite(switch_event_t *params) {
-       int result = 0, param_idx = 0;
-       VALUE_PAIR *send = NULL, *recv = NULL, *service_vp = NULL;
-       char msg[512 * 10 + 1] = {0};
-       uint32_t service = PW_AUTHENTICATE_ONLY;
-       rc_handle *new_handle = NULL;
-       switch_xml_t fields, xml, dir, dom, usr, vars, var;
-       char name[512], value[512], *strtmp;
-
-       if (GLOBAL_DEBUG ) {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "mod_xml_radius: starting invite authentication\n");
-       }
-
-       if ( mod_xml_radius_new_handle(&new_handle, globals.auth_invite_configs) != SWITCH_STATUS_SUCCESS ) {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Failed to load radius handle for digest invite authentication\n");
-               goto err;
-       }
-
-       if ( new_handle == NULL ) {
-               goto err;
-       }
-
-       if ((fields = switch_xml_child(globals.auth_invite_configs, "fields")) == NULL ) {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Could not find 'fields' section in config file.\n");
-               goto err;
-       }
-
-       if ( mod_xml_radius_add_params(NULL, params, new_handle, &send, fields) != SWITCH_STATUS_SUCCESS ) {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Failed to add params to rc_handle\n");
-               goto err;
-       }
-
-       if (rc_avpair_add(new_handle, &send, PW_SERVICE_TYPE, &service, -1, 0) == NULL) {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "mod_xml_radius: failed to add option to handle\n");
-               goto err;
-       }
-
-       result = rc_auth(new_handle, 0, send, &recv, msg);
-
-       if ( GLOBAL_DEBUG ){
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "mod_xml_radius: result(RC=%d) %s \n", result, msg);
-       }
-
-       if ( result != 0 ) {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "mod_xml_radius: Failed to authenticate\n");
-               goto err;
-       }
-
-       xml = switch_xml_new("document");
-       switch_xml_set_attr_d(xml, "type", "freeswitch/xml");
-       dir = switch_xml_add_child_d(xml, "section", 0);
-       switch_xml_set_attr_d(dir, "name", "directory");
-       dom = switch_xml_add_child_d(dir, "domain", 0);
-       switch_xml_set_attr_d(dom, "name", switch_event_get_header(params, "domain"));
-       usr = switch_xml_add_child_d(dom, "user", 0);
-       vars = switch_xml_add_child_d(usr, "variables", 0);
-
-       switch_xml_set_attr_d(usr, "id", switch_event_get_header(params, "user"));
-
-       var = switch_xml_add_child_d(vars, "variable", param_idx++);
-       switch_xml_set_attr_d(var, "name", "radius_auth_result");
-       switch_xml_set_attr_d(var, "value", "0");
-
-       service_vp = recv;
-       while (service_vp != NULL) {
-               rc_avpair_tostr(new_handle, service_vp, name, 512, value, 512);
-               if ( GLOBAL_DEBUG )
-                       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "\tattribute (%s)[%s] found in radius packet\n", name, value);
-               var = switch_xml_add_child_d(vars, "variable", param_idx++);
-               strtmp = strdup(name);
-               switch_xml_set_attr_d(var, "name", strtmp);
-               free(strtmp);
-               strtmp = strdup(value);
-               switch_xml_set_attr_d(var, "value", strtmp);
-               free(strtmp);
-               service_vp = service_vp->next;
-       }
-
-       if ( GLOBAL_DEBUG ) {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "XML: %s \n", switch_xml_toxml(xml, 1));
-       }
-
-       if ( recv ) {
-               rc_avpair_free(recv);
-               recv = NULL;
-       }
-       if ( send ) {
-               rc_avpair_free(send);
-               send = NULL;
-       }
-       if ( new_handle ) {
-               rc_destroy(new_handle);
-               new_handle = NULL;
-       }
-       return xml;
- err:
-       if ( recv ) {
-               rc_avpair_free(recv);
-               recv = NULL;
-       }
-       if ( send ) {
-               rc_avpair_free(send);
-               send = NULL;
-       }
-       if ( new_handle ) {
-               rc_destroy(new_handle);
-               new_handle = NULL;
-       }
-
-       return NULL;
-}
-
-switch_xml_t mod_xml_radius_auth_reg(switch_event_t *params) {
-       int result = 0, param_idx = 0;
-       VALUE_PAIR *send = NULL, *recv = NULL, *service_vp = NULL;
-       char msg[512 * 10 + 1] = {0};
-       uint32_t service = PW_AUTHENTICATE_ONLY;
-       rc_handle *new_handle = NULL;
-       switch_xml_t fields, xml, dir, dom, usr, vars, var;
-       char name[512], value[512], *strtmp;
-
-       if (GLOBAL_DEBUG ) {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "mod_xml_radius: starting registration authentication\n");
-       }
-
-       if ( mod_xml_radius_new_handle(&new_handle, globals.auth_reg_configs) != SWITCH_STATUS_SUCCESS ) {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Failed to load radius handle for registration authentication\n");
-               goto err;
-       }
-
-       if ( new_handle == NULL ) {
-               goto err;
-       }
-
-       if ((fields = switch_xml_child(globals.auth_reg_configs, "fields")) == NULL ) {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Could not find 'fields' section in config file.\n");
-               goto err;
-       }
-
-       if ( mod_xml_radius_add_params(NULL, params, new_handle, &send, fields) != SWITCH_STATUS_SUCCESS ) {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Failed to add params to rc_handle\n");
-               goto err;
-       }
-
-       if (rc_avpair_add(new_handle, &send, PW_SERVICE_TYPE, &service, -1, 0) == NULL) {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "mod_xml_radius: failed to add option to handle\n");
-               goto err;
-       }
-
-       result = rc_auth(new_handle, 0, send, &recv, msg);
-
-       if ( GLOBAL_DEBUG ){
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "mod_xml_radius: result(RC=%d) %s \n", result, msg);
-       }
-
-       if ( result != 0 ) {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "mod_xml_radius: Failed to authenticate\n");
-               goto err;
-       }
-
-       xml = switch_xml_new("document");
-       switch_xml_set_attr_d(xml, "type", "freeswitch/xml");
-       dir = switch_xml_add_child_d(xml, "section", 0);
-       switch_xml_set_attr_d(dir, "name", "directory");
-       dom = switch_xml_add_child_d(dir, "domain", 0);
-       switch_xml_set_attr_d(dom, "name", switch_event_get_header(params, "domain"));
-       usr = switch_xml_add_child_d(dom, "user", 0);
-       vars = switch_xml_add_child_d(usr, "variables", 0);
-
-       switch_xml_set_attr_d(usr, "id", switch_event_get_header(params, "user"));
-
-       service_vp = recv;
-       while (service_vp != NULL) {
-               rc_avpair_tostr(new_handle, service_vp, name, 512, value, 512);
-               if ( GLOBAL_DEBUG )
-                       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "\tattribute (%s)[%s] found in radius packet\n", name, value);
-               var = switch_xml_add_child_d(vars, "variable", param_idx++);
-               strtmp = strdup(name);
-               switch_xml_set_attr_d(var, "name", strtmp);
-               free(strtmp);
-               strtmp = strdup(value);
-               switch_xml_set_attr_d(var, "value", strtmp);
-               free(strtmp);
-               service_vp = service_vp->next;
-       }
-
-       if ( GLOBAL_DEBUG ) {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "XML: %s \n", switch_xml_toxml(xml, 1));
-       }
-
-       if ( recv ) {
-               rc_avpair_free(recv);
-               recv = NULL;
-       }
-       if ( send ) {
-               rc_avpair_free(send);
-               send = NULL;
-       }
-       if ( new_handle ) {
-               rc_destroy(new_handle);
-               new_handle = NULL;
-       }
-
-       return xml;
- err:
-       if ( recv ) {
-               rc_avpair_free(recv);
-               recv = NULL;
-       }
-       if ( send ) {
-               rc_avpair_free(send);
-               send = NULL;
-       }
-       if ( new_handle ) {
-               rc_destroy(new_handle);
-               new_handle = NULL;
-       }
-
-       return NULL;
-}
-
-static switch_xml_t mod_xml_radius_directory_search(const char *section, const char *tag_name, const char *key_name, const char *key_value,
-                                                                                                       switch_event_t *params, void *user_data)
-{
-       char *event_buf = NULL;
-       switch_xml_t xml = NULL;
-       char *auth_method = switch_event_get_header(params,"sip_auth_method");
-
-
-       if ( GLOBAL_DEBUG ) {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "mod_xml_radius: starting authentication\n");
-               switch_event_serialize(params, &event_buf, SWITCH_TRUE);
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Event: %s \n", event_buf);
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "\nSection: %s \nTag: %s\nKey_name: %s\nKey_value: %s\n",
-                                                 section, tag_name, key_name, key_value);
-       }
-
-       if ( auth_method == NULL) {
-               return NULL;
-       }
-
-       if ( strncmp( "INVITE", auth_method, 6) == 0) {
-               xml = mod_xml_radius_auth_invite(params);
-       } else if ( strncmp( "REGISTER", auth_method, 8) == 0) {
-               xml = mod_xml_radius_auth_reg(params);
-       } else {
-               xml = NULL;
-       }
-
-       return xml;
-}
-
-switch_status_t mod_xml_radius_check_conditions(switch_channel_t *channel, switch_xml_t conditions) {
-       switch_xml_t condition, param;
-       char *channel_var = NULL;
-       const char *channel_val = NULL;
-       char *regex = NULL;
-       char *anti = NULL;
-       int all_matched = 1;
-       int result = 0;
-
-       if ( (condition = switch_xml_child(conditions, "condition")) == NULL) {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Failed to locate a condition under the conditions section\n");
-               return SWITCH_STATUS_FALSE;
-       }
-
-       for (; condition; condition = condition->next) {
-
-               if ( (param = switch_xml_child(condition, "param")) == NULL) {
-                       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Failed to locate a param under this condition\n");
-                       return SWITCH_STATUS_FALSE;
-               }
-
-               all_matched = 1;
-               for (; param && all_matched; param = param->next) {
-                       channel_var = (char *) switch_xml_attr(param, "var");
-                       regex = (char *) switch_xml_attr(param, "regex");
-                       anti = (char *) switch_xml_attr(param, "anti");
-
-                       if ( channel_var == NULL || regex == NULL ) {
-                               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Improperly constructed mod_radius condition: %s %s\n", channel_var, regex);
-                               continue;
-                       }
-
-                       if ( ( channel_val = switch_channel_get_variable(channel, channel_var) ) == NULL ) {
-                               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR,
-                                                                 "Improperly constructed mod_radius condition, no such channel variable: %s %s\n", channel_var, regex);
-                               continue;
-                       }
-
-                       result = ( switch_regex_match( channel_val, regex) != SWITCH_STATUS_SUCCESS);
-                       if (( anti == NULL && result ) || ( anti != NULL && !result ) ){
-                               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Didn't match: %s == %s \n", switch_channel_get_variable(channel, channel_var), regex);
-                               all_matched = 0;
-                       } else {
-                               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Result of %s match: %s == %s \n",
-                                                                 anti, switch_channel_get_variable(channel, channel_var), regex);
-                       }
-               }
-
-               if ( all_matched ) {
-                       return SWITCH_STATUS_SUCCESS;
-               }
-       }
-
-       return SWITCH_STATUS_FALSE;
-}
-
-switch_status_t mod_xml_radius_accounting_start(switch_core_session_t *session){
-       VALUE_PAIR *send = NULL;
-       uint32_t service = PW_STATUS_START;
-       rc_handle *new_handle = NULL;
-       switch_xml_t fields, conditions;
-       switch_channel_t *channel = switch_core_session_get_channel(session);
-
-       if (GLOBAL_DEBUG ) {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "mod_xml_radius: starting accounting start\n");
-               switch_core_session_execute_application(session, "info", NULL);
-       }
-
-       /* If there are conditions defined, and none of them pass, then skip this accounting */
-       if ((conditions = switch_xml_child(globals.acct_start_configs, "conditions")) != NULL &&
-               mod_xml_radius_check_conditions(channel, conditions) != SWITCH_STATUS_SUCCESS ) {
-               goto end;
-       }
-
-       if ( mod_xml_radius_new_handle(&new_handle, globals.acct_start_configs) != SWITCH_STATUS_SUCCESS || new_handle == NULL ) {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Failed to create new accounting_start handle for call: %s\n",
-                                                 switch_channel_get_variable(channel, "uuid"));
-               goto end;
-       }
-
-       if ((fields = switch_xml_child(globals.acct_start_configs, "fields")) == NULL ) {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Could not find 'fields' section in config file.\n");
-               goto end;
-       }
-
-       if ( mod_xml_radius_add_params(session, NULL, new_handle, &send, fields) != SWITCH_STATUS_SUCCESS ) {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Failed to add params to rc_handle\n");
-               goto end;
-       }
-
-       if (rc_avpair_add(new_handle, &send, PW_ACCT_STATUS_TYPE, &service, -1, 0) == NULL) {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "mod_xml_radius: failed to add option to handle\n");
-               goto end;
-       }
-
-       if (rc_acct(new_handle, 0, send) == OK_RC) {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "mod_xml_radius:  Accounting Start success\n");
-       } else {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "mod_xml_radius:  Accounting Start failed\n");
-       }
-
- end:
-       if ( send ) {
-               rc_avpair_free(send);
-               send = NULL;
-       }
-       if ( new_handle ) {
-               rc_destroy(new_handle);
-               new_handle = NULL;
-       }
-
-       return SWITCH_STATUS_SUCCESS;
-}
-
-switch_status_t mod_xml_radius_accounting_end(switch_core_session_t *session){
-       VALUE_PAIR *send = NULL;
-       uint32_t service = PW_STATUS_STOP;
-       rc_handle *new_handle = NULL;
-       switch_xml_t fields = NULL, conditions = NULL;
-       switch_channel_t *channel = switch_core_session_get_channel(session);
-
-       if (GLOBAL_DEBUG ) {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "mod_xml_radius: starting accounting stop\n");
-               switch_core_session_execute_application(session, "info", NULL);
-       }
-
-       /* If there are conditions defined, and none of them pass, then skip this accounting */
-       if ((conditions = switch_xml_child(globals.acct_end_configs, "conditions")) != NULL &&
-               mod_xml_radius_check_conditions(channel, conditions) != SWITCH_STATUS_SUCCESS ) {
-               goto end;
-       }
-
-       if ( mod_xml_radius_new_handle(&new_handle, globals.acct_end_configs) != SWITCH_STATUS_SUCCESS || new_handle == NULL ) {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Failed to create new accounting_end handle for call: %s\n",
-                                                 switch_channel_get_variable(channel, "uuid"));
-               goto end;
-       }
-
-       if ((fields = switch_xml_child(globals.acct_end_configs, "fields")) == NULL ) {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Could not find 'fields' section in config file.\n");
-               goto end;
-       }
-
-       if ( mod_xml_radius_add_params(session, NULL, new_handle, &send, fields) != SWITCH_STATUS_SUCCESS ) {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Failed to add params to rc_handle\n");
-               goto end;
-       }
-
-       if (rc_avpair_add(new_handle, &send, PW_ACCT_STATUS_TYPE, &service, -1, 0) == NULL) {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "mod_xml_radius: failed to add option to handle\n");
-               goto end;
-       }
-
-       if (rc_acct(new_handle, 0, send) == OK_RC) {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "mod_xml_radius:  Accounting Stop success\n");
-       } else {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "mod_xml_radius:  Accounting Stop failed\n");
-       }
-
- end:
-       if ( send ) {
-               rc_avpair_free(send);
-               send = NULL;
-       }
-       if ( new_handle) {
-               rc_destroy(new_handle);
-               new_handle = NULL;
-       }
-
-       return SWITCH_STATUS_SUCCESS;
-}
-
-SWITCH_STANDARD_APP(radius_auth_handle)
-{
-       switch_channel_t *channel = switch_core_session_get_channel(session);
-       int result = 0;
-       VALUE_PAIR *send = NULL, *recv = NULL, *service_vp = NULL;
-       char msg[512 * 10 + 1] = {0};
-       uint32_t service = PW_AUTHENTICATE_ONLY;
-       rc_handle *new_handle = NULL;
-       switch_xml_t fields;
-       char name[512], value[512], *temp = NULL;
-
-       if (GLOBAL_DEBUG ) {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "mod_xml_radius: starting app authentication\n");
-       }
-
-       if ( mod_xml_radius_new_handle(&new_handle, globals.auth_app_configs) != SWITCH_STATUS_SUCCESS || new_handle == NULL ) {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Failed to create new authentication handle for call: %s\n",
-                                                 switch_channel_get_variable(channel, "uuid"));
-               goto err;
-       }
-
-       if ((fields = switch_xml_child(globals.auth_app_configs, "fields")) == NULL ) {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Could not find 'fields' section in config file.\n");
-               goto err;
-       }
-
-       if ( mod_xml_radius_add_params(session, NULL, new_handle, &send, fields) != SWITCH_STATUS_SUCCESS ) {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Failed to add params to rc_handle\n");
-               goto err;
-       }
-
-       if (rc_avpair_add(new_handle, &send, PW_SERVICE_TYPE, &service, -1, 0) == NULL) {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "mod_xml_radius: failed to add option to handle\n");
-               goto err;
-       }
-
-       result = rc_auth(new_handle, 0, send, &recv, msg);
-
-       if ( GLOBAL_DEBUG ){
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "mod_xml_radius: result(RC=%d) %s \n", result, msg);
-       }
-       temp = switch_mprintf("%d",result);
-       switch_channel_set_variable(channel, "radius_auth_result", temp);
-       free(temp);
-       temp = NULL;
-
-       if ( result != 0 ) {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "mod_xml_radius: Failed to authenticate, authentication result: %d \n", result);
-               goto err;
-       }
-
-
-       service_vp = recv;
-       while (service_vp != NULL) {
-               rc_avpair_tostr(new_handle, service_vp, name, 512, value, 512);
-               if ( GLOBAL_DEBUG )
-                       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "\tattribute (%s)[%s] found in radius packet\n", name, value);
-
-               switch_channel_set_variable(channel, name, value);
-               service_vp = service_vp->next;
-       }
-
-       if ( recv ) {
-               rc_avpair_free(recv);
-               recv = NULL;
-       }
-       if ( send ) {
-               rc_avpair_free(send);
-               send = NULL;
-       }
-       if ( new_handle ) {
-               rc_destroy(new_handle);
-               new_handle = NULL;
-       }
-
-       return;
- err:
-       if ( recv ) {
-               rc_avpair_free(recv);
-               recv = NULL;
-       }
-       if ( send ) {
-               rc_avpair_free(send);
-               send = NULL;
-       }
-       if ( new_handle ) {
-               rc_destroy(new_handle);
-               new_handle = NULL;
-       }
-       return;
-}
-
-static const switch_state_handler_table_t state_handlers = {
-       /*.on_init */ NULL,
-       /*.on_routing */ mod_xml_radius_accounting_start,
-       /*.on_execute */ NULL,
-       /*.on_hangup */ NULL,
-       /*.on_exchange_media */ NULL,
-       /*.on_soft_execute */ NULL,
-       /*.on_consume_media */ NULL,
-       /*.on_hibernate */ NULL,
-       /*.on_reset */ NULL,
-       /*.on_park */ NULL,
-       /*.on_reporting */ mod_xml_radius_accounting_end
-};
-
-
-/* switch_status_t name (switch_loadable_module_interface_t **module_interface, switch_memory_pool_t *pool) */
-SWITCH_MODULE_LOAD_FUNCTION(mod_xml_radius_load)
-{
-       switch_api_interface_t *mod_xml_radius_api_interface;
-       switch_status_t status = SWITCH_STATUS_SUCCESS;
-       switch_application_interface_t *app_interface;
-
-       /* connect my internal structure to the blank pointer passed to me */
-       *module_interface = switch_loadable_module_create_module_interface(pool, modname);
-
-       memset(&globals, 0, sizeof(globals));
-       globals.pool = pool;
-
-       if ( GLOBAL_DEBUG != 0 ) {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "mod_xml_radius: loading\n");
-       }
-
-       if ( (status = do_config()) != SWITCH_STATUS_SUCCESS ) {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "mod_xml_radius: Failed to load configs\n");
-               return SWITCH_STATUS_TERM;
-       }
-
-       if ( globals.auth_invite_configs && globals.auth_reg_configs ) {
-               status = switch_xml_bind_search_function(mod_xml_radius_directory_search, switch_xml_parse_section_string("directory"), NULL);
-       }
-
-       SWITCH_ADD_API(mod_xml_radius_api_interface, "xml_radius_debug", "mod_xml_radius toggle debug", mod_xml_radius_debug_api, NULL);
-
-       switch_core_add_state_handler(&state_handlers);
-
-       SWITCH_ADD_APP(app_interface, "radius_auth", NULL, NULL, radius_auth_handle, "radius_auth", SAF_SUPPORT_NOMEDIA | SAF_ROUTING_EXEC);
-
-       /* indicate that the module should continue to be loaded */
-       return SWITCH_STATUS_SUCCESS;
-}
-
-SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_xml_radius_shutdown)
-{
-       switch_core_remove_state_handler(&state_handlers);
-       switch_xml_unbind_search_function_ptr(mod_xml_radius_directory_search);
-
-       if ( globals.auth_invite_configs ) {
-               switch_xml_free(globals.auth_invite_configs);
-       }
-       if ( globals.auth_reg_configs ) {
-               switch_xml_free(globals.auth_reg_configs);
-       }
-       if ( globals.auth_app_configs ) {
-               switch_xml_free(globals.auth_app_configs);
-       }
-       if ( globals.acct_start_configs ) {
-               switch_xml_free(globals.acct_start_configs);
-       }
-       if ( globals.acct_end_configs ) {
-               switch_xml_free(globals.acct_end_configs);
-       }
-       return SWITCH_STATUS_SUCCESS;
-}
-
-/* For Emacs:
- * Local Variables:
- * mode:c
- * indent-tabs-mode:t
- * tab-width:4
- * c-basic-offset:4
- * End:
- * For VIM:
- * vim:set softtabstop=4 shiftwidth=4 tabstop=4 noet:
- */
diff --git a/src/mod/xml_int/mod_xml_radius/xml_radius.conf.xml b/src/mod/xml_int/mod_xml_radius/xml_radius.conf.xml
deleted file mode 100644 (file)
index 028ace2..0000000
+++ /dev/null
@@ -1,167 +0,0 @@
-<configuration name="xml_radius.conf" description="Radius XML Gateway">
-  <!--
-     auth_invite is only called when a directory lookup is done on an inbound invite. Usually that means a digest auth challenge on the invite.
-
-     auth_reg is only called on the actual registration.
-
-     auth_app is used when an invite is in the dialplan. If your profile requires digest auth then this isn't needed.
-              but if your profile is doing only ip authentication this allows you to authenticate the call without the need for digest auth.
-
-     acct_start happens when the call goes into the state 'routing' which means it is starting the dialplan
-  -->
-  <auth_invite>
-    <connection name="testing">
-      <param name="authserver" value="127.0.0.1:1812:testing123"/>
-      <param name="radius_timeout" value="10"/>
-      <param name="radius_retries" value="2"/>
-      <param name="radius_deadtime" value="0"/>
-      <param name="dictionary" value="/usr/local/src/freeswitch/src/mod/xml_int/mod_xml_radius/dictionaries/dictionary"/>
-      <param name="seqfile" value="/var/run/radius.seq"/>
-    </connection>
-    <fields>
-      <param vendor="Cisco" name="Cisco-AVPair" variable="ip" format="src-gw-ip=%s"/>
-      <param vendor="Cisco" name="Cisco-AVPair" variable="sip_from_user" format="src-gw-name=%s"/>
-      <param vendor="Cisco" name="h323-conf-id" variable="Core-UUID" format="%s"/>
-      <param vendor="Cisco" name="Cisco-AVPair" variable="ip" format="request-type=number"/>
-      <param name="Called-Station-Id" variable="sip_to_user" format="%s"/>
-      <param name="Calling-Station-Id" variable="sip_from_user" format="%s"/>
-      <param name="User-Name" variable="sip_from_user" format="%s"/>
-      <param name="Digest-Response" variable="sip_auth_response" format="%s"/>
-      <param name="Digest-Realm" variable="sip_auth_realm" format="%s"/>
-      <param name="Digest-Nonce" variable="sip_auth_nonce" format="%s"/>
-      <param name="Digest-Username" variable="sip_auth_username" format="%s"/>
-      <param name="Digest-URI" variable="sip_auth_uri" format="%s"/>
-      <param name="Digest-Method" variable="sip_auth_method" format="%s"/>
-      <param name="Digest-Algorithm" variable="sip_auth_method" format="MD5"/>
-      <param name="Digest-Qop" variable="sip_auth_qop" format="%s"/>
-      <param name="Digest-CNonce" variable="sip_auth_cnonce" format="%s"/>
-      <param name="Digest-Nonce-Count" variable="sip_auth_nc" format="%s"/>
-    </fields>
-  </auth_invite>
-  <auth_reg>
-    <connection name="testing">
-      <param name="authserver" value="127.0.0.1:1812:testing123"/>
-      <param name="radius_timeout" value="10"/>
-      <param name="radius_retries" value="2"/>
-      <param name="radius_deadtime" value="0"/>
-      <param name="dictionary" value="/usr/local/src/freeswitch/src/mod/xml_int/mod_xml_radius/dictionaries/dictionary"/>
-      <param name="seqfile" value="/var/run/radius.seq"/>
-    </connection>
-    <fields>
-      <param vendor="Cisco" name="Cisco-AVPair" variable="ip" format="request-type=user"/>
-      <param vendor="Cisco" name="Cisco-AVPair" variable="ip" format="src-gw-ip=%s"/>
-      <param vendor="Cisco" name="Cisco-AVPair" variable="sip_from_user" format="src-gw-name=%s"/>
-      <param name="User-Name" variable="sip_from_user" format="%s"/>
-      <param name="Digest-Response" variable="sip_auth_response" format="%s"/>
-      <param name="Digest-Realm" variable="sip_auth_realm" format="%s"/>
-      <param name="Digest-Nonce" variable="sip_auth_nonce" format="%s"/>
-      <param name="Digest-Username" variable="sip_auth_username" format="%s"/>
-      <param name="Digest-URI" variable="sip_auth_uri" format="%s"/>
-      <param name="Digest-Method" variable="sip_auth_method" format="%s"/>
-      <param name="Digest-Algorithm" variable="sip_auth_method" format="MD5"/>
-      <param name="Digest-Qop" variable="sip_auth_qop" format="%s"/>
-      <param name="Digest-CNonce" variable="sip_auth_cnonce" format="%s"/>
-      <param name="Digest-Nonce-Count" variable="sip_auth_nc" format="%s"/>
-    </fields>
-  </auth_reg>
-  <auth_app>
-    <connection name="testing">
-      <param name="authserver" value="127.0.0.1:1812:testing123"/>
-      <param name="radius_timeout" value="10"/>
-      <param name="radius_retries" value="2"/>
-      <param name="radius_deadtime" value="0"/>
-      <param name="dictionary" value="/usr/local/src/freeswitch/src/mod/xml_int/mod_xml_radius/dictionaries/dictionary"/>
-      <param name="seqfile" value="/var/run/radius.seq"/>
-    </connection>
-    <fields>
-      <param vendor="Cisco" name="h323-conf-id" variable_secondary="uuid" variable="originating_leg_uuid" format="%s"/>
-      <param vendor="Cisco" name="Cisco-AVPair" variable="uuid" format="h323-call-id=%s"/>
-      <param vendor="Cisco" name="Cisco-AVPair" variable="sip_network_ip" format="src-gw-ip=%s"/>
-      <param vendor="Cisco" name="Cisco-AVPair" variable="sip_from_user" format="src-gw-name=%s"/>
-      <param vendor="Cisco" name="Cisco-AVPair" variable="sip_from_user" format="src-number-in=%s" />
-      <param vendor="Cisco" name="Cisco-AVPair" variable="sip_to_user" format="dst-number-in=%s" />
-      <param name="Called-Station-Id" variable="sip_to_user" format="%s"/>
-      <param name="Calling-Station-Id" variable="sip_from_user" format="%s"/>
-    </fields>
-  </auth_app>
-  <auth_reg>
-    <connection name="testing">
-      <param name="authserver" value="127.0.0.1:1812:testing123"/>
-      <param name="radius_timeout" value="10"/>
-      <param name="radius_retries" value="2"/>
-      <param name="radius_deadtime" value="0"/>
-      <param name="dictionary" value="/usr/share/freeradius/dictionary.cisco"/>
-      <param name="seqfile" value="/var/run/radius.seq"/>
-    </connection>
-    <fields>
-    </fields>
-  </auth_reg>
-  <acct_start>
-    <connection name="testing">
-      <param name="acctserver" value="127.0.0.1:1813:testing123"/>
-      <param name="radius_timeout" value="10"/>
-      <param name="radius_retries" value="0"/>
-      <param name="radius_deadtime" value="0"/>
-      <param name="dictionary" value="/usr/local/src/freeswitch/src/mod/xml_int/mod_xml_radius/dictionaries/dictionary"/>
-      <param name="seqfile" value="/var/run/radius.seq"/>
-    </connection>
-    <fields>
-      <param vendor="Cisco" name="h323-call-origin" variable="h323-call-origin" default="answer" format="%s"/>
-      <param vendor="Cisco" name="h323-conf-id" variable_secondary="uuid" variable="originating_leg_uuid" format="%s"/>
-      <param vendor="Cisco" name="Cisco-AVPair" variable="uuid" format="h323-call-id=%s"/>
-      <param vendor="Cisco" name="Cisco-AVPair" variable="sip_contact_host" format="src-gw-ip=%s"/>
-      <param vendor="Cisco" name="Cisco-AVPair" variable="sip_from_user" variable_secondary="ani" format="src-gw-name=%s"/>
-      <param vendor="Cisco" name="Cisco-AVPair" variable="sip_from_user" variable_secondary="ani" format="src-number-in=%s" />
-      <param vendor="Cisco" name="Cisco-AVPair" variable="sip_from_user" variable_secondary="ani" format="src-number-out=%s" />
-      <param name="Calling-Station-Id" variable="sip_from_user" variable_secondary="ani" format="%s"/>
-      <param vendor="Cisco" name="Cisco-AVPair" variable="sip_to_host" format="dst-gw-ip=%s"/>
-      <param vendor="Cisco" name="Cisco-AVPair" variable="destination_number" format="dst-gw-name=%s"/>
-      <param vendor="Cisco" name="Cisco-AVPair" variable="destination_number" format="dst-number-in=%s" />
-      <param vendor="Cisco" name="Cisco-AVPair" variable="destination_number" format="dst-number-out=%s" />
-      <param name="Called-Station-Id" variable="destination_number" format="%s"/>
-      <param vendor="Cisco" name="h323-setup-time"/>
-    </fields>
-  <conditions>
-    <condition>
-      <!-- anti="true" will cause any leg that matches to not be logged -->
-      <param var="sip_to_host" regex="^8\.8\.8\.8" anti="true"/>
-    </condition>
-  </conditions>
-  </acct_start>
-  <acct_end>
-    <connection name="testing">
-      <param name="acctserver" value="127.0.0.1:1813:testing123"/>
-      <param name="radius_timeout" value="10"/>
-      <param name="radius_retries" value="0"/>
-      <param name="radius_deadtime" value="0"/>
-      <param name="dictionary" value="/usr/local/src/freeswitch/src/mod/xml_int/mod_xml_radius/dictionaries/dictionary"/>
-      <param name="seqfile" value="/var/run/radius.seq"/>
-    </connection>
-    <fields>
-      <param vendor="Cisco" name="h323-call-origin" variable="h323-call-origin" default="answer" format="%s"/>
-      <param vendor="Cisco" name="h323-conf-id" variable_secondary="uuid" variable="originating_leg_uuid" format="%s"/>
-      <param vendor="Cisco" name="Cisco-AVPair" variable="uuid" format="h323-call-id=%s"/>
-      <param vendor="Cisco" name="Cisco-AVPair" variable="sip_contact_host" format="src-gw-ip=%s"/>
-      <param vendor="Cisco" name="Cisco-AVPair" variable="sip_from_user" variable_secondary="ani" format="src-gw-name=%s"/>
-      <param vendor="Cisco" name="Cisco-AVPair" variable="sip_from_user" variable_secondary="ani" format="src-number-in=%s" />
-      <param vendor="Cisco" name="Cisco-AVPair" variable="sip_from_user" variable_secondary="ani" format="src-number-out=%s" />
-      <param name="Calling-Station-Id" variable="sip_from_user" variable_secondary="ani" format="%s"/>
-      <param vendor="Cisco" name="Cisco-AVPair" variable="sip_to_host" format="dst-gw-ip=%s"/>
-      <param vendor="Cisco" name="Cisco-AVPair" variable="sip_to_user" variable_secondary="dialed_extension" format="dst-gw-name=%s"/>
-      <param vendor="Cisco" name="Cisco-AVPair" variable="sip_to_user" variable_secondary="dialed_extension" format="dst-number-in=%s" />
-      <param name="Called-Station-Id" variable="destination_number" format="%s"/>
-      <param vendor="Cisco" name="h323-setup-time"/>
-      <param vendor="Cisco" name="h323-connect-time"/>
-      <param vendor="Cisco" name="h323-disconnect-time"/>
-      <param vendor="Cisco" name="h323-disconnect-cause"/>
-      <param name="Acct-Session-Time" variable="billsec" format="%s"/>
-      <param vendor="Cisco" name="Cisco-AVPair" variable_secondary="progressmsec" variable="progress_mediamsec" format="pdd-time=%s"/>
-      <param vendor="Cisco" name="Cisco-AVPair" variable="destination_number" format="dst-number-out=%s"/>
-    </fields>
-  <conditions>
-    <condition>
-      <param var="sip_to_host" regex="^8\.8\.8\.8" anti="true"/>
-    </condition>
-  </conditions>
-  </acct_end>
-</configuration>