Picture of KaschiFL
Registered 2 years 52 days
KaschiFL Tuesday, 2 April 2024, 11:44 PM
Monitoring gleichzeitiger SIP-Kanäle
Hallo zusammen,

ich suche eine Möglichkeit bei 811er und 3011er die als SBC eingesetzt sind das Gesprächsaufkommen zu monitoren um hier zu definieren, ob der eingesetzte SIP-Trunk erweitert werden muss.

Hat damit schon jemand Erfahrung und kann mir einen Weg empfehlen ?

LG Kaschi
Picture of Muschelpuster
Registered 7 years 344 days
Muschelpuster Wednesday, 3 April 2024, 11:59 AM
Re: Monitoring gleichzeitiger SIP-Kanäle
Moin Kaschi,

ja, ich habe mich damit beschäftigt und für einen dummen Teleföner ist das nicht so einfach gemischt
Das Problem ist, dass man pro Gespräch zwar die Startzeit und die Dauer hat, aber immer die Zahl der gleichzeitigen Calls zu jedem neuen Gesprächsbeginn und -Ende braucht. Ich habe 2 Möglichkeiten, Daten in Grafana zu visualisieren:
  1. Zugriff auf die Reporting-DB der App-PF. Da gibt es sicher eine extrem coole Abfrage mit PostgreS, die ich jedoch nicht kenne. Ich habe da eine aufwändige, nicht performante Abfrage. Diese geht nur für kleine Installationen mit einem Trunk, da ich die Daten in temporäre Tabellen lade. Aber vielleicht gibt es ja hier noch jemanden, der SQL spricht und nicht nur stottert wink
  2. Ich gebe via CDR die Verbindungsdaten des Gateway an Node Red aus und bereite diese entsprechend auf (ignorieren der PBX-Daten etc.) um sie in mySQL zu schreiben. Damit die Auswertung zügig möglich ist erzeugen Trigger auf der mySQL Schnellsummen, bzw. aktualisieren die vorhandenen, relevanten Schnellsummen. So habe ich am Ende eine Tabelle mit Zeitstempeln und Kanalzahlen sowie dem Interface. Diese brauche ich nur als Liste via Grafana visualisieren und erzeuge im Moment der Anzeige keine Last und kann auch längere Zeiträume betrachten. Dafür verursachen die Trigger je nach Anrufvolumen immer eine gewisse Grundlast auf der DB.
halbwissende Grüße
Niels


PS:
Hier mal mein SQL-Monster auf der Reporting-DB:
WITH Q1 AS (SELECT round(utc_stamp/1000) AS t FROM cdrs AS Zeitpunkt
WHERE cn = 'Amt'
and round(utc_stamp/1000) < $__unixEpochTo()
and round(utc_stamp/1000) + conn_duration + alert_duration > $__unixEpochFrom()
UNION ALL
SELECT round(utc_stamp/1000) + conn_duration + alert_duration AS t FROM cdrs AS Zeitpunkt
WHERE cn = 'Amt'
and round(utc_stamp/1000) < $__unixEpochTo()
and round(utc_stamp/1000) + conn_duration + alert_duration > $__unixEpochFrom()),
Q2 AS (SELECT round(utc_stamp/1000) AS s, round(utc_stamp/1000) + conn_duration + alert_duration AS e
FROM cdrs as Zeitpunkt
WHERE cn = 'Amt'
and round(utc_stamp/1000) < $__unixEpochTo()
and round(utc_stamp/1000) + conn_duration + alert_duration > $__unixEpochFrom())
SELECT Q1.t AS time,
(SELECT COUNT(*) FROM Q2 WHERE Q2.s <= Q1.t AND Q2.e > Q1.t) AS C
FROM Q1 order by t;

Profilbild
Registered 12 years 101 days
Tobias 847 Wednesday, 3 April 2024, 01:04 PM in response to KaschiFL
Re: Monitoring gleichzeitiger SIP-Kanäle
Was Du noch machen könntest:

https://GWIP/!mem

damit bekommst Du einen Mem Auszug was aktuell belegt ist, dort gibt es einen Wert: "sip_channel"
Dieser sollte der Anzahl der aktuell laufenden Calls entsprechend, ist zumindest in meiner Demoumgebung so, bitte verifizieren bevor Du es verwendest smile

