diff --git a/channels/chan_zap.c b/channels/chan_zap.c index c5ece9505c3a33a5260caa7d856f111c95cd291c..ab46673f5573182ff0ce4117df450fcfa17de265 100755 --- a/channels/chan_zap.c +++ b/channels/chan_zap.c @@ -544,6 +544,12 @@ static struct zt_pvt { #endif } *iflist = NULL, *ifend = NULL; +#ifdef ZAPATA_PRI +#define GET_CHANNEL(p) ((p)->bearer ? (p)->bearer->channel : p->channel) +#else +#define GET_CHANNEL(p) ((p)->channel) +#endif + struct zt_pvt *round_robin[32]; #ifdef ZAPATA_PRI @@ -1143,7 +1149,7 @@ static int update_conf(struct zt_pvt *p) for (x=0;x<MAX_SLAVES;x++) { if (p->slaves[x]) { if (useslavenative) - conf_add(p, &p->slaves[x]->subs[SUB_REAL], SUB_REAL, p->bearer ? p->bearer->channel : p->channel); + conf_add(p, &p->slaves[x]->subs[SUB_REAL], SUB_REAL, GET_CHANNEL(p)); else { conf_add(p, &p->slaves[x]->subs[SUB_REAL], SUB_REAL, 0); needconf++; @@ -1153,7 +1159,7 @@ static int update_conf(struct zt_pvt *p) /* If we're supposed to be in there, do so now */ if (p->inconference && !p->subs[SUB_REAL].inthreeway) { if (useslavenative) - conf_add(p, &p->subs[SUB_REAL], SUB_REAL, slave->bearer ? slave->bearer->channel : slave->channel); + conf_add(p, &p->subs[SUB_REAL], SUB_REAL, GET_CHANNEL(slave)); else { conf_add(p, &p->subs[SUB_REAL], SUB_REAL, 0); needconf++; @@ -1162,7 +1168,7 @@ static int update_conf(struct zt_pvt *p) /* If we have a master, add ourselves to his conference */ if (p->master) { if (isslavenative(p->master, NULL)) { - conf_add(p->master, &p->subs[SUB_REAL], SUB_REAL, p->master->bearer ? p->master->bearer->channel : p->master->channel); + conf_add(p->master, &p->subs[SUB_REAL], SUB_REAL, GET_CHANNEL(p->master)); } else { conf_add(p->master, &p->subs[SUB_REAL], SUB_REAL, 0); }