diff --git a/codecs/codec_g723_1.c b/codecs/codec_g723_1.c index e8fd71198c88d451966e0a0845295ee5fb4fc1c8..ad56bb02ec5d1f9045f1dc67df47a7ab97e0225e 100755 --- a/codecs/codec_g723_1.c +++ b/codecs/codec_g723_1.c @@ -15,9 +15,10 @@ * the GNU General Public License */ -#define TYPE_SILENCE 0x2 #define TYPE_HIGH 0x0 #define TYPE_LOW 0x1 +#define TYPE_SILENCE 0x2 +#define TYPE_DONTSEND 0x3 #define TYPE_MASK 0x3 #include <asterisk/translate.h> @@ -189,7 +190,9 @@ static struct ast_frame *g723tolin_frameout(struct ast_translator_pvt *pvt) static int g723_len(unsigned char buf) { switch(buf & TYPE_MASK) { - case TYPE_MASK: + case TYPE_DONTSEND: + return 0; + break; case TYPE_SILENCE: return 4; break; @@ -293,6 +296,7 @@ static struct ast_frame *lintog723_frameout(struct ast_translator_pvt *pvt) #endif /* Assume 8000 Hz */ tmp->f.samples += 30; + /* FIXME:SLD: Shouldn't the [0] be [cnt]?? */ cnt += g723_len(tmp->outbuf[0]); tmp->tail -= Frame; /* Move the data at the end of the buffer to the front */ diff --git a/rtp.c b/rtp.c index 6f628fee879a032086a96c4e30ffac59cc051a41..aed30a379c3cdcc44986e4ec8d2f11b5fe2cef8f 100755 --- a/rtp.c +++ b/rtp.c @@ -33,9 +33,10 @@ #include <asterisk/acl.h> #include <asterisk/channel_pvt.h> -#define TYPE_SILENCE 0x2 #define TYPE_HIGH 0x0 #define TYPE_LOW 0x1 +#define TYPE_SILENCE 0x2 +#define TYPE_DONTSEND 0x3 #define TYPE_MASK 0x3 static int dtmftimeout = 300; /* 300 samples */ @@ -88,7 +89,9 @@ int ast_rtp_fd(struct ast_rtp *rtp) static int g723_len(unsigned char buf) { switch(buf & TYPE_MASK) { - case TYPE_MASK: + case TYPE_DONTSEND: + return 0; + break; case TYPE_SILENCE: return 4; break;