Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create all Homer Wiki pages as .md files in the repo. #2

Open
wants to merge 48 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
afd45a1
Create Homer Wiki
naqashsaeed Nov 25, 2024
ac97afd
Rename Homer Wiki to Homer-Wiki.md
naqashsaeed Nov 25, 2024
5bf0588
Rename Homer-Wiki.md to How-to-installmd
naqashsaeed Nov 25, 2024
8df0a4b
Rename How-to-installmd to How-to-install.md
naqashsaeed Nov 25, 2024
1225130
Update How-to-install.md
naqashsaeed Nov 25, 2024
17e307f
Create How-to Install (Docker).md
naqashsaeed Nov 25, 2024
8f1ecb6
Create Homer 10.md
naqashsaeed Nov 25, 2024
8215e8f
Homer10.md
naqashsaeed Nov 25, 2024
e8847bc
Homer 10- Docker Setup.md
naqashsaeed Nov 25, 2024
f4d710d
Homer-10 Docker Setup.md
naqashsaeed Nov 25, 2024
f4b7c09
Hep Validation.md
naqashsaeed Nov 25, 2024
b5bba5f
Create LuaJIT Scripting.md
naqashsaeed Nov 25, 2024
eac91e6
Create Homer 7.md
naqashsaeed Nov 25, 2024
b7890cb
Create Server Configuration.md
naqashsaeed Nov 25, 2024
3959999
Create Local/OAuth2 Options.md
naqashsaeed Nov 25, 2024
ca040c8
Delete Local/OAuth2 Options.md
naqashsaeed Nov 25, 2024
0b10928
Create Grafana Integration.md
naqashsaeed Nov 25, 2024
72c7985
Rename Grafana Integration.md to docs/Grafana Integration.md
naqashsaeed Nov 25, 2024
624e7b1
Rename Hep Validation.md to docs/Hep Validation.md
naqashsaeed Nov 25, 2024
696e7d3
Rename Homer 10- Docker Setup.md to docs/Homer 10- Docker Setup.md
naqashsaeed Nov 25, 2024
531351c
Rename Homer 10.md to docs/Homer 10.md
naqashsaeed Nov 25, 2024
e0da0de
Rename Homer 7.md to docs/Homer 7.md
naqashsaeed Nov 25, 2024
2461cef
Rename How-to Install (Docker).md to docs/How-to Install (Docker).md
naqashsaeed Nov 25, 2024
81f26d9
Rename How-to-install.md to docs/How-to-install.md
naqashsaeed Nov 25, 2024
338f573
Rename LuaJIT Scripting.md to docs/LuaJIT Scripting.md
naqashsaeed Nov 25, 2024
ed965ab
Rename Server Configuration.md to docs/Server Configuration.md
naqashsaeed Nov 25, 2024
667283b
Create Local-0Auth Options.md
naqashsaeed Nov 25, 2024
f8d7a0e
Create Troubleshooting.md
naqashsaeed Nov 25, 2024
7e48a10
Create Custom Headers & Correlation.md
naqashsaeed Nov 25, 2024
b6af75e
Create Using Homer API.md
naqashsaeed Nov 25, 2024
85c3bce
Create Using DB Nodes.md
naqashsaeed Nov 25, 2024
f187729
Create FAQ & Troubleshooting.md
naqashsaeed Nov 25, 2024
1d8f7b9
Create Mailing-List.md
naqashsaeed Nov 25, 2024
709de6d
Create CaptAgent.md
naqashsaeed Nov 25, 2024
169cdbb
Rename CaptAgent.md to CaptAgent.md
naqashsaeed Nov 25, 2024
208ac64
Create Heplify.md
naqashsaeed Nov 25, 2024
1097d5d
Create Kamailio.md
naqashsaeed Nov 25, 2024
a4aabf6
Create OpenSIPS.md
naqashsaeed Nov 25, 2024
497fee5
Create FreeSwitch.md
naqashsaeed Nov 25, 2024
fe79037
Create Asterisk.md
naqashsaeed Nov 25, 2024
f7c13d0
Create sipgrep.md
naqashsaeed Nov 25, 2024
0b22861
Create sngrep.md
naqashsaeed Nov 25, 2024
092326c
Create RTPEngine.md
naqashsaeed Nov 25, 2024
0a37f19
Create ACME Packet.md
naqashsaeed Nov 25, 2024
1d15074
Create RTPPROXY.md
naqashsaeed Nov 25, 2024
d42dd8a
Rename ACME Packet.md to Oracle ACME Packet.md
naqashsaeed Nov 25, 2024
54e105f
Create Sansay SBC.md
naqashsaeed Nov 25, 2024
8bf943d
Create Sonus SBC.md
naqashsaeed Nov 25, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
84 changes: 80 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,82 @@
<img src="https://user-images.githubusercontent.com/1423657/55069501-8348c400-5084-11e9-9931-fefe0f9874a7.png" width=200/>
<img src="https://github.com/sipcapture/homer7-docker/assets/1423657/36a8e515-ab0e-482b-bf49-2156e290c764" height=200><img src="https://github.com/sipcapture/homer-docker/assets/1423657/8997d282-0c29-4137-a1ef-e9be79a54284" height=200/>

