Homer 7 Docker image, Heplify Server, & RTCP-XR

890 views
Skip to first unread message

KNERD

unread,
Nov 28, 2018, 10:28:07 PM11/28/18
to Homer Capture Server. sipcapture.org

Pulling my hair on on trying to figure this out.


I have tried Homer 5 with OpenSIPs and Kamailio.

According to various documentation, including this, https://www.kamailio.org/events/2015-KamailioWorld/Day1/07-Alexandr.Dubovikov-Sipcapture-Introducing-Homer-5-Captagent-6.pdf

It should be collecting. I have looked at the various configurations and see it is already setup for collecting RTCP-XR data. When I look in the database, there is nothing there, Meaning no RTCP-XR data is being collected.

It was suggested to me I use Homer 7 docker image with the Heplify server.

So I am running the image, and having a telephone send the RTCP-XR reports to USP port 9060, I can see the log reporting when it gets packets from the telephone, and it is


 decoder.go:103: WARN malformed packet with length 1750 which is neither hep nor protobuf encapsulated

Just what is going on here?

Can I get some guidance on getting this functioning as I keep reading it should be?

Thanks a bunch!




Lorenzo Mangani

unread,
Nov 29, 2018, 3:47:55 AM11/29/18
to homer-...@googlegroups.com
Hi,

HOMER is not an RTCP-XR collector per-se, but it can interpret RTCP-XR messages captured by its Agents.
For both H5 and H7 RTCP-XR  PUBLISH should be sent to your SIP Proxy / Gateway where HEP capture is enabled, not directly to the HOMER socket - which can only accept HEP packets.

I hope this helps, 

Kind Regards,

Lorenzo Mangani
Managing Director and Core Dev

QXIP BV - Capture Engineering
Amsterdam, The Netherlands

CONFIDENTIALITY NOTICE: This e-mail message, including any attachments, is for the sole use of the intended recipient(s) and may contain confidential or legally privileged information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of this original message. 



--
You received this message because you are subscribed to the Google Groups "Homer Capture Server. sipcapture.org" group.
To unsubscribe from this group and stop receiving emails from it, send an email to homer-discus...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

biegle...@gmail.com

unread,
Nov 29, 2018, 6:36:09 AM11/29/18
to Homer Capture Server. sipcapture.org
Hi,

in addition to Lorenzos answer let me try to help you and tell you the two most common mistakes made by users:

1. They configure their phones to send the RTCP-XR reports directly into the HEP socket (mostly port 9060) of the capture servers (kamailio, opensips, heplify-server). This is why you get this error from heplify-server.
2. They do not change the maximum character size of the msg column in the report_capture table. As you can see from the heplify-server log you RTCP-XR report has
1750 bytes.


So how you can fix this? To fix 1 you should configure your phones to send the RTCP-XR reports to a collector. It's important that the capture agent (captagent, heplify) is able to sniff this
RTCP-XR report because they will do the HEP encapsulation and send it to the capture server. Now you may ask what do I mean with a collector. You can implement it easily in almost any language or use available solutions. The only thing they do is to receive the RTCP-XR PUBLISH and respond with a 200 OK.

As available solutions you could use captagents RTCP-XR collector, Kamailio or Opensips (just google for some snippets), write a little script yourself. Maybe when I need RTCP-XR myself I will implement a collector into heplify or heplify-server too. But as I said there are a lot of options available right now.

To fix 2 you can simply change the msg column size in the database. I guess I should use 3000 as default for heplify-server. Right now I use 1500 too which is mostly too small. I will fix this soon.


KNERD

unread,
Nov 29, 2018, 8:10:55 PM11/29/18
to Homer Capture Server. sipcapture.org
Thanks a lot for both of your replies. This helps a lot

It is just to me, the documentation appear to not be clear on some things. Some of the confusion is calling some of the applications such as Kamailio , and OpenSIPS Capture Agents all the while putting them on the installation with Homer. To me, it makes me think since it is on the same machine, it is acting as a capture agent in which I could indeed send RTCP-XR reports directly the the Homer system.

I was messing around with one case earlier after reading these messages. Since Asterisk has a HEP collector on it now, I pointed it to my Homer machine, and then using a Yealink telephone which has RTCP-XR client on it, I also pointed it to the Asterisk machine to port 5060. .Would that be  appropriate to do that? How would I know if it was functioning correct? From the PDF in the link I posted in my first message on page 19, there is a screen capture of Homer in which it it being pointed out being RTCP-XR reports. Should it stiill look like that? What about in the database? Will it still be stored in "rtcp_capture_all.xxxx"??

Thanks again, I will give this a further look.



that is RTCP-XR

biegle...@gmail.com

unread,
Nov 30, 2018, 10:25:14 AM11/30/18
to Homer Capture Server. sipcapture.org
The homer project has a long history and a lot of cool stuff was added from time to time.
In some parts the documentation is like a puzzle. You have to lookup things here, in the github wiki and github issues.
Some time ago I was exactly in the same spot like you but trust me the most information are there.
Just search smartly and you will find them. The best way would be to contribute your findings back and improve the wiki :)

To your questions. First of all you need to know that there are RFC 3611 RTCP XR reports and RFC 6035 RTCP-XR reports inside SIP PUBLISH.
Google them both please. This thread is about RTCP-XR reports inside SIP PUBLISH.
You can spot them inside the SIP Body or look for the SIP header with Content-Type: application/vq-rtcpxr.

Now forget everything you did in the past and start with a fresh mind ;) I will tell you what you need to do.
Today during lunch I was in the mood to write a tiny collector for SIP PUBLISH RTCP-XR messages. Check it out:
https://github.com/negbie/heplify-xrcollector

Next you need heplify-server as a capture server. Since I'm not a big fan of installer scripts I would recommend you this guide:
https://github.com/sipcapture/heplify-server/tree/master/example/install/homer5

Point your phones to the heplify-xrcollector listen address (default port 9064) and it should send the reports to heplify-server.

KNERD

unread,
Nov 30, 2018, 4:05:30 PM11/30/18
to Homer Capture Server. sipcapture.org
That is really kind of you doing all that work for that. I would be more than happy to contribute to the wiki when I have better understanding of this.
I just started fooling around with it, when I just ran into an issue.

I would of posted it on github, but maybe I am doing something wrong

I tried the second example you have listed

# Listen on 0.0.0.0:9066 for vq-rtcpxr and send it as HEP to 192.168.1.10:9060
./heplify-xrcollector -xs :9066 -hs 192.168.1.10:9060


I am getting a message which states , ": bind: cannot assign requested address"


I am pointing it to a public IP address if that makes any difference.

Thanks again!

KNERD

unread,
Nov 30, 2018, 4:11:58 PM11/30/18
to Homer Capture Server. sipcapture.org
Update: I just tried a LAN address and getting the same response.


2018/11/30 15:09:56 listen udp 192.168.1.1:9060: bind: cannot assign requested address

I tried running as a user, and as root.

biegle...@gmail.com

unread,
Nov 30, 2018, 5:26:21 PM11/30/18
to Homer Capture Server. sipcapture.org
Hi,

I had an copy paste issue. And used the hepserver address as collector address. Fixed it and uploaded a new binary under the same version. Please download it again.

biegle...@gmail.com

unread,
Dec 1, 2018, 8:32:17 AM12/1/18
to Homer Capture Server. sipcapture.org
Hi,

I've updated the docker container too. So, to speed up things you could try this one:

If you have Go installed and the heplify-server + gui container is running you could test it too.
Just go into the heplify-xrcollector folder and run "go test".

In the homer gui you should see this:

Screenshot_2018-12-01 HOMER 5 0 5.png



And Grafana should show you this:

Screenshot_2018-12-01 Grafana - Host Overview.png


Trent Creekmore

unread,
Dec 1, 2018, 2:02:49 PM12/1/18
to homer-...@googlegroups.com
Thank you for the quick fix.

I am trying it out now.

I can see the logs the telephone is sending reports to heplify-xrcollecto, and it getting them.


2018/12/01 12:54:21 Sent following RTCP-XR PUBLISH packet with 318 bytes:
SIP/2.0 200 OK
Via: SIP/2.0/UDP 10.8.0.10:5060;branch=z9hG4bK919994501
From: "404" <sip:4...@10.8.0.1:5060>;tag=3018439844
To: <sip:Ho...@192.168.1.141:9066>;tag=Fg2Uy0r7geBQF
Contact: <sip:4...@10.8.0.10:5060>
Call-ID: 0_2943...@10.8.0.10
Cseq: 1 PUBLISH
User-Agent: heplify-xrcollector
Content-Length: 0


