[Serusers] pstn AS5350 Radius_Acc

Rafael J. Risco G.V rafael_rgv at yahoo.com
Fri Jul 30 22:49:58 CEST 2004


I have an accounting problem in this simple escenario:
 
   PSTNCaller --> Cisco AS5350 --> SER --> IPPhone
 
I can see complete radius Accounting log (Start and Stop generated by ser) when the callee IPPhone hung up first, but when the PSTNCaller hung up fisrt just the "start" is generated in radius and the "stop" log is missing, in this case when I watch messages using ngrep in port 5060 I´ve realized that GW sends BYE twice to ser and IPPhone also sends OK twice to Ser...
any idea?
 
regards
Rafael
 
PS: relevant as5350 config:
 
dial-peer voice 2001 voip
 description PSTN-->SIPSER
 destination-pattern 6604000
 session protocol sipv2
 session target sip-server
 codec g723r63
!
!
sip-ua 
 sip-server ipv4:200.110.X.Y
!
---------
ser.cfg:
# $Id: ser.cfg,v 1.21.4.1 2003/11/10 15:35:15 andrei Exp $
/* Uncomment these lines to enter debugging mode 
debug=20
fork=yes
log_stderror=yes
*/
check_via=no    # (cmd. line: -v)
dns=no           # (cmd. line: -r)
rev_dns=no      # (cmd. line: -R)
port=5060
children=4
fifo="/tmp/ser_fifo"
# ------------------ module loading ----------------------------------
loadmodule "/usr/local/lib/ser/modules/sl.so"
loadmodule "/usr/local/lib/ser/modules/tm.so"
loadmodule "/usr/local/lib/ser/modules/rr.so"
loadmodule "/usr/local/lib/ser/modules/maxfwd.so"
loadmodule "/usr/local/lib/ser/modules/usrloc.so"
loadmodule "/usr/local/lib/ser/modules/registrar.so"
loadmodule "/usr/local/lib/ser/modules/auth.so"
loadmodule "/usr/local/lib/ser/modules/auth_radius.so"
loadmodule "/usr/local/lib/ser/modules/group_radius.so"
loadmodule "/usr/local/lib/ser/modules/acc.so"
# ----------------- setting module-specific parameters ---------------
modparam("rr", "enable_full_lr", 1)
modparam("auth_radius","radius_config","/usr/local/etc/radiusclient/radiusclient.conf")
modparam("auth_radius","service_type",15)
modparam("acc","radius_config","/usr/local/etc/radiusclient/radiusclient.conf")
modparam("acc", "service_type", 15)
modparam("acc", "radius_flag", 1)
modparam("acc", "radius_missed_flag", 3)
modparam("acc", "failed_transactions", 1)
modparam("acc", "report_ack", 0)
# -------------------------  request routing logic -------------------
# main routing logic
route{
        # initial sanity checks -- messages with
        # max_forwards==0, or excessively long requests
        if (!mf_process_maxfwd_header("10")) {
                sl_send_reply("483","Too Many Hops");
                break;
        };
        if ( msg:len > max_len ) {
                sl_send_reply("513", "Message too big");
                break;
        };
        # we record-route all messages -- to make sure that
        # subsequent messages will go through our proxy; that's
        # particularly good if upstream and downstream entities
        # use different transport protocol
        record_route();
        # loose-route processing
        if (loose_route()) {
                t_relay();
                break;
        };
        # if the request is for other domain use UsrLoc
        # (in case, it does not work, use the following command
        # with proper names and addresses in it)

                if (method=="INVITE") {
                log(1, "INVITE\n");
                setflag(1); /* set for accounting (the same value as in log_flag!) */
                };
                if (method=="BYE" || method=="CANCEL") {
                log (1, "BYE or CANCEL\n");
                setflag(1);
                };

        if (uri==myself) {
                if (method=="REGISTER") {
                        log(1, "REGISTER: Authenticating user\n");
                       if (!radius_www_authorize("")) {
                                log(1, "REGISTER: challenging user\n");
                                www_challenge("", "0");
                                break;
                        };
                        save("location");
                        break;
                };
               # native SIP destinations are handled using our USRLOC DB
                if (!lookup("location")) {
                        sl_send_reply("404", "Not Found");
                        break;
                };
        };
# forward to current uri now; use stateful forwarding; that
        # works reliably even if we forward from TCP to UDP
        if (!t_relay()) {
                sl_reply_error();
                break;
        };
}
----------------------
 
 



---------------------------------
Do You Yahoo!?
Todo lo que quieres saber de Estados Unidos, América Latina y el resto del Mundo.
Visíta Yahoo! Noticias.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20040730/692a4f38/attachment.htm>


More information about the sr-users mailing list