#### 100% Open-Source VoIP & RTC Capture, Troubleshooting & Monitoring
## [Official Documentation](https://sipcapture.github.io/docs/) for [HOMER](https://github.com/sipcapture/homer)

<img src="https://user-images.githubusercontent.com/1423657/73536888-5513dd80-4427-11ea-82aa-b2ce53192a63.png"/>

# homer 10 + qryn (all-in-one)
The ultimate **homer** + **qryn.js** docker demo w/ sample _hep traffic, logs, traces and metrics_ - _batteries included!_ :battery::battery:

- HOMER 10 = _qryn.js + heplify-server + clickhouse-server + grafana-server_

> All the backend features for all supported protocols are provided by **qryn** and **clickhouse** - no other components required!

<br />

<img src="https://user-images.githubusercontent.com/1423657/259414028-ce4c8603-be1f-4ca9-a0fa-556d84c5660c.gif" width=600 />

<img src="https://github.com/sipcapture/homer-docker/assets/1423657/caf2c6c3-b4e0-45ae-9ac9-e88ed23f4b52" width=600 />

<img src="https://user-images.githubusercontent.com/1423657/186014786-165b18da-e808-4cf7-a6fc-eb90df705400.gif" width=600 />

<br>

### Usage

#### Setup
Clone the repository and launch the **qryn** polyglot demo using _docker-compose_

```bash
docker-compose pull
docker-compose up -d
```

#### Send Data
This demo comes with auto-generated data, but you can still send your own streams
##### HEP
Send some HEP traffic to the HEP socket on port 9060/udp or 9061/tcp or use the demo `hepgen` generated traffic

##### Others
Send data using a variety of protocols

<a href="https://qryn.metrico.in" target="_blank">
<img src="https://github.com/metrico/qryn-docs/blob/main/docs/resources/images/qryn_logo_trans.png?raw=true" width=50 />&nbsp;
<img src="https://user-images.githubusercontent.com/1423657/184496222-ca95d80c-906f-4c77-a963-86f0b27a56b0.png" width=50 />&nbsp;
<img src="https://user-images.githubusercontent.com/1423657/184496304-4f35a365-efdc-4dca-9771-6b7b1deb9ae3.png" width=50 />&nbsp;
<img src="https://user-images.githubusercontent.com/1423657/184496174-aca323dd-f40e-489a-a584-fa7348c0eab0.png" width=50 />&nbsp;
<img src="https://user-images.githubusercontent.com/1423657/184496973-9f46e551-872d-4a25-877c-51a2e5f53e84.png" width=50 />&nbsp;
<img src="https://user-images.githubusercontent.com/1423657/184494381-15d20f5d-3d52-411b-9064-dfd2ccea7c1c.png" width=50 />&nbsp;
<img src="https://user-images.githubusercontent.com/1423657/184494438-17d7ceb0-a62a-4819-9b1c-43d7f0baf802.png" width=50 />&nbsp;
<img src="https://avatars.githubusercontent.com/u/54801242?s=200&v=4" width=50 /><br/>
</a>


#### Login
Access the preconfigured Grafana instance as `admin/admin`
```
http://localhost:3000
```
#### Explore
The demo generates correlated _logs, metrics and traces_ with autoconfigured datasources

- ```Loki```
- ```Tempo```
- ```Prometheus```
- ```Flux```

#### Data Ingestion
The demo supports all ingestion protocols supported by **homer** _(hep)_ and **qryn** _(logql, prometheus, influx, elastic, opentelemetry, etc)_


