Introduce new config option 'aniasdni'. If yes then asterisk set dialed number as own id back to the caller

on incoming h.323 calls. Option can be set globally or per user section.

(closes issue ASTERISK-22020)
Reported by: Ross Beer



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@404211 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Alexandr Anikin
2013-12-18 19:36:39 +00:00
parent e2630fcd51
commit 86b5e11607
2 changed files with 20 additions and 0 deletions

View File

@@ -205,6 +205,7 @@ static struct ooh323_pvt {
char rtpmaskstr[120];
int rtdrcount, rtdrinterval; /* roundtripdelayreq */
int faststart, h245tunneling; /* faststart & h245 tunneling */
int aniasdni; /* use dialed number as answering identification */
struct ooh323_pvt *next; /* Next entity */
} *iflist = NULL;
@@ -237,6 +238,7 @@ struct ooh323_user{
int directrtp;
int earlydirect;
int g729onlyA;
int aniasdni;
struct ooh323_user *next;
};
@@ -344,6 +346,7 @@ OOBOOL gH323Debug = FALSE;
static int gTRCLVL = OOTRCLVLERR;
static int gRTDRCount = 0, gRTDRInterval = 0;
static int gNat = FALSE;
static int gANIasDNI = 0;
static int t35countrycode = 0;
static int t35extensions = 0;
@@ -557,6 +560,8 @@ static struct ooh323_pvt *ooh323_alloc(int callref, char *callToken)
ast_format_cap_copy(pvt->cap, gCap);
memcpy(&pvt->prefs, &gPrefs, sizeof(pvt->prefs));
pvt->aniasdni = gANIasDNI;
ast_mutex_unlock(&pvt->lock);
/* Add to interface list */
ast_mutex_lock(&iflock);
@@ -1897,6 +1902,9 @@ int ooh323_onReceivedSetup(ooCallData *call, Q931Message *pmsg)
p->rtdrcount = user->rtdrcount;
p->rtdrinterval = user->rtdrinterval;
}
p->aniasdni = user->aniasdni;
if (user->incominglimit) user->inUse++;
ast_mutex_unlock(&user->lock);
} else {
@@ -1929,6 +1937,10 @@ int ooh323_onReceivedSetup(ooCallData *call, Q931Message *pmsg)
ast_log(LOG_ERROR, "Could not create ast_channel\n");
return -1;
}
if (p->aniasdni) {
ooCallSetCallerId(call, p->exten);
}
if (!configure_local_rtp(p, call)) {
ast_mutex_unlock(&p->lock);
ast_log(LOG_ERROR, "Couldn't create rtp structure\n");
@@ -2430,6 +2442,8 @@ static struct ooh323_user *build_user(const char *name, struct ast_variable *v)
user->t38support = T38_FAXGW;
else if (!strcasecmp(v->value, "yes"))
user->t38support = T38_ENABLED;
} else if (!strcasecmp(v->name, "aniasdni")) {
user->aniasdni = ast_true(v->value);
}
v = v->next;
}
@@ -3049,6 +3063,8 @@ int reload_config(int reload)
} else if (!strcasecmp(v->name, "tracelevel")) {
gTRCLVL = atoi(v->value);
ooH323EpSetTraceLevel(gTRCLVL);
} else if (!strcasecmp(v->name, "aniasdni")) {
gANIasDNI = ast_true(v->value);
}
v = v->next;
}