Grüße
Tobias
Picture of KaschiFL
Registered 2 years 52 days
KaschiFL Wednesday, 3 April 2024, 02:57 PM
Re: Monitoring gleichzeitiger SIP-Kanäle
Der Tip mit der !mem-Anzeige hat durchaus einen Anreiz.
Ich werde diese mal als Grundlage für ein Skript nehmen um daraus dann den Wert sip_channel zu holen.

Kann jemand mir den Aufbau verraten ?
Ich bekomme folgende Anzeige:

Total Memory Usage = 3897680
name size used free usage
sip_channel 6952 0 14 97328

Bedeutet dies, das ich 14 SIP-Kanäle insgesamt zur Verfügung habe ?
Die Zahl bei used ändert sich zumindest nach den aktuell geführten calls und die werden von free abgezogen.
Oder wo/wie kann ich die Gesamtzahl der SIP-Kanäle aus dem SIP-Trunk auslesen ?

LG Kaschi
Picture of Muschelpuster
Registered 7 years 344 days
Muschelpuster Wednesday, 3 April 2024, 04:01 PM
Re: Monitoring gleichzeitiger SIP-Kanäle
Hallo Kaschi,

das ist der Wert 'used'. Bei Dir also gerade 0. Wie der Wert von 'free' zustande kommt ist mir ein Rätsel. Das weiß eigentlich nur der Provider, oder Innovaphone kann mehr als sie verraten wink
Ich könnte mir höchstens vorstellen, dass der Wert von 'free' plus 'used' über die, seit dem letzten Restart, maximal genutzte Zahl von Kanälen generiert wird. Ich habe mir mal ein System angeschaut, auf dem noch kein Call gelaufen ist, da steht 'free' auch auf 0. Auch andere Systeme lassen diesen Gedanken plausibel erscheinen. Das wäre natürlich eine einfache, effektive Art zum Auszulesen, wie viele Kanäle seit dem letzten Restart max. benutzt wurden. Aber wohl nur, wenn nur 1 SIP eingerichtet ist, bei mehreren SIPs auf einem Gateway erscheinen mir die Zahlen auf den betrachteten Gateways nicht plausibel.

nachdenkliche Grüße
Niels
Picture of MarioG
Registered 4 years 356 days
MarioG Wednesday, 3 April 2024, 02:10 PM in response to KaschiFL
Re: Monitoring gleichzeitiger SIP-Kanäle
Diese Frage ist alles andere als Trivial.
Ich hatte diese Anfrage auch seit Jahren immer wieder.
Grundsätzlich konnte ich das universell für verschiedene Systeme lösen.
Man braucht den Start und Endzeitpunkt eines Gespräches.
Dafür muss man in eine Datenbasis halt +1 oder -1 setzen (evtl. mit Marker für den genutzten Trunk).

Allerdings muss man diese Daten dann entsprechend fortlaufend durchberechnen um pro Zeiteinheit (5min, 10min, 30min, etc...) dann einen Grundstand (x Gespräche) als Startbasis hat, wenn die Abfrage mittendrin anfängt.

Ein testskript lieferte mir da bereits Daten, allerdings habe ich das aus Zeitgründen nicht weiter getrieben.

Dazu kommt, dass man die Daten dann auch entsprechend für den gewünschten Filter (je nach Trunk, oder alle?) durchberechnen muss.
Eine einfache Lösung hatte ich dafür auch noch nicht. Theoretisch kommt man, wenn man das flexibel auswertbar machen möchte, wohl nicht um eine Durchverarbeitung aller Datensätze je nach Abfrage, herum.

Gruß Mario
Picture of Henning 1803
Registered 10 years 137 days
Henning 1803 Wednesday, 3 April 2024, 03:26 PM
1 of 1 users consider this post helpful
Re: Monitoring gleichzeitiger SIP-Kanäle
Ich habe dies bei uns über ein Powershell Script gelöst.
Dies fragt alle 10 Sekunden die momentan verwendeten Kanäle ab und speichert diese in eine DB.
Das Skript läuft bereits seit 1 1/2 Jahren.

