Hi Uttam, I did the changes as per your request (*tried both the cases by declaring rtphdr as global/static even finally tried declaring globally static struct rtp_hdr *rtphdr*), but still I am facing the same problem. Any more suggestions would be greatly appreciated.
Regards On Mon, Mar 28, 2011 at 2:02 PM, Uttam Sarkar (usarkar) <[email protected]>wrote: > Please see inline. > > > > *From:* Siga [mailto:[email protected]] > *Sent:* Monday, March 28, 2011 8:00 AM > *To:* Uttam Sarkar (usarkar) > *Cc:* [email protected] > *Subject:* Re: [Sip-implementors] RTP Send thread problem > > > > Hi Uttam, > about the variable for the sequence number I using the one which I have > declared in my RTP.h header file > > initializations in my rtp.h is like this > > *struct rtp_hdr{ > uint16_t version:2; > uint16_t padding:1; > uint16_t extension:1; > uint16_t csrccount:4; > uint16_t marker:1; > uint16_t payloadtype:7; > uint16_t sequencenumber; > uint32_t timestamp; > uint32_t ssrc; > };* > > and I am including it in my main source file before assigning the value for > seq_num and time_stamp. > > > My initializations are as shown below: > > *#define RTP_TIMESTAMP_INCR 160* > *#define* *RTP_PACKET_SIZE* *172* > *static u8_t rtp_send_packet[RTP_PACKET_SIZE]; //*this is globally > declared* > * > *static void rtp_send_packets(int send_socket, struct sock_addr_ in* > remote_addr ) > { > * > *rtp_hdr* rtphdr;* > > *[US] Make this rtphdr as static or global variable.* > > * > > > /**other initializations**/ > > if(sendto(rtp_send_sock, rtp_send_packet, sizeof(rtp_hdr) + > rtp_payload_size, 0, (struct sockaddr*)to, sizeof(to)) >= 0){ > rtphdr->timestamp = rtphdr->timestamp + RTP_TIMESTAMP_INCR; > rtphdr->sequencenumber = rtphdr->sequencenumber++; > }* > * > }* > > is there any mistake with this type of initializations. > > Regards > > On Mon, Mar 28, 2011 at 1:38 PM, Uttam Sarkar (usarkar) <[email protected]> > wrote: > > Make sure you use static or global variable for sequence number in > rtp_send_packets. > > > -----Original Message----- > From: [email protected] > [mailto:[email protected]] On Behalf Of > Siga > Sent: Monday, March 28, 2011 6:53 AM > To: [email protected] > Subject: [Sip-implementors] RTP Send thread problem > > Hi, > I am encountering a strange scenario with my RTP Send thread. After > setting > up a connection with another client from my SIP Client I start sending > and > receiving RTP packets. I have no problem in receiving the packets, but > the > problem is with the RTP Send thread such that after a sleep of 20ms > which I > am making the RTP Send thread to sleep, after this 20ms sleep the send > thread starts again, but again the sequence number and time stamp are > reset > and start again from the beginning. > > I can see on netmon that my RTP Send thread is sending some packets > starting > with sequence number = 1 and time stamp = 160 and after the thread > starts > from sleep, it again starts sending the RTP packets starting with > sequence > number = 1 and time stamp = 160. > > Here is the netmon capture: > > 396 7.4784891 192.168.1.80 192.168.1.1 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 329899372, Seq > = 1, > TimeStamp = 160 {UDP:1, IPv4:18} > 397 7.4825127 192.168.1.80 192.168.1.1 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 329899372, Seq > = 2, > TimeStamp = 320 {UDP:1, IPv4:18} > 398 7.4859608 192.168.1.1 192.168.1.80 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 1419577456, Seq > = > 55420, TimeStamp = 1294160 {UDP:1, IPv4:18} > 399 7.4865240 192.168.1.80 192.168.1.1 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 329899372, Seq > = 3, > TimeStamp = 480 {UDP:1, IPv4:18} > 400 7.5061632 192.168.1.1 192.168.1.80 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 1419577456, Seq > = > 55421, TimeStamp = 1294320 {UDP:1, IPv4:18} > 401 7.5184904 192.168.1.80 192.168.1.1 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 329899372, Seq > = 4, > TimeStamp = 640 {UDP:1, IPv4:18} > 402 7.5259976 192.168.1.1 192.168.1.80 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 1419577456, Seq > = > 55422, TimeStamp = 1294480 {UDP:1, IPv4:18} > 403 7.5270654 192.168.1.80 192.168.1.1 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 329899372, Seq > = 1, > TimeStamp = 160 {UDP:1, IPv4:18} > 404 7.5321877 192.168.1.80 192.168.1.1 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 329899372, Seq > = 2, > TimeStamp = 320 {UDP:1, IPv4:18} > 405 7.5362360 192.168.1.80 192.168.1.1 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 329899372, Seq > = 3, > TimeStamp = 480 {UDP:1, IPv4:18} > 406 7.5459893 192.168.1.1 192.168.1.80 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 1419577456, Seq > = > 55423, TimeStamp = 1294640 {UDP:1, IPv4:18} > 407 7.5660443 192.168.1.1 192.168.1.80 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 1419577456, Seq > = > 55424, TimeStamp = 1294800 {UDP:1, IPv4:18} > 408 7.5727087 192.168.1.80 192.168.1.1 UDP > UDP:SrcPort = 22334, DstPort = 12964, Length = 180 {UDP:1, IPv4:18} > 409 7.5789801 192.168.1.80 192.168.1.1 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 329899372, Seq > = 1, > TimeStamp = 160 {UDP:1, IPv4:18} > 410 7.5830083 192.168.1.80 192.168.1.1 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 329899372, Seq > = 2, > TimeStamp = 320 {UDP:1, IPv4:18} > 411 7.5860037 192.168.1.1 192.168.1.80 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 1419577456, Seq > = > 55425, TimeStamp = 1294960 {UDP:1, IPv4:18} > 412 7.6060190 192.168.1.1 192.168.1.80 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 1419577456, Seq > = > 55426, TimeStamp = 1295120 {UDP:1, IPv4:18} > 413 7.6162093 192.168.1.80 192.168.1.1 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 329899372, Seq > = 3, > TimeStamp = 480 {UDP:1, IPv4:18} > 414 7.6254210 192.168.1.80 192.168.1.1 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 329899372, Seq > = 1, > TimeStamp = 160 {UDP:1, IPv4:18} > 415 7.6258741 192.168.1.1 192.168.1.80 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 1419577456, Seq > = > 55427, TimeStamp = 1295280 {UDP:1, IPv4:18} > 416 7.6304875 192.168.1.80 192.168.1.1 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 329899372, Seq > = 2, > TimeStamp = 320 {UDP:1, IPv4:18} > 417 7.6345130 192.168.1.80 192.168.1.1 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 329899372, Seq > = 3, > TimeStamp = 480 {UDP:1, IPv4:18} > 418 7.6460465 192.168.1.1 192.168.1.80 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 1419577456, Seq > = > 55428, TimeStamp = 1295440 {UDP:1, IPv4:18} > 419 7.6660144 192.168.1.1 192.168.1.80 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 1419577456, Seq > = > 55429, TimeStamp = 1295600 {UDP:1, IPv4:18} > 420 7.6664040 192.168.1.80 192.168.1.1 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 329899372, Seq > = 4, > TimeStamp = 640 {UDP:1, IPv4:18} > 421 7.6760927 192.168.1.80 192.168.1.1 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 329899372, Seq > = 1, > TimeStamp = 160 {UDP:1, IPv4:18} > 422 7.6801471 192.168.1.80 192.168.1.1 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 329899372, Seq > = 2, > TimeStamp = 320 {UDP:1, IPv4:18} > 423 7.6841980 192.168.1.80 192.168.1.1 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 329899372, Seq > = 3, > TimeStamp = 480 {UDP:1, IPv4:18} > 424 7.6858368 192.168.1.1 192.168.1.80 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 1419577456, Seq > = > 55430, TimeStamp = 1295760 {UDP:1, IPv4:18} > 425 7.7060118 192.168.1.1 192.168.1.80 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 1419577456, Seq > = > 55431, TimeStamp = 1295920 {UDP:1, IPv4:18} > 426 7.7209980 192.168.1.80 192.168.1.1 UDP > UDP:SrcPort = 22334, DstPort = 12964, Length = 180 {UDP:1, IPv4:18} > 427 7.7259359 192.168.1.1 192.168.1.80 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 1419577456, Seq > = > 55432, TimeStamp = 1296080 {UDP:1, IPv4:18} > 428 7.7288774 192.168.1.80 192.168.1.1 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 329899372, Seq > = 1, > TimeStamp = 160 {UDP:1, IPv4:18} > 429 7.7335620 192.168.1.80 192.168.1.1 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 329899372, Seq > = 2, > TimeStamp = 320 {UDP:1, IPv4:18} > 430 7.7460382 192.168.1.1 192.168.1.80 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 1419577456, Seq > = > 55433, TimeStamp = 1296240 {UDP:1, IPv4:18} > 431 7.7660654 192.168.1.1 192.168.1.80 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 1419577456, Seq > = > 55434, TimeStamp = 1296400 {UDP:1, IPv4:18} > 432 7.7688175 192.168.1.80 192.168.1.1 UDP > UDP:SrcPort = 22334, DstPort = 12964, Length = 180 {UDP:1, IPv4:18} > 433 7.7755308 192.168.1.80 192.168.1.1 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 329899372, Seq > = 1, > TimeStamp = 160 {UDP:1, IPv4:18} > 434 7.7795409 192.168.1.80 192.168.1.1 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 329899372, Seq > = 2, > TimeStamp = 320 {UDP:1, IPv4:18} > 435 7.7859224 192.168.1.1 192.168.1.80 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 1419577456, Seq > = > 55435, TimeStamp = 1296560 {UDP:1, IPv4:18} > 436 7.8060232 192.168.1.1 192.168.1.80 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 1419577456, Seq > = > 55436, TimeStamp = 1296720 {UDP:1, IPv4:18} > 437 7.8128543 192.168.1.80 192.168.1.1 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 329899372, Seq > = 3, > TimeStamp = 480 {UDP:1, IPv4:18} > 438 7.8225130 192.168.1.80 192.168.1.1 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 329899372, Seq > = 1, > TimeStamp = 160 {UDP:1, IPv4:18} > 439 7.8258402 192.168.1.1 192.168.1.80 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 1419577456, Seq > = > 55437, TimeStamp = 1296880 {UDP:1, IPv4:18} > 440 7.8265628 192.168.1.80 192.168.1.1 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 329899372, Seq > = 2, > TimeStamp = 320 {UDP:1, IPv4:18} > 441 7.8316670 192.168.1.80 192.168.1.1 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 329899372, Seq > = 3, > TimeStamp = 480 {UDP:1, IPv4:18} > 442 7.8462520 192.168.1.1 192.168.1.80 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 1419577456, Seq > = > 55438, TimeStamp = 1297040 {UDP:1, IPv4:18} > 443 7.8661544 192.168.1.1 192.168.1.80 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 1419577456, Seq > = > 55439, TimeStamp = 1297200 {UDP:1, IPv4:18} > 444 7.8670660 192.168.1.80 192.168.1.1 UDP > UDP:SrcPort = 22334, DstPort = 12964, Length = 180 {UDP:1, IPv4:18} > 445 7.8738410 192.168.1.80 192.168.1.1 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 329899372, Seq > = 1, > TimeStamp = 160 {UDP:1, IPv4:18} > 446 7.8786926 192.168.1.80 192.168.1.1 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 329899372, Seq > = 2, > TimeStamp = 320 {UDP:1, IPv4:18} > 447 7.8859087 192.168.1.1 192.168.1.80 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 1419577456, Seq > = > 55440, TimeStamp = 1297360 {UDP:1, IPv4:18} > 448 7.9059979 192.168.1.1 192.168.1.80 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 1419577456, Seq > = > 55441, TimeStamp = 1297520 {UDP:1, IPv4:18} > 449 7.9111579 192.168.1.80 192.168.1.1 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 329899372, Seq > = 3, > TimeStamp = 480 {UDP:1, IPv4:18} > 450 7.9207415 192.168.1.80 192.168.1.1 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 329899372, Seq > = 1, > TimeStamp = 160 {UDP:1, IPv4:18} > 451 7.9256898 192.168.1.80 192.168.1.1 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 329899372, Seq > = 2, > TimeStamp = 320 {UDP:1, IPv4:18} > 452 7.9263754 192.168.1.1 192.168.1.80 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 1419577456, Seq > = > 55442, TimeStamp = 1297680 {UDP:1, IPv4:18} > 453 7.9307948 192.168.1.80 192.168.1.1 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 329899372, Seq > = 3, > TimeStamp = 480 {UDP:1, IPv4:18} > 454 7.9461513 192.168.1.1 192.168.1.80 RTP > RTP:PayloadType = PCMA Audio, 8000Hz [1 Channel], SSRC = 1419577456, Seq > = > 55443, TimeStamp = 1297840 {UDP:1, IPv4:18} > 455 7.9654232 192.168.1.80 192.168.1.1 UDP > UDP:SrcPort = 22334, DstPort = 12964, Length = 180 {UDP:1, IPv4:18} > > > Skeleton of my pseudo code looks something like this: > > *static void rtp_send_packets(send_socket, &remote_addr ) > { > * /*here I assign the values for the RTP packet like version number, > payload type etc*/ > > /*finally send the rtp packets to the server using sento */ > * > } > > static void rtp_send_thread(void *arg) > { > * /*here I do all the initializations and binding stuff for sending > RTP > Thread**/ > > while(1){ > rtp_send_packets(send_socket, &remote_addr ); > sleep_ms(20); > } > > } > > void rtp_init(void) > { > pthread_t rtp_send_th; > pthread_t rtp_recv_th; > > pthread_create(&rtp_send_th, NULL, rtp_send_thread, NULL); > pthread_create(&rtp_recv_th, NULL, rtp_recv_thread, NULL); > }* > > Does anybody have an idea why this is happening? > > Regards > > _______________________________________________ > Sip-implementors mailing list > [email protected] > https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors > > > _______________________________________________ Sip-implementors mailing list [email protected] https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors
