sipcapture / homer-ui Goto Github PK
View Code? Open in Web Editor NEWHOMER Front-End Application (UI)
Home Page: http://sipcapture.org
HOMER Front-End Application (UI)
Home Page: http://sipcapture.org
Adding an index on the method column would speed up search for error code data.
Hello,
I just installed Homer5, but can't see charts / stats
https://github.com/sipcapture/homer/wiki/FAQ didn't help much, since there is no such parameter as MODULES
Webhomer is working, but i see no Charts/Stats
Modules are off by default. To enable, switch parameter MODULES to value 1
in configuration.php - Also make sure you have "allow_url_fopen = ON" in php.ini
Hi,
when I want to see the RTCP/reports in Home UI, I seen nothing, is blank.
I have a row of this call in rtcp_capture mysql table.
INSERT INTO `rtcp_capture` (`id`, `date`, `micro_ts`, `correlation_id`, `source_ip`, `source_port`, `destination_ip`, `destination_port`, `proto`, `family`, `type`, `node`, `msg`) VALUES
(262651, '2015-08-27 13:08:34', 1440680914382211, '8d19ab86-c75f-1233-e598-d4ae52736d4', '*********', 56181, '*********', 18217, 1, 2, 1, 'homer01:5', '{ "sender_information":{"ntp_timestamp_sec":83886080,"ntp_timestamp_usec":181904128,"octets":39840,"rtp_timestamp":1817755068, "packets":249},"ssrc":545064,"type":200, "report_blocks":[{"source_ssrc":3119410758,"highest_seq_no":1774,"fraction_lost":0,"ia_jitter":4,"packets_lost":0,"lsr":0,"dlsr":0}],"report_count":1,"sdes_ssrc":545064,"sdes_chunk_ssrc":17722465,"sdes_information": [ {"type":1,"text":"laacet-lulectn"}],"sdes_report_count":1}');
the POST request for rtcp in firefox received a 500 error.
POST XHR https://homerdev.hexavoip.fr/api/v1/report/rtcp [HTTP/1.0 500 Internal Server Error 19ms]
Thanks for your help.
Hi,
I am new to Homer .. still looking into how it works. I need some help:
I used Centos7 installer to do my setup .. everything is working fine except I cant see Call QoS on HomerGUI. I can see data is populated in rtcp_capture table but can't find it on GUI:
| 531 | 2017-04-10 02:14:30 | 1491776070769225 | [email protected]:5060 | 111.222.222.222 | 14861 | 113.110.11.113 | 10303 | 1 | 2 | 1 | homer01:0 | { "sender_information":{"ntp_timestamp_sec":3325072860,"ntp_timestamp_usec":2061101508,"octets":55360,"rtp_timestamp":4029052574, "packets":346},"ssrc":420075750,"type":200, "report_blocks":[{"source_ssrc":1296135884,"highest_seq_no":73968,"fraction_lost":0,"ia_jitter":0,"packets_lost":57246,"lsr":818005205,"dlsr":327614}],"report_count":1,"sdes_ssrc":420075750,"sdes_chunk_ssrc":16777216,"sdes_information": [],"sdes_report_count":0} |
| 532 | 2017-04-10 02:14:30 | 1491776070769593 | [email protected]:5060 | 113.110.11.113 | 10303 | 111.222.222.222 | 14861 | 1 | 2 | 1 | homer01:0 | { "ssrc":1296135884,"type":201, "report_blocks":[{"source_ssrc":0,"highest_seq_no":0,"fraction_lost":0,"ia_jitter":0,"packets_lost":1,"lsr":818005232,"dlsr":327548}],"report_count":1,"sdes_ssrc":1296135884,"sdes_chunk_ssrc":16777216,"sdes_information": [],"sdes_report_count":0}
Also, I am getting : "server*CLI> [ERR] protocol_sip.c:133 couldn't parse RTCP to json"
I have seen all related threads but all seems fine .. looks like i am doing something else wrong. If you need anything then let me know.
@zecke in reference to isup_capture could you help form a list of fields + description to implement the ISUP search widget in homer-ui?
Hi guys,
every time I use qick time ranges it feels like the one is missing - "Today"
Is there any reason it is absent or it wasn't created accidentally?
Regards,
Kirill
Why do we have 2 search dashboards?
_1426001444630.json
_1431943495.json
When I am looking at a call graph and I click on a method like invite the new modal opens with no data.
In chrome I see this error.
TypeError: Cannot read property 'id' of undefined
at dialogCtrl.js:73
at I (angular.js:11446)
at angular.js:11532
at k.$eval (angular.js:12556)
at k.$digest (angular.js:12368)
at k.$apply (angular.js:12660)
at h (angular.js:8272)
at x (angular.js:8477)
at XMLHttpRequest.z.onreadystatechange (angular.js:8416)
But If I open the link from the export tabs shared link URL I can see the call-flow.
Am I missing something?
No info for message or details
Works if I use the share URL
This is the link as provided
http://192.168.77.53/share//var/www/html/share/#49dd24f6-9982-4942-9c33-da73f92eaeb8
If I remove "share//var/www/html/" the link works
http://192.168.77.53/share/#49dd24f6-9982-4942-9c33-da73f92eaeb8
Can you please look through the lib
directory and remove any JavaScript that is not used by the project any more? Each of these creates extra effort for packaging, so if any of them can be removed because they were used in the past but not used any more then it helps a lot.
When editing an alias (but applies to anything with status) the checkbox is not enabled. The API works with 0/1 as numbers but the REST query seems to return it as string. I noticed that
<input ng-model="newalias.status" ng-value="true" type="checkbox" ng-init="newalias.status=1" ng-true-value="1" ng-false-value="0">
should be:
...ng-true-value="'1'" ng-false-value="'0'"
to make it a string model. But when doing this the RestApi needs a change too because a status=FALSE will be omitted from the SQL query. I noticed/debugged this introducing a new boolean to the adminalias.
When entering search terms into the boxes in the table header this list is filtered as expected, and also an AJAX request is launched when I press the search button, but no additional data is displayed.
Additionally "source host" and "destination host" columns do not return any search results, when any term is entered into the search field.
We are currently on branch master, commit 0818f7a.
Anything that we can do to help troubleshoot and fix this? We do not know anything about angular.js so we are a little bit confused where to start looking.
Thanks!
Hello
After updating to HOMER 5.0 RC 2 , i tried to enable LDAP , i added the LDAP settings and i was able to login but not able to do any search . it was giving me error at
Error: results.data.data.grp is null session/<@http://192.168.65.14/js/modules/auth/services/authentication.js:74:9
checking the session i found if i use internal login i got
{
"sid": "pp0ibbpjtm0nt9oh8n6u8oqap1",
"auth": "true",
"status": 200,
"data": {
"username": "admin",
"gid": "10",
"grp": "users,admins"
}
}
while using LDAP i got
{
"sid": "7jd7eo8vno64c5g0g2hvgabh95",
"auth": "true",
"status": 200,
"data":
{
"username": null,
"gid": null,
"grp": null
}
}
i did try to change the api/RestApi/Auth.php data so it fill up data from ldap data
if($this->getContainer('auth')->checkSession()) {
$answer['sid'] = session_id();
$answer['auth'] = 'true';
$answer['status'] = 200;
$answer['data']['username'] = $_SESSION['username'];
$answer['data']['gid'] = $_SESSION['gid'];
$answer['data']['grp'] = $_SESSION['grp'];
}
I did the below changes and now it works
if($this->getContainer('auth')->checkSession()) {
$answer['sid'] = session_id();
$answer['auth'] = 'true';
$answer['status'] = 200;
if($_SESSION['username'] == null) {
$answer['data'] = $_SESSION['data'];
}
else {
$answer['data']['username'] = $_SESSION['username'];
$answer['data']['gid'] = $_SESSION['gid'];
$answer['data']['grp'] = $_SESSION['grp'];
}
}
Now the session Rest is working good but still i am not getting any data , i am going to define username and gid and grp in session but i am not sure this si the correct way of fixing it .
Shouldn't both LDAP and Internal save same settings in session ?
TODO: Implement optional RISON url parameters for homer-ui common elements such as range selector and search parameters - Example:
http://127.0.0.1/#/dashboard/home?query=(refresh:'30',start:'1450529267',end:'1450538873')
I installed Homer to an SSL server and in browser received a warning about mixed content. The CSS files are linking to http://fonts.googleapis.com.
As suggested in #49 changing the URL to not require http would clear this up.
The two files I found are css/homer.min.css and apidoc/html/main.js.
When you remove a field (e.g. "Auth User") from the search panel but have used it before, there might still be a value saved in the settings table. From what we have observed, these parameters are still included in searches - unknown to the user, because the field is not visible.
Is this intentional or considered a bug?
just updated to 5.0.4
the qos tab shows more info
but now there is no stats graph
i get rtcp-xr from sip:publish and they appear in db report_capture but no graph in qos
I am using the latest webhomer 5 git checkout using nginx and php-fpm.
I can see packets when i search in webhomer:
but when i click on one of the packets, i see (everything empty):
Strangely enough, when i click on the "callid", i can see the graphical visualization of the communication:
Is this a bug or a configuration error/item?
Include "!ALL" filter at the generic statistics query.
https://github.com/sipcapture/homer-ui/blob/master/js/widgets/datasource.js#L96
The to_user
field is missing in the grid table.
Is it possible to supply a query string to the homer url and have homer perform a search?
for instance: http://homer.local/search?callid=call_id_value_here
Draggable popup position should be limited to visible area (no negative locations) to retain control
All stats dashboards are empty for me, just blanks. Others like Clock or RIPE DB Search working, but sometimes also fail with error Could not resolve all promises
.
I did check that Mysql have all data in table select * from sip_capture_call_20150619;
Hello
I am not getting all CDRS from database also I check by changing time period but only I get 20-25 cdrs How I get all live CDRS..
And also live cdrs are not showing when I did calling...
I use Homer 5.0.5 version and kamailio 5.0 and also I used captagent 3 in VOIP server...
Thanks
I cannot create a D3JS chart with data and I am getting the following error in the browser console:
sipcapture.js:653 Uncaught TypeError: Cannot read property 'enabled' of undefined(…)sipcaptureWdgt.d3.create @ sipcapture.js:653(anonymous function) @ sipcapture.js:1000c @ nv.d3.js:94
Hello,
Is it possible to use hostnames in call-flow instead of IPs? Pref. this should be configurable by the user.
Kind regards,
Andy
Clicking the time range in the top right corner of the UI allows the user to choose a time range.
Click "Last 24 hours" or one of the other "Last" permutations
The UI now shows the words "Last 24 hours" in the top right corner. However, constraint is set to the exact period of 24 hours up to the moment the user changed the time range.
e.g. if it is 2016-09-16 07:30 and the user clicks "Last 24 hours", then it uses the values (2016-09-15 07:31, 2016-09-16 07:30) for all subsequent searches. If the user clicks "Search" again 5 minutes later, it still searches with the constraint (2016-09-15 07:31, 2016-09-16 07:30).
As it says "Last 24 hours" on the screen, the user would expect it is really searching up the current time when they click the button.
Suggestions, either:
The consequence of this problem is that users don't see any recent messages in the search. A new user testing HOMER for the first time may think they are not receiving any messages.
configuration.php is missing and configuration_example.php
I just tried copying a SIP message from the message view overlay, but when pasting it somewhere else, all the line breaks are lost.
I searched through the code of ui and api, but I have no clue, where I could play around with line breaks.
Could you fix that, please?
Hello
I was on version Beta3 and i tried to update to latest version but i am getting an error on login page it is getting white and in browser log it says
14:42:21.277 Error: [$injector:modulerr] http://errors.angularjs.org/1.2.18/$injector/modulerr?p0=homerApp&p1=%5B%24injector%3Amodulerr%5D%20http%3A%2F%2Ferrors.angularjs.org%2F1.2.18%2F%24injector%2Fmodulerr%3Fp0%3Doitozero.ngSweetAlert%26p1%3D%255B%2524injector%253Anomod%255D%2520http%253A%252F%252Ferrors.angularjs.org%252F1.2.18%252F%2524injector%252Fnomod%253Fp0%253Doitozero.ngSweetAlert%250At%252F%253C%2540http%253A%252F%252F192.168.65.14%252Flib%252Fangular%252Fangular.min.js%253A6%253A450%250AYc%252Fb.module%253C%252F%253C%252Fb%255Be%255D%253C%2540http%253A%252F%252F192.168.65.14%252Flib%252Fangular%252Fangular.min.js%253A20%253A466%250AYc%252Fb.module%253C%252F%253C%2540http%253A%252F%252F192.168.65.14%252Flib%252Fangular%252Fangular.min.js%253A20%253A1%250Ae%252F%253C%2540http%253A%252F%252F192.168.65.14%252Flib%252Fangular%252Fangular.min.js%253A33%253A199%250Aq%2540http%253A%252F%252F192.168.65.14%252Flib%252Fangular%252Fangular.min.js%253A7%253A278%250Ae%2540http%253A%252F%252F192.168.65.14%252Flib%252Fangular%252Fangular.min.js%253A33%253A139%250Ae%252F%253C%2540http%253A%252F%252F192.168.65.14%252Flib%252Fangular%252Fangular.min.js%253A33%253A216%250Aq%2540http%253A%252F%252F192.168.65.14%252Flib%252Fangular%252Fangular.min.js%253A7%253A278%250Ae%2540http%253A%252F%252F192.168.65.14%252Flib%252Fangular%252Fangular.min.js%253A33%253A139%250Aec%2540http%253A%252F%252F192.168.65.14%252Flib%252Fangular%252Fangular.min.js%253A36%253A252%250Adc%252Fc%2540http%253A%252F%252F192.168.65.14%252Flib%252Fangular%252Fangular.min.js%253A18%253A139%250Adc%2540http%253A%252F%252F192.168.65.14%252Flib%252Fangular%252Fangular.min.js%253A18%253A356%250AWc%2540http%253A%252F%252F192.168.65.14%252Flib%252Fangular%252Fangular.min.js%253A17%253A435%250A%2540http%253A%252F%252F192.168.65.14%252Flib%252Fangular%252Fangular.min.js%253A211%253A1%250Ax.Callbacks%252Fl%2540http%253A%252F%252F192.168.65.14%252Flib%252Fjquery%252Fjquery.min.js%253A4%253A24876%250Ax.Callbacks%252Fc.fireWith%2540http%253A%252F%252F192.168.65.14%252Flib%252Fjquery%252Fjquery.min.js%253A4%253A25702%250A.ready%2540http%253A%252F%252F192.168.65.14%252Flib%252Fjquery%252Fjquery.min.js%253A4%253A2898%250AS%2540http%253A%252F%252F192.168.65.14%252Flib%252Fjquery%252Fjquery.min.js%253A4%253A551%250A%0At%2F%3C%40http%3A%2F%2F192.168.65.14%2Flib%2Fangular%2Fangular.min.js%3A6%3A450%0Ae%2F%3C%40http%3A%2F%2F192.168.65.14%2Flib%2Fangular%2Fangular.min.js%3A34%3A28%0Aq%40http%3A%2F%2F192.168.65.14%2Flib%2Fangular%2Fangular.min.js%3A7%3A278%0Ae%40http%3A%2F%2F192.168.65.14%2Flib%2Fangular%2Fangular.min.js%3A33%3A139%0Ae%2F%3C%40http%3A%2F%2F192.168.65.14%2Flib%2Fangular%2Fangular.min.js%3A33%3A216%0Aq%40http%3A%2F%2F192.168.65.14%2Flib%2Fangular%2Fangular.min.js%3A7%3A278%0Ae%40http%3A%2F%2F192.168.65.14%2Flib%2Fangular%2Fangular.min.js%3A33%3A139%0Aec%40http%3A%2F%2F192.168.65.14%2Flib%2Fangular%2Fangular.min.js%3A36%3A252%0Adc%2Fc%40http%3A%2F%2F192.168.65.14%2Flib%2Fangular%2Fangular.min.js%3A18%3A139%0Adc%40http%3A%2F%2F192.168.65.14%2Flib%2Fangular%2Fangular.min.js%3A18%3A356%0AWc%40http%3A%2F%2F192.168.65.14%2Flib%2Fangular%2Fangular.min.js%3A17%3A435%0A%40http%3A%2F%2F192.168.65.14%2Flib%2Fangular%2Fangular.min.js%3A211%3A1%0Ax.Callbacks%2Fl%40http%3A%2F%2F192.168.65.14%2Flib%2Fjquery%2Fjquery.min.js%3A4%3A24876%0Ax.Callbacks%2Fc.fireWith%40http%3A%2F%2F192.168.65.14%2Flib%2Fjquery%2Fjquery.min.js%3A4%3A25702%0A.ready%40http%3A%2F%2F192.168.65.14%2Flib%2Fjquery%2Fjquery.min.js%3A4%3A2898%0AS%40http%3A%2F%2F192.168.65.14%2Flib%2Fjquery%2Fjquery.min.js%3A4%3A551%0A
t/<() angular.min.js:6
e/<() angular.min.js:34
forEach() self-hosted:211
q() angular.min.js:7
e() angular.min.js:33
ec() angular.min.js:36
dc/c() angular.min.js:18
dc() angular.min.js:18
Wc() angular.min.js:17
<anonymous> angular.min.js:211
x.Callbacks/l() jquery.min.js:4
x.Callbacks/c.fireWith() jquery.min.js:4
.ready() jquery.min.js:4
S() jquery.min.js:4
1 angular.min.js:6:450
When trying to view the export link when viewing a call I see an error that the following image is missing.
To compare uid 'check_filegroup_membership' needs the uid of the user, not the dn.
I check homer 3.5 and there $param['username'] is used; in homer5 $result[0]['dn'].
Any reason why you compare against dn?
diff --git a/api/Authentication/LDAP.php b/api/Authentication/LDAP.php
index f14760a..7ee4bd9 100644
--- a/api/Authentication/LDAP.php
+++ b/api/Authentication/LDAP.php
@@ -84,7 +84,7 @@ class LDAP extends Authentication {
if (defined("LDAP_GROUPDN")) {
if (!$this->check_filegroup_membership($ds,$result[0]['dn'])) {
if (!$this->check_filegroup_membership($ds,$result[0]['uid'][0])) {
return false;
}
}
My install is version 5.0.2 installed using manual install.
Problem: When searching for all (Just clicking search) after 4:05 pm I get nothing in the output unless I set time range to something higher than 3-6 hours. Everything works fine before 4pm but for some reason things are broken after. When midnight comes around things start working again when time rotates to the am.
errors:
2016/01/25 16:48:53 [error] 20639#0: *1795 FastCGI sent in stderr: "PHP message: PHP Notice: Undefined index: node in /var/vhosts/sipcapture/api/RestApi/Search.php on line 599" while reading response header from upstream, client: 10.4.1.13, server: homer01.xxx.com, request: "POST /api/v1/search/transaction HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "homer01.xxx.com", referrer: "http://homer01.xxx.com/"
2016/01/25 16:48:53 [error] 20639#0: *1797 FastCGI sent in stderr: "PHP message: PHP Notice: Undefined index: node in /var/vhosts/sipcapture/api/RestApi/Report.php on line 74" while reading response header from upstream, client: 10.4.1.13, server: homer01.xxx.com, request: "POST /api/v1/report/rtcp HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "homer01.xxx.com", referrer: "http://homer01.xxx.com/"
2016/01/25 16:48:53 [error] 20639#0: *1798 FastCGI sent in stderr: "PHP message: PHP Notice: Undefined index: node in /var/vhosts/sipcapture/api/RestApi/Report.php on line 184" while reading response header from upstream, client: 10.4.1.13, server: homer01.xxx.com, request: "POST /api/v1/report/log HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "homer01.xxx.com", referrer: "http://homer01.xxx.com/"
2016/01/25 16:48:53 [error] 20639#0: *1800 FastCGI sent in stderr: "PHP message: PHP Notice: Undefined index: node in /var/vhosts/sipcapture/api/RestApi/Report.php on line 277" while reading response header from upstream, client: 10.4.1.13, server: homer01.xxx.com, request: "POST /api/v1/report/quality/short HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "homer01.xxx.com", referrer: "http://homer01.xxx.com/"
There is an erro message in JS console while trying to delete node.
I'v fixed this and will make a pull request soon.
https://github.com/sipcapture/homer-ui/blob/master/js/widgets/clock/timezones.js
Perhaps we could use a library like Moment
or something to get a decent list? I'm looking for Zagreb, Croatia and Pune, India.
When you add e.g. filters to datasource.js you have to create a new widget to use it. Would be nice if datasource.js was reloaded when entering edit mode.
Hello,
being quite visible, I am sure you already noticed it, but the navbar logo points to a file deleted in 3f1f3c4. I would try to adjust https://github.com/sipcapture/homer-ui/blob/master/templates/header.html, but I fear to meddle with cosmetic choices (though I find img/homer_logo.png fits nicely).
When doing a search without specifying the transaction (CALLS, REGISTRATION or OTHER), no results are shown. In homer 3.5, when you didn't select anything, the system searched for everything.
There seems to be no way to specify a default transaction. Having a default transaction for searching allows us to simplify the search form even more, skipping the requirement for users to always specify it.
The popup which is opend by clicking a callid from the search table always contains
"Session Duration: 00:00:00".
However the correct duration is part of the result like:
{
"status": 200,
"sid": "7i46op9b4r600cvoka767nmr45",
"auth": "true",
"message": "ok",
"data": {
"info": {
"callid": [
],
"totdur": "00:00:23",
"statuscall": 1
},
when looking at sip flow, and then click on "export" , share link the link appears as:
http://your.public.host/share/#76623b52-92ef-4ab3-a98e-224becdf8168
please change http://your.public.host to correct link
This can be reproduced with an installation from scratch (with bash installer) on debian jessie (Linux debian-1gb-lon1-01 3.16.0-4-amd64 #1 SMP Debian 3.16.36-1+deb8u2 (2016-10-19) x86_64 GNU/Linux
).
homer-ui: 2f2baee
homer-api: 7238223
Step to reproduce: perform a Search. Click on Call-ID of search results to generate the Call flow. Click on Export, then Share Link. Copy shared link. Paste shared link into another tab (ensure the URL is correct).
The shared call flow is displayed correctly, but clicking on a message produces an empty modal window instead of the message details:
There isn't any API query performed.
Going back to the call flow from the Search, clicking on the message shows instead its details:
It's also possible to see the API query, e.g.:
POST /api/v1/search/method HTTP/1.1.
Host: xxxxxxxx.
Connection: keep-alive.
Content-Length: 206.
Accept: application/json, text/plain, */*.
Origin: http://xxxxxxx.
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36.
Content-Type: application/json;charset=UTF-8.
DNT: 1.
Referer: http://xxxxxxx/.
Accept-Encoding: gzip, deflate.
Accept-Language: en-US,en;q=0.8,it;q=0.6,fr;q=0.4.
Cookie: HOMERSESSID=me07ehd1humqn17hni6asc1295.
.
{"timestamp":{"from":1482161297000,"to":1482161297000},"param":{"search":{"id":1,"callid":"[email protected]"},"location":{"node":"single"},"transaction":{"call":true,"registration":false,"rest":false}}}
I've spent some time on this but couldn't understand the root cause. What I noticed is that share/controller.js
tries to use the data provided at the moment of the click, i.e. here:
https://github.com/sipcapture/homer-ui/blob/master/share/controller.js#L151
and at the moment of loading the data doesn't try to do a search to get the message details:
https://github.com/sipcapture/homer-ui/blob/master/share/controller.js#L546
This causes an exception, because sdata.msg
(line 587) is null and "HTMLifying" it can't work:
at swapText (controller.js:561)
at new <anonymous> (controller.js:587)
at e (angular.js:4523)
at Object.instantiate (angular.js:4531)
at angular.js:9197
at homerModal.min.js:12
at b.$emit (angular.js:16301)
at angular.js:24410
at angular.js:14792
at r.$eval (angular.js:16052)
The generic controller (modules/pages/controllers/dialogCtrl.js
), instead, passes a search data structure:
https://github.com/sipcapture/homer-ui/blob/master/js/modules/pages/controllers/dialogCtrl.js#L368
and associates a search call to the resulting modal window callback:
https://github.com/sipcapture/homer-ui/blob/master/js/modules/pages/controllers/dialogCtrl.js#L49
I still have a clean installation dedicated to this issue, so just let me know in case any new detail or experiment is required. Thanks.
Hello,
It would be super cool if Homer had the ability to link dashboards as explained in this Google group discussion.
The basic idea is that dashboards provide statistics and a general overview; but if one wants to drill down and examine what created those data points, it is a manual operation today.
Use case example:
A very basic example is viewing the Geo Dashboard showing REGISTER from different countries and thinking something like "Why is there N REGISTER messages coming to my SIP proxy from Country A and are they all from the same IP and/or useragent?"
It would be nice if I could click that country and show a new dashboard/report containing e.g. a table containing my selected columns from sip_capture_registration_xxxxxxxx of all REGISTER messages for that specific country within the same timeframe the Geo Dashboard displayed data based on.
Another example could be Jitter/PL/MOS scores for generic RTPsniff/baresip usecases (stats_generic data..) Which calls were present/active during the timeframe (5min default) for the given score(datapoint).
Also see http://www.mydbr.com/doc/index.html?dbr.embed_object for examples on linking based on SQL queries.
Also, the ability to create reports (tables/charts) based on custom SQL queries in itself would be an interesting feature as it would make it even easier to use Homer for existing structures where people already gather data in different formats for graphic visualization through Graphite/Cacti/whatnot.
Thanks!
So I'm trying to add new graphs PDD (using 95 percentile) and ACD, but I having trouble understanding query language, is this even possible? Or this should be stored in mysql before I can query?
Setup HOMER 5.0.5 on Centos7 (Captagent6, Kamailio5 Asterisk 13) and everything was perfect until the 1st rotate.
Homer Stopped showing the collected data and Kamalio threw SQL insert error so I realised the MYSQL socket path is incorrect for RHEL and I changed to "socket = /var/lib/mysql/mysql.sock"
I am now collecting everything but the QoS and MoS is not in the Homer UI.... report_capture is empty any ideas on what went wrong ?
We are seeing bad MySQL performance using the search feature. The search queries generated by homer 3.5 performed well on our db setup (two nodes), but the queries generated by homer 5 are leaving us a bit puzzled.
This is an example query (with sanitized data):
SELECT
t.id, date, (micro_ts DIV 1000) as milli_ts, micro_ts,method,reply_reason,ruri,ruri_user,
ruri_domain,from_user,from_domain,from_tag,to_user,to_domain,to_tag,pid_user,contact_user,
auth_user,callid,callid_aleg,via_1,via_1_branch,cseq,diversion,reason,content_type,auth,
user_agent,source_ip,source_port,destination_ip,destination_port,contact_ip,contact_port,
originator_ip,originator_port,correlation_id,proto,family,rtp_stat,type,node,'call' as trans,
'Example Node' as dbnode
FROM
sip_capture_call as t
WHERE
(t.date BETWEEN FROM_UNIXTIME(1454768710) AND FROM_UNIXTIME(1454768790))
AND
( ( from_user = '49123123456' OR from_user = '0049123123456' OR from_user = ' 49123123456' OR from_user = '0123123456' )
OR
( ruri_user = '49175123456' OR ruri_user = '0049175123456' OR ruri_user = ' 49175123456' ) OR ( pid_user = '49123123456' OR pid_user = '0049123123456' OR pid_user = ' 49123123456' )
)
order by t.id DESC LIMIT 100;
We have four sip_capture_call Tables on two Database nodes - two from our old homer 3.5 setup, two from the new homer 5 setup. All four of them can be successfully queried from homer 5. However, the search function produces a query like the one shown above. This is what EXPLAIN shows us:
Database A, Mysql 5.1, Homer 3.5 Table (query hangs forever in "sending data")
+----+-------------+-------+-------+-----------------------------------+------+---------+------+------+-----------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+-------+-----------------------------------+------+---------+------+------+-----------------------------+
| 1 | SIMPLE | t | range | ruri_user,from_user,pid_user,date | date | 4 | NULL | 11 | Using where; Using filesort |
+----+-------------+-------+-------+-----------------------------------+------+---------+------+------+-----------------------------+
Database A, MySQL 5.1, Homer 5 Table (good performance)
+----+-------------+-------+-------+-----------------------------------+---------+---------+------+-------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+-------+-----------------------------------+---------+---------+------+-------+-------------+
| 1 | SIMPLE | t | index | ruri_user,from_user,pid_user,date | PRIMARY | 12 | NULL | 17762 | Using where |
+----+-------------+-------+-------+-----------------------------------+---------+---------+------+-------+-------------+
Database B, MySQL 5.6, Homer 3.5 Table
+----+-------------+-------+-------+-----------------------------------+---------+---------+------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+-------+-----------------------------------+---------+---------+------+------+-------------+
| 1 | SIMPLE | t | index | ruri_user,from_user,pid_user,date | PRIMARY | 12 | NULL | 2 | Using where |
+----+-------------+-------+-------+-----------------------------------+---------+---------+------+------+-------------+
Database B, MySQL 5.6, Homer 5 Table
+----+-------------+-------+-------------+-----------------------------------+------------------------------+-------------+------+------+-----------------------------------------------------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+-------------+-----------------------------------+------------------------------+-------------+------+------+-----------------------------------------------------------------------------+
| 1 | SIMPLE | t | index_merge | ruri_user,from_user,pid_user,date | from_user,ruri_user,pid_user | 302,302,302 | NULL | 10 | Using sort_union(from_user,ruri_user,pid_user); Using where; Using filesort |
+----+-------------+-------+-------------+-----------------------------------+------------------------------+-------------+------+------+-----------------------------------------------------------------------------+
At first we thought there might be a subtle difference in the homer 3.5 vs homer 5 sip_capture_calls table - but as MySQL 5.1 performs bad on the Homer 3.5 table and MySQL 5.6 performs bad on the homer 5 table, this seems not to be the issue here. Have you seen this behavior before?
Hello,
Can you please add time between messages in call flow?
I suggest red text and an option to show absolute or relative time.
Has encountered an issue with files located here: https://github.com/sipcapture/homer-ui/tree/master/lib/sweetalert
The files are named the same in a different case, which caused one to overwrite the other in Windows causing all kinds of funky stuff when transferred to the server.
I think it would make sense to rename one of them.
Hello,
The timerange.from and timerange.to values are not being updated in htdocs/js/controller.js: 394 so the result set returned is always the same where I think the intended behavior is to refresh the page every [interval] seconds to display new results.
I did the following simple thing which mostly does what I want it to do:
$scope.timerange.to = new Date();
$scope.timerange.from = new Date(new Date().setMinutes(new Date().getMinutes() - 10));
$scope.timerange.to.setSeconds($scope.timerange.to.getSeconds() + seconds);
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.