--- channels/chan_iax2.c 2004-04-24 13:59:09.855194176 +0200 +++ channels/chan_iax2.new 2004-04-24 13:52:46.115531472 +0200 @@ -103,6 +103,8 @@ static char context[80] = "default"; +static char language[MAX_LANGUAGE] = ""; + static int max_retries = 4; static int ping_time = 20; static int lagrq_time = 10; @@ -184,6 +186,7 @@ int authmethods; char accountcode[20]; char inkeys[80]; /* Key(s) this user can use to authenticate to us */ + char language[MAX_LANGUAGE]; int amaflags; int hascallerid; int delme; @@ -374,7 +377,7 @@ /* Private key for outgoing authentication */ char outkey[80]; /* Preferred language */ - char language[80]; + char language[MAX_LANGUAGE]; /* Hostname/peername for naming purposes */ char host[80]; /* Associated registry */ @@ -2972,6 +2975,8 @@ strncpy(iaxs[callno]->accountcode, user->accountcode, sizeof(iaxs[callno]->accountcode)-1); if (user->amaflags) iaxs[callno]->amaflags = user->amaflags; + if (strlen(user->language)) + strncpy(iaxs[callno]->language, user->language, sizeof(iaxs[callno]->language)-1); iaxs[callno]->notransfer = user->notransfer; res = 0; } @@ -5429,6 +5434,7 @@ memset(user, 0, sizeof(struct iax2_user)); user->capability = iax2_capability; strncpy(user->name, name, sizeof(user->name)-1); + strcpy(user->language, language); while(v) { if (!strcasecmp(v->name, "context")) { con = build_context(v->value); @@ -5471,6 +5477,8 @@ user->hascallerid=1; } else if (!strcasecmp(v->name, "accountcode")) { strncpy(user->accountcode, v->value, sizeof(user->accountcode)-1); + } else if (!strcasecmp(v->name, "language")) { + strncpy(user->language, v->value, sizeof(user->language)-1); } else if (!strcasecmp(v->name, "amaflags")) { format = ast_cdr_amaflags2int(v->value); if (format < 0) { @@ -5720,6 +5728,8 @@ } else if (!strcasecmp(v->name, "dbname")) { strncpy(mydbname, v->value, sizeof(mydbname) - 1); #endif + } else if (!strcasecmp(v->name, "language")) { + strncpy(language, v->value, sizeof(language) - 1); } //else if (strcasecmp(v->name,"type")) // ast_log(LOG_WARNING, "Ignoring %s\n", v->name); v = v->next; @@ -5782,6 +5792,7 @@ struct sockaddr_in dead_sin; struct iax2_peer *peer; strncpy(accountcode, "", sizeof(accountcode)-1); + strncpy(language, "", sizeof(language)-1); amaflags = 0; notransfer = 0; srand(time(NULL));