sipcapture / homer

HOMER - 100% Open-Source SIP, VoIP, RTC Packet Capture & Monitoring
https://sipcapture.org
GNU Affero General Public License v3.0
1.61k stars 240 forks source link

Help understand retrieving RTCP-XR data in Homer. #560

Closed tcreek closed 1 year ago

tcreek commented 1 year ago

I have been working on this for some time. There is really not much of anything on this in the wiki/docs.

Have the heplify-xrcollector (v 0.4) running on my test server Which has sipcapture/Homer installed using the install script with IP address 192.168.1.104. I am running it using command, "./heplify-xrcollector -xs :9064"

Have Asterisk server running which is sending hep packets to the Homer test server to port 9060.

I am using a Yealink for testing, I am having the telephone send VQ RTCP-XR reports to my test sever .

Tried a test using heplify-xrcollector-test (v 0.3). Here are a couple of screen shots the results:

First image is showing that results from the heplify-xrcollector-test

heplify_rtcpxr_tester

Second image here is showing there is no QOS results at all being presented from the heplify-xrcollector-test.

heplify_rtcpxr_tester_noqos

Third image is showing results from a test call from the Yealink telephone, but the QOS is only showing RTCP, nothing about RTCP-XR.

telephone_hep

In the past when I was trying to get this to work, was in version 5. If I am not mistaken, there was data in MySQL database for RCTP-XR, in the table "homer_data.report_capture_all_XXXXXXXX." I see with version 7 of Homer, there has been a switch to Postgres database, and I see there are hundreds of different tables, and I am unsure to where to even look for RCTP-XR data to make sure it is being stored.

All I am trying to do is see the RTCP-XR data , or see something like this which was presented way back in 2015

https://www.youtube.com/watch?v=N76odN3z9iU

github-actions[bot] commented 1 year ago

Please star this repository to motivate the developers and to get higher priority! :star:

lmangani commented 1 year ago

Hello @tcreek

The screenshot and video are not very helpful to assist. We need to see the data and the packets in order to comment, also the debug logs from heplify-xrcollector (which is not one of our projects) would probably help understand what it might be doing. Possible ngrep/tcpdump the HEP traffic sent out by the xrcollector, if any. It might reveal the problem.

<joke> if you've been around HOMER since version 5 its maybe time to give us a star ⭐</joke>

tcreek commented 1 year ago

Hello @tcreek

The screenshot and video are not very helpful to assist. We need to see the data and the packets in order to comment, also the debug logs from heplify-xrcollector (which is not one of our projects) would probably help understand what it might be doing. Possible ngrep/tcpdump the HEP traffic sent out by the xrcollector, if any. It might reveal the problem.

<joke> if you've been around HOMER since version 5 its maybe time to give us a star ⭐</joke>

Here is a result from sngrep from running heplify-xrcollector-test

2022/09/28 12:42:55.505966 127.0.0.1:48415 -> 127.0.0.1:9064
PUBLISH sip:87.103.120.253:9070 SIP/2.0
Via: SIP/2.0/UDP 10.0.3.13:3072;branch=z9hG4bK-2atcagwblzv2;rport
From: <sip:5004@10.0.3.252>;tag=2ygtpy7bgk
To: <sip:87.103.120.253:9070>
Call-ID: 89596257635d-ip18q8n0lp1b
CSeq: 2 PUBLISH
Max-Forwards: 70
Contact: <sip:5004@10.0.3.13:3072;line=swv8im3f>;reg-id=1
User-Agent: snom821/873_19_20130321
Event: vq-rtcpxr
Accept: application/sdp, message/sipfrag
Content-Type: application/vq-rtcpxr
Content-Length: 804

VQSessionReport: CallTerm
CallID:825962570309-8ds5sl3mca99
LocalID:<sip:5004@10.0.3.252>
RemoteID:<sip:520@10.0.3.252;user=phone>
OrigID:<sip:5004@10.0.3.252>
LocalAddr:IP=10.0.3.13 PORT=57460 SSRC=0x014EA261
LocalMAC:0004135310DB
RemoteAddr:IP=10.0.3.252 PORT=10034 SSRC=0x1F634EA2
DialogID:825962570309-8ds5sl3mca99;to-tag=gqj87t0stF-M8g.kPREKLthaGl030mze;from-tag=2ygtpy7bgk
x-UserAgent:snom821/873_19_20130321
LocalMetrics:
Timestamps:START=2016-06-16T07:47:14Z STOP=2016-06-16T07:47:21Z
SessionDesc:PT=8 PD=PCMA SR=8000 PPS=50 SSUP=off
x-SIPmetrics:SVA=RG SRD=392 SFC=0
x-SIPterm:SDC=OK SDT=7 SDR=OR
JitterBuffer:JBA=3 JBR=2 JBN=20 JBM=20JBX=240
PacketLoss:NLR=3.0 JDR=3.0
BurstGapLoss:BLD=0.0 BD=0 GLD=0.0 GD=5930 GMIN=16
Delay:RTD=0 ESD=0 IAJ=11
QualityEst:MOSLQ=4.1 MOSCQ=4.1

And this is all that the heplify-xrcollector spits out when it receives data.

