Closed JonConnor closed 6 years ago
Hi,
Those are converted to timeseries in HEPlify-Server
since there is really no need to use those messages for anything once the metrics and tags are extracted.
@lmangani I guess his problem is that kamailio stores SIP-PUBLISH messages with RTCPXR inside the report_capture table: link
Since the API will look into that table: link
It will find nothing because heplify-server will insert every publish message into the sip_capturerest* table. So to make heplify-server fully h5 compatible I should check every publish content-type for vq-rtcpxr and insert that msg into the report table.
@JonConnor I pushed some changes. Please update the homer-webapp and heplify-server container. It would be nice to get some feedback.
@JonConnor And keep in mind that it's a good habit to give open source projects you use at least a github star!
All those issues and not even a star??? :) shame on you @JonConnor hehe
@lmangani since you are my gif superstar is there one like working for github stars :laughing:
We need a trigger integration for Github issues that checks if the user starred the project first :)
This!
Damit its early monday and things get already out of control :rofl:
Shame! Shame! 🔔 My bad, if I could give it 5 stars I would ;)
@negbie Will pull the changes tonight and let you know. Thanks!
@negbie pulled the docker image and restarted, but still didn't see any PUBLISH show up in the homer GUI when using captagent to send hep packets to port 9060. looking to see if there are any logs that may be telling .. let me know if there's something specific you want me to capture?
You pulled not only the heplify-server but the homer-webapp container too right? Both needs to be updated. When this is the case please exec into the db container and check the report table for the current day. Does the column type has the value 35 or still 1? Since heplify-server puts packets based on the type into the right tables I couldn't use 1 and extended the api logic to query for 1 or 35.
i did a docker-compose pull and then docker-compose up -d. I did see it pull down something new for both heplify-server and homer-webapp.
I'm not sure what to look for when u refer to '35' vs '1'... this is the current table columns:
MariaDB [homer_data]> desc report_capture_all_20180817 ; +------------------+---------------------+------+-----+---------------------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------------+---------------------+------+-----+---------------------+----------------+ | id | bigint(20) unsigned | NO | PRI | NULL | auto_increment | | date | timestamp | NO | PRI | current_timestamp() | | | micro_ts | bigint(18) | NO | | 0 | | | correlation_id | varchar(256) | NO | MUL | | | | source_ip | varchar(60) | NO | | | | | source_port | int(10) | NO | | 0 | | | destination_ip | varchar(60) | NO | | | | | destination_port | int(10) | NO | | 0 | | | proto | int(5) | NO | | 0 | | | family | int(1) | YES | | NULL | | | type | int(5) | NO | | 0 | | | node | varchar(125) | NO | | | | | msg | varchar(1500) | NO | | | | +------------------+---------------------+------+-----+---------------------+----------------+
please let me know if there's something else I'm supposed to be looking for.
oh and there are no records in the reportcapture table.
I mean the value inside the type column. But when your report_capture_all_20180817 table is empty there is nothing to spot ;)
Ok a empty report_capture_all_20180817 table could mean following: Mby you did not pulled the latest version. Or your SIP publish message is missing the Content-Type "application/vq-rtcpxr"
Today I build a new heplify-server container. https://hub.docker.com/r/sipcapture/heplify-server/
Now you will see the version in the first log line and it should be heplify-server 0.951
OK the sip publish does contain these: Event: vq-rtcpxr Content-Type: application/vq-rtcpxr
I will pull the latest docker and re-verify.
docker updated. will double-check the version info. Publish not making it thru, wanted to share the actual PUBLISH message in case there's something throwing off the parsing. sensitive info was removed.
PUBLISH sip:A.B.C.D;user=phone SIP/2.0 Max-Breadth: 60 Via: SIP/2.0/UDP A.B.C.D:5110;branch=z9hG4bK7a39eb0b Max-Forwards: 70 Call-ID: 587d0697-c010fe226fd2787000980080f0808080@KX-TGP600(M) From: sip:+123456789@domain;user=phone;tag=150947209 To: <sip:A.B.C.D;user=phone> CSeq: 1 PUBLISH Allow: INVITE,ACK,CANCEL,BYE,INFO,UPDATE,OPTIONS,MESSAGE,NOTIFY,REFER Event: vq-rtcpxr Content-Type: application/vq-rtcpxr User-Agent: XXXXXXXXXXXX Content-Length: 809
VQSessionReport: CallTerm CallID: 78abdf6d-b710fe22dabc9b71ff970080f0808080@KXXXXXX0(M) LocalID: sip:+1234566749999@domain:5110;user=phone RemoteID: sip:5555555555@domain;user=phone OrigID: sip:+155555555@domain:5110;user=phone LocalAddr: IP=1.1.1.1 PORT=56904 SSRC=0 RemoteAddr: IP=2.2.2.2 PORT=5159 SSRC=0 LocalGroupID: RemoteGroupID: LocalMetrics: TimeStamps: START=2018-08-13T20:36:11Z STOP=2018-08-13T20:36:16Z SessionDesc: PT=0 PD=PCMU SR=8000 PPS=50 FD=20 FO=80 FPP=2 FMTP=0 PLC=2 SSUP=0 JitterBuffer: JBA=3 JBR=12 JBN=10 JBM=150 JBX=200 PacketLoss: NLR=0 JDR=0 BurstGapLoss: BLD=0 BD=0 GLD=0 GD=4860 GMIN=16 Delay: RTD=4409885 ESD=85 OWD=21964 Signal: SL=-13 NL=-46 RERL=40 QualityEst: RLQ=90 EXTRI=127 MOSLQ=4.3 MOSCQ=4.3
Publish looks normal. Please check the first log line from heplify-server. Do you have version 0.951?
help on where that log exists? was trying to find it on my own sorry ... looking around in the container but don't see where it is.
docker logs heplify-server
should give you:
INFO start heplify-server 0.951 with config.HeplifyServer{HEPAddr:"0.0.0.0:9060", ESAddr:"", ESDiscovery:true, PipeAddr:"", PipeFilter:[]string(nil), MQDriver:"", MQAddr:"", MQTopic:"", PromAddr:"0.0.0.0:9096", PromTargetIP:"", PromTargetName:"", HoraclifixStats:false, RTPAgentStats:false, DBShema:"homer5", DBDriver:"mysql", DBAddr:"db:3306", DBUser:"root", DBPass:"", DBDataTable:"homer_data", DBConfTable:"homer_configuration", DBTableSpace:"", DBBulk:200, DBTimer:2, DBRotate:true, DBPartLog:"6h", DBPartSip:"2h", DBPartQos:"12h", DBDropDays:4, DBDropOnStart:false, Dedup:false, DiscardMethod:[]string(nil), AlegIDs:[]string(nil), LogDbg:"", LogLvl:"info", LogStd:true, Config:"./heplify-server.toml", Version:false}
On docker heplify-server will log to stdout. So you don't need to exec into the container. Just paste docker logs heplify-server inside your terminal.
INFO start heplify-server 0.951 with config.HeplifyServer
Ok and do you still have nothing in the report table?
actually entries are in the current day's table now, but i don't see it in homer-gui.
Ok thats good. Notice that the CallID in the SIP message differs the one in the SIP Body
Call-ID: 587d0697-c010fe226fd2787000980080f0808080@KX-TGP600(M) CallID: 78abdf6d-b710fe22dabc9b71ff970080f0808080@KXXXXXX0(M)
I will store the CallID from the SIP Body (the rtcpxr report) into the table.
ya that was a manual edit when i posted it here. It actually matches.
I guess I know what could be wrong. I expect the CallID in this format CallID:abc but you have CallID: abc
Could you check if you really have this whitespace in between?
Ya there's a white space between CallID: and the actual value, as below:
VQSessionReport: CallTerm CallID: 78abdf6d-b710fe22dabc9b71ff970080f0808080@KX-TGP600(M)
Ok thats likely the issue. Give me some minutes to fix this.
New image should be ready in 10 min. Docker hub is a bit slow.
Ok docker hub has finished the build. Version should be 0.952.
heplify-server 0.952
but still not showing :/
What value do you see in the report table for the column 'type'?
MariaDB [homer_data]> select type from report_capture_all_20180816 ; +------+ | type | +------+ | 35 | | 35 | | 35 | | 35 | | 35 | | 35 | | 35 | | 35 | | 35 | | 35 | | 35 | | 35 |
Ok let's put the engineers hat on and first invest half an hour to write a tool instead simply google for a example pcap :laughing:
https://github.com/negbie/edcap
Let me build a basic publish rtcpxr pcap to test things out ;)
Ok back at home and tried following prepared pcap: edcap_out.zip
It has some SIP, RTCP and SIP-PUBLISH RTCP-XR. So I extracted it and send it with heplify to heplify-server
./heplify -rf edcap_out.pcap -pr 4000-50000 -e -lp 10 -l debug
-lp 10 means it will do it 10 times to get some more packets to display. Now when I go into the GUI I can see RTCP+RTCP-XR graph's.
So I have to say I cannot reproduce your issue right now. Please test it like I explained above.
tried the pcap. Added the flag -hs heplifyserver:9060 at the end to send it to the heplify-server. However not seeing the PUBLISH nor the INVITE that was in the pcap. Tried it from one of my other servers that have heplify client running and sending traffic, so i'm sure the ip connectivty is good. Will continue to look if its something I'm doing wrong on my side.
Don't forget the portrange flag because the packets inside the pcap have non standard sip portrange. The other thing is you said you see no PUBLISH. That is ok. I just store it inside the report table and not the sip table. So it's just for the stats. But you should see the SIP messages and the rtcp-xr chart. Please try with
./heplify -rf edcap_out.pcap -pr 4000-50000 -e -lp 10 -l debug -hs heplifyserver:9060
@JonConnor should buy @negbie a dinner or two? #DONATE
When you need the PUBLISH too I have to change some lines and store it into the sip_capture table. But mostly the only interesting part from those messages are the stats.
@lmangani yeah I probably spent to much time on this ;)
So since it's working in general I close this here.
thanks for the clarification. I don't see the data even in the rtcp metrics but seems the issue may be unique to me or my setup. will troubleshoot and update if i find anything interesting.
will definitely send at least a few beers your way for all the help! Thanks again.
@JonConnor Did you try it with the provided pcap? With that you should see rtcp-xr stats. I freshly pulled the images and used heplify to ship it.
ya i did try that but didn't see anything in the graphs. Heplify-server does push the publish message to Elasticsearch so I know it's receiving it. I'll continue to dig around.
Mby a timezone thing? Did you try it with the today option from the time panel?
i read the past issue on this similar topic but I didn't follow the expected behavior. I notice in my setup when I use captagent to forward SIP-PUBLISH with rtcp-xr stats to the Homer5 backend, the SIP PUBLISH messages are stored and displayed.
when i use captagent to send the same to the heplify-server docker instance (port 9060), the publish does not show up in the Homer5 gui instance of that docker system. Also tried using heplify to send the PUBLISH to heplify-server and no luck.
Just wanted to confirm if this is the expected behavior and would possibly be addressed as part of Homer7.