1. 16 Dec, 2011 2 commits
    • Richard Mudgett's avatar
      Remove nul octets from IE data that is normally treated as strings. · 6078b216
      Richard Mudgett authored
      Sometimes ie values received from carriers contain nul octets in values
      normally treated by libpri as nul terminated strings.  A discussion on the
      asterisk-users list determined that the best thing to do in the situation
      is to delete the nul octets and unconditionally report/log when that
      happens.
      
      * Remove nul octets from the following ie's and generate an unconditional
      log message to the upper layer when they are removed:
      Connected Number
      Connected Address
      Redirecting Number
      Original Called Number
      Redirection Number
      Called Party Number
      Calling Party Number
      Display
      Keypad Facility
      
      (closes issue PRI-128)
      Reported by: phsultan
      Patches:
            jira_pri_128.patch (license #5621) patch uploaded by rmudgett (modified)
      Tested by: rmudgett
      
      
      git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@2278 2fbb986a-6c06-0410-b554-c9c1f0a7f128
      6078b216
    • Richard Mudgett's avatar
      Implement handling a multi-channel RESTART request. · 4e7c3d14
      Richard Mudgett authored
      The channel id ie can supply a slotmap or list of channels.  For a RESTART
      message, this can be handy to indicate multiple channels that need to be
      restarted at the same time.
      
      An incoming RESTART request will now generate a PRI_EVENT_RESTART to the
      upper layer for each channel indicated in the request.  If the event is
      successfully generated for all indicated channels then a
      RESTART_ACKNOWLEDGE is sent back to the peer indicating all channels
      restarted.
      
      * Add the ability to process a channel id ie channel list with a RESTART
      request.
      
      * Add the ability to process slotmaps with a RESTART request.
      
      (closes issue PRI-93)
      Reported by: Marcin Kowalczyk
      Patches:
            jira_pri_93.patch (license #5621) patch uploaded by rmudgett
      Tested by: zvision, rmudgett
      
      (closes issue PRI-71)
      Reported by: Torrey Searle
      Tested by: rmudgett
      
      
      git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@2277 2fbb986a-6c06-0410-b554-c9c1f0a7f128
      4e7c3d14
  2. 26 Sep, 2011 1 commit
  3. 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
      c5ec479b
  4. 17 May, 2011 1 commit
    • Richard Mudgett's avatar
      Option needed for Q931_IE_TIME_DATE to be optional in CONNECT message. · 092811da
      Richard Mudgett authored
      The NEC SV8300 rejects the Q931_IE_TIME_DATE for Q.SIG.
      
      Add option to specify if and how much of the current time is put in
      Q931_IE_TIME_DATE.
      * Send date/time ie never.
      * Send date/time ie date only.
      * Send date/time ie date and hour.
      * Send date/time ie date, hour, and minute.
      * Send date/time ie date, hour, minute, and second.
      * Send date/time ie default: Libpri will send date and hhmm only when in
      NT PTMP mode to support ISDN phones.
      
      (closes issue #19221)
      Reported by: kenner
      
      JIRA SWP-3396
      
      
      git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@2266 2fbb986a-6c06-0410-b554-c9c1f0a7f128
      092811da
  5. 18 Apr, 2011 1 commit
    • Richard Mudgett's avatar
      Problems with ISDN MWI to phones. · 239f8186
      Richard Mudgett authored
      1) The "controlling user number" is always the number of the voice mail box
      which is identical with the subscriber number itself.  This number which
      is listed in the ISDN phone MWI menu cannot be called back to contact the
      voice mail box.  The controlling user number should be made configurable.
      
      2) The MWI indication is not restricted to a user (broadcast facility with
      dummy call reference).  A called party IE should be added to address only
      the relevant MSN.  (ETSI 300-196 Section 8.3.2.4)
      
      JIRA ABE-2738
      JIRA SWP-2846
      
      
      git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@2262 2fbb986a-6c06-0410-b554-c9c1f0a7f128
      239f8186
  6. 18 Mar, 2011 1 commit
  7. 01 Mar, 2011 2 commits
  8. 28 Feb, 2011 3 commits
  9. 17 Feb, 2011 3 commits
    • Richard Mudgett's avatar
      B channel lost by incoming call in BRI NT PTMP mode. · e7a5d0da
      Richard Mudgett authored
      A phone's RELEASE_COMPLETE as a response to an initial broadcast SETUP
      blocks one B channel permantly when the call is cancelled.
      
      Scenario: A call to the ISDN Bus is acknowledged (ALERTING) by one
      phone/endpoint and rejected by another phone/endpoint with a
      RELEASE_COMPLETE.  The call is then cancelled by the caller.  If the whole
      procedure is repeated once again then any further call attempt is rejected
      (WARNING[5666]: app_dial.c:1546 dial_exec_full: Unable to create channel
      of type 'DAHDI' (cause 34 - Circuit/channel congestion)).  It seems that
      receiving a RELEASE_COMPLETE in that state blocks one B channel
      permanently when the call is cancelled by the caller.
      
      Background: The ISDN phones (Siemens Gigaset 3035 or CX253) we use for
      testing additionally contain a DECT base station, which operates as a
      different endpoint on the ISDN Bus (TEI).  If the DECT base station is not
      in use then there are no DECT phones registered to the base station.  The
      DECT base station responds to an incoming call not directed toward it with
      (RELEASE_COMPLETE, cause: no user responding).
      
      * Made initiate_hangup_if_needed() also hangup the subcall if it is in the
      NULL state.
      
      * Simplified q931_set_subcall_winner().
      
      JIRA ABE-2745
      JIRA SWP-2954
      
      
      git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@2207 2fbb986a-6c06-0410-b554-c9c1f0a7f128
      e7a5d0da
    • Richard Mudgett's avatar
      DMS-100 not receiving caller name anymore. · df22f0e1
      Richard Mudgett authored
      Looks like DMS-100 is using the same message as Q.SIG to receive the
      caller name.
      
      Add the ability to decode the ROSE calling name message defined for the
      Q.SIG switch on the DMS-100 switch.
      
      (closes issue #18822)
      Reported by: cmorford
      Patches:
            issue18822_v1.4.patch uploaded by rmudgett (license 664)
      Tested by: cmorford
      
      
      git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@2206 2fbb986a-6c06-0410-b554-c9c1f0a7f128
      df22f0e1
    • Richard Mudgett's avatar
      * Added switchtype to ROSE invoke operation not handled message. · 492a19ab
      Richard Mudgett authored
      * Reordered NI2 ROSE message table so any conflicts with the pirated Q.SIG
      messages will be in favor of the NI2 specific messages.  This is
      precautionary only.
      
      
      git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@2204 2fbb986a-6c06-0410-b554-c9c1f0a7f128
      492a19ab
  10. 16 Feb, 2011 1 commit
    • Richard Mudgett's avatar
      Crash if NFAS swaps D channels on a call with an active timer. · 2867fc71
      Richard Mudgett authored
      If a Q.931 call record related timer is started on one NFAS D channel
      expires after NFAS swaps to another D channel, then libpri could crash.
      
      For example:
      1) Hangup a call.
      1a) Send a DISCONNECT.
      1b) Start the T305 retransmit timer on the current D channel.
      2) The RELEASE comes in on another D channel.
      2a) The found call record switches its assignment to the new D channel.
      2b) Attempt to stop T305.  Unfortunately, the timer was started on another
          D channel so the attempt does not find the timer to stop.
      3) The hangup sequence continues normally and the call record is freed
         since there is only one call record pool.
      4) T305 expires on the original D channel and crashes the system when it
         uses the stale call record pointer it has saved.
      
      Made each D channel timer pool have a unique range of valid timer
      identifiers.  If a given timer identifier is not in the range for the
      current NFAS D channel, then search the D channel group for the original D
      channel.
      
      JIRA LIBPRI-58
      JIRA SWP-2721
      
      
      git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@2202 2fbb986a-6c06-0410-b554-c9c1f0a7f128
      2867fc71
  11. 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
      d1cac635
  12. 08 Feb, 2011 1 commit
  13. 04 Feb, 2011 2 commits
    • Richard Mudgett's avatar
      Add display ie text handling options. · ed0d76d5
      Richard Mudgett authored
      The display ie handling can be controlled independently in the send and
      receive directions with the following options:
      
      * Block display text data.
      
      * Use display text in SETUP/CONNECT messages for name.
      
      * Use display text for COLP name updates (FACILITY/NOTIFY as appropriate).
      
      * Pass arbitrary display text during a call.  Sent in INFORMATION
      messages.  Received from any message that the display text was not used as
      a name.
      
      If the display options are not set then the options default to legacy
      behavior.
      
      
      git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@2190 2fbb986a-6c06-0410-b554-c9c1f0a7f128
      ed0d76d5
    • Richard Mudgett's avatar
      Add Q931_IE_TIME_DATE to CONNECT message when in network mode. · d0dbd5b3
      Richard Mudgett authored
      Add the Q931_IE_TIME_DATE with the current date/time of the system to the
      Q.931 CONNECT message when in network mode.  The date/time IE allows
      attached equipment to synchronize their clock with the network.  Most
      notably, ISDN phones can display the current date/time.
      
      See issue #18047 about a concern with non-conforming Siemens terminals.
      
      (closes issue #18047)
      Reported by: wuwu
      Patches:
            timedate.patch uploaded by rmudgett (license 664)
      Tested by: rmudgett
      
      JIRA SWP-2955
      JIRA ABE-2747
      
      
      git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@2187 2fbb986a-6c06-0410-b554-c9c1f0a7f128
      d0dbd5b3
  14. 01 Feb, 2011 1 commit
  15. 21 Dec, 2010 3 commits
  16. 20 Dec, 2010 2 commits
  17. 14 Dec, 2010 2 commits
  18. 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
      7(Q921_MULTI_FRAME_ESTABLISHED) and 8(Q921_TIMER_RECOVERY).
      
      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
      517e5ac5
  19. 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
      12805eb7
  20. 10 Nov, 2010 1 commit
  21. 05 Nov, 2010 6 commits
  22. 02 Nov, 2010 1 commit
  23. 21 Oct, 2010 2 commits
    • Richard Mudgett's avatar
      Fixes CC agents not automatically clearing if T309 clears the original call. · 7f55b600
      Richard Mudgett authored
      Incoming calls with CC enabled will not automatically clear the CC offer
      record when the call is aborted by T309 processing.  All CC agent FSM's
      have this problem (PTMP, PTP, and Q.SIG).
      
      To reproduce:
      1) Place incoming call to Asterisk/libpri
      2) Either before or after the call is answered, bring the ISDN link down.
      3) T309 processing, T309 timeout, or TEI removal will leave the CC agent
      FSM in the CC available state.
      
      The problem is indicated by the "cc report status" CLI command showing a
      status of CC offered to caller but it will never timeout.
      
      The FSM's can be manually cleared by using the "cc cancel all" or "cc
      cancel core" CLI commands.
      
      JIRA LIBPRI-46
      JIRA SWP-2241
      
      
      git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@2079 2fbb986a-6c06-0410-b554-c9c1f0a7f128
      7f55b600
    • Richard Mudgett's avatar
      Partial support for dynamic interfaces with NFAS. · 5923df04
      Richard Mudgett authored
      To have some support for dynamic interfaces, the master NFAS D channel
      control structure will always exist even if it is abandoned/deleted by the
      upper layer.  The master/slave pointers ensure that the correct master
      will be used.
      
      
      git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@2078 2fbb986a-6c06-0410-b554-c9c1f0a7f128
      5923df04