ftmod_libpri: Always send PROGRESS messages with PROGRESS INDICATOR IE

PROGRESS without PROGRESS INDICATOR IE is invalid according to Q.931,
so always call pri_progress() with info flag set, even if we do not
have media yet.

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
This commit is contained in:
Matteo Brancaleoni 2012-10-29 11:58:22 +01:00 committed by Stefan Knoblich
parent 652da36862
commit 3d090357cf
1 changed files with 7 additions and 1 deletions

View File

@ -974,7 +974,13 @@ static ftdm_status_t state_advance(ftdm_channel_t *chan)
ftdm_set_state_locked(chan, FTDM_CHANNEL_STATE_HANGUP); ftdm_set_state_locked(chan, FTDM_CHANNEL_STATE_HANGUP);
} }
} else if (call) { } else if (call) {
pri_progress(isdn_data->spri.pri, call, ftdm_channel_get_id(chan), 0); /*
* Even if we have no media, sending progress without PI is forbidden
* by Q.931 3.1.8, so a protocol error will be issued from libpri
* and from remote equipment.
* So just pretend we have PI.
*/
pri_progress(isdn_data->spri.pri, call, ftdm_channel_get_id(chan), 1);
} else { } else {
ftdm_set_state_locked(chan, FTDM_CHANNEL_STATE_RESTART); ftdm_set_state_locked(chan, FTDM_CHANNEL_STATE_RESTART);
} }