Notrufnummern bei eingewählten VPN Clients

thepontifex

Neuer User
Mitglied seit
2 Mrz 2005
Beiträge
141
Punkte für Reaktionen
0
Punkte
16
Hi,

folgendes Szenario:

Asterisk als Firmentelfonanlage. Firmenintern telefoniert jeder über voip, nach extern über ISDN. Nun gibt es 2 Mitarbeiter, die loggen sich von zuhause aus per vpn in der Firma ein. Dabei sind sie mit ihren Telefonen auch eingeloggt um unter Ihrer normalen Durchwahl erreichbar zu sein, wie wenn sie im Büro sitzen würden.

Wenn jetzt einer von denen einen Notfall hat, und die 110 oder 112 wählt landet er ja in der zuständigen Notruf-Zentrale für das Ortsnetz des Asterisk und nicht in der für sein Ortsnetz zuständigen.

Wie könnte ich das realisieren das da die richtige zentrale angerufen wird?
Gibts da schon eine fertige Lösung?

Was die Sache etwas erleichtert:
Die 2 Mitarbeiter wählen sich nur von daheim aus ein, d.h. das Ortsnetz ist bekannt.

Any ideas?

Gruss
Frank
 
...lokale vorwahl vorranstellen (müsste doch eigentlich gehen)
oder noch besser/einfacher: Hanby benutzen ;)
 
Hmm is halt echt die Frage! Wenn der Mitarbeiter mit seinem Headset vorm Laptop daheim auf dem Balkon sitzt, sein normales Festnetztelefon in der Ladeschale im Wohnzimmer liegt und sein Handy vielleicht auf dem Wohnzimmertisch liegt und er dann einen Herzinfarkt oder Atemnot oder sowas bekommt und nicht mehr aufstehen kann und das einzige was er auf die Reihe krigt ist die 110 zu wählen.....

Noch jemand Ideen wie man die Sache lösen könnte?

Gruss
Frank
 
Wenn das Ortstnetz bekannt ist, hast Du da auch die "zuständigen" Festnetznummern der Leitstellen für 110 und 112 ? Ich hab da ne Lösung, die diese beiden "echten" Festnetznummern allerdings voraussetzt. Kann ich Dir heute abend mal posten.
 
j
hast Du da auch die "zuständigen" Festnetznummern der Leitstellen für 110 und 112 ? Ich hab da ne Lösung, die diese beiden "echten" Festnetznummern allerdings voraussetzt. Kann ich Dir heute abend mal posten.

ja das ist glaub kein Problem diese rauszubekommen. Das müssten die sein die auch im Radio genannt werden wenn der Notruf 110 / 112 in einem Gebiet ausfällt.

Das wär supi wenn Du Deine Lösung mal posten könntest!

Gruss
Frank
 
Here we go ...

Schritt 1:
Eine Tabelle in der Datenbank für die Asterisk Konfiguration anlegen.
Bei mir ist heißt die DB "asteriskconfig"

Code:
-- phpMyAdmin SQL Dump
-- version 2.6.0-pl1
-- http://www.phpmyadmin.net
-- 
-- Host: localhost
-- Erstellungszeit: 01. Juni 2005 um 18:44
-- Server Version: 3.23.49
-- PHP-Version: 4.1.2
-- 
-- Datenbank: `asteriskconfig`
-- 

-- --------------------------------------------------------

-- 
-- Tabellenstruktur für Tabelle `notruf`
-- 

CREATE TABLE `notruf` (
  `id` int(11) NOT NULL auto_increment,
  `region_vorwahl` varchar(6) default NULL,
  `rufnummer_110` varchar(30) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=2 ;

Schritt 2:
Die Datenbank mit den richtigen Werten füllen. In das Feld "region_vorwahl" die Ortsvorwahl, in das Feld "rufnummer_110" die echte Festnetznummer der Leitstelle eintragen.

Schritt 3:
3a) Den folgenden Kontext [notruf] in die extensions.conf packen.

Code:
[notruf]
exten => _*110.,1,NoOp(Notrufsetzen)
exten => _*110.,n,DBput(notruf/${CALLERIDNUM}=${EXTEN:4})
exten => _*110.,n,Playback(auth-thankyou)
exten => _*110.,n,HangUp

; Beschreibung siehe 2a)
exten => 110,1,NoOp(Notruf wird ausgefuehrt)
exten => 110,n,DBget(region=notruf/${CALLERIDNUM})

