FreePBX
  1. FreePBX
  2. FREEPBX-1826

"Record Outgoing = Always" doesn't record internal extension to extesion calls

    Details

    • Backend Engine:
      All
    • Confirmation:
      Pending

      Description

      The macro used when an internal extension calls another internal extension checks to see if the CALLED extension has recording enabled. It does not check to see if the CALLING extension has recording enabled.

      Calls from an extension set to always record outgoing calls are, therefore, not recorded as they should be when the call is an internal one. Outgoing calls to trunks ARE recorded. The bug appears only when calling internally.

      There is also a bug in /var/lib/asterisk/agi-bin/recordingcheck Outgoing recordings are named properly. Incoming recordings begin with the date/time stamp portion of the file name
      - omitting the IN[extn]- part of the name. This is a bug in how CALLFILENAME is constructed. A corrected version of "recordingcheck" is attached.

      Thanks,

      Tim Pearson
      Midwestern Telephone

      1. recordingcheck
        4 kB
        lanstar
      2. recordingcheck.2
        5 kB
        alionur

        Activity

        Hide
        lanstar added a comment -

        Attachment recordingcheck has been added with description: Recordingcheck script with fixes to CALLFILENAME

        Show
        lanstar added a comment - Attachment recordingcheck has been added with description: Recordingcheck script with fixes to CALLFILENAME
        Hide
        Philippe Lindheimer added a comment -

        This brings up a couple of questions. First, does recording all outgoing calls refer to calls leaving the pbx, so to speak (e.g. not extension dialing). And
        - what happens if one extension says record all outgoing calls and calls an extension that says never record incoming calls? Regardless of the first, any patch that changes the behavior should respect the 'do not record my calls' setting.

        Show
        Philippe Lindheimer added a comment - This brings up a couple of questions. First, does recording all outgoing calls refer to calls leaving the pbx, so to speak (e.g. not extension dialing). And - what happens if one extension says record all outgoing calls and calls an extension that says never record incoming calls? Regardless of the first, any patch that changes the behavior should respect the 'do not record my calls' setting.
        Hide
        copas2 added a comment -

        Not just this. Queues have couple of problems with Asterisk 1.4.9. First there is no ringing or moh when dialing it from the outside. If recording is set, only a one way file is created. When choosing something else than "wav" as the desired encoding of the recording, the above mentioned one way file can be seen in ARI under the queue and also under the extension (which is not appropriate at all).

        Show
        copas2 added a comment - Not just this. Queues have couple of problems with Asterisk 1.4.9. First there is no ringing or moh when dialing it from the outside. If recording is set, only a one way file is created. When choosing something else than "wav" as the desired encoding of the recording, the above mentioned one way file can be seen in ARI under the queue and also under the extension (which is not appropriate at all).
        Hide
        alionur added a comment -

        While implementing a call recording solution based on FreePBX, I had to implement some fixes that I would like to contribute.

        In FreePBX "Record Incoming (RecIn)" setting is only checked for calls to local extensions and "Record Outgoing (RecOut)" setting is only checked in outgoing routes. The implications of the present design are:

        • If an extension has RecIn active, all calls to this extension are recorded.
        • If an extension has RecOut active, all Outbound Calls to external destinations are recorded.
        • If extension A has RecOut active, but extension B has RecIn disabled, when extension A calls extension B, calls are not recorded.

        The third point is the problematic case. One often needs to record all calls of a certain user. This user might have Record Incoming and Record Outgoing activated, but with the current implementation whenever this user calls another extension which does not have "Record Incoming" activated, calls will not be recorded. In conclusion with the current implementation there is no way you can configure FreePBX to record all calls of a certain extension unless all extensions in system have "Record Incoming" activated.

        This is a problem related to an inconsistent interpretation of the terms incoming and outgoing calls in the FreePBX interface. "Record Outgoing" only applies to Outbound calls from PBX, while "Record Incoming" applies to "Inbound Calls" from the external world or extension-to-extension calls. In my opinion the following could be a more consistent and intuitive way to configure call recording:

        • Incoming: Record all incoming calls to extension. (From internal extensions and from world.)
        • Outgoing: Record all outgoing calls from extension. (To internal extensions and to world.)

        The following changes were implemented through simple fixes in FreePBX dial plan and the recordingcheck script:

        • No changes requiered for calls to world through outbound routes.
        • In the case of incoming calls, the "Record Incoming" attribute of the destination extension is checked by default. The recordingcheck script was modified to check the "Record Outgoing" attribute when the call originates from an internal extension.

        The modified recordingcheck script is attached to bug report.

        The config file extensions.conf was modified to introduce the following changes: The macros macro-simple-dial and macro-exten-vm were modified to pass the caller extension number as third argument to the macro record-enable in case of incoming calls.
        exten => s,n,Macro(record-enable,${EXTTOCALL},IN,${CALLERID(number)})

        Show
        alionur added a comment - While implementing a call recording solution based on FreePBX, I had to implement some fixes that I would like to contribute. In FreePBX "Record Incoming (RecIn)" setting is only checked for calls to local extensions and "Record Outgoing (RecOut)" setting is only checked in outgoing routes. The implications of the present design are: If an extension has RecIn active, all calls to this extension are recorded. If an extension has RecOut active, all Outbound Calls to external destinations are recorded. If extension A has RecOut active, but extension B has RecIn disabled, when extension A calls extension B, calls are not recorded. The third point is the problematic case. One often needs to record all calls of a certain user. This user might have Record Incoming and Record Outgoing activated, but with the current implementation whenever this user calls another extension which does not have "Record Incoming" activated, calls will not be recorded. In conclusion with the current implementation there is no way you can configure FreePBX to record all calls of a certain extension unless all extensions in system have "Record Incoming" activated. This is a problem related to an inconsistent interpretation of the terms incoming and outgoing calls in the FreePBX interface. "Record Outgoing" only applies to Outbound calls from PBX, while "Record Incoming" applies to "Inbound Calls" from the external world or extension-to-extension calls. In my opinion the following could be a more consistent and intuitive way to configure call recording: Incoming: Record all incoming calls to extension. (From internal extensions and from world.) Outgoing: Record all outgoing calls from extension. (To internal extensions and to world.) The following changes were implemented through simple fixes in FreePBX dial plan and the recordingcheck script: No changes requiered for calls to world through outbound routes. In the case of incoming calls, the "Record Incoming" attribute of the destination extension is checked by default. The recordingcheck script was modified to check the "Record Outgoing" attribute when the call originates from an internal extension. The modified recordingcheck script is attached to bug report. The config file extensions.conf was modified to introduce the following changes: The macros macro-simple-dial and macro-exten-vm were modified to pass the caller extension number as third argument to the macro record-enable in case of incoming calls. exten => s,n,Macro(record-enable,${EXTTOCALL},IN,${CALLERID(number)})
        Hide
        alionur added a comment -

        Attachment recordingcheck.2 has been added with description: Updated recordingcheck script that checks recording settings of both source and destination extension for incoming calls.

        Show
        alionur added a comment - Attachment recordingcheck.2 has been added with description: Updated recordingcheck script that checks recording settings of both source and destination extension for incoming calls.
        Hide
        Philippe Lindheimer added a comment -

        Greg and I discussed. This is really a feature request (as there are otherwise privacy issues to consider). Some form of record internal calls, or 'force-record-all' calls is desired. We will evaluate when it hits the priority to implement in a future release (although feel free to put suggestions in the iterim as always.)

        Show
        Philippe Lindheimer added a comment - Greg and I discussed. This is really a feature request (as there are otherwise privacy issues to consider). Some form of record internal calls, or 'force-record-all' calls is desired. We will evaluate when it hits the priority to implement in a future release (although feel free to put suggestions in the iterim as always.)
        Hide
        Moshe Brevda added a comment -

        maybe by making a recording module? There are some places (obviously, not in the us) where you only need 1 parties consent to the record the call. Hence this should be a global

        Show
        Moshe Brevda added a comment - maybe by making a recording module? There are some places (obviously, not in the us) where you only need 1 parties consent to the record the call. Hence this should be a global
        Hide
        grantwilson added a comment -

        Does anyone have an update on this. We are running 2.7 , if you call from internal extension to internal extension then the call is recorded. If you call into the PBX directly to an extension then call is recorded but if you transfer the call to another extension then the recording stops as soon as the call is transferred. Is this related to the same bug/feature request or is this something completely separate. We are experiencing this problem from 2.5 to 2.7 across multiple systems. All extensions are set as Record Always for incoming and outgoing.

        Show
        grantwilson added a comment - Does anyone have an update on this. We are running 2.7 , if you call from internal extension to internal extension then the call is recorded. If you call into the PBX directly to an extension then call is recorded but if you transfer the call to another extension then the recording stops as soon as the call is transferred. Is this related to the same bug/feature request or is this something completely separate. We are experiencing this problem from 2.5 to 2.7 across multiple systems. All extensions are set as Record Always for incoming and outgoing.
        Hide
        Moshe Brevda added a comment -

        see also FREEPBX-2964

        Show
        Moshe Brevda added a comment - see also FREEPBX-2964

          People

          • Assignee:
            Unassigned
            Reporter:
            lanstar
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:

              Development