Missing Recordings - Cisco

Issue Description

This article covers troubleshooting steps you can take when the audio recordings in the Live or Limbo directory have a duration of zero and a size of 0 bytes.

Potential Causes

  • Firewall blocking access.
  • Wrong Recording Library IP address inside Chronicall.
  • Network routing issue.
  • Cisco codec issues.

Resolution

Firewall

Recording Library requires the ability to open random ports (2 per simultaneous recording) to receive the audio data being sent from the agent's phone. Chronicall's Recording Library service must have unrestricted network/port access to accomplish this task without issue. Test this by disabling the firewall and placing a test call, to see if it captures the audio recording.

Recording Library IP Address

The Recording Library settings must NOT have localhost or 127.0.0.1 defined as the IP address. The actual IP address of the Recording Library server must be used so that the Cisco UCM can send audio packets to the correct IP address. Navigate to the following in Chronicall to verify this.

Navigate to Admin (System) > System Settings > Recording Libraries > (...).

Select the Recording Library with issues, then Edit.

Verify the IP address displayed here does not show 127.0.0.1 (localhost IP) as shown below, even if they are on the local machine. We recommend you use the actual IP address here for both the Chronicall Recording Library server and the Chronicall server.

Network Routing Issue

In the SIP messages, you can see where the audio is coming from (i.e., the IP address of the agent's phone). Make sure their network is able to route packets from that IP address to the Chronicall server. Follow the steps below to enable the filter to see SIP messages in the Recording Library logs.

Inside Chronicall, navigate to Admin (System) > System Settings > Advanced Settings > Log Filters (...).

Navigate to Select All Filters > Recording Library > Cisco Unified Communications Manager and verify the below option is checked.

Now make some test calls that should be recorded, then refer to the Recording Library logs at the file paths below to see if you see any relevant errors.

  • 32-bit Chronicall
    • C:\Program Files (x86)\Xima Software\Chronicall\recording library
    • C:\Program Files (x86)\Xima Software\Chronicall\recording library\logs
    • /var/lib/Xima Software\Chronicall\recording library
  • 64-bit Chronicall
    • C:\Program Files\Chronicall\recording library\logs
    • C:\Program Files (x86)\Xima Software\Chronicall\recording library\logs
    • /var/lib/Xima Software/Chronicall/recording library/logs
🚧

Note

Ensure you disable the Cisco Recording Info log filter when you are done troubleshooting, so it doesn't generate unnecessarily large logs.

Codec Issues

If you turn on the "Recording Debug" log filter, you should be able to see the SIP messaging that sets up call recording. For each recorded call:

  • Chronicall receives two SIP INVITE messages (one for each audio side of the call). Here's an example:

    2018-05-11 15:12:35.084 [Cisco_Recording] Request Content:
        INVITE sip:[email protected]:5070 SIP/2.0
        Via: SIP/2.0/TCP 10.16.18.101:5070;branch=z9hG4bK5b7de4519b756;rport=59200
        From: "CS - Rosalie Berardo" <sip:[email protected];x-farend;x-refci=42668684;x-nearendclusterid=CM1-Cluster;x-nearenddevice=SEP00070E15F4B6;x-nearendaddr=8853;x-farendrefci=42668497;x-farendclusterid=CM1-Cluster;x-farenddevice=S0/SU0/DS1-0%40qbvoice01.prapa.net;x-farendaddr=516095183867>;tag=3624334~4e2eef74-b92d-4d09-bcc2-96e46c933c9a-42668913
        To: <sip:[email protected]>
        Date: Fri, 11 May 2018 19:13:10 GMT
        Call-ID: [email protected]
        Supported: timer,resource-priority,replaces,X-cisco-srtp-fallback,Geolocation
        Min-SE: 1800
        User-Agent: Cisco-CUCM10.5
        Allow: INVITE,OPTIONS,INFO,BYE,CANCEL,ACK,PRACK,UPDATE,REFER,SUBSCRIBE,NOTIFY
        CSeq: 101 INVITE
        Expires: 180
        Allow-Events: presence,kpml
        Call-Info: <sip:10.16.18.101:5070>;method="NOTIFY;Event=telephone-event;Duration=500"
        Cisco-Guid: 1453976704-0000065536-0000018461-1695682570
        Session-Expires: 1800
        P-Asserted-Identity: "CS - Rosalie Berardo" <sip:[email protected]>
        Remote-Party-ID: "CS - Rosalie Berardo" <sip:[email protected]>;party=calling;screen=yes;privacy=off
        Contact: <sip:[email protected]:5070;transport=tcp>;isFocus
        Max-Forwards: 70
        Content-Length: 0
  • Chronicall responds to each with an INVITE Response defining the IP address and port on the Recording Library server of where to send the audio (IP address 10.16.18.99 and port 34196 in this example). Here's an example:

    2018-05-11 15:12:35.103 [Cisco_Recording] Response Content:
        SIP/2.0 200 OK
        CSeq: 101 INVITE
        Call-ID: [email protected]
        From: "CS - Rosalie Berardo" <sip:[email protected];x-farend;x-refci=42668684;x-nearendclusterid=CM1-Cluster;x-nearenddevice=SEP00070E15F4B6;x-nearendaddr=8853;x-farendrefci=42668497;x-farendclusterid=CM1-Cluster;x-farenddevice=S0/SU0/DS1-0%40qbvoice01.prapa.net;x-farendaddr=516095183867>;tag=3624334~4e2eef74-b92d-4d09-bcc2-96e46c933c9a-42668913
        To: <sip:[email protected]>
        Via: SIP/2.0/TCP 10.16.18.101:5070;branch=z9hG4bK5b7de4519b756;rport=59200
        Content-Type: application/sdp
        Contact: <sip:[email protected]:5070;transport=tcp>
        Content-Length: 252
    
        v=0
        o=4855 13760799956958020 13760799956958020 IN IP4 10.16.18.99
        s=mysession session
        c=IN IP4  10.16.18.99
        t=0 0
        m=audio 34196 RTP/AVP 0 8 9 18
        a=rtpmap:0 PCMU/8000
        a=rtpmap:8 PCMA/8000
        a=rtpmap:9 G722/8000
        a=rtpmap:18 G729/8000
        a=ptime:20
  • It's possible that Chronicall may not receive the SIP INVITE message; if this happens, we either aren't being sent the INVITE or it's not making it to Chronicall.

    • This could be caused by configuration, network, resource, or other issues.
    • In this case, you can run a Wireshark capture from the Chronicall server and look at the SIP events, and see a SIP INVITE for calls that we record and none for those we don't record.
    • If this occurs, the communication issue between Cisco and Chronicall will need to be resolved before we can record calls.
  • If you do see the INVITE message, there may be some additional acknowledgment messages that are sent, but you should not receive a SIP BYE message until the end of the call. If you receive one quickly, and it has Reason: Q.850;cause=47 (like in this example) it means "Transcoding Resources Are Unavailable." Here's an example:

    2018-05-11 15:12:36.822 [Cisco_Recording] Request Content:
        BYE sip:[email protected]:5070;transport=tcp SIP/2.0
        Via: SIP/2.0/TCP 10.16.18.101:5070;branch=z9hG4bK5b7e2378be2d;rport=59200
        From: "CS - Rosalie Berardo" <sip:[email protected];x-farend;x-refci=42668684;x-nearendclusterid=CM1-Cluster;x-nearenddevice=SEP00070E15F4B6;x-nearendaddr=8853;x-farendrefci=42668497;x-farendclusterid=CM1-Cluster;x-farenddevice=S0/SU0/DS1-0%40qbvoice01.prapa.net;x-farendaddr=516095183867>;tag=3624334~4e2eef74-b92d-4d09-bcc2-96e46c933c9a-42668913
        To: <sip:[email protected]>;tag=b7943202
        Date: Fri, 11 May 2018 19:13:10 GMT
        Call-ID: [email protected]
        User-Agent: Cisco-CUCM10.5
        Max-Forwards: 70
        Reason: Q.850;cause=47
        CSeq: 102 BYE
        Content-Length: 0

It is now time for the customer to configure their system appropriately for region codecs and add transcoding resources if necessary.