Fixed handling of call collision

An establishment is received from AN (access network), while
establishment request was sent to AN. The call is answered.
master
Andreas Eversberg 5 months ago
parent 994c974074
commit 6a812616a4

@ -1542,8 +1542,15 @@ static void v5_receive(pstn_t *pstn, uint8_t *data, int len)
break;
case PSTN_EVENT_EST_IND:
/* in case of collision, just treat as ACK and proceed outgoing call */
if (pstn->state != PSTN_STATE_EST_LE
&& pstn->state != PSTN_STATE_NULL) {
if (pstn->state == PSTN_STATE_EST_LE) {
PDEBUG(DTEL, DEBUG_INFO, " -> Handle establish collision, send ACK.\n");
/* send ack message to V5 */
v5_est_ack_req(pstn);
/* treat as establish acknowledgement from PSTN interface */
v5_est_ack_ind(pstn, data, len);
break;
}
if (pstn->state != PSTN_STATE_NULL) {
PDEBUG(DTEL, DEBUG_NOTICE, "Received %s message in state %s, ignoring!\n", pstn_event_name(event), pstn_state_name(pstn->state));
break;
}

Loading…
Cancel
Save