Make sure read/write format are setup properly.
authorMark Spencer <markster@digium.com>
Sun, 19 Dec 2004 18:26:12 +0000 (18:26 +0000)
committerMark Spencer <markster@digium.com>
Sun, 19 Dec 2004 18:26:12 +0000 (18:26 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@4485 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_iax2.c

index 2334d32..edc7293 100755 (executable)
@@ -2697,8 +2697,8 @@ static struct ast_channel *ast_iax2_new(int callno, int state, int capability)
                tmp->type = type;
                /* We can support any format by default, until we get restricted */
                tmp->nativeformats = capability;
-               tmp->readformat = 0;
-               tmp->writeformat = 0;
+               tmp->readformat = ast_best_codec(capability);
+               tmp->writeformat = ast_best_codec(capability);
                tmp->pvt->pvt = CALLNO_TO_PTR(i->callno);
                tmp->pvt->send_digit = iax2_digit;
                tmp->pvt->send_text = iax2_sendtext;
@@ -6351,7 +6351,7 @@ static struct ast_channel *iax2_request(const char *type, int format, void *data
        ast_mutex_unlock(&iaxsl[callno]);
        if (c) {
                /* Choose a format we can live with */
-               if (c->nativeformats & format)
+               if (c->nativeformats & format) 
                        c->nativeformats &= format;
                else {
                        native = c->nativeformats;
@@ -6364,6 +6364,8 @@ static struct ast_channel *iax2_request(const char *type, int format, void *data
                        }
                        c->nativeformats = native;
                }
+               c->readformat = ast_best_codec(c->nativeformats);
+               c->writeformat = c->readformat;
        }
        return c;
 }