#### Go Pro
Loving it? Learn how to send your own data using our [online documentation](https://qryn.metrico.in)

<br>

![image](https://github.com/sipcapture/homer-docker/assets/1423657/a3ed8398-4930-4c00-a593-782ce1696756)

![image](https://user-images.githubusercontent.com/1423657/183254312-b52811e5-f563-440e-84e4-8312714a4c9b.png)

![image](https://user-images.githubusercontent.com/1423657/183254290-fac87747-51ce-4648-a7aa-073fdcdd6c10.png)

![image](https://user-images.githubusercontent.com/1423657/186708038-685467ee-a135-4fa0-af31-eae487da2139.png)

![image](https://user-images.githubusercontent.com/1423657/186280231-8fbcf1f1-69b7-43fe-91ad-7e6ee8389978.png)
175 changes: 175 additions & 0 deletions docs/Custom Headers & Correlation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,175 @@
This article describes the process and steps required to extract custom SIP `X-headers` for search and correlation purposes.

# 1. Add Custom Header in heplify-server

`X-Headers` are extracted at the capture layer by `heplify-server` and converted to HEP header fields.

- *Correlation Only* Headers which do not require search should be _"normalized"_ to `correlation_id` headers using `AlegIDs`
- *Search + Correlation* Headers which require full indexing should be extracted using `CustomHeader`

Edit `/etc/heplify-server.toml`

add custom header information
```
AlegIDs = ["XCallID"] # Custom Header(s) will be used as Correlation ID (first match)
ForceALegID = true # Enable search for A Leg Headers. default is false
CustomHeader = ["X-CID","XCallID"] # Custom Headers will be Indexed for Header search
```

restart heplify-server
```
systemctl restart heplify-server.service
```
Now you will be able to see the custom `X-headers` in Packet details. Click on INVITE packet and then go to Details

![](https://i.imgur.com/ajngs6K.jpg)

# 2. Add Mappings in homer-app

Each header in SIP is mapped to a name in the schema to view/search in Homer UI, which is referred to as `Mapping`. For each custom header, we have to add new mapping accordingly.

Go to `Settings` in homer UI and click on `Mapping`, Edit **profile** 'call' with **HEP ID** '1'.

![](https://i.imgur.com/w8DvAXQ.jpg)

There will be two kinds of `Mapping`
1. **Correlation Mapping:** Defines any cross-protocol correlation mechanism
2. **Fields Mapping:** Defines schema and mapping for protocol fields

Go to `Fields Mapping`

![](https://i.imgur.com/9Xvtcts.jpg)

Add the following at end of `Fields Mapping`

```json
{
"id": "data_header.X-CID",
"name": "X-CID",
"type": "string",
"index": "none",
"form_type": "input",
"position": 25,
"skip": false,
"hide": true
},
{
"id": "data_header.XCallID",
"name": "XCallID",
"type": "string",
"index": "none",
"form_type": "input",
"position": 26,
"skip": false,
"hide": true
}
```

# 3. Call SIP Search Widget Settings

Go to `Home` screen of homer. Eidt settings of `Call SIP Search` widget.

![](https://i.imgur.com/y1t6x4I.jpg)

Move X-CID and XCallID to active list.

![](https://i.imgur.com/YcbD3on.jpg)

# 4. Search with Custom Header

now you will be able to search with a custom Header field.

![](https://i.imgur.com/6Vy6jYX.jpg)

Note: Custom Header search will work with new calls only.

----------

# Full Example for 2-way correlation

#### Mapping
```json
[
{
"source_field": "data_header.callid",
"lookup_id": 1,
"lookup_profile": "call",
"append_sid": true,
"lookup_field": "data_header->>'X-CID'",
"lookup_range": [
-300,
200
]
},
{
"source_field": "data_header.X-CID",
"lookup_id": 1,
"lookup_profile": "call",
"append_sid": true,
"lookup_field": "data_header->>'X-CID'",
"lookup_range": [
-300,
200
]
},
{
"source_field": "data_header.X-CID",
"lookup_id": 1,
"lookup_profile": "call",
"append_sid": true,
"lookup_field": "data_header->>'callid'",
"lookup_range": [
-300,
200
]
},
{
"source_field": "data_header.callid",
"lookup_id": 1,
"lookup_profile": "call",
"lookup_field": "sid",
"lookup_range": [
-300,
200
]
}
]
```


### Field Modification
Fields can be modified and extended using the `input_function_js` functionality. The following example extends an extracted callid with `_b2b-1`

```json
{
"source_field": "data_header.callid",
"lookup_id": 1,
"lookup_profile": "call",
"lookup_field": "sid",
"input_function_js": "var returnData=[]; for (var i = 0; i < data.length; i++) { returnData.push(data[i]+'_b2b-1'); }; returnData;"
"lookup_range": [
-300,
200
]
}


```

Or multiple prefixes and suffixes `SBC-` , `_PBX-1`

```json
{
"source_field": "data_header.callid",
"lookup_id": 1,
"lookup_profile": "call",
"lookup_field": "sid",
"input_function_js": "var returnData=[]; for (var i = 0; i < data.length; i++) { returnData.push('SBC-'+data[i]); returnData.push(data[i]+'_PBX-1'); }; returnData;"
"lookup_range": [
-300,
200
]
}


```
Loading