Hello there, I am in a situation where I am mangling RTP data in kernel space. I have written a netfilter module which is responsible for encryption, padding and ptime modification. The thing is that, encryption, padding works just fine. Ptime modification involves two steps. When large packets are incoming to the server (say 60 ptime, 60 bytes of RTP payload with g729 codec), they are splitted with ptime 20. The SIP server is Asterisk. When asterisk (the server) is sending packets of 20 ptime, they are merged to the desired big ptime(say 60). All the things went well. I looked up packets whether checksumming, RTP timestamping and sequencing is done perfectly. And it is done quite well. The whole process without large ptime is satisfactory. The thing is that, after contacting with asterisk mailing list, I came to know that I have to make some delay before sending each large packet. But, I am sending packets outside of the box in LOCAL_OUT hook. I wrote a thread to make queue the packets until some delay conditions is satisfied. And then trying to send packets from that thread. But, eventually what I found is that, if I set delay to zero, then everything is fine, the packets are queued and sent as expected. But, if I set delay>0, the thread does not send packets. I used dst_output() in include/linux/dst.h for sending packets. But, this function works only in LOCAL_OUT hook. When I am adding some delay in a thread, the thread just misses the hook and the packet is never sent. I tested that, if I add the delay condition in the target function, the whole kernel faces the delay, so it is of no help. I have to do this thing inside a thread. But how to not miss that hook? Can anyone suggest any work around regarding this? -- Rifat Rahman _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies