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;
/**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