However, I am not sure if the logs was suppose to include something being sent to Homer collector out port 9060 as I am not seeing anything in the log on the screen to indicate this.
I then visited the Homer I have set up, and not seeing the call examples such as above,

To verify, I used tcpdump to verify if the heplify-xrcollector was actually sending anything to Homer. I am not getting anything from it from observing tcpdump.

It is going from LAN to WAN if that makes any difference.

Am I doing something wrong?







On Fri, Nov 30, 2018 at 4:26 PM <biegle...@gmail.com> wrote:
Hi,

I had an copy paste issue. And used the hepserver address as collector address. Fixed it and uploaded a new binary under the same version. Please download it again.

--

biegle...@gmail.com

unread,
Dec 1, 2018, 6:06:41 PM12/1/18
to Homer Capture Server. sipcapture.org
The handling is quite simple. It checks if SIP ContentType is "application/vq-rtcpxr". If so it sends a SIP/2.0 200 OK back to the phone and forwards the original SIP PUBLISH
to the capture server. Since you see that a SIP/2.0 200 OK was sent to your phone the original message should be sent to heplify-server. When I run the tests, tcpdump shows:

sudo tcpdump -i any port 9060 -nn
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
23:57:38.554037 IP 127.0.0.1.46519 > 127.0.0.1.9060: UDP, length 1404
23:57:38.554352 IP 127.0.0.1.46519 > 127.0.0.1.9060: UDP, length 1404
23:57:38.554528 IP 127.0.0.1.46519 > 127.0.0.1.9060: UDP, length 1404
23:57:38.554701 IP 127.0.0.1.46519 > 127.0.0.1.9060: UDP, length 1404
23:57:38.555077 IP 127.0.0.1.46519 > 127.0.0.1.9060: UDP, length 1404

This is only localhost but going from LAN to WAN shouldn't make any difference.

biegle...@gmail.com

unread,
Dec 2, 2018, 8:18:41 AM12/2/18
to Homer Capture Server. sipcapture.org
Since I can't reproduce your issue I made a new docker-compose file which includes heplify-xrcollector into the stack:

I wrote a simple test program which sends following packets multiple times to socket :9064

    invite  = "INVITE sip:87.103.120.253:9070 SIP/2.0\r\n" +
        "Via: SIP/2.0/UDP 10.0.3.13:3072;branch=z9hG4bK-2atcagwblzv2;rport\r\n" +
        "From: <sip:50...@10.0.3.252>;tag=2ygtpy7bgk\r\n" +
        "To: <sip:87.103.120.253:9070>\r\n" +
        "Call-ID: 825962570309-8ds5sl3mca99\r\n" +
        "CSeq: 1 INVITE\r\n" +
        "Max-Forwards: 70\r\n" +
        "Contact: <sip:50...@10.0.3.13:3072;line=swv8im3f>;reg-id=1\r\n" +
        "User-Agent: snom821/873_19_20130321\r\n\r\n"

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

Now search for the INVITE Call-ID and you should see multiple times the INVITE and under the QOS tab your RTCP-XR stats. Keep in mind the PUBLISH message is useless and you won't find it anywhere but logs.

KNERD

unread,
Dec 3, 2018, 8:09:17 PM12/3/18
to Homer Capture Server. sipcapture.org
I went ahead set up a couple of virtual machine locally.


One with the Heplify Collector.

I entered this:

./heplify-xrcollector -xs :9066  -hs  192.168.1.101:9060


