Handling of unknown facility indications from terminals

This commit is contained in:
Dennis Grunert 2024-01-10 17:57:50 +01:00 committed by Andreas Eversberg
parent 1e83fdfaad
commit 3779fd3034
1 changed files with 67 additions and 64 deletions

View File

@ -1323,17 +1323,20 @@ void facility_ind(call_t *call, uint32_t pid, struct l3_msg *l3m)
set_3pty = 0;
break;
default:
;
LOGP(DDSS1, LOGL_DEBUG, "Facility Operation=%x of Component=%x not implemented\n", fac.u.inv.operationValue, fac.comp);
break;
}
break;
default:
;
LOGP(DDSS1, LOGL_DEBUG, "Facility Operation=%x of Component=%x not implemented\n", fac.u.inv.operationValue, fac.comp);
break;
}
if(set_3pty >= 0) {
/* find other terminal on hold */
other = call->isdn_ep->call_list;
while (other) {
// printf("check: call=%p other=%p call_ces=%x other_ces=%x other_hold=%d\n", call, other, call->l3_ces, other->l3_ces, other->hold);
// printf("check: call=%p other=%p call_ces=%x other_ces=%x other_hold=%d\n", call, other, call->l3_ces, other->l3_ces, other->hold);
if (other != call
&& other->l3_ces == call->l3_ces) {
/* if we got facility on active call */
@ -1345,7 +1348,7 @@ void facility_ind(call_t *call, uint32_t pid, struct l3_msg *l3m)
}
other = other->next;
}
if (set_3pty >= 0 && other) {
if (other) {
other->conference_3pty = call->conference_3pty = set_3pty;
/* process local briding capability */
bridge_socket_client_update(call, 0);
@ -1377,7 +1380,6 @@ void facility_ind(call_t *call, uint32_t pid, struct l3_msg *l3m)
}
encodeFac(fac_ie, &fac);
/* sending facility */
l3m = create_l3msg();
enc_ie_facility(l3m, fac_ie + 2, fac_ie[1]);
@ -1398,6 +1400,7 @@ void facility_ind(call_t *call, uint32_t pid, struct l3_msg *l3m)
/* send message to osmo-cc */
osmo_cc_ll_msg(&other->isdn_ep->cc_ep, call->cc_callref, msg);
}
}
}
/* CC-PROGRESS INDICATION */