summaryrefslogtreecommitdiffstats
path: root/scripts/external_libs/scapy-2.3.1/scapy/modules/voip.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/external_libs/scapy-2.3.1/scapy/modules/voip.py')
-rw-r--r--scripts/external_libs/scapy-2.3.1/scapy/modules/voip.py149
1 files changed, 0 insertions, 149 deletions
diff --git a/scripts/external_libs/scapy-2.3.1/scapy/modules/voip.py b/scripts/external_libs/scapy-2.3.1/scapy/modules/voip.py
deleted file mode 100644
index 70000a54..00000000
--- a/scripts/external_libs/scapy-2.3.1/scapy/modules/voip.py
+++ /dev/null
@@ -1,149 +0,0 @@
-## This file is part of Scapy
-## See http://www.secdev.org/projects/scapy for more informations
-## Copyright (C) Philippe Biondi <phil@secdev.org>
-## This program is published under a GPLv2 license
-
-"""
-VoIP (Voice over IP) related functions
-"""
-
-import os
-###################
-## Testing stuff ##
-###################
-
-from fcntl import fcntl
-from scapy.sendrecv import sniff
-from scapy.layers.inet import IP,UDP
-from scapy.layers.rtp import RTP
-from scapy.utils import get_temp_file
-
-
-def merge(x,y,sample_size=2):
- if len(x) > len(y):
- y += "\x00"*(len(x)-len(y))
- elif len(x) < len(y):
- x += "\x00"*(len(y)-len(x))
- m = ""
- ss=sample_size
- for i in range(len(x)/ss):
- m += x[ss*i:ss*(i+1)]+y[ss*i:ss*(i+1)]
- return m
-# return "".join(map(str.__add__, x, y))
-
-
-def voip_play(s1,list=None,**kargs):
- FIFO=get_temp_file()
- FIFO1=FIFO % 1
- FIFO2=FIFO % 2
-
- os.mkfifo(FIFO1)
- os.mkfifo(FIFO2)
- try:
- os.system("soxmix -t .ul %s -t .ul %s -t ossdsp /dev/dsp &" % (FIFO1,FIFO2))
-
- c1=open(FIFO1,"w", 4096)
- c2=open(FIFO2,"w", 4096)
- fcntl.fcntl(c1.fileno(),fcntl.F_SETFL, os.O_NONBLOCK)
- fcntl.fcntl(c2.fileno(),fcntl.F_SETFL, os.O_NONBLOCK)
-
- # dsp,rd = os.popen2("sox -t .ul -c 2 - -t ossdsp /dev/dsp")
- def play(pkt,last=[]):
- if not pkt:
- return
- if not pkt.haslayer(UDP):
- return
- ip=pkt.getlayer(IP)
- if s1 in [ip.src, ip.dst]:
- if not last:
- last.append(pkt)
- return
- load=last.pop()
- # x1 = load.load[12:]
- c1.write(load.load[12:])
- if load.getlayer(IP).src == ip.src:
- # x2 = ""
- c2.write("\x00"*len(load.load[12:]))
- last.append(pkt)
- else:
- # x2 = pkt.load[:12]
- c2.write(pkt.load[12:])
- # dsp.write(merge(x1,x2))
-
- if list is None:
- sniff(store=0, prn=play, **kargs)
- else:
- for p in list:
- play(p)
- finally:
- os.unlink(FIFO1)
- os.unlink(FIFO2)
-
-
-
-def voip_play1(s1,list=None,**kargs):
-
-
- dsp,rd = os.popen2("sox -t .ul - -t ossdsp /dev/dsp")
- def play(pkt):
- if not pkt:
- return
- if not pkt.haslayer(UDP):
- return
- ip=pkt.getlayer(IP)
- if s1 in [ip.src, ip.dst]:
- dsp.write(pkt.getlayer(conf.raw_layer).load[12:])
- try:
- if list is None:
- sniff(store=0, prn=play, **kargs)
- else:
- for p in list:
- play(p)
- finally:
- dsp.close()
- rd.close()
-
-def voip_play2(s1,**kargs):
- dsp,rd = os.popen2("sox -t .ul -c 2 - -t ossdsp /dev/dsp")
- def play(pkt,last=[]):
- if not pkt:
- return
- if not pkt.haslayer(UDP):
- return
- ip=pkt.getlayer(IP)
- if s1 in [ip.src, ip.dst]:
- if not last:
- last.append(pkt)
- return
- load=last.pop()
- x1 = load.load[12:]
-# c1.write(load.load[12:])
- if load.getlayer(IP).src == ip.src:
- x2 = ""
-# c2.write("\x00"*len(load.load[12:]))
- last.append(pkt)
- else:
- x2 = pkt.load[:12]
-# c2.write(pkt.load[12:])
- dsp.write(merge(x1,x2))
-
- sniff(store=0, prn=play, **kargs)
-
-def voip_play3(lst=None,**kargs):
- dsp,rd = os.popen2("sox -t .ul - -t ossdsp /dev/dsp")
- try:
- def play(pkt, dsp=dsp):
- if pkt and pkt.haslayer(UDP) and pkt.haslayer(conf.raw_layer):
- dsp.write(pkt.getlayer(RTP).load)
- if lst is None:
- sniff(store=0, prn=play, **kargs)
- else:
- for p in lst:
- play(p)
- finally:
- try:
- dsp.close()
- rd.close()
- except:
- pass
-