2022/09/28 12:43:07 Sent back OK with 342 bytes to 127.0.0.1:39866
2022/09/28 12:43:07 Received packet with 1274 bytes from 127.0.0.1:39866
2022/09/28 12:43:07 Sent back OK with 342 bytes to 127.0.0.1:39866
2022/09/28 12:43:07 Received packet with 1274 bytes from 127.0.0.1:39866
2022/09/28 12:43:07 Sent back OK with 342 bytes to 127.0.0.1:39866
2022/09/28 12:43:07 Received packet with 1274 bytes from 127.0.0.1:39866
2022/09/28 12:43:07 Sent back OK with 342 bytes to 127.0.0.1:39866
2022/09/28 12:43:07 Received packet with 1274 bytes from 127.0.0.1:39866
2022/09/28 12:43:07 Sent back OK with 342 bytes to 127.0.0.1:39866
2022/09/28 12:43:08 Received packet with 1274 bytes from 127.0.0.1:39866
2022/09/28 12:43:08 Sent back OK with 342 bytes to 127.0.0.1:39866
2022/09/28 12:43:08 Received packet with 1274 bytes from 127.0.0.1:39866
2022/09/28 12:43:08 Sent back OK with 342 bytes to 127.0.0.1:39866

<no_joke> Star ⭐ added! </no_joke>

P.S. The video is not for understanding the problem, but wanting to replicate something they did, but it seems there is no explanation , or documentation on how they got the results.

lmangani commented 1 year ago

This helps. Now do you see any HEP packets being sent towards homer from the collector?`ie if you're using 9060:

ngrep -W byline port 9060 -d any
tcreek commented 1 year ago

Here is the result from ngrep -W byline port 9060 -d any


HEP3.|...................
.........
...........W.............
c4.[...
.
...)......#.....
..........PUBLISH sip:87.103.120.253:9070 SIP/2.0.
Via: SIP/2.0/UDP 10.0.3.13:3072;branch=z9hG4bK-2atcagwblzv2;rport.
From: <sip:5004@10.0.3.252>;tag=2ygtpy7bgk.
To: <sip:87.103.120.253:9070>.
Call-ID: 89596257635d-ip18q8n0lp1b.
CSeq: 2 PUBLISH.
Max-Forwards: 70.
Contact: <sip:5004@10.0.3.13:3072;line=swv8im3f>;reg-id=1.
User-Agent: snom821/873_19_20130321.
Event: vq-rtcpxr.
Accept: application/sdp, message/sipfrag.
Content-Type: application/vq-rtcpxr.
Content-Length: 804.
.
VQSessionReport: CallTerm.
CallID:825962570309-8ds5sl3mca99.
LocalID:<sip:5004@10.0.3.252>.
RemoteID:<sip:520@10.0.3.252;user=phone>.
OrigID:<sip:5004@10.0.3.252>.
LocalAddr:IP=10.0.3.13 PORT=57460 SSRC=0x014EA261.
LocalMAC:0004135310DB.
RemoteAddr:IP=10.0.3.252 PORT=10034 SSRC=0x1F634EA2.
DialogID:825962570309-8ds5sl3mca99;to-tag=gqj87t0stF-M8g.kPREKLthaGl030mze;from-tag=2ygtpy7bgk.
x-UserAgent:snom821/873_19_20130321.
LocalMetrics:.
Timestamps:START=2016-06-16T07:47:14Z STOP=2016-06-16T07:47:21Z.
SessionDesc:PT=8 PD=PCMA SR=8000 PPS=50 SSUP=off.
x-SIPmetrics:SVA=RG SRD=392 SFC=0.
x-SIPterm:SDC=OK SDT=7 SDR=OR.
JitterBuffer:JBA=3 JBR=2 JBN=20 JBM=20JBX=240.
PacketLoss:NLR=3.0 JDR=3.0.
BurstGapLoss:BLD=0.0 BD=0 GLD=0.0 GD=5930 GMIN=16.
Delay:RTD=0 ESD=0 IAJ=11.
QualityEst:MOSLQ=4.1 MOSCQ=4.1.
......825962570309-8ds5sl3mca99
#
U ::1:43582 -> ::1:9060 #29
HEP3.....................
.........
...........W.............
c4.[...
.
................
.........dINVITE sip:87.103.120.253:9070 SIP/2.0.
Via: SIP/2.0/UDP 10.0.3.13:3072;branch=z9hG4bK-2atcagwblzv2;rport.
From: <sip:5004@10.0.3.252>;tag=2ygtpy7bgk.
To: <sip:87.103.120.253:9070>.
Call-ID: 825962570309-8ds5sl3mca99.
CSeq: 1 INVITE.
Max-Forwards: 70.
Contact: <sip:5004@10.0.3.13:3072;line=swv8im3f>;reg-id=1.
User-Agent: snom821/873_19_20130321.
.

#
U 127.0.0.1:47786 -> 127.0.0.1:9060 #30
HEP3.|...................
.........
...........W.............
c4.[...
.
..........#.....
tcreek commented 1 year ago

Found the table named hep_proto_35_default

yealin_rctpxr

192.168.1.106 is the Yealink Telephone. We can see, it appears something from RTCP-XR is being placed into the database, but question is how do we get it to display in Homer?