Add Circuit Group Queury message code

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@87232 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.6.0
Matthew Fredrickson 19 years ago
parent 6c452a6408
commit db88298c18

@ -8430,6 +8430,38 @@ static int ss7_find_cic(struct zt_ss7 *linkset, int cic)
return winner;
}
static void ss7_handle_cqm(struct zt_ss7 *linkset, int startcic, int endcic)
{
unsigned char status[32];
struct zt_pvt *p = NULL;
int i, offset;
for (i = 0; i < linkset->numchans; i++) {
if (linkset->pvts[i] && ((linkset->pvts[i]->cic >= startcic) && (linkset->pvts[i]->cic <= endcic))) {
p = linkset->pvts[i];
offset = p->cic - startcic;
status[offset] = 0;
if (p->locallyblocked)
status[offset] |= (1 << 0) | (1 << 4);
if (p->remotelyblocked)
status[offset] |= (1 << 1) | (1 << 5);
if (p->ss7call) {
if (p->outgoing)
status[offset] |= (1 << 3);
else
status[offset] |= (1 << 2);
} else
status[offset] |= 0x3 << 2;
}
}
if (p)
isup_cqr(linkset->ss7, startcic, endcic, p->dpc, status);
else
ast_log(LOG_WARNING, "Could not find any equipped circuits within CQM CICs\n");
}
static inline void ss7_block_cics(struct zt_ss7 *linkset, int startcic, int endcic, unsigned char state[], int block)
{
int i;
@ -8738,6 +8770,10 @@ static void *ss7_linkset(void *data)
isup_gra(ss7, e->grs.startcic, e->grs.endcic, p->dpc);
ss7_block_cics(linkset, e->grs.startcic, e->grs.endcic, NULL, 0);
break;
case ISUP_EVENT_CQM:
ast_debug(1, "Got Circuit group query message from CICs %d to %d\n", e->cqm.startcic, e->cqm.endcic);
ss7_handle_cqm(linkset, e->cqm.startcic, e->cqm.endcic);
break;
case ISUP_EVENT_GRA:
ast_verbose("Got reset acknowledgement from CIC %d to %d.\n", e->gra.startcic, e->gra.endcic);
ss7_inservice(linkset, e->gra.startcic, e->gra.endcic);

Loading…
Cancel
Save