12017-01-27 16:25 +0000 Asterisk Development Team <asteriskteam@digium.com> 2 3 * libpri 1.6.0 Released. 4 52016-10-31 23:59 +0000 [c038af7892] Tzafrir Cohen <tzafrir.cohen@xorcom.com> 6 7 * Makefile: Use CPPFLAGS 8 9 * Include the value of CPPFLAGS in CFLAGS 10 11 Change-Id: Id8e6f3a231bf7581f3f37576b9ee6849ed59540a 12 132016-10-04 14:27 +0000 [f8e6096bfe] Richard Mudgett <rmudgett@digium.com> 14 15 * q931.c: Lucent switch implementation bug workaround (Part 2) 16 17 Work around a bug in a Lucent switch implementation that sets the 18 extension bit in octet 3 even though octet 3a is present. 19 20 The same issue was seen in a NI2 switch implementation. It was probably a 21 Lucent switch configured for NI2 operation. To avoid further surprises, 22 I'm going to enable the work around for all North American switch types. 23 24 PRI-183 25 Reported by: Richard Mudgett 26 27 Change-Id: I7eedbf68b7c3d9c868d9533012e4cea5142af281 28 292016-07-01 13:07 +0000 [d2585d6da2] Richard Mudgett <rmudgett@digium.com> 30 31 * q931.c: Lucent switch implementation bug workaround. 32 33 A bug in a Lucent switch implementation sets the Connected Number 34 information element octet 3 extension bit. When set that means octet 3 is 35 complete and thus there is no optional octet 3a. However, the buggy 36 switch still sends octet 3a. The unexpected octet 3a is interpreted as 37 the first octet 4 and thus the first character in the connected line 38 number is a garbage character. 39 40 * Work around the switch bug by checking octet 3 and the potential octet 41 3a extension bits. If they are both set then assume that octet 3a is 42 actually present for the buggy switch types. 43 44 PRI-183 #close 45 Reported by: Richard Mudgett 46 47 Change-Id: I378af37bfd852737a0bfe6263ef3473ea6acfbad 48 492016-06-30 20:15 +0000 [90019b935a] Richard Mudgett <rmudgett@digium.com> 50 51 * q931.c: Add number ie specification references. 52 53 Change-Id: I0d15804963501d1e4063a581db756ff26513065b 54 552016-03-25 20:59 +0000 Asterisk Development Team <asteriskteam@digium.com> 56 57 * libpri 1.5.0 Released. 58 592016-03-25 15:58 +0000 [44b1082a1e] Kevin Harwell <kharwell@lunkwill> 60 61 * Release summaries: Add summaries for 1.5.0 62 632016-03-25 15:58 +0000 [9a90caa65e] Kevin Harwell <kharwell@lunkwill> 64 65 * .version: Update for 1.5.0 66 672016-03-25 15:58 +0000 [5414ca525e] Kevin Harwell <kharwell@lunkwill> 68 69 * .lastclean: Update for 1.5.0 70 712016-03-24 14:55 +0000 [c71499df29] Kevin Harwell <kharwell@digium.com> 72 73 * Adding .cleancount and .gitreview files 74 75 Change-Id: I0e5accd0e43c049578241b2841fc2efa821c24f4 76 772016-03-15 16:22 +0000 [2952e95715] Richard Mudgett <rmudgett@digium.com> 78 79 * q931.c: Fix DISCONNECT Progress Indicator ie handling. 80 81 There are two scenarios that are exposed by DISCONNECT not initializing 82 the progress indicator value before processing the message when the 83 chan_dahdi.conf inbanddisconnect=yes option is set. 84 85 1) If a DISCONNECT comes in without a Progress Indicator ie and an earlier 86 message (such as SETUP-ACKNOWLEDGE or PROCEEDING) came in with the 87 indicator #8 (Inband audio present) then the DISCONNECT would not cause an 88 immediate hangup. We would be letting the user hear the inband audio even 89 though there isn't any. 90 91 2) If a DISCONNECT message comes in with the indicator #8 (Inband audio 92 present) and then later the DISCONNECT message is repeated without a 93 Progress Indicator ie we would still ignore the second DISCONNECT to let 94 the user hear inband audio even though it likely isn't there anymore. 95 96 PRI-180 #close 97 Reported by: Alexandr Dranchuk 98 99 Change-Id: Ic88aafb45053146b5701d666e6212f7555573624 100 1012016-03-16 13:08 +0000 [7da3366cec] Richard Mudgett <rmudgett@digium.com> 102 103 * q931.c: Substitute PROGRESS for DISCONNECT with progress indicator #8 104 105 When the pri_set_inbanddisconnect() option is enabled and the call has not 106 been answered when a DISCONNECT with progress indicator #8 (Inband audio 107 present) is received, then report the event as a PROGRESS with progress 108 indicator #8 (Inband audio present) instead. Substituting a PROGRESS 109 event allows the upper layer to open the media path if it isn't already 110 open so the user can hear the inband audio message. 111 112 PRI-180 113 Reported by: Alexandr Dranchuk 114 115 Change-Id: I62313bf9cc1d2f3b0231f0c07a784717ddba0415 116 1172016-03-16 12:57 +0000 [734e922301] Richard Mudgett <rmudgett@digium.com> 118 119 * Add .gitignore 120 121 Change-Id: I11ac3b47a9d5d0a0c1ea4559280b75ef5d866d62 122 1232016-02-17 14:21 +0000 [a9722804c1] Richard Mudgett <rmudgett@digium.com> 124 125 * q931.c: Tighten mandatory ie checks. 126 127 Libpri was lax in checking if a missing channel identification ie is 128 mandatory for the SETUP ACKNOWLEDGE, PROCEEDING, ALERTING, and CONNECT 129 messages. That ie is mandatory when those messages are the first response 130 to a SETUP message sent by the CPE side. 131 132 * Made those messages check if a missing channel identification ie is 133 mandatory and send a STATUS with cause 96 "Mandatory information element 134 is missing" in response. 135 136 Libpri did not care if a mandatory ie had a coding error. 137 138 * Made coding errors in mandatory ie's send a STATUS with cause 100 139 "Invalid information element contents" in response. 140 141 * Fixed detection of coding errors in channel identification ie. 142 143 SWP-8721 144 SWP-8722 145 146 147 git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@2337 2fbb986a-6c06-0410-b554-c9c1f0a7f128 148 1492016-02-09 15:46 +0000 [6b2cc87b30] Richard Mudgett <rmudgett@digium.com> 150 151 * q931.c: Update ALERTING_NO_PROGRESS conditional code. 152 153 The conditional is to only remove the Progress Indicator ie from being 154 added to select messages. 155 156 * Made so the ALERTING message can have the User-User ie if needed when 157 ALERTING_NO_PROGRESS is defined. 158 159 160 git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@2335 2fbb986a-6c06-0410-b554-c9c1f0a7f128 161 1622014-11-17 17:26 +0000 [fc96191788] Richard Mudgett <rmudgett@digium.com> 163 164 * q931.c: Made not recognize ie 0x01 for switches other than 4ESS, 5ESS, NI2, and DMS-100. 165 166 An incoming SETUP message needs to reject the invalid ie 0x01 on switches 167 other than 4ESS, 5ESS, NI2, and DMS-100. 168 169 LIBPRI-74 #close 170 Reported by: Richard Mudgett 171 172 173 git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@2333 2fbb986a-6c06-0410-b554-c9c1f0a7f128 174 1752014-11-17 14:07 +0000 [5fda3d8c68] Richard Mudgett <rmudgett@digium.com> 176 177 * q931.c: Send STATUS messages when receiving messages in the wrong call state. 178 179 * Add checks to send STATUS messages when receiving SETUP ACKNOWLEDGE, 180 ALERTING, and CONNECT ACKNOWLEDGE messages when in the wrong call state. 181 182 LIBPRI-76 #close 183 Reported by: Richard Mudgett 184 185 186 git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@2331 2fbb986a-6c06-0410-b554-c9c1f0a7f128 187 1882014-11-04 16:19 +0000 [af8a550ff9] Richard Mudgett <rmudgett@digium.com> 189 190 * q921.c: Send DM and DISC frames with only three data octets instead of an extra fourth octet. 191 192 193 git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@2329 2fbb986a-6c06-0410-b554-c9c1f0a7f128 194 1952014-08-18 17:44 +0000 [a50516c1e4] Gerald Schnabel 196 197 * q931.c: Make always post a PRI_EVENT_KEYPAD_DIGIT if keypad digits come in an INFO message. 198 199 Q.931 Section 3.1.6 INFORMATION message. The keypad-facility or 200 called-party-number ie could be used to convey called party digits. The 201 keypad-facility ie can also be used to convey supplementary service 202 information. 203 204 PRI-173 #close 205 Reported by: Gerald Schnabel 206 Patches: 207 libpri_q931_keypad_digits.patch (license #6297) patch uploaded by Gerald Schnabel 208 209 210 git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@2327 2fbb986a-6c06-0410-b554-c9c1f0a7f128 211 2122014-06-16 Asterisk Development Team <asteriskteam@digium.com> 213 214 * libpri 1.4.15 Released. 215 2162014-06-02 16:27 +0000 [r2322] Richard Mudgett <rmudgett@digium.com> 217 218 * pri.c: Adjust T202 default value to the minimum. The minimum T202 219 time specified in Q.921 Section 5.9.7 is 2 seconds. It makes 220 sense to set the value to the minimum 2 seconds in order to more 221 likely get a TEI value before an outgoing call request aborts 222 from T303 timeouts. PRI-171 #close Reported by: dcolombo 223 2242014-05-12 22:45 +0000 [r2320] Richard Mudgett <rmudgett@digium.com> 225 226 * pri_q931.h, q931.c, libpri.h, pri.c: libpri: Add control of 227 inband audio progress indication ie to the SETUP_ACKNOWLEDGE 228 message. Added support to the libpri API to control the inband 229 audio available progress indication ie on the SETUP_ACKNOWLEDGE 230 message. * Added the progress indication ie progressmask value to 231 the struct pri_event_setup_ack so the PRI_EVENT_SETUP_ACK event 232 can indicate when a SETUP_ACKNOWLEDGE comes in with inband audio 233 (ie dialtone). * Added pri_setup_ack() so when the 234 SETUP_ACKNOWLEDGE message is sent it can indicate if inband audio 235 is present (ie dialtone). This patch and a corresponding change 236 in Asterisk work together to allow Asterisk to control the inband 237 audio available progress indication ie on the SETUP_ACKNOWLEDGE 238 message when dialtone is present. AST-1338 #close Reported by: 239 Tyler Stewart Review: https://reviewboard.asterisk.org/r/3520/ 240 2412014-04-18 17:44 +0000 [r2318] Richard Mudgett <rmudgett@digium.com> 242 243 * q921.c: libpri: Make TE-PTP mode respond to MDL TEI check 244 requests. Some BRI devices in France insist on checking TEI's 245 when in point-to-point mode. If they don't get a response for TEI 246 0 they drop layer 1 even though libpri keeps trying to bring 247 layer 2 up. * Made q921_mdl_receive() handle TEI check request 248 messages in TE-PTP mode. Had to change 249 q921_mdl_send()/Q921_INIT() because the PTP modes do not setup a 250 link structure specifically for MDL as the PTMP modes do. * Fixed 251 q921_tei_check()/t201_expire() to check TEI's even if the network 252 side doesn't have any assigned. This should make TE's that 253 request the TEI verify procedure (Q.921 Section 5.3.5) happy when 254 the network side doesn't have any TEI's allocated. PRI-165 255 Reported by: Denis Alberto Martinez Patches: 256 jira_pri_165_ptp_respond_tei_check.patch (license #5621) patch 257 uploaded by rmudgett Review: 258 https://reviewboard.asterisk.org/r/3434/ 259 2602013-03-28 16:40 +0000 [r2315] Richard Mudgett <rmudgett@digium.com> 261 262 * q921.c: Fix hole in layer2_persistence option for TE PTMP links. 263 If the network stops responding, according to Q.921 we are 264 supposed to remove the TEI. With the layer2_persistence option 265 enabled, we are supposed to keep trying to bring layer 2 back up. 266 Unfortunately, when the network stops responding, we stopped the 267 restart timer and removed the TEI. As a result, layer 2 does not 268 immediately come back up. * Made not stop the restart timer if we 269 are removing the TEI on the CPE side. Also handle the timer 270 expiration in relevant unassigned TEI states. (closes issue 271 LIBPRI-72) Reported by: Trey Blancher Patches: 272 jira_dahdi_1001_libpri_v1.4.patch (license #5621) patch uploaded 273 by rmudgett 274 2752012-12-20 Asterisk Development Team <asteriskteam@digium.com> 276 277 * libpri 1.4.14 Released. 278 2792012-12-10 18:28 +0000 [r2310] Richard Mudgett <rmudgett@digium.com> 280 281 * q931.c: Handle optional Recommendation octet 3a in Cause IE. If 282 the MSB of octet 3 is 0 then the optional Recommendation octet 3a 283 is present. References: ITU-T Q.850 Section 2.1 and ETSI ETS 300 284 102-1 Section 4.5.12. (closes issue PRI-151) Reported by: Tzafrir 285 Cohen Patches: 286 0001-handle-optional-Recommendation-in-Cause-IE.patch (license 287 #5035) patch uploaded by Tzafrir Cohen Modified 288 2892012-11-13 19:59 +0000 [r2307-2308] Richard Mudgett <rmudgett@digium.com> 290 291 * q931.c: Q.SIG: Allow PROGRESS when in the Active state. ECMA-143 292 Section 10.1.7.2 indicates that PROGRESS is allowed when in the 293 Active state. * Made Q.SIG ignore the PROGRESS message when in 294 the Active call state. (closes issue PRI-147) Reported by: Nick 295 Merrett 296 297 * q931.c: Fix compiler error with ALERTING_NO_PROGRESS define. 298 2992012-10-29 21:19 +0000 [r2305] Richard Mudgett <rmudgett@digium.com> 300 301 * pritest.c: Fix compiler warning in pritest.c. * Made do_channel() 302 exit on a failed write(). (closes issue PRI-145) Reported by: 303 Tzafrir Cohen Patches: fix_unused_write.patch (license #5035) 304 patch uploaded by Tzafrir Cohen Modified 305 3062012-10-09 Asterisk Development Team <asteriskteam@digium.com> 307 308 * libpri 1.4.13 Released. 309 3102012-09-26 15:46 +0000 [r2300] Richard Mudgett <rmudgett@digium.com> 311 312 * Makefile: Allow passing compiler flags (CFLAGS, LDFLAGS) (closes 313 issue PRI-144) Reported by: Tzafrir Cohen Patches: flags.diff 314 (license #5035) patch uploaded by Tzafrir Cohen 315 3162012-09-10 15:52 +0000 [r2298] Richard Mudgett <rmudgett@digium.com> 317 318 * pridump.c: Fix compile error in pridump.c. With gcc 4.6.3 it's 319 possible to get the following error: $ make gcc -Wall -Werror 320 -Wstrict-prototypes -Wmissing-prototypes -g -fPIC -O2 -MD -MT 321 pridump.o -MF .pridump.o.d -MP -c -o pridump.o pridump.c 322 pridump.c: In function \u2018pri_bridge\u2019: pridump.c:117:1: 323 error: no return statement in function returning non-void 324 [-Werror=return-type] cc1: all warnings being treated as errors 325 make: *** [pridump.o] Error 1 Changing the function return value 326 to void fixes the issue since there were no places in the code 327 that used the return value. (closes issue PRI-143) Reported by: 328 Birger "WIMPy" Harzenetter Patches: 329 0001-Fix-no-return-statement-in-function-returning-non-vo.patch 330 (license #5417) patch uploaded by Shaun Ruffell 331 3322012-08-11 01:38 +0000 [r2292-2295] Richard Mudgett <rmudgett@digium.com> 333 334 * /: SVN ignore built utilities. 335 336 * Makefile: * Made no longer compile *.lo files they are identical 337 to *.o files. * Made compile the pritest, rosetest, and 338 testprilib utilities using the static libpri library. No more 339 forgetting to install the library after a change and wondering 340 why it still did not work. The pridump utility is still 341 dynamically linked. * Made compile the utilities by default. 342 343 * pridump.c, testprilib.c: Make pridump and testprilib compile 344 again. 345 3462012-07-30 16:20 +0000 [r2290] Richard Mudgett <rmudgett@digium.com> 347 348 * q921.c: Removed MDL/TEI management configuration warning message. 349 Some telco switches send out MDL messages even though they are 350 configured for PTP. Usually they are checking for assigned TEI's. 351 Since these switches periodically poll for assigned TEI's, the 352 message needlessly fills up log files. * Changed message warning 353 level to a normal debug message level and reworded. (closes issue 354 PRI-137) Reported by: Bart Coninckx 355 3562012-06-28 00:16 +0000 [r2288] Richard Mudgett <rmudgett@digium.com> 357 358 * pri.c, pri_internal.h, q931.c, libpri.h: Implement T316 to allow 359 RESTART messages to be automatically retransmitted. Q.931 defines 360 the T316 timer to retransmit RESTART messages if a RESTART 361 ACKNOWLEDGE message is not received before the timer expires. 362 Q.931 defaults the time of T316 to 2 minutes with the default 363 number of consecutive RESTART failures as two. * To support 364 legacy behavior, the T316 timer is disabled by default. It is 365 also disabled because the user cannot configure it to disabled if 366 it is enabled. * The N316 count is created to allow the number of 367 RESTART attempts to be configurable. Note you will need to 368 recompile Asterisk to be able to configure N316. (issue 369 ASTERISK-19608) (issue AST-815) (closes issue PRI-133) Reported 370 by: Mike Boylan Tested by: rmudgett 371 3722012-05-14 14:54 +0000 [r2286] Richard Mudgett <rmudgett@digium.com> 373 374 * q931.c: Make pri_pres2str() return correct string. * Fix 375 pri_pres2str() mask creation. (closes issue PRI-139) Reported by: 376 Pavel Troller Patches: q931.c.diff (license #6302) patch uploaded 377 by Pavel Troller 378 3792012-03-23 19:35 +0000 [r2284] Richard Mudgett <rmudgett@digium.com> 380 381 * pri.c, q931.c, pri_facility.c, pri_cc.c: Make number not 382 available presentation also set screening to network provided. 383 Q.951 indicates that when the presentation indicator is "Number 384 not available due to interworking" for a number then the 385 screening indicator field should be "Network provided". Released 386 versions of Asterisk starting with v1.8 relesed before this patch 387 only recognized the PRES_NUMBER_NOT_AVAILABLE value as an 388 unavailable number. This patch improves compatibility as a 389 result. * Made mask the presentation value for names and numbers 390 from the upper layer. * Made pri_mwi_indicate_v2() also call 391 q931_party_id_fixup() for completeness even though it is a noop 392 in this case. * Made pri_pres2str() deceoode better. 393 3942012-02-03 23:12 +0000 [r2282] Kinsey Moore <kmoore@digium.com> 395 396 * pri_q921.h, q921.c, pridump.c: Make PRI_DEBUG_Q921_RAW work 397 independantly of PRI_DEBUG_Q921_DUMP Ensure that the DUMP and RAW 398 flags work independently in q921_dump(). (closes issue PRI-119) 399 Patch-by: wimpy 400 4012012-01-26 20:19 +0000 [r2280] Richard Mudgett <rmudgett@digium.com> 402 403 * q931.c: Use ie2str(full_ie) where possible in q931.c. Initial 404 patch by Alec Davis. Review: 405 https://reviewboard.asterisk.org/r/1633/ 406 4072011-12-16 20:01 +0000 [r2277-2278] Richard Mudgett <rmudgett@digium.com> 408 409 * pri_internal.h, q931.c: Remove nul octets from IE data that is 410 normally treated as strings. Sometimes ie values received from 411 carriers contain nul octets in values normally treated by libpri 412 as nul terminated strings. A discussion on the asterisk-users 413 list determined that the best thing to do in the situation is to 414 delete the nul octets and unconditionally report/log when that 415 happens. * Remove nul octets from the following ie's and generate 416 an unconditional log message to the upper layer when they are 417 removed: Connected Number Connected Address Redirecting Number 418 Original Called Number Redirection Number Called Party Number 419 Calling Party Number Display Keypad Facility (closes issue 420 PRI-128) Reported by: phsultan Patches: jira_pri_128.patch 421 (license #5621) patch uploaded by rmudgett (modified) Tested by: 422 rmudgett 423 424 * pri_internal.h, q931.c: Implement handling a multi-channel 425 RESTART request. The channel id ie can supply a slotmap or list 426 of channels. For a RESTART message, this can be handy to indicate 427 multiple channels that need to be restarted at the same time. An 428 incoming RESTART request will now generate a PRI_EVENT_RESTART to 429 the upper layer for each channel indicated in the request. If the 430 event is successfully generated for all indicated channels then a 431 RESTART_ACKNOWLEDGE is sent back to the peer indicating all 432 channels restarted. * Add the ability to process a channel id ie 433 channel list with a RESTART request. * Add the ability to process 434 slotmaps with a RESTART request. (closes issue PRI-93) Reported 435 by: Marcin Kowalczyk Patches: jira_pri_93.patch (license #5621) 436 patch uploaded by rmudgett Tested by: zvision, rmudgett (closes 437 issue PRI-71) Reported by: Torrey Searle Tested by: rmudgett 438 4392011-09-26 22:54 +0000 [r2275] Richard Mudgett <rmudgett@digium.com> 440 441 * q931.c: Fix message typo: Weird (closes issue PRI-126) Reported 442 by: Tzafrir Cohen 443 4442011-08-17 15:48 +0000 [r2273] Richard Mudgett <rmudgett@digium.com> 445 446 * pri.c, pri_internal.h, pri_q921.h, q921.c, libpri.h: Outgoing BRI 447 calls fail when using Asterisk 1.8 with HA8, HB8, and B410P 448 cards. France Telecom brings layer 2 and layer 1 down on BRI 449 lines when the line is idle. When layer 1 goes down Asterisk 450 cannot make outgoing calls and the HA8 and HB8 cards also get IRQ 451 misses. The inability to make outgoing calls is because the line 452 is in red alarm and Asterisk will not make calls over a line it 453 considers unavailable. The IRQ misses for the HA8 and HB8 card 454 are because the hardware is switching clock sources from the line 455 which just brought layer 1 down to internal timing. There is a 456 DAHDI option for the B410P card to not tell Asterisk that layer 1 457 went down so Asterisk will allow outgoing calls: "modprobe 458 wcb4xxp teignored=1". There is a similar DAHDI option for the HA8 459 and HB8 cards: "modprobe wctdm24xxp bri_teignored=1". 460 Unfortunately that will not clear up the IRQ misses when the 461 telco brings layer 1 down. * Add layer 2 persistence option to 462 customize the layer 2 behavior on BRI PTMP lines. The new option 463 has three settings: 1) Use libpri default layer 2 setting. 2) 464 Keep layer 2 up. Bring layer 2 back up when the peer brings it 465 down. 3) Leave layer 2 down when the peer brings it down. Layer 2 466 will be brought up as needed for outgoing calls. JIRA AST-598 467 4682011-07-05 Leif Madsen <lmadsen@digium.com> 469 470 * Release libpri 1.4.12 471 4722011-05-17 20:13 +0000 [r2266] Richard Mudgett <rmudgett@digium.com> 473 474 * pri.c, pri_internal.h, q931.c, libpri.h: Option needed for 475 Q931_IE_TIME_DATE to be optional in CONNECT message. The NEC 476 SV8300 rejects the Q931_IE_TIME_DATE for Q.SIG. Add option to 477 specify if and how much of the current time is put in 478 Q931_IE_TIME_DATE. * Send date/time ie never. * Send date/time ie 479 date only. * Send date/time ie date and hour. * Send date/time ie 480 date, hour, and minute. * Send date/time ie date, hour, minute, 481 and second. * Send date/time ie default: Libpri will send date 482 and hhmm only when in NT PTMP mode to support ISDN phones. 483 (closes issue #19221) Reported by: kenner JIRA SWP-3396 484 4852011-04-18 19:43 +0000 [r2262] Richard Mudgett <rmudgett@digium.com> 486 487 * pri_internal.h, q931.c, pri_facility.c, libpri.h: Problems with 488 ISDN MWI to phones. 1) The "controlling user number" is always 489 the number of the voice mail box which is identical with the 490 subscriber number itself. This number which is listed in the ISDN 491 phone MWI menu cannot be called back to contact the voice mail 492 box. The controlling user number should be made configurable. 2) 493 The MWI indication is not restricted to a user (broadcast 494 facility with dummy call reference). A called party IE should be 495 added to address only the relevant MSN. (ETSI 300-196 Section 496 8.3.2.4) JIRA ABE-2738 JIRA SWP-2846 497 4982011-03-18 01:59 +0000 [r2258] Richard Mudgett <rmudgett@digium.com> 499 500 * pri_facility.c: CallRerouting response not sent if peer hangs up 501 first. Send the CallRerouting response on the next message 502 instead of only on the DISCONNECT message. The next message is 503 either going to be a DISCONNECT or RELEASE depending on who 504 initiates disconnection first. 505 5062011-03-01 00:50 +0000 [r2227-2238] Richard Mudgett <rmudgett@digium.com> 507 508 * pri.c, pri_internal.h, pri_q931.h, q931.c, libpri.h: Implement 509 the mandatory T312 timer for NT PTMP broadcast SETUP calls. * 510 Fixed stopping T303 too early on a NT PTMP broadcast SETUP call 511 if a subcall just receives a RELEASE_COMPLETE(busy). * Fixed a 512 valgrind reported invalid read/write when hanging up a NT PTMP 513 broadcast SETUP call. JIRA LIBPRI-32 JIRA SWP-2548 514 515 * q931.c, pri_facility.c: Miscellaneous cleanup before T312 branch 516 merge. 517 518 * q931.c: Fix valgrind reported invalid read/write for display text 519 feature. 520 521 * pri.c, pri_internal.h, q931.c, pri_cc.c: Improve the usefulness 522 of pri_dump_info_str() output. * Add BRI and PTMP strings to node 523 type config when configured that way. * Move Q.921 statistics to 524 after configuration settings. * Add call and cc_record debug 525 statistics to pri_dump_info_str(). 526 527 * pri.c: Add determined remote node type to pri_dump_info_str(). 528 5292011-02-17 21:12 +0000 [r2202-2207] Richard Mudgett <rmudgett@digium.com> 530 531 * q931.c: B channel lost by incoming call in BRI NT PTMP mode. A 532 phone's RELEASE_COMPLETE as a response to an initial broadcast 533 SETUP blocks one B channel permantly when the call is cancelled. 534 Scenario: A call to the ISDN Bus is acknowledged (ALERTING) by 535 one phone/endpoint and rejected by another phone/endpoint with a 536 RELEASE_COMPLETE. The call is then cancelled by the caller. If 537 the whole procedure is repeated once again then any further call 538 attempt is rejected (WARNING[5666]: app_dial.c:1546 539 dial_exec_full: Unable to create channel of type 'DAHDI' (cause 540 34 - Circuit/channel congestion)). It seems that receiving a 541 RELEASE_COMPLETE in that state blocks one B channel permanently 542 when the call is cancelled by the caller. Background: The ISDN 543 phones (Siemens Gigaset 3035 or CX253) we use for testing 544 additionally contain a DECT base station, which operates as a 545 different endpoint on the ISDN Bus (TEI). If the DECT base 546 station is not in use then there are no DECT phones registered to 547 the base station. The DECT base station responds to an incoming 548 call not directed toward it with (RELEASE_COMPLETE, cause: no 549 user responding). * Made initiate_hangup_if_needed() also hangup 550 the subcall if it is in the NULL state. * Simplified 551 q931_set_subcall_winner(). JIRA ABE-2745 JIRA SWP-2954 552 553 * rose.c: DMS-100 not receiving caller name anymore. Looks like 554 DMS-100 is using the same message as Q.SIG to receive the caller 555 name. Add the ability to decode the ROSE calling name message 556 defined for the Q.SIG switch on the DMS-100 switch. (closes issue 557 #18822) Reported by: cmorford Patches: issue18822_v1.4.patch 558 uploaded by rmudgett (license 664) Tested by: cmorford 559 560 * rose.c, pri_facility.c: * Added switchtype to ROSE invoke 561 operation not handled message. * Reordered NI2 ROSE message table 562 so any conflicts with the pirated Q.SIG messages will be in favor 563 of the NI2 specific messages. This is precautionary only. 564 565 * pri_internal.h, prisched.c: Crash if NFAS swaps D channels on a 566 call with an active timer. If a Q.931 call record related timer 567 is started on one NFAS D channel expires after NFAS swaps to 568 another D channel, then libpri could crash. For example: 1) 569 Hangup a call. 1a) Send a DISCONNECT. 1b) Start the T305 570 retransmit timer on the current D channel. 2) The RELEASE comes 571 in on another D channel. 2a) The found call record switches its 572 assignment to the new D channel. 2b) Attempt to stop T305. 573 Unfortunately, the timer was started on another D channel so the 574 attempt does not find the timer to stop. 3) The hangup sequence 575 continues normally and the call record is freed since there is 576 only one call record pool. 4) T305 expires on the original D 577 channel and crashes the system when it uses the stale call record 578 pointer it has saved. Made each D channel timer pool have a 579 unique range of valid timer identifiers. If a given timer 580 identifier is not in the range for the current NFAS D channel, 581 then search the D channel group for the original D channel. JIRA 582 LIBPRI-58 JIRA SWP-2721 583 5842011-02-14 23:33 +0000 [r2200] Richard Mudgett <rmudgett@digium.com> 585 586 * pri_q921.h, q921.c: Fix I-frame retransmission quirks. Revamped 587 the I-frame retransmission queue to better comply with Q.921: 588 Figure B.7/Q.921 (sheet 1 of 10) and Figure B.9/Q.921 (Sheet 5 of 589 5). The changes prevent retransmitting I-frames when the peer is 590 busy (RNR) (Q.921 Section 5.6.5) and eliminate an unnecessary 591 delay sending new I-frames after an I-frame retransmission. 592 Related to JIRA LIBPRI-60 593 5942011-02-08 16:44 +0000 [r2192] Richard Mudgett <rmudgett@digium.com> 595 596 * pri.c: Swap of master/slave in pri_enslave() incorrect. Thank 597 you. All I can say is oops. (closes issue #18769) Reported by: 598 jcollie Patches: libpri-1.4.12-beta3-swap.patch uploaded by 599 jcollie (license 412) 600 6012011-02-04 19:59 +0000 [r2187-2190] Richard Mudgett <rmudgett@digium.com> 602 603 * pri.c, pri_internal.h, q931.c, pri_facility.c, libpri.h: Add 604 display ie text handling options. The display ie handling can be 605 controlled independently in the send and receive directions with 606 the following options: * Block display text data. * Use display 607 text in SETUP/CONNECT messages for name. * Use display text for 608 COLP name updates (FACILITY/NOTIFY as appropriate). * Pass 609 arbitrary display text during a call. Sent in INFORMATION 610 messages. Received from any message that the display text was not 611 used as a name. If the display options are not set then the 612 options default to legacy behavior. 613 614 * q931.c: Add Q931_IE_TIME_DATE to CONNECT message when in network 615 mode. Add the Q931_IE_TIME_DATE with the current date/time of the 616 system to the Q.931 CONNECT message when in network mode. The 617 date/time IE allows attached equipment to synchronize their clock 618 with the network. Most notably, ISDN phones can display the 619 current date/time. See issue #18047 about a concern with 620 non-conforming Siemens terminals. (closes issue #18047) Reported 621 by: wuwu Patches: timedate.patch uploaded by rmudgett (license 622 664) Tested by: rmudgett JIRA SWP-2955 JIRA ABE-2747 623 6242011-02-01 00:37 +0000 [r2183] Richard Mudgett <rmudgett@digium.com> 625 626 * pri.c, pri_internal.h, Makefile, q921.c, q931.c: Enable 627 LIBPRI_COUNTERS code by default. Removed the conditional 628 LIBPRI_COUNTERS to include the code unconditionally. Patches: 629 enable_LIBPRI_COUNTERS_LIBPRI-61.diff uploaded by jbigelow JIRA 630 LIBPRI-61 631 6322010-12-21 19:46 +0000 [r2169-2175] Richard Mudgett <rmudgett@digium.com> 633 634 * pri.c, q931.c: Invalid PTMP redirecting signaling as TE towards 635 NT. * The PTMP redirection signaling (NOTIFY redirection number 636 and notification code, SETUP redirecting number) is also sent in 637 PTMP/TE mode. It should only apply in PTMP/NT mode. The call 638 setup proceeds but the network (Deutsche Telekom) reacts with 639 ugly ISDN STATUS messages. * Don't send the redirecting number ie 640 when PTP is also sending the DivertingLegInformation2 facility. 641 The redirecting number ie is redundant and the network (Deutsche 642 Telekom) complains about it. JIRA LIBPRI-53 JIRA SWP-2543 643 644 * q931.c: Fix Q.931 retried SETUP not sending facility ies. Resend 645 standard facility ies when the SETUP is retried by Q.931. 646 However, one time facility ies are no longer available to add to 647 a retried SETUP message. 648 649 * pri.c, pri_internal.h, q931.c, pri_facility.c, pri_facility.h: 650 Add call transfer exchange of subaddresses support and fix PTMP 651 call transfer signaling. * Add the ability to exchange 652 subaddresses for ETSI PTMP, ETSI PTP, and Q.SIG for call 653 transfer. * Fix ETSI PTMP to send the correct messages depending 654 on the call state for call transfer. NOTE: Some ISDN phones only 655 handle the NOTIFY message that the EN 300-369 spec says should be 656 sent only if the call has not connected yet. JIRA LIBPRI-47 JIRA 657 SWP-2363 Review: https://reviewboard.asterisk.org/r/1051/ 658 659 * pri_internal.h, q931.c: Better HOLD/RETRIEVE collision handling. 660 The upper layer is now initiating HOLD/RETRIEVE signaling. These 661 changes are needed to help preserve the correct channel id after 662 a collision. 663 664 * q931.c: Fix regression when reorganized for struct pri and struct 665 q921_link. 666 6672010-12-14 01:09 +0000 [r2166-2167] Richard Mudgett <rmudgett@digium.com> 668 669 * q931.c: Return error if q931_notify() cannot send NOTIFY. 670 671 * q931.c: Fix bizarre logic to work as originally intended in 672 q931_notify(). In revision 238: Don't allow notification codes 673 outside of the Q.931 spec for switches other than EuroISDN. 674 6752010-11-12 02:31 +0000 [r2113] Richard Mudgett <rmudgett@digium.com> 676 677 * pri_internal.h, pri_q921.h, q921.c: Asterisk is getting a "No 678 D-channels available!" warning message every 4 seconds. For PTP 679 links, libpri generated the PRI_EVENT_DCHAN_DOWN event every time 680 it failed to bring layer 2 up because the physical layer is down. 681 For PTP links, made generate the 682 PRI_EVENT_DCHAN_UP/PRI_EVENT_DCHAN_DOWN only when it enters/exits 683 the Q.921 superstate consisting of states 684 7(Q921_MULTI_FRAME_ESTABLISHED) and 8(Q921_TIMER_RECOVERY). Also 685 changed the PTP link restart delay to be link specific instead of 686 D channel specific because the GR-303 PTP switch types have more 687 than one Q.921 link. (closes issue #17270) Reported by: jmls 688 6892010-11-11 00:30 +0000 [r2109-2111] Richard Mudgett <rmudgett@digium.com> 690 691 * pri_internal.h, q921.c: SABME flood on backup D-channel in NFAS 692 configuration. Made delay restarting the PTP layer 2 link by the 693 T200 time instead of immediately. Q.921 does not specify any 694 particular time to restart the layer 2 link. Q.921 leaves it up 695 to the upper layers to decide when or if another attempt to bring 696 layer 2 up is made. Earlier versions of libpri used the T200 time 697 to restart the link. This is a reimplementaion of -r1878. (closes 698 issue #18255) Reported by: bklang JIRA SWP-2508 699 700 * q921.c: Minor MDL handler changes. * Clear mdl_error in case we 701 could not schedule the handler callback. * Change MDL handlers to 702 not return the handled state since the caller did not care. 703 7042010-11-05 20:05 +0000 [r2098-2105] Richard Mudgett <rmudgett@digium.com> 705 706 * pri.c, pri_internal.h, pri_q921.h, q921.c: Added TEI identity 707 check feature to reclaim dead TEIs. This is the new feature 708 portion of JIRA LIBPRI-51/SWP-2453. 709 710 * q921.c: Q.921 TEI assignment procedure corrections. * We should 711 send the TEI identity denied message with TEI=127 when the TEI 712 pool is exhausted. * We should remove our TEI if we see a TEI 713 identity assign message assigning our TEI to someone else. 714 715 * pri_q921.h, q921.c: Convert TEI identity defines to enum and 716 create 2str() function. 717 718 * pri_q921.h, q921.c: Remove unneeded struct 719 q921_link.mdl_error_state member. 720 721 * q921.c: Remove all TEIs when NT PTMP starts. Remove all TEIs when 722 a NT PTMP link is started and there are no other links to make 723 sure there are no devices that think they have a TEI. A device 724 may think it has a TEI if the upper layer program is restarted or 725 the system reboots. This fixes the bug portion of JIRA 726 LIBPRI-51/SWP-2453. 727 728 * q921.c: Mainly put space after switch and while keywords. 729 7302010-11-02 19:11 +0000 [r2088] Richard Mudgett <rmudgett@digium.com> 731 732 * q921.c: B410P gets incoming call packets on ISDN but Asterisk 733 doesn't see the call. The Cisco 1751 with VIC 2-BRI ports sends 734 out SETUP messages on the broadcast TEI as if the BRI were PTMP 735 even though it is configured for PTP mode. Make PTP mode also 736 accept frames on SAPI=0, TEI=127 (Broadcast). (closes issue 737 #18232) Reported by: lelio Patches: issue18232_v1.4.patch 738 uploaded by rmudgett (license 664) Tested by: lelio 739 7402010-10-21 18:00 +0000 [r2063-2079] Richard Mudgett <rmudgett@digium.com> 741 742 * doc/cc_ptmp_agent.fsm, pri_internal.h, q931.c, 743 doc/cc_ptp_agent.fsm, doc/cc_qsig_agent.fsm, pri_cc.c, 744 doc/cc_ptmp_agent_flattened.fsm, doc/cc_ptp_agent_flattened.fsm, 745 doc/cc_qsig_agent_flattened.fsm: Fixes CC agents not 746 automatically clearing if T309 clears the original call. Incoming 747 calls with CC enabled will not automatically clear the CC offer 748 record when the call is aborted by T309 processing. All CC agent 749 FSM's have this problem (PTMP, PTP, and Q.SIG). To reproduce: 1) 750 Place incoming call to Asterisk/libpri 2) Either before or after 751 the call is answered, bring the ISDN link down. 3) T309 752 processing, T309 timeout, or TEI removal will leave the CC agent 753 FSM in the CC available state. The problem is indicated by the 754 "cc report status" CLI command showing a status of CC offered to 755 caller but it will never timeout. The FSM's can be manually 756 cleared by using the "cc cancel all" or "cc cancel core" CLI 757 commands. JIRA LIBPRI-46 JIRA SWP-2241 758 759 * pri.c, pri_internal.h: Partial support for dynamic interfaces 760 with NFAS. To have some support for dynamic interfaces, the 761 master NFAS D channel control structure will always exist even if 762 it is abandoned/deleted by the upper layer. The master/slave 763 pointers ensure that the correct master will be used. 764 765 * pri.c, pri_internal.h, pri_q921.h, pri_aoc.c, pri_q931.h, q921.c, 766 q931.c, pri_facility.c, pri_cc.c, prisched.c: Extract the layer 2 767 link structure out of struct pri. This completes the layer 2 link 768 and Q.931 call control restructuring. Some code is now simplified 769 since there is only one D channel control structure and the 770 amount of allocated memory is reduced. 771 772 * pri.c, pri_internal.h, pri_q921.h, pri_q931.h, q921.c, q931.c, 773 pri_facility.c: Restructure the Q.931 call record to layer 2 link 774 association. This is in anticipation of extracting a layer 2 link 775 structure out of struct pri. Also completes fixing timer value 776 access for the rest of libpri. The timer access must always be on 777 the D channel control structure (Master). May have fixed some 778 events from timeouts not being passed to the upper layer. The 779 timeout events must always be on the D channel control structure 780 (Master). 781 782 * pri_q921.h, q921.c: Logically separate Q.921 TEI link processing 783 from D channel control. This is in anticipation of extracting a 784 layer 2 link structure out of struct pri. Also fixes Q.921 timer 785 value access. The timer access must always be on the D channel 786 control structure (Master). 787 7882010-10-16 04:34 +0000 [r2015-2042] Richard Mudgett <rmudgett@digium.com> 789 790 * q921.c: Dump Q.931 message using the TEI value the message came 791 in with. 792 793 * pri_internal.h, q931.c: Create two versions of call ptr verify. 794 One gripes and one does not. 795 796 * q931.c: Crash when receiving an unknown/unsupported message type. 797 Fix double free of a call record and the subsequent continued use 798 of the freed call record when receiving an unsupported/unknown 799 message type. (closes issue #17968) Reported by: gelo Patches: 800 issue_17968_v1.4.patch uploaded by rmudgett (license 664) 801 802 * pri.c, pri_internal.h, pri_aoc.c, q931.c, pri_facility.c, 803 pri_cc.c: Segfault in pri_schedule_del() - ctrl value is invalid. 804 Validate the given call pointer in libpri API calls. If the call 805 pointer is not an active call record then a complaint message is 806 issued and the API call aborts. The call pointer is likely stale. 807 This patch is defensive. More information is needed to figure out 808 why Asterisk still has a call pointer during its hangup sequence. 809 (closes issue #17522) (closes issue #18032) Reported by: 810 schmoozecom Patches: issue_18032_v1.4.patch uploaded by rmudgett 811 (license 664) Tested by: rmudgett 812 8132010-10-07 04:00 +0000 [r2009] Tilghman Lesher <tilghman@meg.abyt.es> 814 815 * Makefile: Minor changes to make libpri build on Mac OS X 816 8172010-09-16 21:24 +0000 [r2001] Russell Bryant <russell@digium.com> 818 819 * Makefile: Makefile tweaks to allow building for code coverage 820 analysis. 821 8222010-09-13 21:21 +0000 [r1982-1991] Richard Mudgett <rmudgett@digium.com> 823 824 * pri_q931.h, q921.c, q931.c: PRI links do not retain active calls 825 if the link comes back before T309 expires. The DL-ESTABLISH 826 confirm event was not passed from Q.921 to Q.931 so Q.931 never 827 cancelled the T309 timer. Refactored q931_dl_tei_removal() and 828 q931_dl_indication() into q931_dl_event() to allow the 829 DL-ESTABLISH confirm/indication and DL-RELEASE confirm/indication 830 events to be passed to Q.931. 831 832 * pri.c, pri_internal.h, pri_q931.h, q921.c, q931.c, prisched.c: 833 BRI PTMP: Active channels not cleared when the interface goes 834 down. If the connection to the terminal is lost while there are 835 open channels on the interface, red alarm is reported, but the 836 open channels are never cleared. Additionally, if you manually 837 try to channel request hangup, Asterisk crashes. For PTMP, the 838 T309 processing was not searching the call pool on the master 839 control record. Additionally, for NT PTMP, the timeout events 840 were not passed to the upper layer because the events were not 841 put on the master control record where timer processing expects 842 them. (closes issue #17865) Reported by: wimpy Patches: 843 issue17865_v1.4.patch uploaded by rmudgett (license 664) Tested 844 by: rmudgett, wimpy 845 8462010-09-10 23:15 +0000 [r1976] Richard Mudgett <rmudgett@digium.com> 847 848 * doc/cc_ptmp_agent.fsm, doc/cc_ptmp_agent_flattened.fsm: Fix 849 spelling error in PTMP agent FSM files. 850 8512010-09-08 21:43 +0000 [r1958-1965] Richard Mudgett <rmudgett@digium.com> 852 853 * pri.c: Added more parameter checks to pri_set_timer() and 854 pri_get_timer(). Made pri_dump_info_str() output a line for each 855 Q.921 TEI Tx queue when LIBPRI_COUNTERS is defined. 856 857 * q921.c, q931.c: Made Q.921 delay events to Q.931 if the event 858 could immediately generate response frames. Q.921 was passing a 859 q931_dl_indication(up) event to Q.931 before it was finished 860 processing the frame. The q931_dl_indication(up) event could 861 immediately send STATUS messages in the Q.921 intermediate state 862 that would then get stuck in the tx queue with an invalid N(S). 863 Q.921 was passing i-frames to Q.931 before it was finished 864 processing the frame. The i-frames could cause Q.931 to 865 immediately generate a response message that may cause the peer 866 to see the P/F bit as incorrect. Delayed passing 867 q931_dl_indication(up) events and i-frames to Q.931 until Q.921 868 has completed processing the frame event. (The Q.921 SDL diagrams 869 were designed with this assumption.) (closes issue #17360) 870 Reported by: shawkris Patches: issue17360_v1.4.patch uploaded by 871 rmudgett (license 664) Tested by: shawkris, rmudgett 872 873 * q931.c: Prevent a CONNECT message from sending a CONNECT 874 ACKNOWLEDGE in the wrong state. Filter the processing of the 875 CONNECT message to prevent libpri from sending a CONNECT 876 ACKNOWLEDGE when the call is in an inappropriate state. This can 877 happen when we hang up an outgoing call after the other end has 878 sent a CONNECT but before we have processed the CONNECT. (issue 879 #17360) Reported by: shawkris Patches: 880 issue17360_con_ack_v1.4.patch uploaded by rmudgett (license 664) 881 882 * q931.c: Balance curly braces in post_handle_q931_message(). 883 8842010-09-02 17:33 +0000 [r1955] Richard Mudgett <rmudgett@digium.com> 885 886 * pri.c: Don't crash in __pri_new_tei() if a GR303 subchannel 887 creation fails. 888 8892010-08-30 20:49 +0000 [r1918-1929] Richard Mudgett <rmudgett@digium.com> 890 891 * q921.c: Reduced fake MDL-ERROR (Z) message severity to be visible 892 only when debugging enabled. 893 894 * q921.c, q931.c: Q.921/Q.931 message debug output improvements. 895 The Q.931 message decode debug output now will follow the correct 896 Q.921 header decode if Q.921 message dumping is enabled. Also the 897 Q.931 message decode will happen when the message actually goes 898 out on the line instead of when Q.931 passes the message to 899 Q.921. Q.921 may have to request a TEI, bring the connection up, 900 or retransmit previous frames before it can actually send the new 901 message. 902 903 * q921.c: Q.921 improvements from comparing Q.921 SDL diagrams with 904 implementation. * Handle sending and receiving DM response frames 905 as needed. * Added handling of received FRMR frames. * Completed 906 implementation of Q921_AWAITING_RELEASE state. (State is 907 currently unreachable since we have no API to initiate sending 908 the DISC message.) * Better NT PTMP TEI allocation. * Reduced 909 more ERROR level severity messages so users will stop panicking 910 when they see ERROR. This is especially true for the Q.921 911 MDL-ERROR messages. * Added better Q.921 visibility when normal 912 debug message level is enabled. 913 914 * q921.c: ISDN BRI does not recover from line faults Q.921 was 915 getting stuck in state 2 (Q921_ASSIGN_AWAITING_TEI). For some 916 reason the network was removing the TEI. Libpri then immediately 917 tried to get a new TEI assigned. The network did not reply to the 918 N202(3) attempts to get a new TEI. Libpri then just gave up 919 trying but did not leave the state. Some paths in Q.921 Figure 920 B.3 were not implemented. Q.921 now transitions to the 921 Q921_TEI_UNASSIGNED state when the N202 count is exceeded. Q.921 922 will wait there until an incoming or outgoing call is attempted. 923 * Fixed initializing the n202_counter. Not initializing the 924 n202_counter would cause the Q921_TEI_IDENTITY_REQUEST to 925 unexpectedly not go out and due to how state transitions were 926 done, Q.921 would get stuck in the Q921_ASSIGN_AWAITING_TEI 927 state. * Fixed start T202 timer fail causing Q.921 to get stuck 928 in the Q921_ASSIGN_AWAITING_TEI state if the network did not 929 respond to the request. * Fixed handling of 930 Q921_TEI_IDENTITY_REMOVE to do the MDL-REMOVE primitive 931 (q921_mdl_remove()) instead of transitioning directly to the 932 Q921_TEI_UNASSIGNED state. Necessary state clean-up was not 933 getting done. * Minor tweaks to q921_mdl_remove(). The worst 934 problem was erroneously generating an error message. * Fixed 935 potential for sending I-frames with an invalid TEI. The I-frame 936 could have been queued when Q.921 did not have an assigned TEI. * 937 Fixed testing of the q931_receive() return value when a UI-frame 938 is received. (closes issue #17570) Reported by: jcovert Patches: 939 issue17570_v1.4.11.3_v3.patch uploaded by rmudgett (license 664) 940 issue17570_v1.4_v3.patch uploaded by rmudgett (license 664) 941 Tested by: jcovert, rmudgett 942 9432010-08-27 23:37 +0000 [r1894-1912] Richard Mudgett <rmudgett@digium.com> 944 945 * pri.c, q931.c: Convert most references of Q931_MAX_TEI to use 946 ARRAY_LEN(). * Minor comment correction in q931_destroycall(). * 947 Redundant logic removal q931_destroycall(). "W && X && (Y || W && 948 Z)" is the same as "W && X && (Y || Z)" 949 950 * rose.c, rosetest.c: Add support to receive ECMA-164 2nd edition 951 OID name ROSE messages. NOTE: To add support to send the old 952 style name messages will require implementing them as new ROSE 953 operation message types. NOTE: To actually use them would likely 954 require implementing another version of the Q.SIG switch type. 955 Like (NI1 & NI2) and (4ess & 5ess) for example. Patches: 956 libpri37.patch uploaded by rmudgett (license 664) JIRA SWP-2100 957 JIRA LIBPRI-37 958 959 * pri.c: Make pri_dump_event() only print the event name. 960 9612010-08-25 17:17 +0000 [r1883-1884] Richard Mudgett <rmudgett@digium.com> 962 963 * rosetest.c: Added gripe check to rosetest for invalid operation 964 and error codes. 965 966 * q921.c: Don't silently fail to post our fake MDL-ERROR(Z). 967 9682010-08-23 22:13 +0000 [r1878] Matthew Fredrickson <creslin@digium.com> 969 970 * q921.c: Add silly fake MDL error Z for kicking L2 to reactivate 971 if a DISC or DM is received in proper states on PTP links. 972 9732010-08-06 18:35 +0000 [r1852-1853] Richard Mudgett <rmudgett@digium.com> 974 975 * q931.c: No audio on inbound J1 calls. Incoming calls specifying 976 the channel using a slot map could not negotiate a B channel 977 correctly. Libpri historically has handled this as an any channel 978 request. However, when chan_dahdi picked a new channel, libpri 979 sent out the recorded slot map and not the new channel selected. 980 Thus the two endpoints would be attached to different B channels 981 and the parties would not hear anything or would hear the wrong 982 parties. This patch restores the historical preference of sending 983 out the channel id using the channel number method if a channel 984 number is available. JIRA LIBPRI-35 Patches: 985 libpri-35_v1.4.11.3.patch uploaded by rmudgett (license 664) 986 libpri-35_v1.4.patch uploaded by rmudgett (license 664) Tested 987 by: rmudgett 988 989 * q921.c: Learn (AGAIN!) why state 7 and state 8 transitions were 990 suppressed. 991 9922010-08-03 23:04 +0000 [r1842-1848] Richard Mudgett <rmudgett@digium.com> 993 994 * q921.c, q931.c: Improved Q.921/Q.931 debug output. * Debug output 995 for a sent Q.931 message in TE PTMP now uses the best available 996 TEI number instead of always using 127. It could still be wrong 997 if layer 2 does not have a TEI assigned. * Q.921 debug output is 998 grouped better so a decoded message is not split by a blank line. 999 * The Q.921 state is also decoded to a name. 1000 1001 * q921.c: Q921_TIMER_RECOVERY SDL issue in q921_rnr_rx() Added 1002 missing code specified by Q.921 (Figure B.8 Page 85) when receive 1003 RNR in "Timer Recovery" state. (closes issue #16791) Reported by: 1004 alecdavis Patches: rnr_timer_recovery.diff.txt uploaded by 1005 alecdavis (license 585) 1006 1007 * q921.c: Renamed local struct pri *pri variables to struct pri 1008 *ctrl in q921.c. The context tagging for my editor is much 1009 happier now that the struct and the variable do not have the same 1010 name. (At least for this file.) 1011 10122010-07-22 17:59 +0000 [r1836] Richard Mudgett <rmudgett@digium.com> 1013 1014 * pri.c, libpri.h: Add pri_new_bri_cb() API - Create BRI D-channel 1015 with user defined I/O callbacks and data There currently exists a 1016 pri_new_cb() API call that allows you to create a PRI with 1017 user-defined I/O read and write callbacks, and option userdata. 1018 Add the same capability for BRI interfaces by adding a 1019 pri_new_bri_cb() API function. (closes issue #16477) Reported by: 1020 nic_bellamy Patches: pri_new_bri_cb_api.patch uploaded by nic 1021 bellamy (license 299) (with minor cosmetic changes) 1022 10232010-07-16 22:55 +0000 [r1828-1833] Richard Mudgett <rmudgett@digium.com> 1024 1025 * pritest.c, Makefile: pritest hadn't been ported to DAHDI pritest 1026 hadn't been ported to DAHDI, made the trivial changes to make it 1027 work. (I haven't found the equivalent to zap_playf, so changed 1028 the behaviour to an echo box) (closes issue #17274) Reported by: 1029 horape Patches: pritest.diff uploaded by horape (license 1035) 1030 (with minor cosmetic changes) 1031 1032 * rosetest.c: Only need to output one version of the version 1033 message. 1034 1035 * rosetest.c: Added a libpri version output line as a sanity check 1036 for rosetest. 1037 1038 * rosetest.c, rose_qsig_name.c: Calling name not successfully 1039 processed on inbound QSIG PRI calls from Mitel PBX The alternate 1040 form of the Q.SIG Name sequence that allows manufacturer 1041 extensions for CallingName, CalledName, ConnectedName, and 1042 BusyName was not consuming the next ASN.1 tag. The code that 1043 processed the ASN.1 Name structure was then using a stale tag 1044 value. The stale tag value was then rejected with the "Did not 1045 expect" message. I have added a test case using the supplied PRI 1046 debug output to the rosetest utility to verify that this 1047 alternate encoding is tested in the future. (closes issue #17619) 1048 Reported by: jims8650 Patches: issue17619_v1.4.11.3.patch 1049 uploaded by rmudgett (license 664) Tested by: rmudgett 1050 10512010-06-29 16:15 +0000 [r1823] Richard Mudgett <rmudgett@digium.com> 1052 1053 * pri_internal.h, q931.c: [regression] Calling Number assignment 1054 logic change in libpri 1.4.11. Restored the old behaviour if 1055 there is more than one calling number in the incoming SETUP 1056 message. A network provided number is reported as ANI. (closes 1057 issue #17495) Reported by: ibercom Patches: 1058 issue_17495_v1.4.11.2.patch uploaded by rmudgett (license 664) 1059 issue_17495_v1.4.patch uploaded by rmudgett (license 664) Tested 1060 by: ibercom 1061 10622010-06-25 20:22 +0000 [r1818] Richard Mudgett <rmudgett@digium.com> 1063 1064 * q931.c: PRI: XXX Missing handling for mandatory IE 12 The switch 1065 is sending the Connected Address ie (12) and there was no handler 1066 for that ie. That is why the reporter was getting the "Missing 1067 mandatory ie" message. The simple fix is to just add the missing 1068 receive handler for that ie. Since connected line (COLP) 1069 functionality has been added and this is just an alternate for 1070 the Connected Number ie (0x4C), the handler was already written. 1071 I also changed the ie name to what Q.931 calls it: Connected 1072 Address. Also some minor code clean up in q931_handle_ie() and 1073 ie2str(). JIRA SWP-1678 (closes issue #16915) Reported by: kobaz 1074 10752010-06-04 22:45 +0000 [r1810] Richard Mudgett <rmudgett@digium.com> 1076 1077 * pri_facility.c: Q.SIG calling name in FACILITY message not 1078 reported to the upper layer. Q.SIG can send the CallingName, 1079 CalledName, and ConnectedName in stand alone FACILITY messages. 1080 If the CallingName was not sent in the SETUP message, the caller 1081 id name was not reported to the upper layer. (closes issue 1082 #17458) Reported by: jsmith Patches: 1083 issue17458_post_qsig_name.patch uploaded by rmudgett (license 1084 664) issue17458_post_qsig_name_v1.4.11.1.patch uploaded by 1085 rmudgett (license 664) Tested by: rmudgett, jsmith 1086 10872010-06-01 22:59 +0000 [r1785-1794] Richard Mudgett <rmudgett@digium.com> 1088 1089 * pri.c: Inband disconnect setting does nothing on BRI spans. The 1090 acceptinbanddisconnect flag is not inherited when creating a new 1091 TEI and thus rendering the setting (and its respective equivalent 1092 in Asterisk) a no-op on BRI setups. (closes issue #15265) 1093 Reported by: paravoid Patches: inband-bri.diff uploaded by 1094 paravoid (license 200) Tested by: paravoid 1095 1096 * rose.c, rosetest.c, q931.c: Multi component FACILITY messages 1097 only process the first component. The code was only processing 1098 the first ROSE component in the facility message. I also updated 1099 rosetest.c to have a multiple component ROSE message test. 1100 (closes issue #17428) Reported by: patrol-cz Patches: 1101 issue17428.patch uploaded by rmudgett (license 664) Tested by: 1102 rmudgett, patrol-cz 1103 11042010-05-28 22:34 +0000 [r1776] David Vossel <dvossel@digium.com> 1105 1106 * pri_internal.h, pri_aoc.c, q931.c, pri_facility.c, 1107 pri_facility.h, libpri.h: support for sending ETSI advice of 1108 charge Review: https://reviewboard.asterisk.org/r/619/ 1109 11102010-05-28 21:50 +0000 [r1723-1767] Richard Mudgett <rmudgett@digium.com> 1111 1112 * rose_etsi_mwi.c (added), rose.c, rosetest.c, rose_internal.h, 1113 Makefile, rose.h, pri_facility.c, libpri.h, rose_qsig_mwi.c: ETSI 1114 Message Waiting Indication (MWI) support. Add the ability to 1115 report waiting messages to ISDN endpoints (phones). Relevant 1116 specification: EN 300 650 and EN 300 745 Review: 1117 https://reviewboard.asterisk.org/r/600/ 1118 1119 * rose.c, rosetest.c, pri_internal.h, rose.h, pri_facility.c, 1120 libpri.h: ETSI Malicious Call ID support. Add the ability to 1121 report malicious callers. Relevant specification: EN 300 180 1122 Review: https://reviewboard.asterisk.org/r/575/ 1123 1124 * pri.c, pri_internal.h, pri_q931.h, q931.c, libpri.h: ETSI Call 1125 Waiting support. Add the ability to announce a call to an 1126 endpoint when there are no B channels available. A call waiting 1127 call is a SETUP message with no B channel selected. Relevant 1128 specification: EN 300 056, EN 300 057, EN 300 058 Review: 1129 https://reviewboard.asterisk.org/r/569/ 1130 1131 * pri_internal.h, pri_aoc.c (added), Makefile, pri_facility.c, 1132 rose_etsi_aoc.c, pri_facility.h, libpri.h: ETSI Advice Of Charge 1133 (AOC) event reporting. This feature passes ETSI AOC-S, AOC-D, and 1134 AOC-E message information to the upper layer (i.e. Asterisk) for 1135 processing. Relevant specification: EN 300 182 Consideration was 1136 made for the possible future addition of Q.SIG AOC support 1137 (ECMA-212) with the events passed to the upper layer. Review: 1138 https://reviewboard.asterisk.org/r/538/ 1139 1140 * pri.c, pri_internal.h, q931.c, pri_facility.c, pri_facility.h, 1141 libpri.h: Added ETSI Explicit Call Transfer (ECT) support. Added 1142 ability to send and receive ETSI ECT messages to eliminate 1143 tromboned calls. Added ETSI support to an existing API call to 1144 send ECT messages when the upper level indicates to transfer 1145 specified calls. The libpri API was extended to indicate to the 1146 upper layer that the far end requests the transfer of the 1147 indicated calls. Review: https://reviewboard.asterisk.org/r/521/ 1148 11492010-05-26 16:01 +0000 [r1714] Richard Mudgett <rmudgett@digium.com> 1150 1151 * pri.c, doc/cc_ptmp_monitor_flattened.fsm, pri_internal.h, 1152 Makefile, q931.c, doc/cc_ptp_agent.fsm, doc/cc_qsig_agent.fsm, 1153 pri_cc.c (added), rose_qsig_cc.c (added), prisched.c, 1154 doc/cc_ptmp_agent_flattened.fsm, rose_etsi_cc.c (added), 1155 doc/cc_ptmp_monitor.fsm, rosetest.c, rose.c, rose_internal.h, 1156 doc/cc_ptmp_agent.fsm, pri_q931.h, 1157 doc/cc_qsig_monitor_flattened.fsm, 1158 doc/cc_ptp_monitor_flattened.fsm, rose.h, pri_facility.c, 1159 pri_facility.h, doc/cc_qsig_agent_flattened.fsm, 1160 doc/cc_ptp_agent_flattened.fsm, doc (added), libpri.h, 1161 doc/cc_qsig_monitor.fsm, doc/cc_ptp_monitor.fsm: Add Call 1162 Completion Suppplementary Service Call Completion Supplementary 1163 Service (CCSS) added for the following switch types: ETSI PTMP, 1164 ETSI PTP, Q.SIG. Specifications: ETS 300 359 CCBS for PTMP and 1165 PTP ETS 301 065 CCNR for PTMP and PTP ECMA-186 Call Completion 1166 for Q.SIG Several support services were added to support CC: 1167 Dummy Call Reference. Q.931 REGISTER message. Dynamic expansion 1168 of the number of available timers (up to 8192). Enhanced facility 1169 message handling. Current implementation limitations preclude the 1170 following: CC service retention is not supported. Q.SIG path 1171 reservation is not supported. (closes issue #14292) Reported by: 1172 tomaso Tested by: rmudgett JIRA SWP-1493 Review: 1173 https://reviewboard.asterisk.org/r/522/ 1174 11752010-05-20 Russell Bryant <russell@digium.com> 1176 1177 * libpri 1.4.11 released. 1178 11792010-05-19 21:50 +0000 [r1703] Richard Mudgett <rmudgett@digium.com> 1180 1181 * q931.c: T309 should not do anything with the global call 1182 reference call record. 1183 11842010-05-19 21:30 +0000 [r1702] Matthew Fredrickson <creslin@digium.com> 1185 1186 * q921.c: It's amazing what a tiny bug in the Q.921 SDL diagram can 1187 do to cause trouble.... Fix issue where V_R was not reset and N_R 1188 was consequentially transmitted incorrectly. Particularly in 1189 layer 2 initiated re-establishments. 1190 11912010-05-11 22:14 +0000 [r1688] Richard Mudgett <rmudgett@digium.com> 1192 1193 * pri.c, pri_internal.h, q931.c, libpri.h: Dialing an invalid 1194 extension causes incomplete hangup sequence. Revision -r1489 1195 corrected a deviation from Q.931 Section 5.3.2. However, this 1196 resulted in an unexpected behaviour change to the upper layer 1197 (Asterisk). This change restores the legacy hangup behaviour if 1198 the new API call is not used. Use pri_hangup_fix_enable() to 1199 follow Q.931 Section 5.3.2 call hangup better. (closes issue 1200 #17104) Reported by: shawkris Tested by: rmudgett 1201 12022010-04-26 19:54 +0000 [r1664-1675] Richard Mudgett <rmudgett@digium.com> 1203 1204 * q931.c: Simplified some protocol discriminator handling code. 1205 1206 * q931.c: Garbage on the end of Q.931 messages causing calls to 1207 fail to connect. The DAHDI driver had a bug where an extra byte 1208 appeared on the end of Q.931 messages. This garbage byte caused 1209 the message to be discarded with the diagnostic "XXX Message 1210 longer than it should be?? XXX". The Q.931 message will no longer 1211 be discarded if there were earlier ie's in the message. This 1212 patch also addresses the potential problem of reading beyond the 1213 buffer when trying to parse the garbage data. Thanks to roeften 1214 for the base patch. (closes issue #14378) Reported by: timking 1215 1216 * q921.c: Avoid using a cast. 1217 1218 * q931.c: Cleanup some pri debug output line presentation. 1219 12202010-04-19 22:40 +0000 [r1625-1630] Richard Mudgett <rmudgett@digium.com> 1221 1222 * pri_internal.h, pri_q931.h, q931.c, pridump.c: PTMP NT mode call 1223 reference value ambiguity. Since the TE side can pick CR values 1224 independently, the TE CR needs to be qualified by TEI to 1225 distinguish CR values from other devices. Without doing this, 1226 multiple phones on the BRI line will have intermittent call 1227 failures. JIRA LIBPRI-30 Also eliminated some wierdness in 1228 q931_status() and several places where it is called. 1229 1230 * q921.c: Fix potential crash when pridump.c calls q921_dump() with 1231 NULL pri ptr. 1232 12332010-04-15 18:43 +0000 [r1596] Richard Mudgett <rmudgett@digium.com> 1234 1235 * pri.c, pri_internal.h: Make some internal routines available to 1236 other libpri components. 1237 12382010-04-09 21:43 +0000 [r1577] Richard Mudgett <rmudgett@digium.com> 1239 1240 * q931.c: Only one PROCEEDING message per call please. 1241 12422010-03-18 15:50 +0000 [r1534-1547] Richard Mudgett <rmudgett@digium.com> 1243 1244 * q931.c: Move a comment closer to where it has relevance. 1245 1246 * pri.c, pri_internal.h, q921.c, q931.c, pri_facility.c: 1247 Miscellaneous simple reorganization. 1) Make PRI_MASTER() no 1248 longer check for a NULL parameter. It is the caller's 1249 responsibility. Not many callers could have passed a NULL without 1250 crashing before or after anyway. 2) Replace calls to 1251 q931_is_ptmp() with PTMP_MODE(). They were equivalent. 3) Made 1252 the following boolean config options bit fields: sendfacility, 1253 overlapdial, chan_mapping_logical, and service_message_support. 1254 12552010-03-02 23:47 +0000 [r1511] Richard Mudgett <rmudgett@digium.com> 1256 1257 * pri.c, pri_internal.h, q921.c: Restore ability to change the 1258 Q.921 K value. The Q.921 rewrite only used value of PRI_TIMER_K 1259 right after it was set to the default. The Q.921 window size was 1260 thus no longer alterable by the user. (closes issue #16909) 1261 Reported by: alecdavis Patches: pritimer.libpri.diff.txt uploaded 1262 by alecdavis (license 585) Tested by: alecdavis 1263 12642010-02-11 21:47 +0000 [r1488-1489] Richard Mudgett <rmudgett@digium.com> 1265 1266 * q931.c: Must send DISCONNECT if we have sent a response to a 1267 SETUP message. Q.931 Section 5.3.2 a) says we send a 1268 RELEASE_COMPLETE to reject a call SETUP if we have not already 1269 sent a message in response to the SETUP message. 1270 1271 * pri.c, libpri.h: Minor comment changes. 1272 12732010-02-11 17:35 +0000 [r1482] Wendell Thompson <wthompson@digium.com> 1274 1275 * Makefile: Added CPUARCH option for selecting a 32-bit build from 1276 the command line. 1277 12782010-02-08 23:29 +0000 [r1470-1476] Matthew Fredrickson <creslin@digium.com> 1279 1280 * q921.c: Revert useless check of pri->t200_timer value, since 1281 scheduler routines check the value anyways. 1282 1283 * q921.c: Make sure we set the l3initiated flag when PTP links are 1284 attempted to be re-established 1285 12862010-02-05 23:34 +0000 [r1464] Richard Mudgett <rmudgett@digium.com> 1287 1288 * pri.c: pri_restart() is no longer needed since the Q.921 rewrite. 1289 Don't output error message for a deprecated function. 1290 12912010-01-29 21:55 +0000 [r1457] Matthew Fredrickson <creslin@digium.com> 1292 1293 * q921.c: Sense of statement was inverted from what it should have 1294 been. Might have caused false T200 operation on reception of 1295 I-frames. 1296 12972010-01-29 19:32 +0000 [r1451] Richard Mudgett <rmudgett@digium.com> 1298 1299 * q921.c: Only set eres if there actually is an event to pass up. 1300 (issue 16713) 1301 13022010-01-29 17:27 +0000 [r1445] Matthew Fredrickson <creslin@digium.com> 1303 1304 * q921.c: Fix bug in which an event was lost if an I-frame was 1305 received during a timer recovery state (related to #16713) 1306 13072010-01-26 21:04 +0000 [r1439] Richard Mudgett <rmudgett@digium.com> 1308 1309 * q921.c: Don't be so noisy when D channel is down. 1310 13112010-01-19 21:53 +0000 [r1426] Richard Mudgett <rmudgett@digium.com> 1312 1313 * q921.c, q931.c: Fix TE PTMP side sending FACILITY messages on the 1314 dummy call reference. Only the NT PTMP side can send Q.931 1315 broadcast messages. Also removed an inaccurate comment in Q.921 1316 and made q921_mdl_handle_error_callback() call the correct struct 1317 pri free function. 1318 13192010-01-15 18:28 +0000 [r1414] Richard Mudgett <rmudgett@digium.com> 1320 1321 * q921.c, q931.c: Make some debugging messages conditional and some 1322 minor reformating changes. 1323 13242010-01-13 19:37 +0000 [r1406] Matthew Fredrickson <creslin@digium.com> 1325 1326 * pri.c, pri_internal.h, pri_q921.h, Makefile, pri_q931.h, q921.c, 1327 q931.c: Merge of Q.921 rewrite branch for wider testing. 1328 13292009-12-09 20:59 +0000 [r1374] Richard Mudgett <rmudgett@digium.com> 1330 1331 * q931.c: Extracted q931_fill_ring_event() from 1332 post_handle_q931_message(). Done so it is easier to see what was 1333 done in ccbs branch. 1334 13352009-11-21 02:40 +0000 [r1345-1351] Richard Mudgett <rmudgett@digium.com> 1336 1337 * pri.c, pri_internal.h: Fix debug output so built up output lines 1338 are readable again. A recent change to Asterisk put the span 1339 number at the begining of each line. This is a good thing if you 1340 need to debug multiple spans or forget which span you are 1341 debugging. Unfortunately, any pri_message() output that is not a 1342 complete line is messed up. The pri_message() function now will 1343 accumulate line output until a '\n' is seen on the end. 1344 1345 * pri_internal.h, q931.c, pri_facility.c: Delay processing of 1346 facility ie's after all other ie's are processed. * Some ROSE 1347 message processing depends on the presence of other ies. The 1348 DivertingLegInformation1, and 3 messages will be used as the 1349 default connected line number if the connected number ie is not 1350 present. The redirecting number ie is used as a default to the 1351 redirecting number in the DivertingLegInformation2 message if the 1352 ROSE message does not contain it and the redirecting number ie is 1353 present. * Some ROSE message processing depends upon other ie 1354 values. The StatusRequest, CCBS-T-Call, and CcRingout messages 1355 collectively need the BC, HLC, LLC, called number, called 1356 subaddress, calling number, and calling subaddress ie information 1357 to be available. 1358 13592009-11-18 00:36 +0000 [r1331] Richard Mudgett <rmudgett@digium.com> 1360 1361 * q931.c: Merged revision 1328 from 1362 https://origsvn.digium.com/svn/libpri/team/mattf/libpri-1.4-q921-rewrite 1363 .......... r1328 | mattf | 2009-11-17 15:16:11 -0600 (Tue, 17 Nov 1364 2009) | 1 line outboundbroadcast isn't set at this time, since it 1365 is set after the message is transmited, so we must use other 1366 criteria to determine the need for broadcast on a setup 1367 .......... 1368 13692009-11-14 00:20 +0000 [r1310-1322] Richard Mudgett <rmudgett@digium.com> 1370 1371 * pri.c, pri_internal.h, q931.c, pri_facility.c, pri_facility.h, 1372 libpri.h: Reimplement callback mechanism to handle APDU response 1373 messages that we care about. 1) No sent messages will remain in 1374 the APDU queue unless they have an active timer to remove them. 1375 The dummy call reference call and global call reference call 1376 structures will not act like a memory leak to sent messages. 2) 1377 The new T-RESPONSE timer will be the generic response guard if 1378 the standards do not otherwise specify a timer for a message 1379 response. 3) The callback will be called. If it is called because 1380 of a response message, then the callback has an opportunity to 1381 indicate if more responses are expected. 1382 1383 * libpri.h: We now have 32 timers. No need to reserve minimum space 1384 anymore. 1385 1386 * pri_internal.h, pri_facility.c: There must be only one source for 1387 the invoke id values per D channel group. If there are 1388 potentially multiple sources for the invoke id sequence then we 1389 could get confused if there are multiple outstanding messages 1390 with the same invoke id that get responses. 1391 13922009-11-11 00:22 +0000 [r1291] Matthew Fredrickson <creslin@digium.com> 1393 1394 * pri_internal.h, q921.c: Make sure we also revive links for PRIs, 1395 not just PTMP TE BRIs when we get a disconnect message 1396 13972009-11-10 21:51 +0000 [r1283] Richard Mudgett <rmudgett@digium.com> 1398 1399 * pri_internal.h, q931.c, pri_facility.c, pri_facility.h: The 1400 facility ie queue needs to remove facilities that have been sent. 1401 The facility ie queue needs to remove facilities that have been 1402 sent. Otherwise, the queue just grows until the call is 1403 terminated. AOC messages can clog the queue during a long call 1404 and the dummy call reference may never be deleted. Also removed 1405 unneeded elements of struct apdu_event. The callback function was 1406 not a good idea since many facility messages do not have 1407 responses and the callback would prevents removal of events from 1408 the list. 1409 14102009-11-10 20:25 +0000 [r1276] Matthew Fredrickson <creslin@digium.com> 1411 1412 * q921.c: Re-add back in support for TE initiated layer 2 1413 activation 1414 14152009-11-10 19:27 +0000 [r1268-1275] Richard Mudgett <rmudgett@digium.com> 1416 1417 * pri.c, pri_internal.h, q931.c, libpri.h: Add dummy call reference 1418 support. Fixes problem where PTMP NT mode responds erroneously to 1419 a FACILITY message from a phone on the dummy call reference. 1420 LibPRI behaved as if the dummy call reference were an invalid 1421 call reference and proceeded to respond on the global call 1422 reference. 1423 1424 * pri_internal.h: Remove unused callingsubaddr[]. 1425 14262009-11-03 17:19 +0000 [r1255-1261] Richard Mudgett <rmudgett@digium.com> 1427 1428 * pri_q931.h, q931.c: Unknown IE 50 (cs5, Unknown Information 1429 Element) Add code to recognize the code set 5 ie 50 (calling 1430 party category) to suppress the unknown IE message. (closes issue 1431 #13828) Reported by: fdecher Patches: 1432 libpri_ie50_cs5-trunk.diff3.txt uploaded by alecdavis (license 1433 585) Tested by: alecdavis 1434 1435 * q931.c: NT PTMP did not report busy when calling a busy phone. 1436 The caller would not get a busy indication when calling a busy 1437 phone. Timer T303 is not supposed to be stopped when 1438 RELEASE_COMPLETE received. When T303 expires we will now report 1439 the last clearing cause code to the caller if we received one. 1440 14412009-10-23 23:47 +0000 [r1242-1249] Richard Mudgett <rmudgett@digium.com> 1442 1443 * pri_internal.h, pri_facility.c: Add subaddress handling to 1444 existing messages and functions. Connected line updates when 1445 transfering calls does not completely support subaddresses yet. 1446 1447 * pri.c, pri_internal.h, pri_q921.h, pri_q931.h, q921.c, q931.c, 1448 pri_facility.c, pri_facility.h, libpri.h: Add BRI PTMP NT mode, 1449 HOLD/RETRIEVE, Call rerouting/deflection, and keypad facility 1450 support. * Added support for BRI PTMP NT mode. (Overlap dialing 1451 NT -> TE not supported.) * Added handling of received 1452 HOLD/RETRIEVE messages and the optional ability to transfer a 1453 held call on disconnect similar to an analog phone. * Added 1454 CallRerouting/CallDeflection support for Q.SIG, ETSI PTP, ETSI 1455 PTMP. Will reroute/deflect an outgoing call when receive the 1456 message. Can use the DAHDISendCallreroutingFacility to send the 1457 message for the supported switches. * Added ability to 1458 send/receive keypad digits in the SETUP message. Send keypad 1459 digits in SETUP message: 1460 Dial(DAHDI/g1[/K<keypad_digits>][/extension]) Access any received 1461 keypad digits in SETUP message by: ${CHANNEL(keypad_digits)} 1462 (closes issue #15048) Tested by: rmudgett, mattf 1463 14642009-10-22 16:16 +0000 [r1230] Richard Mudgett <rmudgett@digium.com> 1465 1466 * pri.c, pri_internal.h, pri_q931.h, q931.c, libpri.h: Add support 1467 for calling and called subaddress. Partial support for COLP 1468 subaddress. The Telecom Specs in NZ suggests that SUB ADDRESS is 1469 always on, so doing "desk to desk" between offices each with an 1470 asterisk box over the ISDN should then be possible, without a 1471 whole load of DDI numbers required. (closes issue #15604) 1472 Reported by: alecdavis Patches: libpri_subaddr_trunk.diff11.txt 1473 uploaded by alecdavis (license 585) Some minor modificatons were 1474 made. Tested by: alecdavis, rmudgett Review: 1475 https://reviewboard.asterisk.org/r/406/ 1476 14772009-10-19 22:49 +0000 [r1219-1220] Richard Mudgett <rmudgett@digium.com> 1478 1479 * q931.c: Fix call state ie transmission. Sending a STATUS message 1480 failed to include the call state ie for some reason. We will now 1481 always send a call state ie when a message ie list includes one. 1482 1483 * q931.c: Fix comparision of invalid party name and number structs 1484 in comparison functions. 1485 14862009-10-15 22:34 +0000 [r1212] Richard Mudgett <rmudgett@digium.com> 1487 1488 * pri_facility.c: Take diverted-to-number from DivLegInfo1 and use 1489 it as connected number. If no connected number is signaled in the 1490 CONNECT message we will use the last diverted to number. (issue 1491 #14292) Reported by: tomaso Patches: 1492 divleginfo1_to_connectednum.patch uploaded by tomaso (license 1493 564) (Used as a guide since it no longer will apply.) (This patch 1494 is unrelated to the issue.) 1495 14962009-10-14 19:03 +0000 [r1191-1205] Richard Mudgett <rmudgett@digium.com> 1497 1498 * q931.c: In q931_getcall(): Simplify test and add related switch 1499 types. 1500 1501 * q931.c: Reduce future conflicts when adding ie's to the SETUP 1502 message. 1503 15042009-10-12 17:17 +0000 [r1177] Richard Mudgett <rmudgett@digium.com> 1505 1506 * pri.c, pri_internal.h, pri_q931.h, q931.c, pri_facility.c: 1507 Miscellaneous changes: * Removed unnecessary 1508 Q931_IE_CONNECTED_NUM ie from setup_ack_ies[]. * Added internal 1509 state Q931_CALL_STATE_NOT_SET to Q.931 state enum. * Made 1510 q931_is_ptmp() take a const pointer. * pri_facility.c: Some 1511 preparations for subaddressing. * pri.c: Eliminate use of a magic 1512 number. 1513 15142009-10-09 23:20 +0000 [r1169] Richard Mudgett <rmudgett@digium.com> 1515 1516 * q931.c: Conditional out noisy and redundant ASN.1 parse dump of 1517 facility ie contents. 1) Outgoing messages have the facility ie 1518 ASN.1 decoded and dumped when the ie is added to the message. The 1519 whole message is then dumped. 2) Incoming messages have the 1520 facility ie ASN.1 decoded and dumped when the ie is processed. 1521 The whole message has already been dumped. 1522 15232009-10-07 18:34 +0000 [r1151-1152] Richard Mudgett <rmudgett@digium.com> 1524 1525 * pri_facility.c: Sent Q.SIG call rerouting message fixes. a) 1526 Account for pSS1InfoElement where the bearer capability for the 1527 new rerouted call is described. The call could be a fax or data 1528 call, let's use the appropriate signaling to avoid call rejects 1529 on the other end. b) Handle calling number appropriately, number 1530 can be prohibited or non-existent. c) Add calling name if 1531 available. d) Use the diversion counter from DivLegInfo2 (if was 1532 present in the incoming Setup) and increment. (issue #14292) 1533 Reported by: tomaso Patches: 1534 libpri-1.4-2009-01-29-rerouting-0.1.9.patch uploaded by tomaso 1535 (license 564) (Used as a guide since it no longer will apply.) 1536 (This patch is unrelated to the issue.) 1537 1538 * pri.c, pri_q921.h, q921.c: Merged revisions 1143, 1144 from 1539 https://origsvn.digium.com/svn/libpri/tags/1.4.10.2 .......... 1540 r1144 | mattf | 2009-09-29 10:32:23 -0500 (Tue, 29 Sep 2009) | 1 1541 line This fix is more like the fix that was used to resolve the 1542 issue for the PRI case .......... r1143 | mattf | 2009-09-28 1543 14:07:01 -0500 (Mon, 28 Sep 2009) | 1 line Changes for 1.4.10.2 1544 .......... 1545 15462009-09-22 17:12 +0000 [r1120] Jeff Peeler <jpeeler@digium.com> 1547 1548 * q931.c: Fix call reference to be associated with the D channel 1549 message was received The problem is that once a call reference 1550 was associated with a particular D channel, it always was. This 1551 created an issue with NFAS when the secondary D channel became 1552 active as the messages were still being sent on the non-active D 1553 channel. (closes issue #14959) Reported by: remiq Patches: 1554 bug14959.patch uploaded by jpeeler (license 325) Tested by: remiq 1555 15562009-09-22 02:23 +0000 [r1107] Richard Mudgett <rmudgett@digium.com> 1557 1558 * pri.c: Update pri_event2str() to current defined events. 1559 15602009-09-18 00:31 +0000 [r1097] Richard Mudgett <rmudgett@digium.com> 1561 1562 * q931.c: Another place where timeout events with subcmds should 1563 clear any old subcmds. 1564 15652009-09-15 22:24 +0000 [r1084] Richard Mudgett <rmudgett@digium.com> 1566 1567 * q931.c: Timeout events with subcmds should clear any old subcmds. 1568 15692009-09-14 22:32 +0000 [r1077] Matthew Fredrickson <creslin@digium.com> 1570 1571 * q921.c: Output multiline output with multiple calls to 1572 pri_message, so that logs look normal in Asterisk 1573 15742009-09-13 22:54 +0000 [r1072] Dwayne M. Hubbard <dwayne.hubbard@gmail.com> 1575 1576 * pri_q931.h, q931.c: Add SERVICE message support for the 1577 'national' switchtype This set of changes integrates SERVICE 1578 message support for the 'national' switchtype. The 'national' 1579 switchtype uses the 0x43 protocol discriminator. The 'national' 1580 SERVICE/SERVICE ACKNOWLEDGE and AT&T SERVICE/SERVICE ACKNOWLEDGE 1581 message values are opposite of each other. This is handled by 1582 first determining which protocol discriminator is in use, then 1583 responding with the appropriate SERVICE ACKNOWLEDGE value. AT&T 1584 SERVICE messages use the 0x3 protocol discriminator. (closes 1585 issue #15803) Reported by: dhubbard Review: 1586 https://reviewboard.asterisk.org/r/347/ 1587 15882009-09-02 20:19 +0000 [r1059-1061] Richard Mudgett <rmudgett@digium.com> 1589 1590 * pri_internal.h, pri_q931.h, q931.c: Converted Q931_CALL_STATE_xxx 1591 defines to an enum. 1592 1593 * q921.c, q931.c: Optimized calls to pri_schedule_del(). There is 1594 no need to test if a scheduled event is running before calling 1595 pri_schedule_del(). 1596 1597 * prisched.c: Cleaned up scheduled events handling code. * Fixed 1598 pri_schedule_event() to return 0 on error instead of -1. Zero is 1599 a safer value to return. Users would not think that a timer was 1600 scheduled. * Fixed potential for pri_schedule_del() to write out 1601 of bounds of pri_sched[]. The out of bounds access could occur 1602 when pri_schedule_event() returned -1. * Made use all pri_sched[] 1603 entries. pri_sched[0] was previously unused. * Removed some 1604 unneeded code and recursion since scheduling only runs on master 1605 D channel structures. * Added doxygen comments. * Renamed struct 1606 pri *pri variables to struct pri *ctrl in this file. 1607 16082009-08-31 22:57 +0000 [r1042-1051] Richard Mudgett <rmudgett@digium.com> 1609 1610 * q931.c, libpri.h: Make event channel parameter encoding 1611 consistent. Also make sure that service maintenance messages have 1612 the channel id parameters reinitialized for each message since 1613 they are sent over the global call reference. 1614 1615 * pri.c, pri_internal.h, q931.c, libpri.h: Split justsignalling 1616 into cis_call and cis_auto_disconnect functionality. 1617 16182009-08-26 15:24 +0000 [r1006-1028] Richard Mudgett <rmudgett@digium.com> 1619 1620 * q931.c: Fix BRI PTP broken by -r790. 1621 1622 * q931.c: Put connected name in display ie for CONNECT message. 1623 1624 * q931.c: Fix ie ordering in some ie lists for send_message(). 1625 1626 * q931.c: Make dump_channel_id() handle variable length fields. 1627 Also did some other minor miscellaneous changes. 1628 1629 * q931.c: Make sure reversecharge is initialized. 1630 16312009-08-21 19:51 +0000 [r1000] Jason Parker <jparker@digium.com> 1632 1633 * Makefile: Add -n to ldconfig on HURD too. (closes issue #15130) 1634 Reported by: tzafrir Patches: osarch_hurd.diff uploaded by 1635 tzafrir (license 46) 1636 16372009-08-20 15:52 +0000 [r994] Richard Mudgett <rmudgett@digium.com> 1638 1639 * q931.c: Made the call state to string table use the state 1640 defines. 1641 16422009-08-18 23:53 +0000 [r982] Richard Mudgett <rmudgett@digium.com> 1643 1644 * rose.c, rosetest.c, rose_internal.h, pri.c, pri_internal.h, 1645 Makefile, q931.c, rose.h, rose_etsi_diversion.c (added), 1646 pri_facility.c, pri_facility.h, libpri.h, rose_etsi_ect.c 1647 (added): Add COLP support to libpri for ETSI PTP, ETSI PTMP, and 1648 Q.SIG. Add Connected Line Presentation (COLP) support to 1649 chan_dahdi/libpri as an addition to issue 8824. This is the 1650 libpri portion. COLP support is now available for ETSI PTP, ETSI 1651 PTMP, and Q.SIG with this patch. (closes issue #14068) Tested by: 1652 rmudgett Review: https://reviewboard.asterisk.org/r/339/ 1653 16542009-08-18 20:59 +0000 [r976] Jeff Peeler <jpeeler@digium.com> 1655 1656 * Makefile: Allow custom CPU optimization flags Added make variable 1657 LIBPRI_OPT to set optimization level. By default the optimization 1658 level is now set to -O2. (closes issue #12676) Reported by: 1659 tzafrir Patches: libpri_opt.diff uploaded by tzafrir (license 46) 1660 16612009-08-07 15:53 +0000 [r968] Richard Mudgett <rmudgett@digium.com> 1662 1663 * rose_qsig_diversion.c: Corrected standard document reference. 1664 16652009-07-23 20:53 +0000 [r952] Richard Mudgett <rmudgett@digium.com> 1666 1667 * pri_facility.c: Fixed potential NULL pointer dereference. 1668 16692009-06-26 19:50 +0000 [r914-921] Richard Mudgett <rmudgett@digium.com> 1670 1671 * pri.c: Fix potential buffer overflow in pri_dump_info_str(). * 1672 Created pri_snprintf() to prevent buffer overflow in 1673 pri_dump_info_str(). * Extracted timer name to timer number table 1674 from pri_timer2idx() so pri_dump_info_str() can use it. 1675 1676 * pri_internal.h: Eliminate local version of PRI_MAX_TIMERS. 1677 1678 * libpri.h: Doxygenify the timer comments. 1679 1680 * pri_internal.h, q931.c: Added printf format attribute to 1681 pri_message() and pri_error() and fixed some detected errors. 1682 16832009-06-25 18:53 +0000 [r907] Sean Bright <sean@malleable.com> 1684 1685 * pri.c, pri_internal.h, q931.c, libpri.h: Add support for sending 1686 Reverse Charging Indication IE on ISDN PRI. Add the ability to 1687 transmit a Reverse Charging Indication IE during a SETUP message. 1688 In passing, re-work some of the receive logic to be forwards 1689 compatible with new RCI values that may be added in the future. 1690 Also removed the PRI_REVERSECHARGE_SUPPORT define that I added on 1691 the last commit since we can just check for 1692 PRI_REVERSECHARGE_NONE or _REQUESTED on the Asterisk side to 1693 determine support for this. Special thanks to rmudgett who could 1694 have written this in half the time he spent reviewing it, but 1695 instead talked me through it. Much appreciated! (issue #13760) 1696 Reported by: mrgabu Review: 1697 https://reviewboard.asterisk.org/r/292/ 1698 16992009-06-25 17:35 +0000 [r894-901] Richard Mudgett <rmudgett@digium.com> 1700 1701 * libpri.h: Convert PRI_TIMER_xxx to an enum so PRI_MAX_TIMERS can 1702 be automatically adjusted. 1703 1704 * pri.c, pri_timers.h (removed), libpri.h: Make it easier to add 1705 more timers/counters and vary the defaults based upon switchtype. 1706 17072009-06-24 18:19 +0000 [r878-885] Sean Bright <sean@malleable.com> 1708 1709 * pri_internal.h, q931.c, libpri.h: Capture and expose the Reverse 1710 Charging Indication IE on ISDN PRI. (issue #13760) Reported by: 1711 mrgabu Patches: 20090619_libpri_1.4.patch uploaded by seanbright 1712 (license 71) Tested by: seanbright, pruonckk Review: 1713 https://reviewboard.asterisk.org/r/291/ 1714 1715 * pri_internal.h, q931.c, libpri.h: Revert unintentional changes 1716 1717 * pri_internal.h, q931.c, /, libpri.h: Set reviewboard property. 1718 17192009-06-12 14:29 +0000 [r865] Richard Mudgett <rmudgett@digium.com> 1720 1721 * pri_facility.c: Miscellaneous minor changes. 1722 17232009-06-09 19:47 +0000 [r859] Matthew Fredrickson <creslin@digium.com> 1724 1725 * q921.c: There are two changes in this commit that are bug fixes 1726 for various Q.921 issues found in internal testing. Both were 1727 exposed/introduced by the TBR4 compliance patch for bug #12861, 1728 in changing how retransmissions and in how the transmission queue 1729 was maintained. TX-RX message flow and acknowledgement was 1730 severely restricted, since the patch changed the behavior so that 1731 pending untransmitted frames would not actually be send until the 1732 next RR was received in normal circumstances, or REJ when a 1733 reject frame was received. On busy links, this can severly limit 1734 the amount of useful traffic that is sent, and can slow down 1735 message transmission. Until someone can point out where in Q.921 1736 it is mandated for us to wait for RR frames to start sending 1737 untransmitted messages, the first change is to allow us to send 1738 untransmitted frames when we receive new I frames as well, with 1739 updated N(R). The other bug fixed is a situation caused by the 1740 restricted traffic flow, if an outside process tries to send an 1741 I-frame asynchronous to an RR frame, when the transmit window was 1742 previously closed and then opened up but an RR has not been 1743 received yet. A bug was found with the integration of the old 1744 transmit code with the new reject handling code which caused the 1745 new frame to be sent immediately, regardless if there were any 1746 pending untransmitted I-frames in the queue to be sent and 1747 causing an out of order I-frame to be sent to the other side. 1748 This bug is also fixed in this patch. 1749 17502009-06-03 22:51 +0000 [r836-848] Richard Mudgett <rmudgett@digium.com> 1751 1752 * asn1_primitive.c: Made ASN.1 memory dump also display printable 1753 characters. 1754 1755 * q931.c: Renamed callstate2str() to q931_call_state_str(). 1756 1757 * q931.c: Made transmit_facility() debug message indiate to which 1758 message the facility ie is being added. 1759 17602009-05-29 15:39 +0000 [r824] Richard Mudgett <rmudgett@digium.com> 1761 1762 * q931.c: Renamed local struct pri *pri variables to struct pri 1763 *ctrl in q931.c. The context tagging for my editor is much 1764 happier now that the struct and the variable do not have the same 1765 name. (At least for this file.) 1766 17672009-05-20 15:03 +0000 [r804] Richard Mudgett <rmudgett@digium.com> 1768 1769 * q931.c: Removed usage of FUNC_DUMP(), FUNC_RECV(), and 1770 FUNC_SEND() defines. They did not really help and hindered easy 1771 lookup of parameter types. 1772 17732009-05-13 15:17 +0000 [r798] Kevin P. Fleming <kpfleming@digium.com> 1774 1775 * pri.c, pri_q931.h, q931.c, libpri.h: Add 'const' qualifier to 1776 character string argument to keypad facility API calls These API 1777 calls do not modify the string supplied, and should not be 1778 allowed to modify it, so this patch adds a 'const' qualifier to 1779 that argument to allow the compiler to enforce this restriction 1780 (and allow callers of the API that already have a 'const' pointer 1781 to be able to pass it to this API). 1782 17832009-05-07 16:21 +0000 [r790-794] Richard Mudgett <rmudgett@digium.com> 1784 1785 * pri_internal.h, pri_q931.h, q931.c: Minor code clean up. 1786 1787 * q931.c: Avoid a stale pointer crash if the TE BRI TEI is removed 1788 when active calls exist. Made the q931_call record point to the 1789 master D channel control structure instead of the BRI TEI 1790 subchannel control structure. When a layer 3 message is sent, the 1791 current TEI subchannel control structure is used. 1792 17932009-05-05 22:25 +0000 [r786] Richard Mudgett <rmudgett@digium.com> 1794 1795 * pri_q931.h: Added Q.931 call state description comments. 1796 17972009-05-01 22:47 +0000 [r782] Richard Mudgett <rmudgett@digium.com> 1798 1799 * pri_q931.h, q921.c: Comment changes. 1800 18012009-04-21 23:32 +0000 [r766-772] Richard Mudgett <rmudgett@digium.com> 1802 1803 * rose.c, rosetest.c, rose_internal.h, Makefile, rose.h, 1804 rose_qsig_aoc.c (added), pri_facility.c: Added Q.SIG 1805 Advice-Of-Charge encode/decode routines. 1806 1807 * asn1_primitive.c (added), pri_internal.h, rose_qsig_name.c 1808 (added), Makefile, q931.c, asn1.h (added), rose_qsig_mwi.c 1809 (added), rose.c (added), rosetest.c (added), rose_internal.h 1810 (added), rose_other.c (added), rose.h (added), rose_address.c 1811 (added), rose_qsig_diversion.c (added), rose_etsi_aoc.c (added), 1812 pri_facility.c, rose_qsig_ct.c (added), pri_facility.h, 1813 rose_q931.c (added), libpri.h: ROSE ASN.1 facility encode and 1814 decode rewrite of existing messages. Several components are now 1815 parsed correctly. Most notably: PartyNumber and Q.SIG Name. 1816 18172009-04-14 15:05 +0000 [r732] Jeff Peeler <jpeeler@digium.com> 1818 1819 * pri.c, pri_internal.h, pri_q921.h, pri_q931.h, q921.c, q931.c, 1820 libpri.h: Add service maintenance message support This adds 1821 support for two new message types: Service and Service 1822 Acknowledge. When a channel receives a service message it will 1823 either take the channel in or out of service and then send a 1824 service acknowledgment. Although not enforced here (enforced in 1825 chan_dahdi), the service messages are only supported with switch 1826 types 4ess/5ess. The required Asterisk changes will be coming 1827 next. (issue #3450) Reported by: cmaj 1828 18292009-04-02 19:33 +0000 [r726] Richard Mudgett <rmudgett@digium.com> 1830 1831 * pri_facility.c: Comment changes and some string content 1832 corrections. 1833 18342009-04-18 Matthew Fredrickson <creslin@digium.com> 1835 1836 * libpri 1.4.10 released. 1837 18382009-04-02 19:33 +0000 [r726] Richard Mudgett <rmudgett@digium.com> 1839 1840 * pri_facility.c: Comment changes and some string content 1841 corrections. 1842 18432009-03-26 16:01 +0000 [r715] Richard Mudgett <rmudgett@digium.com> 1844 1845 * libpri.h: Comment changes to note what ISDN message type causes 1846 the event. 1847 18482009-03-19 01:39 +0000 [r711] Richard Mudgett <rmudgett@digium.com> 1849 1850 * pri_facility.c: Added pSS1InfoElement comments in 1851 qsig_cf_callrerouting(). 1852 18532009-03-13 01:05 +0000 [r705] Richard Mudgett <rmudgett@digium.com> 1854 1855 * build_tools/make_version: Use the correct branch integrated 1856 property when generating the version string. Update the 1857 make_version file to the latest Asterisk version with the 1858 appropriate libpri required chage. 1859 18602009-03-04 20:31 +0000 [r701] Joshua Colp <jcolp@digium.com> 1861 1862 * q931.c: Make sure we only have 4 octects on unrestricted 64k data 1863 calls. (closes issue #14507) Reported by: jsmith Patches: 1864 64k-data.patch uploaded by jsmith (license 15) Tested by: jsmith 1865 (closes issue #13118) Reported by: radpeter 1866 18672009-02-02 20:18 +0000 [r687] Leif Madsen <lmadsen@digium.com> 1868 1869 * libpri.h: Fix a small spelling error. (closes issue #14375) 1870 Reported by: jeremy1 1871 18722009-01-27 23:22 +0000 [r680] Matthew Fredrickson <creslin@digium.com> 1873 1874 * q921.c: A couple of last BRI fixes in libpri... don't discard 1875 pending iframes when we call the q921_dchannel_up routine, since 1876 we need to be able to send the ones that were queued up while the 1877 D-channel went down and is being reactivated. Also fix some buggy 1878 logic in the frame transmission decision code. 1879 18802009-01-22 21:48 +0000 [r675] Matthew Fredrickson <creslin@digium.com> 1881 1882 * q921.c: Change behavior so that we do not send I-frames when link 1883 is down, but instead queue them up until the link comes up and 1884 send them out then. 1885 18862009-01-09 Matthew Fredrickson <creslin@digium.com> 1887 1888 * libpri 1.4.9 released. 1889 18902009-01-09 17:58 +0000 [r656] Matthew Fredrickson <creslin@digium.com> 1891 1892 * q921.c: Add additional case where T200 expires greater than N200 1893 times and we need to release and reacquire the TEI. 1894 18952008-12-23 21:38 +0000 [r653] Matthew Fredrickson <creslin@digium.com> 1896 1897 * q921.c, q931.c: Add some additional debug for Q.921 MDL messages 1898 as well as fix a bug in RESTART messages on BRI 1899 19002008-11-22 Matthew Fredrickson <creslin@digium.com> 1901 1902 * libpri 1.4.8 released. 1903 19042008-11-22 00:34 +0000 [r645] Matthew Fredrickson <creslin@digium.com> 1905 1906 * q921.c: Fix a number of Q.921 bugs, found doing TBR4 compliance 1907 testing, thanks to Tzafrir, Xorcom, and co. (#12861). Thanks! 1908 19092008-10-17 16:13 +0000 [r636] Matthew Fredrickson <creslin@digium.com> 1910 1911 * pri.c, pri_internal.h, pri_q931.h, q931.c, pri_facility.c, 1912 pri_facility.h, libpri.h: Merging in additional Q.SIG features in 1913 #13454. Includes Q.SIG physical/logical channel mapping support, 1914 extended coding of Q.SIG name operations (calling name), and call 1915 rerouting support via added dialplan application. 1916 19172008-08-06 18:20 +0000 [r616] Jason Parker <jparker@digium.com> 1918 1919 * Makefile: Make install paths use libdir, like libss7 1920 19212008-08-05 Kevin P. Fleming <kpfleming@digium.com> 1922 1923 * libpri 1.4.7 released. 1924 19252008-08-05 22:18 +0000 [r611] Kevin P. Fleming <kpfleming@digium.com> 1926 1927 * pritest.c, pri.c, pri_internal.h, q921.c, q931.c, copy_string.c, 1928 prisched.c, pri_q921.h, pri_q931.h, pri_facility.c, /, 1929 compiler.h, pridump.c, testprilib.c, pri_timers.h, 1930 pri_facility.h, libpri.h: Merged revisions 610 via svnmerge from 1931 https://origsvn.digium.com/svn/libpri/branches/1.2 ........ r610 1932 | kpfleming | 2008-08-05 17:16:58 -0500 (Tue, 05 Aug 2008) | 2 1933 lines clean up license headers, and explicitly grant additional 1934 permissions when used with Asterisk ........ 1935 19362008-07-30 15:43 +0000 [r606-607] Kevin P. Fleming <kpfleming@digium.com> 1937 1938 * /: update ignore list 1939 1940 * Makefile, mkdep (removed): use better version.c creation process, 1941 and better dependency tracking process too 1942 19432008-07-29 22:47 +0000 [r598-602] Jason Parker <jparker@digium.com> 1944 1945 * build_tools/make_version: I believe this is what was meant. (it 1946 matches how Asterisk does it) 1947 1948 * build_tools/make_version: libpri is not libss7 :D 1949 19502008-07-22 22:36 +0000 [r594] Kevin P. Fleming <kpfleming@digium.com> 1951 1952 * pri_internal.h, libpri.h: correct comments to match code 1953 19542008-07-22 Kevin P. Fleming <kpfleming@digium.com> 1955 1956 * Libpri 1.4.6 released. 1957 19582008-07-22 19:43 +0000 [r589] Kevin P. Fleming <kpfleming@digium.com> 1959 1960 * pri.c, pri_internal.h, q931.c, libpri.h: rename API call and 1961 option (nothing has been released to use it yet so this should be 1962 safe) to be more accurate in describing what it does (closes 1963 issue #13042) 1964 19652008-07-11 Jason Parker <jparker@digium.com> 1966 1967 * Libpri 1.4.5 released. 1968 19692008-07-11 16:44 +0000 [r574-579] Kevin P. Fleming <kpfleming@digium.com> 1970 1971 * /: ignore generated files 1972 1973 * pri.c, pri_internal.h, q931.c, libpri.h: modify work done for 1974 issue #10552, making the support of inband audio after RELEASE a 1975 configurable option, since it is causing problems for a number of 1976 users (closes issue #13042) 1977 19782008-06-04 17:02 +0000 [r562] Dwayne M. Hubbard <dhubbard@digium.com> 1979 1980 * q931.c: While working on issue 3450 I noticed that the 1981 information channel selection field in the channel identification 1982 IE was displayed incorrectly when using 'pri intense debug'. I 1983 wanted another pair of eyes to look at the code because 1984 everything looked correct until Shaun Ruffell noticed the missing 1985 comma in the msg_chan_sel array. 1986 19872008-05-07 19:51 +0000 [r557] Matthew Fredrickson <creslin@digium.com> 1988 1989 * pri.c, pritest.c, pri_internal.h, pri_q921.h, Makefile, q921.c, 1990 q931.c, pri_facility.c, prisched.c, testprilib.c, pri_timers.h, 1991 pri_facility.h, libpri.h: Moving trunk changes back into 1.4 1992 19932008-05-07 Matthew Fredrickson <creslin@digium.com> 1994 1995 * Libpri 1.4.4 released. 1996 19972008-05-06 16:43 +0000 [r553-555] Matthew Fredrickson <creslin@digium.com> 1998 1999 * q921.c, pri.c: Remove some unnecessary debug messages 2000 2001 * q931.c: We passed TBR3 layer 2 and layer 3 testing with this 2002 commit in for BRI-TE PTMP. 2003 2004 * q931.c: Final patch to pass certification 2005 20062008-04-22 15:30 +0000 [r546] Russell Bryant <russell@digium.com> 2007 2008 * Makefile: All versions of libpri have been installed as 2009 libpri.so.1.0, even though the API and ABI have changed over 2010 time. This patch changes the Makefile to install the library as 2011 libpri.so.1.4 to indicate that this is not compatible with 2012 previous versions. In the future, this should be changed as we 2013 make ABI changes. (closes issue #10376) Reported by: tzafrir 2014 Patches: libpri-soname.diff uploaded by tzafrir (license 46) -- 2015 with very minor changes by me 2016 20172008-03-15 19:57 +0000 [r541-543] Matthew Fredrickson <creslin@digium.com> 2018 2019 * libpri.h, pri.c: Remove some useless event items 2020 2021 * q921.c, pri_internal.h: Make sure if we're a bri and in PTMP mode 2022 that we release the TEI and try to get a new one with the other 2023 end when we lose activity in multiframe mode 2024 2025 * q921.c, pri.c, pri_q921.h: When we recieve a UA in any TEI 2026 established state other than awaiting establishement make sure we 2027 drop the TEI and get a new one. For passing tests PC37.2 - PC41.2 2028 in Q.921 2029 20302008-03-06 23:43 +0000 [r538-539] Matthew Fredrickson <creslin@digium.com> 2031 2032 * q921.c: Make sure we are sending as command not as response 2033 2034 * q921.c: Make sure C/R bit is correct 2035 20362008-03-01 23:30 +0000 [r531-535] Matthew Fredrickson <creslin@digium.com> 2037 2038 * q921.c: Remove some (currently) useless code 2039 2040 * q921.c, pri.c, pri_internal.h: Some more updates to add code for 2041 passing PC 27.1 in Q.921 2042 2043 * q921.c, pri.c: Various coding style cleanups as well as a bug fix 2044 for TEI removal 2045 2046 * q921.c, q931.c, pri.c, pri_internal.h: Initial checkin of code to 2047 pass Q.921 PC25 and PC26 2048 2049 * q921.c: Add support for responding to TEI requests (Q.921 PC23.x) 2050 20512008-02-18 20:31 +0000 [r525] Matthew Fredrickson <creslin@digium.com> 2052 2053 * q931.c, libpri.h: Improve transmission, receiving, and dumping of 2054 bearer capability IE (#11593) 2055 20562008-01-16 18:06 +0000 [r518] Jason Parker <jparker@digium.com> 2057 2058 * Makefile, /: Add logging for 'make update' command (also fixes 2059 updates in some places). Issue #11766, initial patch by jmls. 2060 20612007-12-26 17:35 +0000 [r505] Russell Bryant <russell@digium.com> 2062 2063 * libpri.h: Remove unnecessary usage of the extern keyword. 2064 20652007-12-06 22:16 +0000 [r494-496] Russell Bryant <russell@digium.com> 2066 2067 * q921.c, q931.c, pri_facility.c, pri.c: Change malloc+memset to 2068 calloc. Also, handle allocation failures early to reduce 2069 indentation. (closes issue #11469) Reported by: eliel Patches: 2070 pri.c.patch uploaded by eliel (license 64) q931.c.patch uploaded 2071 by eliel (license 64) q921.c.patch uploaded by eliel (license 64) 2072 pri_facility.c.patch uploaded by eliel (license 64) 2073 2074 * pri.c: Change a use of malloc+memset to calloc. Also, reduce 2075 indentation of a function by doing the check for memory 2076 allocation failure at the beginning. 2077 2078 * pri.c: Change the table used to hold the default timers to be 2079 global and const, instead of allocating it on the stack each time 2080 the function is called. 2081 20822007-12-05 00:20 +0000 [r491-493] Matthew Fredrickson <creslin@digium.com> 2083 2084 * q931.c: Improve the parameter name to better reflect its use 2085 2086 * q921.c, q931.c: More PTMP fixes. Stand by, more changes to come 2087 2088 * q921.c, q931.c, testprilib.c: More magic to make BRI CPE PTMP 2089 work 2090 20912007-11-21 22:30 +0000 [r486-487] Matthew Fredrickson <creslin@digium.com> 2092 2093 * q931.c: Make sure we loop BRI call references for one byte CREFs 2094 instead of two 2095 2096 * q921.c, q931.c, libpri.h, pri.c, pritest.c, pri_internal.h: Add 2097 BRI support to libpri 2098 20992007-10-13 16:00 +0000 [r473] Matthew Fredrickson <creslin@digium.com> 2100 2101 * q921.c: Make sure that we only output the message handling debug 2102 when we're actually debugging 2103 21042007-09-25 21:56 +0000 [r469] Matthew Fredrickson <creslin@digium.com> 2105 2106 * q931.c: Fix user-user IE order in setup message (#10705) 2107 21082007-06-20 15:18 +0000 [r428-430] Matthew Fredrickson <creslin@digium.com> 2109 2110 * Makefile: Revert that back to how it was 2111 2112 * Makefile, q921.c, q931.c, prisched.c, testprilib.c, pri_timers.h, 2113 libpri.h, pri.c, pri_internal.h, pri_q921.h: Patch to add PTMP 2114 mode (BRI support) 2115 21162007-06-06 21:59 +0000 [r417-425] Matthew Fredrickson <creslin@digium.com> 2117 2118 * q931.c, pri_facility.c, pri_facility.h, pri.c, pri_internal.h: 2119 Preliminary patch plus mods for Q.SIG Path Replacement (Q.SIG 2120 version of 2BCT) #7778 2121 21222007-05-25 17:36 +0000 [r413] Matthew Fredrickson <creslin@digium.com> 2123 2124 * q931.c, pri_facility.c, pri_facility.h, libpri.h: Commit path for 2125 ROSE-12 and ROSE-13 support (#9076) 2126 21272006-11-03 18:16 +0000 [r382] Matthew Fredrickson <creslin@digium.com> 2128 2129 * q921.c: Remove pointless recursion. (#8281) 2130 21312008-05-07 19:51 +0000 [r557] Matthew Fredrickson <creslin@digium.com> 2132 2133 * pri.c, pritest.c, pri_internal.h, pri_q921.h, Makefile, q921.c, 2134 q931.c, pri_facility.c, prisched.c, testprilib.c, pri_timers.h, 2135 pri_facility.h, libpri.h: Moving trunk changes back into 1.4 2136 21372008-05-02 20:21 +0000 [r552] Brett Bryant <bbryant@digium.com> 2138 2139 * Makefile, build_tools (added), build_tools/make_version (added), 2140 build_tools/make_version_c (added), libpri.h: Add new API call 2141 (pri_get_version) to show the current version of the branch for 2142 support purposes. 2143 21442008-04-16 00:21 +0000 [r544] Kevin P. Fleming <kpfleming@digium.com> 2145 2146 * q921.c: fix the indentation in this function so that it is 2147 actually possible to read it and understand the logic and flow 2148 21492008-02-21 16:38 +0000 [r528] Joshua Colp <jcolp@digium.com> 2150 2151 * q931.c: If inband audio is being provided with a disconnect 2152 message let the audio be heard before releasing the channel. 2153 (closes issue #10552) Reported by: paravoid Patches: 2154 disconnect-audio.diff uploaded by paravoid (license 200) 2155 21562008-02-18 20:31 +0000 [r524] Matthew Fredrickson <creslin@digium.com> 2157 2158 * q931.c, libpri.h: Improve transmission, receiving, and dumping of 2159 bearer capability IE (#11593) 2160 21612008-01-11 16:34 +0000 [r514] Matthew Fredrickson <creslin@digium.com> 2162 2163 * q931.c, /: Merged revisions 513 via svnmerge from 2164 https://origsvn.digium.com/svn/libpri/branches/1.2 ........ r513 2165 | mattf | 2008-01-11 10:33:52 -0600 (Fri, 11 Jan 2008) | 1 line 2166 We should not be parsing further into the bearer capability IE if 2167 the length does not confirm that there actually is data present 2168 ........ 2169 21702007-12-13 Russell Bryant <russell@digium.com> 2171 2172 * libpri 1.4.3 released. 2173 21742007-10-22 15:10 +0000 [r479] Kevin P. Fleming <kpfleming@digium.com> 2175 2176 * pri_internal.h, /: Merged revisions 478 via svnmerge from 2177 https://origsvn.digium.com/svn/libpri/branches/1.2 ........ r478 2178 | kpfleming | 2007-10-22 10:09:27 -0500 (Mon, 22 Oct 2007) | 3 2179 lines we need to include stddef.h for 'size_t' ........ 2180 21812007-10-16 Matthew Fredrickson <creslin@digium.com> 2182 2183 * libpri 1.4.2 released. 2184 21852007-10-05 16:45 +0000 [r470] Jason Parker <jparker@digium.com> 2186 2187 * libpri.h: Fix an incorrect pri_event structure definition. Issue 2188 10832, patch by flefoll 2189 21902007-09-25 21:37 +0000 [r468] Matthew Fredrickson <creslin@digium.com> 2191 2192 * q931.c: Fix user-user IE order in setup message (#10705) 2193 21942007-09-14 21:32 +0000 [r465] Matthew Fredrickson <creslin@digium.com> 2195 2196 * q931.c, libpri.h: Fix for #10189. Make sure we properly report 2197 the user layer 1 for H.223 and H.245 2198 21992007-09-06 15:11 +0000 [r462] Matthew Fredrickson <creslin@digium.com> 2200 2201 * pri.c, pri_facility.c, /: Merged revisions 460 via svnmerge from 2202 https://origsvn.digium.com/svn/libpri/branches/1.2 ........ r460 2203 | mattf | 2007-09-06 10:06:42 -0500 (Thu, 06 Sep 2007) | 1 line 2204 TBCT now works. It should work for NI2, 4E, and 5E. This code was 2205 tested on NI2. ........ 2206 22072007-08-27 19:21 +0000 [r446] Jason Parker <jparker@digium.com> 2208 2209 * Makefile, /: Merged revisions 445 via svnmerge from 2210 https://origsvn.digium.com/svn/libpri/branches/1.2 ........ r445 2211 | qwell | 2007-08-27 14:20:23 -0500 (Mon, 27 Aug 2007) | 2 lines 2212 Make sure we build both the static and shared modules with -fPIC. 2213 ........ 2214 22152007-08-06 19:58 +0000 [r441] Jason Parker <jparker@digium.com> 2216 2217 * Makefile: Allow setting CC to something with a space, such as 2218 `make CC="gcc -m32"` Issue 10253. 2219 22202007-07-09 Russell Bryant <russell@digium.com> 2221 2222 * libpri 1.4.1 released. 2223 22242007-06-19 18:23 +0000 [r427] Matthew Fredrickson <creslin@digium.com> 2225 2226 * q931.c, /: Merged revisions 426 via svnmerge from 2227 https://origsvn.digium.com/svn/libpri/branches/1.2 ........ r426 2228 | mattf | 2007-06-19 13:22:33 -0500 (Tue, 19 Jun 2007) | 1 line 2229 Try to send pending facility messages if we receive alerting (for 2230 when we don't get proceeding) (#9651) ........ 2231 22322007-06-06 21:58 +0000 [r416-424] Matthew Fredrickson <creslin@digium.com> 2233 2234 * pri_facility.c, /: Merged revisions 423 via svnmerge from 2235 https://origsvn.digium.com/svn/libpri/branches/1.2 ........ r423 2236 | mattf | 2007-06-06 16:57:15 -0500 (Wed, 06 Jun 2007) | 1 line 2237 Oops, that should not be on one line ........ 2238 2239 * pri_facility.c, /: Merged revisions 415 via svnmerge from 2240 https://origsvn.digium.com/svn/libpri/branches/1.2 ........ r415 2241 | mattf | 2007-06-06 08:20:05 -0500 (Wed, 06 Jun 2007) | 2 lines 2242 Make sure we only send the NFE when we are talking QSIG ........ 2243 22442007-01-22 22:29 +0000 [r390] Matthew Fredrickson <creslin@digium.com> 2245 2246 * q931.c, /: Merged revisions 389 via svnmerge from 2247 https://origsvn.digium.com/svn/libpri/branches/1.2 ........ r389 2248 | mattf | 2007-01-22 16:20:59 -0600 (Mon, 22 Jan 2007) | 2 lines 2249 Make sure we send DISCONNECT if we reached the active state and a 2250 call is disconnected, regardless of cause code. ........ 2251 22522006-12-30 19:17 +0000 [r386] Joshua Colp <jcolp@digium.com> 2253 2254 * Makefile, /: Merged revisions 385 via svnmerge from 2255 https://origsvn.digium.com/svn/libpri/branches/1.2 ........ r385 2256 | file | 2006-12-30 14:16:17 -0500 (Sat, 30 Dec 2006) | 2 lines 2257 Specify full path to restorecon instead of assuming it will be 2258 available from what is in $PATH. (issue #8670 reported by djflux) 2259 ........ 2260 22612006-12-23 Kevin P. Fleming <kpfleming@digium.com> 2262 2263 * libpri 1.4.0 released. 2264 22652006-09-20 Kevin P. Fleming <kpfleming@digium.com> 2266 2267 * libpri 1.4.0-beta1 released. 2268