; Beschreibung siehe 2b)
exten => 110,n,MySQL(Connect connid localhost db-user db-password asteriskconfig)
exten => 110,n,MySQL(Query resultid ${connid} SELECT\ rufnummer_110\ from\ notruf\ where\ region_vorwahl=${region})
exten => 110,n,MySQL(Fetch fetchid ${resultid} notruf)
exten => 110,n,MySQL(Clear ${resultid})
exten => 110,n,MySQL(Disconnect ${connid})

;Beschreibung siehe 2c)
exten => 110,n,NoOp(Dial(SIP/${notruf}@sipprovider))
exten => 110,n,HangUp

;Beschreibung siehe 3)
exten => **110,1,NoOp(Region abfragen)
exten => **110,n,Wait(1)
exten => **110,n,DBget(region=notruf/${CALLERIDNUM})
exten => **110,n,SayDigits(${region})
exten => **110,n,Wait(1)
exten => **110,n,SayDigits(${region})
exten => **110,n,Wait(1)
exten => **110,n,HangUp

3b) Diesen Kontext mit include => notruf den Benutzerkontexten zuweisen, die diese Funktion benutzen dürfen.

Ab sofort kann dann der VoIP-Nutzer folgendes tun:

1.) mit *11009721 teilt er dem System mit, daß er sich ab sofort im Vorwahlbereich 09721 aufhält.

2.) mit 110 kann dann ein Notruf abgesetzt werden. Asterisk arbeitet dabei in 3 Schritten:
2a) mit DBget wird aus der Asterisk-internen DB ausgelesen, in welchem Vorwahlbereich sich CALLERIDNUM aufhält.
2b) danach wird anhand dieser Vorwahlnummer in der MySQL Datenbank nachgesehen, wie die Leitstellennummer lautet
2c) und nun wird die Nummer der Leitstelle angewählt. Im Beispiel über SIP

3) mit **110 kann sich der VoIP Nutzer ansagen lassen, für welche Vorwahl er sich aktuell registriert hat. Die Ansage wird 2 Mal abgespielt, danach wird aufgelegt.

Das Ganze ist noch sehr rudimentär - es wird z.B. noch keine Fehlerbehandlung durchgeführt, falls es für die CALLERIDNUM noch keinen Eintrag in der AsteriskDB oder keinen passenden Eintrag für die Vorwahl in der MySQL Datenbank gibt.

Es ging mir erstmal darum, die prinzipielle Vorgehensweise darzustellen.

Im Moment fehlt mir eine vollständige Datenbanktabelle, anhand derer aufgrund der Vorwahl eine echte Notrufnummer herausfinden kann.
 
Die Ortsvorwahl voranstellen funktioniert NICHT! Also diesen Vorschlag gleich wieder vergessen :)
 
@Odysseus - das wußten wir aber schon ... :wink:
 
Hi,

hab heute mal die Konfig von betateilchen probiert! Funktioniert schon recht gut. Geht es denn auch, dass die Vorwahl, die der Teilnehmer über sein Telefon eingibt auch in der MySQL DB gespeichert wird und nicht nur in der Asterisk-internen-DB?

Gruss
Frank
 
Ja, das geht auch. Aber da Du ja nur eine begrenzte Anzahl von Usern hast, die das nutzen werden, hab ich das einfach in die Asterisk-DB eingetragen, was mir außerdem die Möglichkeit gibt, bei Nichterreichbarkeit des MySQL-Servers dem notrufenden Teilnehmer sofort eine Fehlermeldung anzusagen. Das würde nicht so einfach funktionieren, wenn die "userbezogene Vorwahl" auch auf der MySQL DB liegen würde, weil * dann nicht wüßte, ob der User überhaupt eine Vorwahl eingetragen hat.
 
Ja, ok ist ja auch ein guter Weg die Lösung! :D

Problem ist nur das ich den Leuts beibringen muss dann die Nummer per Telefon zu "pflegen". In 98% aller Fälle brauchen Sie gar nix tun da sie ja immer von zuhause aus arbeiten und somit die einmal eingestellte Vorwahl stimmt. Sind sie aber unterwegs, dann müssen Sie 1. daran denken dass sie die Vorwahl anpassen und 2. müssen sie dann auch noch wissen wie sie das machen müssen. Da wäre es einfache sie bräuchten dann nur ins Webinterface gehen, welches auf die MySQL DB zugreift und da in ein Feld den aktuell gültigen Vorwahlbereich eintragen.

Oder was meinste?

Gruss
Frank
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.