Summary: | ASTERISK-14419: [patch] Unable to make ISDN PRI calls after upgrade. | ||
Reporter: | Alec Davis (alecdavis) | Labels: | |
Date Opened: | 2009-07-05 21:50:49 | Date Closed: | 2009-07-23 11:01:21 |
Priority: | Major | Regression? | No |
Status: | Closed/Complete | Components: | Channels/chan_dahdi |
Versions: | Frequency of Occurrence | ||
Related Issues: | |||
Environment: | Attachments: | ( 0) bug15452.patch ( 1) Invalid-information-element-contects-100.txt ( 2) pri-not-working.txt ( 3) pri-working.txt | |
Description: | After upgrade to SVN-trunk-r204919M from SVN-branch-1.6.2-r203077M we are unable to make ISDN PRI calls. reverting back to 1.6.2-r203077M with exactly same configs, works again. Console output as attached files. The difference is the extra "Ext: 1 DS1 Identifier: 0" that's not present using older code. ****** ADDITIONAL INFORMATION ****** chan_dahdi.conf context=incoming group = 0 pridialplan = unknown prilocaldialplan = unknown facilityenable=yes transfer=yes switchtype=qsig signalling=pri_cpe qsigchannelmapping=physical channel => 1-15,17-31 | ||
Comments: | By: Alec Davis (alecdavis) 2009-07-07 17:07:30 Description below of initially uploaded files. pri-working.txt: using SVN-branch-1.6.2-r203077M pri-not-working.txt: using SVN-trunk-r204919M Both of the above traces were connected to a JTec ETSI QSIG trunk. By: Alec Davis (alecdavis) 2009-07-07 17:22:34 libpri version: SVN-branch-1.4-r865 Asterisk SVN-trunk-r205014 DAHDI Version: 2.2.0 Echo Canceller: MG2 Connecting to a Jtec QSIG card the call fails as reported. If we connect to a JTec E1MN ETSI card, the call will succeed. Still has an error come back. uploaded Invalid-information-element-contects-100.txt This is a successful call, using a non-qsig trunk, still there is a STATUS message indicating not happy. By: Alec Davis (alecdavis) 2009-07-08 05:42:14 excerpt from ITU Q.931 (05/98) 4.5.13 Channel identification The purpose of the Channel identification information element is to identify a channel within the interface(s) controlled by these signalling procedures. The Channel identification information element is coded as shown in Figures 4-18 and 4-19 and Table 4-13. The channel identification element may be repeated in a message, e.g. to list several acceptable channels during channel negotiation. The default maximum length for this information element is network dependent <pre> 8 7 6 5 4 3 2 1 Octet o-------o-------o-------o-------o-------o-------o-------o-------o | Channel identification information element identifier | | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 o-------o-------o-------o-------o-------o-------o-------o-------o | Length of channel identification contents | 2 o-------o-------o-------o-------o-------o-------o---------------o | ext |Int Id | Int | Spare | Pref |D-Chan | Info Channel | 3 | 1 |Present| Type | 0 | Excl | Ind | Selection | o-------o-------o-------o-------o-------o-------o-------o-------o | ext | Interface Identifier | 3.1 | 0/1 | | (Note 1) o-------o-------o-------o-------o-------o-------o-------o-------o | ext | Coding |Number | Channel type | 3.2 | 1 | Standard | /Map | / Map element Type | (Note 2 & 5) o-------o-------o-------o-------o-------o-------o-------o-------o | Channel number/Slot map (Note 3) | 3.3 | | (Note 2,4 & 5) o-------o-------o-------o-------o-------o-------o-------o-------o</pre> NOTE 1 – When the "interface identifier present" field in octet 3 indicates "interface implicitly identified" octet 3.1 is omitted. When octet 3.1 is present, it may be extended by using the extension bit (bit 8). NOTE 2 – When the "interface type" field in octet 3 indicates "basic interface", octets 3.2 and 3.3 are functionally replaced by the "information channel selection" field in octet 3,and thus omitted. NOTE 3 – When channel number is used and a single channel is indicated, bit 8 shall be set to "1". When channel number is used and multiple channels are indicated, bit 8 shall be used as an extension bit to indicate an extension to subsequent channels and coded according to the rules specified in 4.5.1. NOTE 4 – When channel number is used, this octet may be repeated to indicate multiple channels. NOTE 5 – These octets shall be omitted when the entire interface is to be identified. By: Alec Davis (alecdavis) 2009-07-08 06:30:22 Reading further http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-143.pdf , around pages 68-70 to do with 'channel identification'. <b>NOTE 1 Since the interface is never explicitly identified at the Q reference point, octet 3.1 of ITU-T Rec. Q.931 is always omitted.<b> By: Alec Davis (alecdavis) 2009-07-13 15:48:03 Summary: Since sig-pri work the inclusion of Octect 3.1 in the channel indentification is causing us problems. The standards ECMA-143 infer that it is always ommited. If Octect 3.1 is present, then Octects 3.2 and 3.3 are ommitted. By: Alec Davis (alecdavis) 2009-07-21 16:01:41 Please assign to jpeeler, 'change of behaviour not intentional' as discussed on IRC on Friday. By: Jeff Peeler (jpeeler) 2009-07-22 16:58:11 I believe this restores the previous correct behavior, let me know the results. By: Alec Davis (alecdavis) 2009-07-22 17:55:28 Applied bug15452.patch to SVN-trunk-r205014M testing: Succesfully made calls, when connected to either PRI ETSI trunk and a QSIG ETSI trunk. Previously, the PRI trunk would report an error, but still proceed, where as the QSIG trunk would fail, now both work. By: Alec Davis (alecdavis) 2009-07-23 00:15:40 SVN-trunk-r208193M with patch applied. tested inbound and outbound calls: worked as expected. tested to SIP - > PABX, primarily to check for 'No Audio bug - dialling flag not cleared issue', worked as expected. By: Digium Subversion (svnbot) 2009-07-23 10:59:49 Repository: asterisk Revision: 208267 U trunk/channels/chan_dahdi.c U trunk/channels/sig_pri.c U trunk/channels/sig_pri.h ------------------------------------------------------------------------ r208267 | jpeeler | 2009-07-23 10:59:49 -0500 (Thu, 23 Jul 2009) | 13 lines Fix sending of interface identifier unconditionally in sig_pri The wrong logic was being used in chan_dahdi to convert a sig_pri_chan to the proper libpri channel number. The most significant bit must only be set only when trunk groups are being used. (closes issue ASTERISK-14419) Reported by: alecdavis Patches: bug15452.patch uploaded by jpeeler (license 325) Tested by: alecdavis ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=208267 By: Digium Subversion (svnbot) 2009-07-23 11:00:59 Repository: asterisk Revision: 208268 _U branches/1.6.0/ ------------------------------------------------------------------------ r208268 | jpeeler | 2009-07-23 11:00:58 -0500 (Thu, 23 Jul 2009) | 18 lines Blocked revisions 208267 via svnmerge ........ r208267 | jpeeler | 2009-07-23 10:59:44 -0500 (Thu, 23 Jul 2009) | 13 lines Fix sending of interface identifier unconditionally in sig_pri The wrong logic was being used in chan_dahdi to convert a sig_pri_chan to the proper libpri channel number. The most significant bit must only be set only when trunk groups are being used. (closes issue ASTERISK-14419) Reported by: alecdavis Patches: bug15452.patch uploaded by jpeeler (license 325) Tested by: alecdavis ........ ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=208268 By: Digium Subversion (svnbot) 2009-07-23 11:01:08 Repository: asterisk Revision: 208269 _U branches/1.6.1/ ------------------------------------------------------------------------ r208269 | jpeeler | 2009-07-23 11:01:08 -0500 (Thu, 23 Jul 2009) | 18 lines Blocked revisions 208267 via svnmerge ........ r208267 | jpeeler | 2009-07-23 10:59:44 -0500 (Thu, 23 Jul 2009) | 13 lines Fix sending of interface identifier unconditionally in sig_pri The wrong logic was being used in chan_dahdi to convert a sig_pri_chan to the proper libpri channel number. The most significant bit must only be set only when trunk groups are being used. (closes issue ASTERISK-14419) Reported by: alecdavis Patches: bug15452.patch uploaded by jpeeler (license 325) Tested by: alecdavis ........ ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=208269 By: Digium Subversion (svnbot) 2009-07-23 11:01:21 Repository: asterisk Revision: 208270 _U branches/1.6.2/ ------------------------------------------------------------------------ r208270 | jpeeler | 2009-07-23 11:01:20 -0500 (Thu, 23 Jul 2009) | 18 lines Blocked revisions 208267 via svnmerge ........ r208267 | jpeeler | 2009-07-23 10:59:44 -0500 (Thu, 23 Jul 2009) | 13 lines Fix sending of interface identifier unconditionally in sig_pri The wrong logic was being used in chan_dahdi to convert a sig_pri_chan to the proper libpri channel number. The most significant bit must only be set only when trunk groups are being used. (closes issue ASTERISK-14419) Reported by: alecdavis Patches: bug15452.patch uploaded by jpeeler (license 325) Tested by: alecdavis ........ ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=208270 |