diff --git a/include/asterisk/module.h b/include/asterisk/module.h index aba72980d7..83f44ebe9e 100755 --- a/include/asterisk/module.h +++ b/include/asterisk/module.h @@ -158,7 +158,7 @@ void ast_unregister_atexit(void (*func)(void)); #define LOCAL_USER_ADD(u) { \ \ - if (!(u=malloc(sizeof(struct localuser)))) { \ + if (!(u=(struct localuser *)malloc(sizeof(struct localuser)))) { \ ast_log(LOG_WARNING, "Out of memory\n"); \ return -1; \ } \ diff --git a/rtp.c b/rtp.c index 3d0c513886..55a4e35781 100755 --- a/rtp.c +++ b/rtp.c @@ -965,6 +965,7 @@ int ast_rtp_senddigit(struct ast_rtp *rtp, char digit) int res; int ms; int x; + int payload; char data[256]; char iabuf[INET_ADDRSTRLEN]; @@ -982,7 +983,7 @@ int ast_rtp_senddigit(struct ast_rtp *rtp, char digit) ast_log(LOG_WARNING, "Don't know how to represent '%c'\n", digit); return -1; } - + payload = ast_rtp_lookup_code(rtp, 0, AST_RTP_DTMF); /* If we have no peer, return immediately */ if (!rtp->them.sin_addr.s_addr) @@ -1001,7 +1002,7 @@ 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) | (101 << 16) | (rtp->seqno++)); + 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));