--- asterisk/channels/chan_local.c 2004-04-07 06:17:31.000000000 +0800 +++ chan_local.c 2004-05-17 21:23:05.000000000 +0800 @@ -60,6 +60,7 @@ ast_mutex_t lock; /* Channel private lock */ char context[AST_MAX_EXTENSION]; /* Context to call */ char exten[AST_MAX_EXTENSION]; /* Extension to call */ + char language[MAX_LANGUAGE]; int reqformat; /* Requested format */ int glaredetect; /* Detect glare on hangup */ int cancelqueue; /* Cancel queue */ @@ -336,6 +337,7 @@ static struct local_pvt *local_alloc(char *data, int format) { struct local_pvt *tmp; + char *language; char *c; char *opts; tmp = malloc(sizeof(struct local_pvt)); @@ -349,6 +351,9 @@ opts++; if (strchr(opts, 'n')) tmp->nooptimization = 1; + *opts='\0'; + opts++; + strncpy(tmp->language, opts, sizeof(tmp->language) - 1); } c = strchr(tmp->exten, '@'); if (c) { @@ -432,6 +437,8 @@ ast_update_use_count(); strncpy(tmp->context, p->context, sizeof(tmp->context)-1); strncpy(tmp2->context, p->context, sizeof(tmp2->context)-1); + strncpy(tmp->language, p->language, sizeof(tmp->language)-1); + strncpy(tmp2->language, p->language, sizeof(tmp2->language)-1); strncpy(tmp2->exten, p->exten, sizeof(tmp->exten)-1); tmp->priority = 1; tmp2->priority = 1;