How is a Voiprecording processed and logged

This is an example of what may have happened with a 24 minute long call that has no speech during the call, but you can hear the initial part of the call.

This recording was processed with 24 minutes of audio on the playback screen.
The Initial INVITE and BYE messages are 24 minutes apart.

The recordings are made by capturing the individual RTP packets that contain the audio.
Once the recording is done, the RTP is converted from the captured codec to a generic audio file.
As part of this conversion the captured packets are analysed and logged to indicate the number of packets per stream captured.

There will usually be at least 2 streams.
One for the local party and one for the remote party.
There may be additional streams depending on what happened on the call.
E.g. DTMF or initial ringing can have a separate stream.

This example shows there were 3 streams.

  • These are broken into smaller streams of 1 minute for processing.
  • This is usually 3000 packets for 60 seconds if the packet interval is 20 ms.
  • The payload shows the RTP codec that was captured and the number of packets that are in each processing block.
  • If there are any issues processing the RTP , it would be logged and leave the file behind to be checked and re-processed.

Calculation:

  • Packet count divided by number of packets per second to get the number of seconds.
  • Most streams are 20ms intervals. (May differ per call)
  • 1000ms ( 1 Second ) / 20 ms interval = 50 packets per second.
  • 3000 Packets / 50 packets per second = 60 Seconds’ packets

The lines that show a different value than 3000 means some packets may have been lost or captured in a different interval.

This does indicate that there were packets captured for the duration of the call.

Each packet indicates about 20ms worth of audio. Losing a couple of packets in a minute would not be easily audible.

If you lose more than 100 packets, you may start hearing stuttering on the recordings.

Example LOG from the Voipsweeper:

