def _send_packet(self, pt, data, marker=0, xhdrtype=None, xhdrdata=''): if not self.RTCP.we_sent: #Updating we_sent self.RTCP.we_sent = True #Adding itself to senders table new_member = self.RTCP.member.copy() loc = self.getVisibleAddress() #new_member['addr'] = "localhost" #new_member['port'] = loc[1]+1 self.RTCP.senders_table[self.ssrc] = new_member #Building packet packet = RTPPacket(self.ssrc, self.seq, self.ts, data, pt=pt, marker=marker, xhdrtype=xhdrtype, xhdrdata=xhdrdata) self.seq += 1 rtp, session = self.app.currentRecordings[self.cookie] session.seq = self.seq # Note that seqno gets modulo 2^16 in RTPPacket, so it doesn't need # to be wrapped at 16 bits here. if self.seq >= 65536: self.seq = 1 bytes = packet.netbytes() ## For RTCP sender report. self.currentSentBytesTotal += len(bytes) self.currentSentPacketsTotal += 1 for ssrc in self.RTCP.members_table: if (ssrc != self.ssrc) and ( self.RTCP.members_table[ssrc]['rtcp_port'] != 0): try: dest = (self.RTCP.members_table[ssrc]['addr'], self.RTCP.members_table[ssrc]['rtcp_port'] - 1) if DEBUG: print "send RTP to " + str(dest) self.transport.write(bytes, dest) except MessageLengthError, e: print "Cannot write on socket ! Exception e (member: " \ + str(self.RTCP.members_table[ssrc]) self.last_sent_time = time()
def _send_packet(self, pt, data, marker=0, xhdrtype=None, xhdrdata=''): if not self.RTCP.we_sent: #Updating we_sent self.RTCP.we_sent = True #Adding itself to senders table new_member =self.RTCP.member.copy() loc = self.getVisibleAddress() #new_member['addr'] = "localhost" #new_member['port'] = loc[1]+1 self.RTCP.senders_table[self.ssrc] = new_member #Building packet packet = RTPPacket(self.ssrc, self.seq, self.ts, data, pt=pt, marker=marker, xhdrtype=xhdrtype, xhdrdata=xhdrdata) self.seq += 1 rtp, session = self.app.currentRecordings[self.cookie] session.seq = self.seq # Note that seqno gets modulo 2^16 in RTPPacket, so it doesn't need # to be wrapped at 16 bits here. if self.seq >= 65536: self.seq = 1 bytes = packet.netbytes() ## For RTCP sender report. self.currentSentBytesTotal += len(bytes) self.currentSentPacketsTotal += 1 for ssrc in self.RTCP.members_table: if (ssrc != self.ssrc) and (self.RTCP.members_table[ssrc]['rtcp_port'] != 0): try: dest = (self.RTCP.members_table[ssrc]['addr'], self.RTCP.members_table[ssrc]['rtcp_port']-1) if DEBUG: print "send RTP to " + str(dest) self.transport.write(bytes, dest) except MessageLengthError, e: print "Cannot write on socket ! Exception e (member: " \ + str(self.RTCP.members_table[ssrc]) self.last_sent_time = time()
def test_checksum(self): #Test a good packet packet = RTPPacket(424242, 2, 10, "", pt=96) bytes = packet.netbytes() res = self.rtp.checksum(bytes) assert (res == 1), self.fail("Wrong checksum for RTP packet")
def test_checksum(self): #Test a good packet packet = RTPPacket(424242, 2, 10, "", pt=96) bytes = packet.netbytes() res = self.rtp.checksum(bytes) assert(res==1), self.fail("Wrong checksum for RTP packet")