while ($true) {

$user = "admin"
$pass = 'XXXXX'
$pair = "${user}:${pass}"
$bytes = [System.Text.Encoding]::ASCII.GetBytes($pair)
$base64 = [System.Convert]::ToBase64String($bytes)
$basicAuthValue = "Basic $base64"
$headers = @{ Authorization = $basicAuthValue }
$readings = Invoke-WebRequest -uri 'http://GWIP/!mem%20info%20relay_entity' -Headers $headers -UseBasicParsing
$regex = '\b\d{1,2}\([A-Za-z0-9]{7,8}\)'
$matches = [regex]::Matches($readings.Content, $regex)
$anzahlEinträge = $matches.Count
$connectionString = "Server=SQLSERVER\INSTANZ;Database=DB;User Id=sa;Password=XXXXX;"
$connection = New-Object System.Data.SqlClient.SqlConnection($connectionString)
$connection.Open()
$timestamp = Get-Date
#$count = 2
# SQL-Befehl zum Einfügen von Werten erstellen
$sql = "INSERT INTO dbo.sipcounter (time, count) VALUES (@Value1, @Value2)"
$command = New-Object System.Data.SqlClient.SqlCommand($sql, $connection)
 
# Parameter für die Werte festlegen
$command.Parameters.AddWithValue("@Value1", $timestamp)
$command.Parameters.AddWithValue("@Value2", $anzahlEinträge)
 
# Einfügen der Werte in die Datenbank
$command.ExecuteNonQuery()
 
$connection.Close()
Start-Sleep -Seconds 10


Gruß Henning

Picture of Henning 1803
Registered 10 years 137 days
Henning 1803 Wednesday, 3 April 2024, 03:31 PM
Re: Monitoring gleichzeitiger SIP-Kanäle
Sorry am Ende fehlte noch ein }

also

$connection.Close()
Start-Sleep -Seconds 10
}
Picture of Muschelpuster
Registered 7 years 344 days
Muschelpuster Wednesday, 3 April 2024, 03:39 PM in response to MarioG
Re: Monitoring gleichzeitiger SIP-Kanäle
Moin Mario,

ich habe auch überlegt, das zu gewissen Zeiteinheiten abzubilden. Das kann in intensiven Momenten die Datenmenge reduzieren, wird sie aber oft auch erhöhen und die Daten verfälschen. Die grundlegende Frage ist doch, wann sich der Zähler ändern kann. Dies kann nur zu Beginn oder zum Ende einer Verbindung erfolgen. Also sind das die Messpunkte die es braucht. Diese liegen dann in intensiven Zeiten sehr dicht beieinander, in verkehrsarmen Zeiten aber auch sehr weit auseinander. Und zu jedem dieser Messpunkte muss ich dann zählen, wie viele Datensätze von der Startzeit kleiner oder gleich, sowie von Startzeit plus Dauer größer als der Messpunkt sind. Dann habe ich eine exakte Abbildung. Bei meiner Forschung zu den Möglichkeiten von PostgreSQL hatte ich einen Weg, dass mit Werten zu machen, die als Feldtyp wirklich als Zeit definiert sind. In der Reporting-DB sind es allerdings Integer-Werte.
Die Filterung auf einen bestimmten Trunk ist noch recht einfach, spannend wird es wenn man mehrere Trunks in Summe sehen will, weil diese z.B. beim Provider einen Pool an verfügbaren Kanälen bieten.

dynamische Grüße
Niels
Picture of MEHRENS UC
Registered 1 year 42 days
MEHRENS UC Wednesday, 3 April 2024, 03:58 PM in response to KaschiFL
Re: Monitoring gleichzeitiger SIP-Kanäle
Wenn die Gespräche über die PBX und nicht ausschließlich über die GW Schnitstellen ohne in der PBX verarbeitet zu werden laufen, dann gehts mit der neuen MyApps Analytics App.

Laienhafte Grüße
Picture of FaRo
Registered 3 years 99 days
FaRo Wednesday, 3 April 2024, 04:53 PM
Re: Monitoring gleichzeitiger SIP-Kanäle
Hallo zusammen,

über unsere myApps Analytics App kann die Auslastung des Trunks überwacht werden. Hierzu muss die App das gewünschte Trunkobjekt auf der PBX überwachen. Dann kann eine Auswertung durchgeführt werden, welche anzeigt wie die Auslastung ist.

Hoffentlich hilfreiche Grüße
Fabian
Picture of KaschiFL
Registered 2 years 52 days
KaschiFL Thursday, 4 April 2024, 12:57 PM in response to KaschiFL
Re: Monitoring gleichzeitiger SIP-Kanäle

Die Lösung von Henning scheint mir ein Gangbarer Weg zu sein , in Verbindung mit dem Tip via Grafana von Muschelpuster.


Aber, kann mir jemand sagen, wo ich auslesen kann, wie viele Kanäle (maximal) in dem konfigurierten SIP-Trunk vom Provider zur Verfügung gestellt werden ?

