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)
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)