]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
ftmod_libpri: Always send PROGRESS messages with PROGRESS INDICATOR IE
authorMatteo Brancaleoni <mbrancaleoni@voismart.it>
Mon, 29 Oct 2012 10:58:22 +0000 (11:58 +0100)
committerStefan Knoblich <stkn@openisdn.net>
Mon, 29 Oct 2012 10:58:22 +0000 (11:58 +0100)
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>
libs/freetdm/src/ftmod/ftmod_libpri/ftmod_libpri.c

index 3b819df718f8ffa3add608c78dbc5178b31bc86f..2f1a5ff9ed663f8bde3e4a9df9300ab70c085c43 100644 (file)
@@ -974,7 +974,13 @@ static ftdm_status_t state_advance(ftdm_channel_t *chan)
                                        ftdm_set_state_locked(chan, FTDM_CHANNEL_STATE_HANGUP);
                                }
                        } 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 {
                                ftdm_set_state_locked(chan, FTDM_CHANNEL_STATE_RESTART);
                        }