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

Reply via email to