LG Kaschi

Picture of Muschelpuster
Registered 7 years 344 days
Muschelpuster Thursday, 4 April 2024, 01:09 PM
Re: Monitoring gleichzeitiger SIP-Kanäle
Moin Kaschi,

ich halte den Hinweis auf die App für viel einfacher wink
Ok, kostet etwas, aber die Entwicklungszeit kostet auch und solange es nur um einen Trunk geht macht das durchaus Sinn.
Aber zu Deiner Frage: Die Zahl der Kanäle auf dem SIP siehts Du entweder auf der Rechnung vom Provider, in einem ggf. vorhandenen Serviceportal des Providers oder Du musst den Provider fragen. Auf der Anlage kannst Du das nicht sehen.

unsichtbare Grüße
Niels
Picture of KaschiFL
Registered 2 years 52 days
KaschiFL Thursday, 4 April 2024, 02:55 PM
Re: Monitoring gleichzeitiger SIP-Kanäle
Das ist echt schade, das man die Gesamtkanäle nicht auslesen kann.
Das Powershellskript läuft super und ohne Entwicklungszeit aber ich werde mich trotzdem mit den Apps beschäftigen.

LG Kaschi
Picture of André 1752
Registered 10 years 61 days
André 1752 Thursday, 4 April 2024, 04:36 PM
Re: Monitoring gleichzeitiger SIP-Kanäle
Ich bin mir nicht sicher ob das im SIP Protokoll überhaupt vorgesehen ist, bzw. übertragen wird.


Ein Trunk kann technisch gesehen beliebig vie Gespräche gleichzeitig führen.

Je nach Provider und Abrechnungsmodell ist es aber ev. eingeschränkt.
Sprich die wollen Kohle machen ;)

In der Schweiz ist es zB. so:

Swisscom Smart Business Connect:
- Da bezahlt man pro Kanal, mit einem harten Maximum

Sipcall:
- Eingehende Gespräche unbegrenzte Kanäle
- Ausgehende Gespräche unbegrenzte Kanäle beim Minutentarif
- Ausgehende Gesprächemit Flatrate: Da muss man eine fixe Anzahl Kanäle bezahlen (Aber eingehende Kanäle zählen nicht zu diesem Limit)

Picture of KaschiFL
Registered 2 years 52 days
KaschiFL Friday, 5 April 2024, 07:10 AM
Re: Monitoring gleichzeitiger SIP-Kanäle
Geld machen will/muss ja jeder.
Es geht aber in meinem Begehren darin, das ich die Ursache von Problemen mit der Telefonie identifizieren muss.
Die 3011 ist als SBC eingesetzt und dahinter mit pri eine Telefonanlage angeschlossen.
Nun kommen Fehler in Hinblick auf evtl. Nicht ausreichende Kanäle.
Und da wäre es hilfreich die bereitgestellten SIP Kanäle auslesen zu können.
Oder gibt es evtl. Ein Programm mit dem man das testen kann ?
Picture of Daniel 450
Registered 14 years 36 days
Daniel 450 Tuesday, 9 April 2024, 09:28 AM
Re: Monitoring gleichzeitiger SIP-Kanäle
Guten Morgen,

viele Wege führen nach Rom und mir fallen noch Einige mehr ein, als die hier bisher super vorgeschlagenen, ein Lob auf die tolle unterstützende Community. Eins vorweg, ich möchte keinen überreden unsere oder andere Apps auszuprobieren.

Ich teile die Meinung von Muschelpuster, dass eine App zu installieren die unter anderem genau dafür gebaut wurde, eine einfache Art ist das Problem zu lösen. Insbesondere, wo die Analytics App in ihrer Beta Phase derzeit noch kostenfrei im Store verfügbar ist. Deshalb mein Post, nicht als Werbung, sondern da wir immer wieder feststellen, dass einige Partner dies nicht wissen.

Zudem würde man sich so gleich mit einer, wie wir natürlich finden, interessanten App auseinandersetzten, die man auch bei Kunden einsetzen könnte, da sie diesen Mehrwerte stiften könnte und der Partner damit eine Win Win Situation (u.a. glücklicher Kunde und mehr verdient, bevor der Kunde sich vielleicht nach anderen Lösungsanbietern umschaut) erreicht.

Also wenn Interesse besteht, gerne melden.
← You can define your color theme preference here