2024-06-04 16:53:28.887 [1.7.5.10] SplitLargerStreams before - total number of streams = 3
2024-06-04 16:53:28.999 [1.7.5.10] SplitLargerStreams after - total number of streams = 54
2024-06-04 16:53:29.025 [1.7.5.10] Processing stream 0
2024-06-04 16:53:29.029 [1.7.5.10] Processing stream 1
2024-06-04 16:53:29.031 [1.7.5.10] Processing stream 2
2024-06-04 16:53:29.044 [1.7.5.10] Processing stream 3 , payload 18=2980 packets
2024-06-04 16:53:29.116 [1.7.5.10] Processing stream 4 , payload 18=3000 packets
2024-06-04 16:53:29.187 [1.7.5.10] Processing stream 5 , payload 18=3000 packets
2024-06-04 16:53:29.257 [1.7.5.10] Processing stream 6 , payload 18=3000 packets
2024-06-04 16:53:29.328 [1.7.5.10] Processing stream 7 , payload 18=3000 packets
2024-06-04 16:53:29.398 [1.7.5.10] Processing stream 8 , payload 18=3000 packets
2024-06-04 16:53:29.469 [1.7.5.10] Processing stream 9 , payload 18=3000 packets
2024-06-04 16:53:29.540 [1.7.5.10] Processing stream 10 , payload 18=3000 packets
2024-06-04 16:53:29.611 [1.7.5.10] Processing stream 11 , payload 18=3000 packets
2024-06-04 16:53:29.682 [1.7.5.10] Processing stream 12 , payload 18=3000 packets
2024-06-04 16:53:29.751 [1.7.5.10] Processing stream 13 , payload 18=3000 packets
2024-06-04 16:53:29.822 [1.7.5.10] Processing stream 14 , payload 18=3000 packets
2024-06-04 16:53:29.893 [1.7.5.10] Processing stream 15 , payload 18=3000 packets
2024-06-04 16:53:29.962 [1.7.5.10] Processing stream 16 , payload 18=3000 packets
2024-06-04 16:53:30.033 [1.7.5.10] Processing stream 17 , payload 18=3000 packets
2024-06-04 16:53:30.103 [1.7.5.10] Processing stream 18 , payload 18=3000 packets
2024-06-04 16:53:30.172 [1.7.5.10] Processing stream 19 , payload 18=3000 packets
2024-06-04 16:53:30.243 [1.7.5.10] Processing stream 20 , payload 18=3000 packets
2024-06-04 16:53:30.312 [1.7.5.10] Processing stream 21 , payload 18=3000 packets
2024-06-04 16:53:30.381 [1.7.5.10] Processing stream 22 , payload 18=3000 packets
2024-06-04 16:53:30.454 [1.7.5.10] Processing stream 23 , payload 18=3000 packets
2024-06-04 16:53:30.523 [1.7.5.10] Processing stream 24 , payload 18=3000 packets
2024-06-04 16:53:30.592 [1.7.5.10] Processing stream 25 , payload 18=3000 packets
2024-06-04 16:53:30.663 [1.7.5.10] Processing stream 26 , payload 18=3000 packets
2024-06-04 16:53:30.733 [1.7.5.10] Processing stream 27 , payload 18=590 packets
2024-06-04 16:53:30.749 [1.7.5.10] Processing stream 28 , payload 101=24 packets
2024-06-04 16:53:30.751 [1.7.5.10] Processing stream 29 , payload 18=876 packets
2024-06-04 16:53:30.773 [1.7.5.10] Processing stream 30 , payload 18=2998 packets
2024-06-04 16:53:30.839 [1.7.5.10] Processing stream 31 , payload 18=3000 packets
2024-06-04 16:53:30.903 [1.7.5.10] Processing stream 32 , payload 18=2998 packets
2024-06-04 16:53:30.966 [1.7.5.10] Processing stream 33 , payload 18=2999 packets
2024-06-04 16:53:31.029 [1.7.5.10] Processing stream 34 , payload 18=3000 packets
2024-06-04 16:53:31.092 [1.7.5.10] Processing stream 35 , payload 18=2999 packets
2024-06-04 16:53:31.156 [1.7.5.10] Processing stream 36 , payload 18=2999 packets
2024-06-04 16:53:31.220 [1.7.5.10] Processing stream 37 , payload 18=2999 packets
2024-06-04 16:53:31.284 [1.7.5.10] Processing stream 38 , payload 18=2997 packets
2024-06-04 16:53:31.347 [1.7.5.10] Processing stream 39 , payload 18=2998 packets
2024-06-04 16:53:31.410 [1.7.5.10] Processing stream 40 , payload 18=2997 packets
2024-06-04 16:53:31.475 [1.7.5.10] Processing stream 41 , payload 18=2999 packets
2024-06-04 16:53:31.538 [1.7.5.10] Processing stream 42 , payload 18=2998 packets
2024-06-04 16:53:31.602 [1.7.5.10] Processing stream 43 , payload 18=2998 packets
2024-06-04 16:53:31.666 [1.7.5.10] Processing stream 44 , payload 18=2999 packets
2024-06-04 16:53:31.730 [1.7.5.10] Processing stream 45 , payload 18=2999 packets
2024-06-04 16:53:31.793 [1.7.5.10] Processing stream 46 , payload 18=3000 packets
2024-06-04 16:53:31.856 [1.7.5.10] Processing stream 47 , payload 18=3000 packets
2024-06-04 16:53:31.919 [1.7.5.10] Processing stream 48 , payload 18=3000 packets
2024-06-04 16:53:31.982 [1.7.5.10] Processing stream 49 , payload 18=3000 packets
2024-06-04 16:53:32.046 [1.7.5.10] Processing stream 50 , payload 18=2999 packets
2024-06-04 16:53:32.110 [1.7.5.10] Processing stream 51 , payload 18=3000 packets
2024-06-04 16:53:32.174 [1.7.5.10] Processing stream 52 , payload 18=2998 packets
2024-06-04 16:53:32.238 [1.7.5.10] Processing stream 53 , payload 18=2629 packets
2024-06-04 16:53:39.197 [1.7.5.10] Recorded(DTA)=>EXT:1212,USER:Leon,LINE:VoIP,NUMBER:0123456789,DURATION:00:24:01,DIRECTION:INCOMING,PHYSEXT:,REF:(A240601-001234.ZLB),TIME:2024-06-04 11:22:13,EXTRAINFO:Reason=Disconnected%0ASignal%20codecs=%0ARTP%20codecs=G.729,%20Unknown%20codec%20(101)%0AMixed%20codecs=False%0ATotal%20packets=145,073%0ALost%20packets=129%0ADelayed%20packets=40%0A