diff options
Diffstat (limited to 'rtp.c')
-rwxr-xr-x | rtp.c | 11 |
1 files changed, 2 insertions, 9 deletions
@@ -85,7 +85,6 @@ struct ast_rtp { int dtmfcount; unsigned int dtmfduration; int nat; - int digitssent; int flags; struct sockaddr_in us; struct sockaddr_in them; @@ -1011,7 +1010,6 @@ void ast_rtp_reset(struct ast_rtp *rtp) memset(&rtp->dtmfmute, 0, sizeof(rtp->dtmfmute)); rtp->lastts = 0; rtp->lastrxts = 0; - rtp->digitssent = 0; rtp->lastividtimestamp = 0; rtp->lastovidtimestamp = 0; rtp->lasteventseqn = 0; @@ -1103,14 +1101,10 @@ int ast_rtp_senddigit(struct ast_rtp *rtp, char digit) /* Get a pointer to the header */ rtpheader = (unsigned int *)data; - rtpheader[0] = htonl((2 << 30) | (1 << 23) | (payload << 16) | rtp->seqno); - rtpheader[1] = htonl(rtp->lastts + (rtp->digitssent * 160)); + rtpheader[0] = htonl((2 << 30) | (1 << 23) | (payload << 16) | (rtp->seqno++)); + rtpheader[1] = htonl(rtp->lastts); rtpheader[2] = htonl(rtp->ssrc); rtpheader[3] = htonl((digit << 24) | (0xa << 16) | (0)); - - rtp->seqno++; - rtp->digitssent++; - for (x=0;x<6;x++) { if (rtp->them.sin_port && rtp->them.sin_addr.s_addr) { res = sendto(rtp->s, (void *)rtpheader, hdrlen + 4, 0, (struct sockaddr *)&rtp->them, sizeof(rtp->them)); @@ -1278,7 +1272,6 @@ static int ast_rtp_raw_write(struct ast_rtp *rtp, struct ast_frame *f, int codec put_uint32(rtpheader + 4, htonl(rtp->lastts)); put_uint32(rtpheader + 8, htonl(rtp->ssrc)); - rtp->digitssent = 0; rtp->seqno++; if (rtp->them.sin_port && rtp->them.sin_addr.s_addr) { |