When I create an RTP packet in scapy with the following code, I get an error: "TypeError: clone_with() got multiple values for keyword argument 'payload'"
from scapy.all import IP, UDP, RTP, Ether from scapy.utils import PcapWriter pktdump = PcapWriter("banana.pcap", append=False, sync=True) rtp = { "sequence": 1, "timestamp": 1, "marker": 1, "payload": 17 } pkt = Ether()/IP()/UDP(sport=12345,dport=12346)/RTP(**rtp) pktdump.write(pkt)
but removing payload works.
rtp = { "sequence": 1, "timestamp": 1, "marker": 1 } pkt = Ether()/IP()/UDP(sport=12345,dport=12346)/RTP(**rtp) pktdump.write(pkt)
The full output is
Traceback (most recent call last): File "test.py", line 23, in <module> pktdump.write(pkt) File "/home/eisamar/devel/rtp2pcap/local/lib/python2.7/site-packages/scapy/utils.py", line 657, in write for p in pkt: File "/home/eisamar/devel/rtp2pcap/local/lib/python2.7/site-packages/scapy/packet.py", line 661, in loop for payl in payloads: File "/home/eisamar/devel/rtp2pcap/local/lib/python2.7/site-packages/scapy/packet.py", line 661, in loop for payl in payloads: File "/home/eisamar/devel/rtp2pcap/local/lib/python2.7/site-packages/scapy/packet.py", line 654, in loop for x in loop(todo[:], done): File "/home/eisamar/devel/rtp2pcap/local/lib/python2.7/site-packages/scapy/packet.py", line 654, in loop for x in loop(todo[:], done): File "/home/eisamar/devel/rtp2pcap/local/lib/python2.7/site-packages/scapy/packet.py", line 661, in loop for payl in payloads: File "/home/eisamar/devel/rtp2pcap/local/lib/python2.7/site-packages/scapy/packet.py", line 654, in loop for x in loop(todo[:], done): File "/home/eisamar/devel/rtp2pcap/local/lib/python2.7/site-packages/scapy/packet.py", line 654, in loop for x in loop(todo[:], done): File "/home/eisamar/devel/rtp2pcap/local/lib/python2.7/site-packages/scapy/packet.py", line 654, in loop for x in loop(todo[:], done): File "/home/eisamar/devel/rtp2pcap/local/lib/python2.7/site-packages/scapy/packet.py", line 654, in loop for x in loop(todo[:], done): File "/home/eisamar/devel/rtp2pcap/local/lib/python2.7/site-packages/scapy/packet.py", line 666, in loop pkt = self.clone_with(payload=payl, **done2) TypeError: clone_with() got multiple values for keyword argument 'payload'
What am I doing wrong...? Is there a workaround? The error is on line 666... hmm...
Thanks!