sipcapture / homer-app

HOMER 7.x Front-End and API Server
http://sipcapture.io
GNU Affero General Public License v3.0
207 stars 85 forks source link

Multi node, flow of multiple session-id #494

Closed mcebey1891 closed 1 year ago

mcebey1891 commented 2 years ago

Hi,

I have a system made up of a web-app and two heplify-servers (with their own database). Using the node field I can search for SIP messages belonging to the two nodes, but if I then select session-id from different nodes, when selecting a session-id, in the flow it only shows those of the node where the session-id comes from and not all selected session-id.

Could you implement that all messages are displayed regardless of the node where they come from?

Thank's

nickakt commented 1 year ago

Hello,

Have the same issue

Are there any implementetion?

lmangani commented 1 year ago

what have you attempted?

adubovikov commented 1 year ago

@nickakt @mcebey1891 can you paste here the API request that UI does ? You can grab it in the webconsole

nickakt commented 1 year ago

Hello,

Sure

{"param":{"transaction":{"call":true,"registration":false,"rest":false},"limit":200,"orlogic":false,"search":{"1_call":{"id":10336348,"callid":["ff5d0eb0-2185-123c-989b-000c29a7b55e"]}},"location":{"node":["sg"]},"timezone":{"value":-180,"name":"Local"}},"timestamp":{"from":1675772707843,"to":1675773307843}}

I didn't find how to change "location":{"node":["sg"]} >>>> "location":{"node":["sg", "nl"]}

nickakt commented 1 year ago

@lmangani Hello, Sorry

I tried the same thing that described in the very first message "Build sip flow for calls that located on different databases "

I have a system made up of a web-app and two heplify-servers (with their own database). Using the node field I can search for SIP messages belonging to the two nodes, but if I then select session-id from different nodes, when selecting a session-id, in the flow it only shows those of the node where the session-id comes from and not all selected session-id.

adubovikov commented 1 year ago

so, during search, you have selected two nodes and after you click on one message it selected only one ?

nickakt commented 1 year ago

nope,

I have a web-app and two heplify-servers (with their own database).

For example: We have a Call: A-leg is located in A-database(sg) and B-Leg is located in B-database(nl). When we search for this call we can locate both legs. But when we press Session ID we expect that SIP FLOW will be builded for both legs by X-CID but It doesn't happen. When both legs of the call are located in one database A-database(sg), the sip flow builds as expected. We see both legs.

The question is how to build one sipflow if the call legs located on diferent databases

adubovikov commented 1 year ago

Do you have in your call's mapping this record:

 {
        "id": "node",
        "name": "Node",
        "type": "string",
        "index": "none",
        "form_type": "multiselect",
        "form_api": "/database/node/list",
        "system_param": true,
        "mapping": "param.location.node",
        "position": 23,
        "skip": true,
        "hide": true
    }
adubovikov commented 1 year ago

or like this:

{
        "id": "node",
        "name": "Node",
        "type": "string",
        "index": "none",
        "form_type": "multiselect",
        "form_default": [
            {
                "value": "node1",
                "name": "Node1"
            },
            {
                "value": "node2",
                "name": "Node2"
            }
        ],
        "system_param": true,
        "mapping": "param.location.node",
        "position": 23,
        "skip": true,
        "hide": true
    }
adubovikov commented 1 year ago

image

And after you select Node

mcebey1891 commented 1 year ago

Hi, I have this configuration:

{
        "id": "node",
        "name": "Node",
        "type": "string",
        "index": "none",
        "form_type": "multiselect",
        "form_default": [
            {
                "value": "ims",
                "disabled": false,
                "name": "IMS"
            },
            {
                "value": "ngn",
                "disabled": false,
                "name": "NGN"
            }
        ],
        "_form_api": "/database/node/list",
        "system_param": true,
        "mapping": "param.location.node",
        "position": 24,
        "skip": false,
        "hide": false
    }

And when I select both nodes:

imagen

And select two different sessions:

imagen

It only shows the session that is clicked on and not both:

imagen

I don't know how to collect the information you ask for. If you give me guidance, I collect it.

nickakt commented 1 year ago

Yes, thats what I have experience

I belive it can be done by Mapping or in Advanced settings. Any guidance will be appreciated

nickakt commented 1 year ago

@mcebey1891 Hello.,

Made some workaround

added

nodes = []string{}

to

https://github.com/sipcapture/homer-app/blob/a1daf179646805cd1bf19f51a9d0c3e3cffb8bf0/data/service/search.go#L919

mcebey1891 commented 1 year ago

@nickakt Hello, thanks for sharing. My system runs on docker and I don't have a test platform (not to mention that I don't handle go) It's going to take me a while to be able to test this, but I'm going to try it.

lmangani commented 1 year ago

@mcebey1891 Hello.,

Made some workaround

added

nodes = []string{}

to

https://github.com/sipcapture/homer-app/blob/a1daf179646805cd1bf19f51a9d0c3e3cffb8bf0/data/service/search.go#L919

if there's a bug please submit a PR