diff --git a/channels/chan_zap.c b/channels/chan_zap.c index 13088f86db0026879e22a1338d77ea7ae3445ced..94809af790dbdf367df82b816024a37893c4a126 100644 --- a/channels/chan_zap.c +++ b/channels/chan_zap.c @@ -247,6 +247,8 @@ static int callwaitingcallerid = 0; static int hidecallerid = 0; +static int hidecalleridname = 0; + static int restrictcid = 0; static int use_callingpres = 0; @@ -613,6 +615,7 @@ static struct zt_pvt { unsigned int hanguponpolarityswitch:1; unsigned int hardwaredtmf:1; unsigned int hidecallerid; + unsigned int hidecalleridname; /*!< Hide just the name not the number for legacy PBX use */ unsigned int ignoredtmf:1; unsigned int immediate:1; /*!< Answer before getting digits? */ unsigned int inalarm:1; @@ -2239,6 +2242,10 @@ static int zt_call(struct ast_channel *ast, char *rdest, int timeout) c++; else c = dest; + if (!p->hidecalleridname) + n = ast->cid.cid_name; + else + n = NULL; if (!p->hidecallerid) { l = ast->cid.cid_num; n = ast->cid.cid_name; @@ -8337,7 +8344,7 @@ static void ss7_inservice(struct zt_ss7 *linkset, int startcic, int endcic) } } -static int ss7_reset_linkset(struct zt_ss7 *linkset) +static void ss7_reset_linkset(struct zt_ss7 *linkset) { int i, startcic = -1, endcic; @@ -11820,6 +11827,8 @@ static int process_zap(struct ast_variable *v, int reload, int skipchannels) echotraining = 0; } else if (!strcasecmp(v->name, "hidecallerid")) { hidecallerid = ast_true(v->value); + } else if (!strcasecmp(v->name, "hidecalleridname")) { + hidecalleridname = ast_true(v->value); } else if (!strcasecmp(v->name, "pulsedial")) { pulse = ast_true(v->value); } else if (!strcasecmp(v->name, "callreturn")) {