aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2000-01-10 17:43:38 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2000-01-10 17:43:38 +0000
commit409dd4c398f1838a0ad445b042ca29dee12a726b (patch)
tree37985b2ea1da9f16cbc9bb04514107e198ff6e90
parent85c8729ed3bc4523f28c2c1918969f42cc0a9bed (diff)
Version 0.1.3 from FTP
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@203 f38db490-d61c-443f-a65b-d21fe96a405b
-rwxr-xr-xchannels/chan_modem.c13
-rwxr-xr-xformats/format_g723.c10
2 files changed, 19 insertions, 4 deletions
diff --git a/channels/chan_modem.c b/channels/chan_modem.c
index bf4a89c60..052091ecb 100755
--- a/channels/chan_modem.c
+++ b/channels/chan_modem.c
@@ -49,6 +49,9 @@ static char mtype[80] = "autodetect";
/* Default context for incoming calls */
static char context[AST_MAX_EXTENSION]= "default";
+/* Default language */
+static char language[MAX_LANGUAGE] = "";
+
/* Initialization String */
static char initstr[AST_MAX_INIT_STR] = "ATE1Q0";
@@ -271,8 +274,13 @@ static int modem_setup(struct ast_modem_pvt *p, int baudrate)
mode. Set the baud rate, etc. */
char identity[256];
char *ident = NULL;
+ char etx[2] = { 0x10, 0x03 };
if (option_debug)
ast_log(LOG_DEBUG, "Setting up modem %s\n", p->dev);
+ if (ast_modem_send(p, etx, 2)) {
+ ast_log(LOG_WARNING, "Failed to send ETX?\n");
+ return -1;
+ }
if (ast_modem_send(p, "\r\n", 2)) {
ast_log(LOG_WARNING, "Failed to send enter?\n");
return -1;
@@ -433,6 +441,8 @@ struct ast_channel *ast_modem_new(struct ast_modem_pvt *i, int state)
strncpy(tmp->context, i->context, sizeof(tmp->context));
if (strlen(i->cid))
tmp->callerid = strdup(i->cid);
+ if (strlen(i->language))
+ strncpy(tmp->language,i->language, sizeof(tmp->language));
i->owner = tmp;
pthread_mutex_lock(&usecnt_lock);
usecnt++;
@@ -596,6 +606,7 @@ static struct ast_modem_pvt *mkif(char *iface)
free(tmp);
return NULL;
}
+ strncpy(tmp->language, language, sizeof(tmp->language));
tmp->f = fdopen(tmp->fd, "w+");
/* Disable buffering */
setvbuf(tmp->f, NULL, _IONBF,0);
@@ -732,6 +743,8 @@ int load_module()
dialtype = toupper(v->value[0]);
} else if (!strcasecmp(v->name, "context")) {
strncpy(context, v->value, sizeof(context));
+ } else if (!strcasecmp(v->name, "language")) {
+ strncpy(language, v->value, sizeof(language));
}
v = v->next;
}
diff --git a/formats/format_g723.c b/formats/format_g723.c
index 3824e04e7..e72c3c644 100755
--- a/formats/format_g723.c
+++ b/formats/format_g723.c
@@ -102,6 +102,8 @@ static struct ast_filestream *g723_rewrite(int fd, char *comment)
tmp->owner = NULL;
tmp->fr = NULL;
tmp->lasttimeout = -1;
+ tmp->orig.tv_usec = 0;
+ tmp->orig.tv_sec = 0;
glistcnt++;
pthread_mutex_unlock(&g723_lock);
ast_update_use_count();
@@ -189,8 +191,8 @@ static int ast_read_callback(void *data)
delay = ntohl(delay);
else
delay = -1;
- /* Average out frames <= 40 ms */
- if (delay < 41)
+ /* Average out frames <= 50 ms */
+ if (delay < 50)
s->fr->timelen = 30;
else
s->fr->timelen = delay;
@@ -227,8 +229,8 @@ static int g723_apply(struct ast_channel *c, struct ast_filestream *s)
s->owner = c;
/* Read and ignore the first delay */
if (read(s->fd, &delay, 4) != 4) {
- ast_log(LOG_WARNING, "Bad stream?\n");
- return -1;
+ /* Empty file */
+ return 0;
}
ast_read_callback(s);
return 0;