1. 04 Nov, 2014 1 commit
  2. 18 Apr, 2014 1 commit
    • Richard Mudgett's avatar
      libpri: Make TE-PTP mode respond to MDL TEI check requests. · 13beaacc
      Richard Mudgett authored
      Some BRI devices in France insist on checking TEI's when in point-to-point
      mode.  If they don't get a response for TEI 0 they drop layer 1 even
      though libpri keeps trying to bring layer 2 up.
      * Made q921_mdl_receive() handle TEI check request messages in TE-PTP
      mode.  Had to change q921_mdl_send()/Q921_INIT() because the PTP modes do
      not setup a link structure specifically for MDL as the PTMP modes do.
      * Fixed q921_tei_check()/t201_expire() to check TEI's even if the network
      side doesn't have any assigned.  This should make TE's that request the
      TEI verify procedure (Q.921 Section 5.3.5) happy when the network side
      doesn't have any TEI's allocated.
      Reported by: Denis Alberto Martinez
            jira_pri_165_ptp_respond_tei_check.patch (license #5621) patch uploaded by rmudgett
      Review: https://reviewboard.asterisk.org/r/3434/
      git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@2318 2fbb986a-6c06-0410-b554-c9c1f0a7f128
  3. 28 Mar, 2013 1 commit
    • Richard Mudgett's avatar
      Fix hole in layer2_persistence option for TE PTMP links. · 84b2560d
      Richard Mudgett authored
      If the network stops responding, according to Q.921 we are supposed to
      remove the TEI.  With the layer2_persistence option enabled, we are
      supposed to keep trying to bring layer 2 back up.  Unfortunately, when the
      network stops responding, we stopped the restart timer and removed the
      TEI.  As a result, layer 2 does not immediately come back up.
      * Made not stop the restart timer if we are removing the TEI on the CPE
      side.  Also handle the timer expiration in relevant unassigned TEI states.
      (closes issue LIBPRI-72)
      Reported by: Trey Blancher
            jira_dahdi_1001_libpri_v1.4.patch (license #5621) patch uploaded by rmudgett
      git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@2315 2fbb986a-6c06-0410-b554-c9c1f0a7f128
  4. 30 Jul, 2012 1 commit
  5. 03 Feb, 2012 1 commit
  6. 17 Aug, 2011 1 commit
    • Richard Mudgett's avatar
      Outgoing BRI calls fail when using Asterisk 1.8 with HA8, HB8, and B410P cards. · c5ec479b
      Richard Mudgett authored
      France Telecom brings layer 2 and layer 1 down on BRI lines when the line
      is idle.  When layer 1 goes down Asterisk cannot make outgoing calls and
      the HA8 and HB8 cards also get IRQ misses.
      The inability to make outgoing calls is because the line is in red alarm
      and Asterisk will not make calls over a line it considers unavailable.
      The IRQ misses for the HA8 and HB8 card are because the hardware is
      switching clock sources from the line which just brought layer 1 down to
      internal timing.
      There is a DAHDI option for the B410P card to not tell Asterisk that layer
      1 went down so Asterisk will allow outgoing calls: "modprobe wcb4xxp
      teignored=1".  There is a similar DAHDI option for the HA8 and HB8 cards:
      "modprobe wctdm24xxp bri_teignored=1".  Unfortunately that will not clear
      up the IRQ misses when the telco brings layer 1 down.
      * Add layer 2 persistence option to customize the layer 2 behavior on BRI
      PTMP lines.  The new option has three settings: 1) Use libpri default
      layer 2 setting.  2) Keep layer 2 up.  Bring layer 2 back up when the peer
      brings it down.  3) Leave layer 2 down when the peer brings it down.
      Layer 2 will be brought up as needed for outgoing calls.
      (issue AST-598)
      Reported by: Trey Blancher
      git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@2273 2fbb986a-6c06-0410-b554-c9c1f0a7f128
  7. 14 Feb, 2011 1 commit
    • Richard Mudgett's avatar
      Fix I-frame retransmission quirks. · d1cac635
      Richard Mudgett authored
      Revamped the I-frame retransmission queue to better comply with Q.921:
      Figure B.7/Q.921 (sheet 1 of 10) and Figure B.9/Q.921 (Sheet 5 of 5).  The
      changes prevent retransmitting I-frames when the peer is busy (RNR) (Q.921
      Section 5.6.5) and eliminate an unnecessary delay sending new I-frames
      after an I-frame retransmission.
      Related to JIRA LIBPRI-60
      git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@2200 2fbb986a-6c06-0410-b554-c9c1f0a7f128
  8. 01 Feb, 2011 1 commit
  9. 12 Nov, 2010 1 commit
    • Richard Mudgett's avatar
      Asterisk is getting a "No D-channels available!" warning message every 4 seconds. · 517e5ac5
      Richard Mudgett authored
      For PTP links, libpri generated the PRI_EVENT_DCHAN_DOWN event every time
      it failed to bring layer 2 up because the physical layer is down.
      For PTP links, made generate the PRI_EVENT_DCHAN_UP/PRI_EVENT_DCHAN_DOWN
      only when it enters/exits the Q.921 superstate consisting of states
      Also changed the PTP link restart delay to be link specific instead of D
      channel specific because the GR-303 PTP switch types have more than one
      Q.921 link.
      (closes issue #17270)
      Reported by: jmls
      git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@2113 2fbb986a-6c06-0410-b554-c9c1f0a7f128
  10. 11 Nov, 2010 1 commit
    • Richard Mudgett's avatar
      SABME flood on backup D-channel in NFAS configuration. · 12805eb7
      Richard Mudgett authored
      Made delay restarting the PTP layer 2 link by the T200 time instead of
      immediately.  Q.921 does not specify any particular time to restart the
      layer 2 link.  Q.921 leaves it up to the upper layers to decide when or if
      another attempt to bring layer 2 up is made.  Earlier versions of libpri
      used the T200 time to restart the link.
      This is a reimplementaion of -r1878.
      (closes issue #18255)
      Reported by: bklang
      JIRA SWP-2508
      git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@2111 2fbb986a-6c06-0410-b554-c9c1f0a7f128
  11. 10 Nov, 2010 1 commit
  12. 05 Nov, 2010 6 commits
  13. 02 Nov, 2010 1 commit
  14. 21 Oct, 2010 3 commits
  15. 16 Oct, 2010 1 commit
  16. 13 Sep, 2010 2 commits
  17. 08 Sep, 2010 1 commit
    • Richard Mudgett's avatar
      Made Q.921 delay events to Q.931 if the event could immediately generate response frames. · c20f3499
      Richard Mudgett authored
      Q.921 was passing a q931_dl_indication(up) event to Q.931 before it was
      finished processing the frame.  The q931_dl_indication(up) event could
      immediately send STATUS messages in the Q.921 intermediate state that
      would then get stuck in the tx queue with an invalid N(S).
      Q.921 was passing i-frames to Q.931 before it was finished processing the
      frame.  The i-frames could cause Q.931 to immediately generate a response
      message that may cause the peer to see the P/F bit as incorrect.
      Delayed passing q931_dl_indication(up) events and i-frames to Q.931 until
      Q.921 has completed processing the frame event.  (The Q.921 SDL diagrams
      were designed with this assumption.)
      (closes issue #17360)
      Reported by: shawkris
            issue17360_v1.4.patch uploaded by rmudgett (license 664)
      Tested by: shawkris, rmudgett
      git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@1962 2fbb986a-6c06-0410-b554-c9c1f0a7f128
  18. 30 Aug, 2010 4 commits
    • Richard Mudgett's avatar
    • Richard Mudgett's avatar
      Q.921/Q.931 message debug output improvements. · 0089f477
      Richard Mudgett authored
      The Q.931 message decode debug output now will follow the correct Q.921
      header decode if Q.921 message dumping is enabled.  Also the Q.931 message
      decode will happen when the message actually goes out on the line instead
      of when Q.931 passes the message to Q.921.  Q.921 may have to request a
      TEI, bring the connection up, or retransmit previous frames before it can
      actually send the new message.
      git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@1928 2fbb986a-6c06-0410-b554-c9c1f0a7f128
    • Richard Mudgett's avatar
      Q.921 improvements from comparing Q.921 SDL diagrams with implementation. · 1fba74a1
      Richard Mudgett authored
      * Handle sending and receiving DM response frames as needed.
      * Added handling of received FRMR frames.
      * Completed implementation of Q921_AWAITING_RELEASE state.  (State is
      currently unreachable since we have no API to initiate sending the DISC
      * Better NT PTMP TEI allocation.
      * Reduced more ERROR level severity messages so users will stop panicking
      when they see ERROR.  This is especially true for the Q.921 MDL-ERROR
      * Added better Q.921 visibility when normal debug message level is enabled.
      git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@1923 2fbb986a-6c06-0410-b554-c9c1f0a7f128
    • Richard Mudgett's avatar
      ISDN BRI does not recover from line faults · da0b0575
      Richard Mudgett authored
      Q.921 was getting stuck in state 2 (Q921_ASSIGN_AWAITING_TEI).  For some
      reason the network was removing the TEI.  Libpri then immediately tried to
      get a new TEI assigned.  The network did not reply to the N202(3) attempts
      to get a new TEI.  Libpri then just gave up trying but did not leave the
      state.  Some paths in Q.921 Figure B.3 were not implemented.
      Q.921 now transitions to the Q921_TEI_UNASSIGNED state when the N202 count
      is exceeded.  Q.921 will wait there until an incoming or outgoing call is
      * Fixed initializing the n202_counter.  Not initializing the n202_counter
      would cause the Q921_TEI_IDENTITY_REQUEST to unexpectedly not go out and
      due to how state transitions were done, Q.921 would get stuck in the
      Q921_ASSIGN_AWAITING_TEI state.
      * Fixed start T202 timer fail causing Q.921 to get stuck in the
      Q921_ASSIGN_AWAITING_TEI state if the network did not respond to the
      * Fixed handling of Q921_TEI_IDENTITY_REMOVE to do the MDL-REMOVE
      primitive (q921_mdl_remove()) instead of transitioning directly to the
      Q921_TEI_UNASSIGNED state.  Necessary state clean-up was not getting done.
      * Minor tweaks to q921_mdl_remove().  The worst problem was erroneously
      generating an error message.
      * Fixed potential for sending I-frames with an invalid TEI.  The I-frame
      could have been queued when Q.921 did not have an assigned TEI.
      * Fixed testing of the q931_receive() return value when a UI-frame is
      (closes issue #17570)
      Reported by: jcovert
            issue17570_v1.4.11.3_v3.patch uploaded by rmudgett (license 664)
            issue17570_v1.4_v3.patch uploaded by rmudgett (license 664)
      Tested by: jcovert, rmudgett
      git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@1918 2fbb986a-6c06-0410-b554-c9c1f0a7f128
  19. 25 Aug, 2010 1 commit
  20. 23 Aug, 2010 1 commit
  21. 06 Aug, 2010 1 commit
  22. 03 Aug, 2010 2 commits
  23. 02 Aug, 2010 1 commit
  24. 19 May, 2010 1 commit
  25. 26 Apr, 2010 1 commit
  26. 19 Apr, 2010 1 commit
  27. 17 Mar, 2010 1 commit
    • Richard Mudgett's avatar
      Miscellaneous simple reorganization. · d5d69ddd
      Richard Mudgett authored
      1) Make PRI_MASTER() no longer check for a NULL parameter.  It is the
      caller's responsibility.  Not many callers could have passed a NULL
      without crashing before or after anyway.
      2) Replace calls to q931_is_ptmp() with PTMP_MODE().  They were
      3) Made the following boolean config options bit fields: sendfacility,
      overlapdial, chan_mapping_logical, and service_message_support.
      git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@1534 2fbb986a-6c06-0410-b554-c9c1f0a7f128
  28. 02 Mar, 2010 1 commit