You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/COORDINATOR.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -299,6 +299,8 @@ The deprecated **`oauth2_providers`** array is still accepted at startup and mig
299
299
| GET |`/api/v4/transactions`| List transactions |
300
300
| POST |`/api/v4/transactions/search`| Search transactions |
301
301
| POST |`/api/v4/transactions/messages`| Get transaction messages (with optional Lua call-id correlation, see [`LUA_CORRELATION.md`](./LUA_CORRELATION.md)) |
302
+
| POST |`/api/v4/transactions/view/link`| Create a one-time SIP trace view URL (`data.url_view` → `GET /export/view/:uuid`) for external app redirects — see [Dashboard URL search — external apps](SEARCH_URL.md#external-apps)|
303
+
| GET |`/export/view/:uuid`| Standalone HTML SIP transaction view (no JWT; counts toward view token open limit) |
302
304
| GET |`/api/v4/messages/:id`| Get single message |
303
305
| GET |`/api/v4/messages/:id/decoded`| Get decoded message |
304
306
| POST |`/api/v4/transactions/qos`| Get QoS data |
Copy file name to clipboardExpand all lines: docs/SEARCH.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -40,7 +40,7 @@ For full setup and configuration details, see [MCP UI Guide](MCP_UI_GUIDE.md).
40
40
41
41
## Dashboard URL search
42
42
43
-
Bookmarkable dashboard links (`?from_user=…#dashboard`), per-protocol examples, and how to add new protocols: **[SEARCH_URL.md](SEARCH_URL.md)**.
43
+
Bookmarkable dashboard links (`?from_user=…#dashboard`), **external Call-ID drill-down** from other apps, per-protocol examples, and how to add new protocols: **[SEARCH_URL.md](SEARCH_URL.md)** (including [external integrations](SEARCH_URL.md#external-apps)).
Common question: an external call-search app has a **Call-ID** and you want one click to open Homer (SIP trace or search results) without copy-paste. See also [GitHub discussion #680](https://github.com/sipcapture/homer/discussions/680).
19
+
20
+
Browsers only follow **GET** links (`<a href>`, redirects). You cannot POST a Call-ID from HTML alone. Use one of the patterns below.
21
+
22
+
### Choose an integration pattern
23
+
24
+
| Goal | Pattern | User must log into Homer UI? | Auth |
| Open **dashboard search** with Call-ID prefilled | GET deep link (this page) |**Yes** (JWT session) | None in URL |
27
+
| Open **standalone SIP trace** HTML page | Backend `view/link` → redirect to `/export/view/<uuid>`|**No** (one-time view token) |`Auth-Token` or JWT on your server |
28
+
| Embed results in **your own UI**|`POST /api/v4/transactions/search` or `/messages`| No |`Auth-Token` or JWT on your server |
29
+
30
+
Always pass a **time window** (`from` / `to` in ms, or `minutes` / `m`) together with the Call-ID.
31
+
32
+
### Homer 11 — dashboard deep link (logged-in users)
### Homer 11 — SIP trace without UI login (API token on server)
57
+
58
+
For portals that already have Homer API access but users are **not** logged into Homer:
59
+
60
+
1. Enable static API tokens: `coordinator.api_settings.enable_token_access` (see [UI and API tokens](UI_COORDINATOR_AUTH_AND_TOKENS.md)).
61
+
2. Your backend calls:
62
+
63
+
```http
64
+
POST /api/v4/transactions/view/link
65
+
Auth-Token: <secret>
66
+
Content-Type: application/json
67
+
68
+
{
69
+
"session_id": "your-call-id-here",
70
+
"proto_type": 1,
71
+
"event_type": "call",
72
+
"timestamp": {
73
+
"from": 1710000000000,
74
+
"to": 1710086400000
75
+
}
76
+
}
77
+
```
78
+
79
+
3. Response `data.url_view` is e.g. `/export/view/<uuid>`.
80
+
4. Redirect the browser:
81
+
82
+
```text
83
+
https://<homer-host>/export/view/<uuid>
84
+
```
85
+
86
+
The view link is **time-limited** (default 72h) and capped by `coordinator.transaction_view_max_opens` (default 3 successful opens). The browser does **not** send `Auth-Token` to open that page.
87
+
88
+
Use `Authorization: Bearer <jwt>` instead of `Auth-Token` when calling the API with a service account session JWT (not the one-time view UUID).
89
+
90
+
### Homer 7 — legacy homer-ui JSON URL
91
+
92
+
On Homer 7 (homer-app + homer-ui, often port **9080**), operators use a single JSON blob as the query string on `/search/result`:
- Profile key `1_call` is the SIP-calls mapping in homer-app.
102
+
-`callid` is a **JSON array** on Homer 7.
103
+
104
+
Homer 11 does **not** use path `/search/result`. Prefer flat `/?call_id=…#dashboard` above. Legacy JSON (without `/search/result`) is partially supported on the coordinator UI; `callid` as an array may not parse — use flat `call_id` for new links.
105
+
106
+
---
107
+
14
108
## URL shape
15
109
16
110
Use the dashboard hash and put filters in the query string.
@@ -150,9 +244,10 @@ Homer 11 accepts the same JSON when it starts with `{` (before or as `?q=...`).
0 commit comments