Example #1
0
def sendAcct(ns, user, ip, action):
    server = "172.16.3.1"
    srv = Client(server=server,
                 secret="sandvine",
                 dict=Dictionary("/etc/ppp/aaa-dictionary"))

    import types

    def setRetryTimeout(self, r, t):
        self.retries = r
        self.timeout = t

    srv.setRetryTimeout = types.MethodType(setRetryTimeout, srv)

    srv.setRetryTimeout(1, 0)

    req = srv.CreateAcctPacket(User_Name=user)

    #    req["NAS-IP-Address"]="192.168.1.10"
    #    req["NAS-Port"]=0
    #    req["NAS-Identifier"]="trillian"
    #    req["Called-Station-Id"]="00-04-5F-00-0F-D1"
    #    req["Calling-Station-Id"]="00-01-24-80-B3-9C"
    req["Framed-IP-Address"] = ip
    req["User-Name"] = user
    req["3GPP-IMSI"] = user
    req["Calling-Station-Id"] = user
    req["Acct-Status-Type"] = action
    req["Acct-Session-Id"] = "1"
    req["3GPP-SGSN-Address"] = server
    req["3GPP-GGSN-Address"] = server
    req["Event-Timestamp"] = int(time.time())
    pid = os.fork()
    if (pid == 0):
        try:
            x = find_ns.NS(ns)
            try:
                srv.SendPacket(req)
            except:
                # We expect this error, since we get an ICMP port unreach
                # back since no one is listening. But that's ok, we just
                # tee the AAA anyway
                pass
            x.__del__()
        except:
            # Hmm, namespace is gone
            pass
        sys.exit(0)
    os.waitpid(pid, 0)
Example #2
0
def sendAcct(ns, user,ip,action):
    server="172.16.3.1"
    srv=Client(server=server,
               secret="sandvine",
               dict=Dictionary("/etc/ppp/aaa-dictionary"))

    import types
    def setRetryTimeout(self, r,t):
        self.retries = r
        self.timeout = t

    srv.setRetryTimeout = types.MethodType( setRetryTimeout, srv)

    srv.setRetryTimeout(1,0)

    req=srv.CreateAcctPacket(User_Name=user)

#    req["NAS-IP-Address"]="192.168.1.10"
#    req["NAS-Port"]=0
#    req["NAS-Identifier"]="trillian"
#    req["Called-Station-Id"]="00-04-5F-00-0F-D1"
#    req["Calling-Station-Id"]="00-01-24-80-B3-9C"
    req["Framed-IP-Address"]=ip
    req["User-Name"]=user
    req["3GPP-IMSI"]=user
    req["Calling-Station-Id"]=user
    req["Acct-Status-Type"]=action
    req["Acct-Session-Id"]="1"
    req["3GPP-SGSN-Address"]=server
    req["3GPP-GGSN-Address"]=server
    req["Event-Timestamp"]=int(time.time())
    pid = os.fork()
    if (pid == 0):
        try:
            x = find_ns.NS(ns)
            try:
                srv.SendPacket(req)
            except:
                # We expect this error, since we get an ICMP port unreach
                # back since no one is listening. But that's ok, we just
                # tee the AAA anyway
                pass
            x.__del__()
        except:
            # Hmm, namespace is gone
            pass
        sys.exit(0)
    os.waitpid(pid,0)