Revision
15458
Author
ledr
Date
2009-11-13 07:26:05 -0600 (Fri, 13 Nov 2009)

Log Message

added some debug log - foobar: where is my frame->data ?\!

Modified Paths

Diff

Modified: freeswitch/trunk/contrib/ledr/c/mod_pcli/mod_pcli.c (15457 => 15458)


--- freeswitch/trunk/contrib/ledr/c/mod_pcli/mod_pcli.c	2009-11-12 23:20:43 UTC (rev 15457)
+++ freeswitch/trunk/contrib/ledr/c/mod_pcli/mod_pcli.c	2009-11-13 13:26:05 UTC (rev 15458)
@@ -171,9 +171,9 @@
 
 	uint32_t pcli_header_i = 0;
 	pcli_header_i |= (media_direction);
-	pcli_header_i |= (instance_id << 2); // this seems to work, but:
+	pcli_header_i |= (instance_id << 2);
 	pcli_header_i |= (switch_id << 12);
-	pcli_header_i |= (ini_id << 16);     // how can i shift left 16 on a uint16_t ???! is shifting not done inside the memory space of the ini_id ?? FIND OUT !!
+	pcli_header_i |= (ini_id << 16);
 
 	uint32_t pcli_header_i_n = htonl(pcli_header_i);
 
@@ -185,25 +185,28 @@
 /* generate an ip header */
 static switch_status_t gen_ip_header(uint8_t *ip_header, uint16_t payload_size_i)
 {
-	switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "In gen_ip_header - payload_size_i[%i]\n", payload_size_i);
+	switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "In gen_ip_header - payload_size_i[%u]\n", payload_size_i);
 
-	memset(ip_header, 0, sizeof(ip_header)); /* zero */
+	memset(ip_header, 0, (size_t)IP_HEADER_LEN); /* zero */
 
 	ip_header[0] |= (4 << 4); /* set version 4 */
 	ip_header[0] |= 5; /* set header length 5 */
-	ip_header[9] |= 17; /* set protocol to UDP */
 
 	uint16_t payload_size_i_n = htons(payload_size_i);
 	memcpy(&ip_header[2], &payload_size_i_n, sizeof(payload_size_i_n));
 
+	ip_header[9] |= 17; /* set protocol to UDP */
+
 	return SWITCH_STATUS_SUCCESS;
 }
 
 /* generate a udp header */
 static switch_status_t gen_udp_header(uint8_t *udp_header, uint16_t payload_size_i)
 {
-	memset(udp_header, 0, sizeof(udp_header)); /* zero */
+	switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "In gen_udp_header - payload_size_i[%u]\n", payload_size_i);
 
+	memset(udp_header, 0, (size_t)UDP_HEADER_LEN); /* zero */
+
 	uint16_t payload_size_i_n = htons(payload_size_i); /* set payload size */
 	memcpy(&udp_header[4], &payload_size_i_n, sizeof(payload_size_i_n));
 
@@ -213,8 +216,11 @@
 /* generate an rtp header */
 static switch_status_t gen_rtp_header(uint8_t *rtp_header, switch_payload_t payload_type, uint16_t seq_i, uint32_t timestamp_i, uint32_t ssrc_i)
 {
-	memset(rtp_header, 0, sizeof(rtp_header)); /* zero */
+	switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "In gen_rtp_header - payload_type[%u] seq_i[%u] timestamp_i[%lu] ssrc_i[%lu]\n",
+		payload_type, seq_i, (unsigned long)timestamp_i, (unsigned long)ssrc_i);
 
+	memset(rtp_header, 0, (size_t)RTP_HEADER_LEN); /* zero */
+
 	rtp_header[0] |= (2 << 6); /* set version 2 */
 	rtp_header[1] |= payload_type; /* set payload type */
 	
@@ -232,7 +238,7 @@
 
 static void print_frame_stats(switch_frame_t *frame)
 {
-	switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "FRAME STATISTICS: seq[%u] ssrc[%lu] datalen[%lu] rate [%lu] samples [%lu]\n",
+	switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "FRAME STATISTICS: seq[%u] ssrc[%lu] datalen[%lu] rate[%lu] samples[%lu]\n",
 		(unsigned)frame->seq, (unsigned long)frame->ssrc, (unsigned long)frame->datalen, (unsigned long)frame->rate, (unsigned long)frame->samples);
 }
 
@@ -259,9 +265,10 @@
 				uint8_t rtp_header[RTP_HEADER_LEN];
 
 				uint8_t packet[PCLI_HEADER_LEN + IP_HEADER_LEN + UDP_HEADER_LEN + RTP_HEADER_LEN + frame->datalen];
+
 				uint8_t *in_packet_pointer = packet;
 
-				memset(packet, 0, sizeof(packet)); /* zero - this shouldn't be necessary !!! TODO */
+				memset(packet, 0, sizeof(packet)); /* zero - TODO test if this is still necessary - don't think so! */
 
 				gen_rtp_header(rtp_header, frame->payload, frame->seq, frame->timestamp, frame->ssrc);
 				gen_udp_header(udp_header, RTP_HEADER_LEN + frame->datalen);
@@ -273,17 +280,16 @@
 
 				memcpy(in_packet_pointer, ip_header, sizeof(ip_header));		
 				in_packet_pointer += IP_HEADER_LEN;
-//
-//				memcpy(in_packet_pointer, udp_header, sizeof(udp_header));
-//				in_packet_pointer += UDP_HEADER_LEN;
-//
-//				memcpy(in_packet_pointer, rtp_header, sizeof(rtp_header));
-//				in_packet_pointer += RTP_HEADER_LEN;
-//
-//				memcpy(in_packet_pointer, frame->data, frame->datalen);
 
-				size_t packetsize;
-				packetsize = sizeof(packet);
+				memcpy(in_packet_pointer, udp_header, sizeof(udp_header));
+				in_packet_pointer += UDP_HEADER_LEN;
+
+				memcpy(in_packet_pointer, rtp_header, sizeof(rtp_header));
+				in_packet_pointer += RTP_HEADER_LEN;
+
+				memcpy(in_packet_pointer, frame->data, frame->datalen);
+
+				size_t packetsize = sizeof(packet);
 				
 				switch_socket_sendto(pcli_globals.socket, pcli_globals.remote_sockaddr, 0, (void *) packet, &packetsize);
 			}