On the other unit, which you see the LAN IP address above, with the installation using your guide you linked above ( https://github.com/sipcapture/heplify-server/tree/master/example/install/homer5 )

According to tcpdump, this is what the unit at 192.168.1.101 is getting:



17:15:11.776836 IP (tos 0x0, ttl 64, id 30033, offset 0, flags [+], proto UDP (17), length 1500)
    debian.lan.56744 > home-heplify.lan.9060: UDP, bad length 1918 > 1472


I guess this goes back to what you mentioned before about changing the database field length.

I changed message length from 1500 to 3000. I am now seeing information flowing from the heplify-xrcollector  to the Homer Kamailio collector I have already set up.

However, I am not seeing any data appearing in Homer. from the test calls. Should I be using Heplify server instead?





On Sunday, December 2, 2018 at 7:18:41 AM UTC-6, biegle...@gmail.com wrote:
Since I can't reproduce your issue I made a new docker-compose file which includes heplify-xrcollector into the stack:

I wrote a simple test program which sends following packets multiple times to socket :9064

    invite  = "INVITE sip:87.103.120.253:9070 SIP/2.0\r\n" +
        "Via: SIP/2.0/UDP 10.0.3.13:3072;branch=z9hG4bK-2atcagwblzv2;rport\r\n" +
        "From: <sip:...@10.0.3.252>;tag=2ygtpy7bgk\r\n" +

        "To: <sip:87.103.120.253:9070>\r\n" +
        "Call-ID: 825962570309-8ds5sl3mca99\r\n" +
        "CSeq: 1 INVITE\r\n" +
        "Max-Forwards: 70\r\n" +
        "Contact: <sip:50...@10.0.3.13:3072;line=swv8im3f>;reg-id=1\r\n" +
        "User-Agent: snom821/873_19_20130321\r\n\r\n"

    publish = "PUBLISH sip:87.103.120.253:9070 SIP/2.0\r\n" +
        "Via: SIP/2.0/UDP 10.0.3.13:3072;branch=z9hG4bK-2atcagwblzv2;rport\r\n" +
        "From: <sip:...@10.0.3.252>;tag=2ygtpy7bgk\r\n" +

        "To: <sip:87.103.120.253:9070>\r\n" +
        "Call-ID: 89596257635d-ip18q8n0lp1b\r\n" +
        "CSeq: 2 PUBLISH\r\n" +
        "Max-Forwards: 70\r\n" +
        "Contact: <sip:50...@10.0.3.13:3072;line=swv8im3f>;reg-id=1\r\n" +
        "User-Agent: snom821/873_19_20130321\r\n" +
        "Event: vq-rtcpxr\r\n" +
        "Accept: application/sdp, message/sipfrag\r\n" +
        "Content-Type: application/vq-rtcpxr\r\n" +
        "Content-Length: 804\r\n\r\n" +
        "VQSessionReport: CallTerm\r\n" +
        "CallID:825962570309-8ds5sl3mca99\r\n" +
        "LocalID:<sip:...@10.0.3.252>\r\n" +
        "RemoteID:<sip...@10.0.3.252;user=phone>\r\n" +
        "OrigID:<sip:...@10.0.3.252>\r\n" +

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

KNERD

unread,
Dec 3, 2018, 8:37:36 PM12/3/18
to Homer Capture Server. sipcapture.org
I went ahead and tried pointing the data to report the to LAN bases heplify-server I set up, and getting debian.lan.45539 > home-heplify.lan.9060: UDP, bad length 1917 > 1472

I am not seeing the report_capture table in the homer_data database like I am seeing in the Homer Kamailio version.

Should I be editing another table?


Thanks again!


On Sunday, December 2, 2018 at 7:18:41 AM UTC-6, biegle...@gmail.com wrote:
Since I can't reproduce your issue I made a new docker-compose file which includes heplify-xrcollector into the stack:

I wrote a simple test program which sends following packets multiple times to socket :9064

    invite  = "INVITE sip:87.103.120.253:9070 SIP/2.0\r\n" +
        "Via: SIP/2.0/UDP 10.0.3.13:3072;branch=z9hG4bK-2atcagwblzv2;rport\r\n" +
        "From: <sip:...@10.0.3.252>;tag=2ygtpy7bgk\r\n" +

        "To: <sip:87.103.120.253:9070>\r\n" +
        "Call-ID: 825962570309-8ds5sl3mca99\r\n" +
        "CSeq: 1 INVITE\r\n" +
        "Max-Forwards: 70\r\n" +
        "Contact: <sip:50...@10.0.3.13:3072;line=swv8im3f>;reg-id=1\r\n" +
        "User-Agent: snom821/873_19_20130321\r\n\r\n"

    publish = "PUBLISH sip:87.103.120.253:9070 SIP/2.0\r\n" +
        "Via: SIP/2.0/UDP 10.0.3.13:3072;branch=z9hG4bK-2atcagwblzv2;rport\r\n" +
        "From: <sip:...@10.0.3.252>;tag=2ygtpy7bgk\r\n" +

        "To: <sip:87.103.120.253:9070>\r\n" +
        "Call-ID: 89596257635d-ip18q8n0lp1b\r\n" +
        "CSeq: 2 PUBLISH\r\n" +
        "Max-Forwards: 70\r\n" +
        "Contact: <sip:50...@10.0.3.13:3072;line=swv8im3f>;reg-id=1\r\n" +
        "User-Agent: snom821/873_19_20130321\r\n" +
        "Event: vq-rtcpxr\r\n" +
        "Accept: application/sdp, message/sipfrag\r\n" +
        "Content-Type: application/vq-rtcpxr\r\n" +
        "Content-Length: 804\r\n\r\n" +
        "VQSessionReport: CallTerm\r\n" +
        "CallID:825962570309-8ds5sl3mca99\r\n" +
        "LocalID:<sip:...@10.0.3.252>\r\n" +
        "RemoteID:<sip...@10.0.3.252;user=phone>\r\n" +
        "OrigID:<sip:...@10.0.3.252>\r\n" +

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

KNERD

unread,
Dec 3, 2018, 11:13:24 PM12/3/18
to Homer Capture Server. sipcapture.org
I just test this also, and confirmed docker-pr is listening on those ports mentioned in the readme. I had the telephone sending the reports to port 9064,


Sockets

  • HEP packet input :9060
  • RTCP-XR phone input :9064


This is the same result as the others, Homer is just not reporting anything.

Am I doing this correctly?






On Sunday, December 2, 2018 at 7:18:41 AM UTC-6, biegle...@gmail.com wrote:
Since I can't reproduce your issue I made a new docker-compose file which includes heplify-xrcollector into the stack:

I wrote a simple test program which sends following packets multiple times to socket :9064

    invite  = "INVITE sip:87.103.120.253:9070 SIP/2.0\r\n" +
        "Via: SIP/2.0/UDP 10.0.3.13:3072;branch=z9hG4bK-2atcagwblzv2;rport\r\n" +
        "From: <sip:...@10.0.3.252>;tag=2ygtpy7bgk\r\n" +

        "To: <sip:87.103.120.253:9070>\r\n" +
        "Call-ID: 825962570309-8ds5sl3mca99\r\n" +
        "CSeq: 1 INVITE\r\n" +
        "Max-Forwards: 70\r\n" +
        "Contact: <sip:50...@10.0.3.13:3072;line=swv8im3f>;reg-id=1\r\n" +
        "User-Agent: snom821/873_19_20130321\r\n\r\n"

    publish = "PUBLISH sip:87.103.120.253:9070 SIP/2.0\r\n" +
        "Via: SIP/2.0/UDP 10.0.3.13:3072;branch=z9hG4bK-2atcagwblzv2;rport\r\n" +
        "From: <sip:...@10.0.3.252>;tag=2ygtpy7bgk\r\n" +

        "To: <sip:87.103.120.253:9070>\r\n" +
        "Call-ID: 89596257635d-ip18q8n0lp1b\r\n" +
        "CSeq: 2 PUBLISH\r\n" +
        "Max-Forwards: 70\r\n" +
        "Contact: <sip:50...@10.0.3.13:3072;line=swv8im3f>;reg-id=1\r\n" +
        "User-Agent: snom821/873_19_20130321\r\n" +
        "Event: vq-rtcpxr\r\n" +
        "Accept: application/sdp, message/sipfrag\r\n" +
        "Content-Type: application/vq-rtcpxr\r\n" +
        "Content-Length: 804\r\n\r\n" +
        "VQSessionReport: CallTerm\r\n" +
        "CallID:825962570309-8ds5sl3mca99\r\n" +
        "LocalID:<sip:...@10.0.3.252>\r\n" +
        "RemoteID:<sip...@10.0.3.252;user=phone>\r\n" +
        "OrigID:<sip:...@10.0.3.252>\r\n" +

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

biegle...@gmail.com

unread,
Dec 4, 2018, 6:58:58 AM12/4/18
to Homer Capture Server. sipcapture.org
I would recommend you to avoid lot's of cognitive context switches and focus on one stack. Since docker containers offers most reproducibility I would suggest to use them first.

So have following sockets available:

:9060
:9064

When your phones send reports to :9064 do you see something from heplify-xrcollector in the docker console output? You should see something like

Sent back OK with 342 bytes to 127.0.0.1:36641

This means that we received a valid SIP PUBLISH with application/vq-rtcpxr and sent a OK back to the phone. At the same time the HEP encapsulated SIP PUBLISH should
be sent the heplify-server and stored inside report_capture_all_yyyymmdd. Please exec into the database container like

docker exec -it db bash

Run mysql and
select * from homer_data.report_capture_all_20181204;

You should see something.

KNERD

unread,
Dec 4, 2018, 4:27:26 PM12/4/18
to Homer Capture Server. sipcapture.org
I did as you instructed.

I do see the output you mentioned:

2018/12/04 21:12:43 Sent back OK with 319 bytes to 192.168.1.226:5060


However, the database remains empty, and I think I see why with this output from the docker console output.

2018-12-04 21:17:30 13 [Warning] Aborted connection 13 to db: 'homer_data' user: 'root' host: '172.21.0.8' (Got timeout reading communication packets)

I did just clone all the containers yesterday evening into a new directory.

biegle...@gmail.com

unread,
Dec 5, 2018, 5:30:53 AM12/5/18
to Homer Capture Server. sipcapture.org
Since I know that all containers for the provided homer5 docker-compose file are working as they should it must be something with your setup. Maybe you have used the homer7 docker-compose file before and you already have a db container and when you try to run the homer5 docker-compose file it uses the wrong db container. I can't tell you this exactly and it's up to you to resolve this. Since you are a beginner I would recommend you to use something like portainer for container management.

Anyway, now you have all the information you need to know to make this work in this thread. Good luck and have fun!

KNERD

unread,
Dec 5, 2018, 2:42:57 PM12/5/18
to Homer Capture Server. sipcapture.org
I am sorry, but I have to disagree with you on it working.

I created virtual machine with Debian 9.x installed to make sure I had a clean environment when doing this again.

Installed Docker CE and Docker Composer as directed on the Docker site

https://docs.docker.com/install/linux/docker-ce/debian/#install-docker-ce-1

https://docs.docker.com/compose/install/#install-compose

Then cloned all the docker images with :

git clone https://github.com/sipcapture/homer-docker.git

Went into the directory /homer-docker/heplify-server/hom5-hep-prom-graf

Executed  "docker-compose up" as in the documentation,

Pointed the telephone to the IP address of the virtual machine on the telephone, then made the test call and see:


heplify-xrcollector    | 2018/12/05 19:22:15 Received packet with 1748 bytes from 192.168.1.226:5060
heplify-xrcollector    | 2018/12/05 19:22:15 Sent back OK with 316 bytes to 192.168.1.226:5060


So then I go check the database:


# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 83
Server version: 10.3.11-MariaDB-1:10.3.11+maria~bionic mariadb.org binary distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> select * from homer_data.report_capture_all_20181205;
Empty set (0.002 sec)


Then moments later in the docker output I am seeing, yet again:

db                     | 2018-12-05 19:33:43 13 [Warning] Aborted connection 13 to db: 'homer_data' user: 'root' host: '172.18.0.8' (Got timeout reading communication packets)




So either, I am doing something wrong, or there is a problem with the Docker container.

Thanks again!

Lorenzo Mangani

unread,
Dec 5, 2018, 3:12:27 PM12/5/18
to homer-...@googlegroups.com
Not all versions of Docker are equal so you might have picked an odd release - pull any that's certified for Kubernetes, for instance.
Now, the issue you're having involves communication towards the DB container, rather than any of our software per-se.
I would suggest investigating this in more depth and/or running some standard HEP scenarios through the box to make sure it can read/write data to begin with.

Hope this helps,

Kind Regards,

Lorenzo Mangani

CONFIDENTIALITY NOTICE: This e-mail message, including any attachments, is for the sole use of the intended recipient(s) and may contain confidential or legally privileged information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of this original message. 

biegle...@gmail.com

unread,
Dec 5, 2018, 4:38:31 PM12/5/18
to Homer Capture Server. sipcapture.org
This is what I did.I created a one-click docker digital ocean droplet (docker-s-1vcpu-1gb-fra1-01). You will get a mail with the IP + password. SSH into and change the
password and do following:

apt update
apt upgrade
cd homer-docker/heplify-server/hom5-hep-prom-graf/
docker-compose up

.....
heplify-server         | 2018/12/05 21:14:41.422881 rotator.go:266: INFO start creating tables (2018-12-05 21:14:41.422850987 +0000 UTC m=+10.232908347)
heplify-server         | [DEPRECATED] github.com/gobuffalo/packr#Box.String has been deprecated.
heplify-server         |     Use github.com/gobuffalo/packr#Box.FindString instead.
heplify-server         | 2018/12/05 21:14:47.267489 rotator.go:279: INFO end creating tables (2018-12-05 21:14:47.267438136 +0000 UTC m=+16.077495521)
heplify-server         | 2018/12/05 21:14:47.268633 rotator.go:234: INFO schedule daily rotate job at 03:30:00
heplify-server         | 2018/12/05 21:14:47.269079 rotator.go:248: INFO schedule daily drop job at 03:45:00
heplify-server         | 2018/12/05 21:14:47.272838 sqlhomer5.go:137: INFO mysql connection established

So all containers went up fine and are running. To be able to test it wrote a test program. I uploaded it under releases.
It just sends a PUBLISH and a dummy INVITE with a matching Call-ID so you can search it.
Open a new ssh session in a new window to the digital ocean droplet and download it with:

chmod +x heplify-xrcollector-test

now run it on the same host like the containers with:
./heplify-xrcollector-test

in the other window you will see this in the docker console
heplify-xrcollector    | 2018/12/05 21:15:29 Received packet with 1274 bytes from 172.18.0.21:33953
heplify-xrcollector    | 2018/12/05 21:15:29 Sent back OK with 342 bytes to 172.18.0.21:33953
heplify-xrcollector    | 2018/12/05 21:15:30 Received packet with 1274 bytes from 172.18.0.21:33953
heplify-xrcollector    | 2018/12/05 21:15:30 Sent back OK with 342 bytes to 172.18.0.21:33953
heplify-xrcollector    | 2018/12/05 21:15:30 Received packet with 1274 bytes from 172.18.0.21:33953
heplify-xrcollector    | 2018/12/05 21:15:30 Sent back OK with 342 bytes to 172.18.0.21:33953
....
20 times received and sent. Allow port 9080/tcp in ufw and go to your droplet ip:9080 to see the homer gui and search the last 10 minutes. This is what I see

Screenshot_2018-12-05 HOMER 5 0 5(1).png


20 times my dummy INVITES (just to have something with the same call-id like in the rtcp-xr report to be able to search for it) and the QOS data.
More reproducibility is not possible and I'm out ;)

Trent Creekmore

unread,
Dec 5, 2018, 6:54:11 PM12/5/18
to homer-...@googlegroups.com
Can you state which OS, and version you used?

I have now tried this setup on with three different systems using Debian 9.x with Docker CE from the Docker repository, and docker-composer from their git hub site. I have gotten the same result in every instance.

In addition, how was Docker, and Docker composer installed?


Thanks again, and regards.




KNERD

unread,
Dec 6, 2018, 5:15:52 PM12/6/18
to Homer Capture Server. sipcapture.org
Then maybe it should be indicated in the documentation which version of docker the container (as well as docker-compose) was built with, and tested running on so we all do not have to play as many guessing games on what the problem is when we encounter a problem such as I have,

I Will give the HEP testing a run and report my results back.

Thank you

KNERD

unread,
Dec 7, 2018, 5:59:20 PM12/7/18
to Homer Capture Server. sipcapture.org
I created yet another new cleanr virtual machine and gave the heplify-xrcollector-test a run.

I got the exact same results you did, and they appear in Homer.

However, I am still seeing that database connect error (last line):


heplify-xrcollector    | 2018/12/07 22:34:15 Sent back OK with 342 bytes to 172.18.0.1:41705
heplify-xrcollector    | 2018/12/07 22:34:15 Received packet with 1274 bytes from 172.18.0.1:41705
heplify-xrcollector    | 2018/12/07 22:34:15 Sent back OK with 342 bytes to 172.18.0.1:41705
heplify-xrcollector    | 2018/12/07 22:34:15 Received packet with 1274 bytes from 172.18.0.1:41705
heplify-xrcollector    | 2018/12/07 22:34:15 Sent back OK with 342 bytes to 172.18.0.1:41705
heplify-server         | 2018/12/07 22:35:12.633159 rotator.go:279: INFO end creating tables (2018-12-07 22:35:12.633131368 +0000                                                            UTC m=+156.311568884)
heplify-server         | 2018/12/07 22:35:12.633944 rotator.go:234: INFO schedule daily rotate job at 03:30:00
heplify-server         | 2018/12/07 22:35:12.635271 rotator.go:248: INFO schedule daily drop job at 03:45:00
heplify-server         | 2018/12/07 22:35:12.638561 sqlhomer5.go:137: INFO mysql connection established
heplify-server         | 2018/12/07 22:37:36.380501 server.go:399: INFO stats since last 5 minutes. PPS: 0, HEP: 32, Duplicate: 0,                                                            Error: 0
alertmanager           | level=error ts=2018-12-07T22:40:29.823225271Z caller=notify.go:332 component=dispatcher msg="Error on not                                                           ify" err="dial tcp 127.0.0.1:25: connect: connection refused"
alertmanager           | level=error ts=2018-12-07T22:40:29.824244935Z caller=dispatch.go:280 component=dispatcher msg="Notify for                                                            alerts failed" num_alerts=1 err="dial tcp 127.0.0.1:25: connect: connection refused"
heplify-server         | 2018/12/07 22:42:36.380997 server.go:399: INFO stats since last 5 minutes. PPS: 0, HEP: 0, Duplicate: 0,                                                            Error: 0
db                     | 2018-12-07 22:45:16 13 [Warning] Aborted connection 13 to db: 'homer_data' user: 'root' host: '172.18.0.8                                                           ' (Got timeout reading communication packets)


Now how is the related? The result from the heplify-xrcollector-test appear in Homer, but the testing I do from a Yealink telephone is not appearing.

Anyway to trouble shoot why?

KNERD

unread,
Dec 11, 2018, 4:20:14 PM12/11/18
to Homer Capture Server. sipcapture.org

The only Docker apps I see which are certified for Kubernetes is for Windows, and Macintosh OS.I don't have a Macintosh so I went with the Windows version.

It seems it is having trouble functioning on Windows, as it requires you to share the C drive with the Docker.in which you get a popup from Docker asking if you want to share. However, by the time the popup request appears, the container is already reporting an error about this. I have tried stopping, and restarting it to test again with same result. While it does go on to state starting collector, I am seeing no HEP , nor RTCP-XR data being received.

Back to Docker on Linux. I am seeing HEP data being collected, and appearing in the database which means there is some sort of database connection going on, but still no RTCP-XR publish coming from the Yealink telephones appearing in the database.


Any more ideas?





On Wednesday, December 5, 2018 at 2:12:27 PM UTC-6, Lorenzo Mangani wrote:

KNERD

unread,
Dec 13, 2018, 1:35:10 PM12/13/18
to Homer Capture Server. sipcapture.org
Have you actually tested this empirically instead of just a test application?

Since your heplify-xrcollector-test had a Snom as listed agent, I plugged in a Snom phone, got the newest firmware, then pointed it to the collector. I can see the heplify-xrcollector  reporting a response , but yet again in the database: nothing.


What else can I check?

Thanks



On Wednesday, December 5, 2018 at 3:38:31 PM UTC-6, biegle...@gmail.com wrote:

KNERD

unread,
Dec 13, 2018, 3:00:55 PM12/13/18
to Homer Capture Server. sipcapture.org
Hello again.

I did set up a new a new system on a Public IP address, and now can confirm the database (select * from homer_data.report_capture_all_20181213;) is being populated with data from both the Yealink, and the Snom telephones.

However, nothing is appearing in Homer at all.

Now why would this be the case since the heplify-xrcollector-test data is showing up?






On Wednesday, December 5, 2018 at 3:38:31 PM UTC-6, biegle...@gmail.com wrote:
Reply all
Reply to author
Forward
Message has been deleted
0 new messages