[asterisk-dev] Libpri - Wrong answer on Status Enquiry with global call reference

Ing. Stefano Blasco stefano.blasco at opentlc.it
Mon Jul 26 03:47:46 CDT 2010


Hi all,
i repeat the header of the email for the different problems so it is
clear even i someone read only one email!
As a result of some intensive protocol tests we have found some problem
on Libpri/asterisk that i want to share with you;
The test environment is Debian stable with asterisk version 1.6.2.8
dahdi 2.3.0.1
and libpri 1.4.11.2. The cards that we are using are loaded with dahdi
kernel modules for PRI (wct4xxp for Openvox D410E) and for BRI (wcb4xxp
for Openvox B200E).

The problem is:
When asterisk receive a STATUS ENQUIRY with global call reference it
answers with a RELEASE COMPLETE, and this is wrong because we have to
answer with a STATUS message with invalid call reference: in this case i
wanted to show a possible solution in file q931.c at line 7169 instead of
          case Q931_STATUS_ENQUIRY:
                if (c->newcall) {
                        q931_release_complete(ctrl,
c,PRI_CAUSE_INVALID_CALL_REFERENCE);
                } else
                       
q931_status(ctrl,c,PRI_CAUSE_RESPONSE_TO_STATUS_ENQUIRY);
                break;
    we could use:
          case Q931_STATUS_ENQUIRY:
                if (c->newcall) {
                        if(c->cr == Q931_DUMMY_CALL_REFERENCE){
                             
q931_status(ctrl,c,PRI_CAUSE_INVALID_CALL_REFERENCE);
                              }
                        else{
                              q931_release_complete(ctrl,
c,PRI_CAUSE_INVALID_CALL_REFERENCE);
                        }

                } else
                       
q931_status(ctrl,c,PRI_CAUSE_RESPONSE_TO_STATUS_ENQUIRY);
                break;
   

what do you think about it?



More information about the asterisk-dev mailing list