VTH Klingeln per Knopfdruck abstellen?

Bavilo

Neuer User
Mitglied seit
3 Dez 2017
Beiträge
73
Punkte für Reaktionen
2
Punkte
8
Ich habe mal eine Frage bezüglich der VTO/VTH. Gestern habe ich alles auf die neuste SIP 2.0 Firmware geupdated. Funktioniert bis JETZT auch...
Leider muss ich ja nun wieder die schrecklichen Dahua Klingeltöne benutzen.

Hiermit hatte ich seit beginn ein Problem. Eine VTH ist im Keller verbaut, eine im oberen Flur und eine im Wohnzimmer.

Sollte ich nun im unteren Flur vor der Haustür stehen und es klingelt gerade jemand. Wäre es natürlich doof erst ins Wohnzimmer rennen zu müssen um das Klingeln ab zu stellen. Also öffne ich einfach die Tür und es klingelt einfach unangenehm weiter. Sogar der Postbote ist schon davon genervt...

Neben der Haustür habe ich jedoch die Unterverteilung wo auch die Leitungen der VTO reingehen. Gibt es irgendeine möglichkeit einen Taster einzubauen der irgendwie das Klingeln bei bedarf abstellt? Eventuell irgendwie über SIP? Oder vielleicht ein Mikrocontroller der ein SIP Befehl sendet oder was auch immer...

Danke!

Michael
 
Mit dem PHP Script gibts da vielleicht eine Funktion... Müsste man aber viel "forschen".

Mit Asterisk als SIP Server sicher einfacher zu lösen. Am RPi installiert + ein kleines Script + Taster (direkt and den GPIO's des RPi).
 
Dies ist eine Funktion welche ich auch bräuchte und versuchen werde in ein PHP Skript einzubauen.
Falls jemand weiß mit welchem Befehl man das Klingeln beenden kann (Wireshark log), bitte melden.
 
Mit oder ohne Asterisk?
Bei Asterisk gibts sicher ein Kommando "hangup?" - ohne sehe ich ziemlich schwarz.
Außer es findet jemand ein Dahua Programm (z.b.SmartPSS), mit welchem man das machen kann.
 
Ohne SIP.
Ich meine mich zu erinnern dass es den Befehl "cancel call to VTH" oder so ähnlich auf der Console gibt.
Den müsste man auch über ein Telegramm triggern können.
 
Mit diesem Befehl kann man das Klingeln sofort beenden.
Es wird dann aber ein verpasster Anruf am Display angezeigt.

PHP:
$query_args = array(                   
    'id'=>$this->ID,
    'magic'=>"0x1234",
    'method'=>"console.runCmd",
    'params'=>array(
        'command'=>"cc" //oder "hc"
    ),           
    'session'=>$this->SessionID);

Hat jemand eine Möglichkeit einen Wiresharklog vom Abheben, Auflegen und Auflegen ohne vorher abzuheben, zu machen?
 
Ja, es ist das "hc" Kommando - lässt meine VTO (4.3SIP mit Asterisk) den Call sofort beenden (SIP-CANCEL).
Traces hier: hc-debug
 
Mit meiner Firmware ohne SIP kann ich sowohl mit cc als auch hc den Call sofort beenden.
Was mich interessieren würde wären die Befehle welche das VTH Display an die VTO beim Abheben, Auflegen und Auflegen ohne vorher abzuheben schickt. Idealerweise ohne Asterisk.

Denn damit könnte man eventuell den Anruf beenden ohne einen verpassten Anruf im Display zu haben.
In Kombination mit dem Türkontaktschalter kann man damit beim Öffnen der Tür das Klingeln sofort beenden.
 
Da kann ich dann natürlich nicht helfen.

Egal ob mit Asterisk oder mit dem eingebauten SIP Server: Anrufe in Abwesenheit anzuzeigen sind üblicherweise Device "Sache" und werden nicht im Protokoll zwischen den Stationen abgebildet.
Mit der SIP Firmware auf der VTH wirst du den "Anruf in Abwesenheit" wohl nicht ohne Zugriff auf die VTH entfernen können. Vielleicht gibts aber auch dafür eine Art "lösche Anrufliste" in den DHIP Kommandos.
 
Das ist schon klar.
Aber wenn ich irgendwie den Devices sagen könnte "Anruf wurde entgegengenommen" dann würde kein entgangener Anruf angezeigt werden.
Vielleicht muss man auch den Umweg über entgegennehmen und 1s später auflegen machen.
 
Sowas gibt's in SIP nicht (vergiss das ich angerufen habe - Funktion).
Annehmen und sofort wieder auflegen schon eher. Könnte man evtl. sogar mit SmartPSS "nachspielen" und mitsniffern.

Das "löschen" des letzten Anrufs auf der VTH bei manuellem Abbruch könnte evtl. mit einer der folgenden "method's" funktionieren:
Code:
"params": {
        "method": [
            "RecordUpdater.factory.instance",
            "RecordUpdater.destroy",
            "RecordUpdater.import",
            "RecordUpdater.insert",
            "RecordUpdater.insertEx",
            "RecordUpdater.get",
            "RecordUpdater.getEx",
            "RecordUpdater.update",
            "RecordUpdater.updateEx",
            "RecordUpdater.remove",
            "RecordUpdater.removeEx",
            "RecordUpdater.clear",
            "RecordUpdater.importFile",
            "RecordUpdater.exportFile",
            "RecordUpdater.attach",
            "RecordUpdater.detach",
            "RecordUpdater.listMethod",
            "RecordUpdater.getFileImportState",
            "RecordUpdater.getFileExportState",
            "RecordUpdater.getFileImportData",
            "RecordUpdater.exportAsyncFile",
            "RecordUpdater.getSchema",
            "RecordUpdater.importFileEncrypt",
            "RecordUpdater.exportFileEncrypt"
        ]
oder
Code:
"params": {
        "method": [
            "RecordFinder.factory.create",
            "RecordFinder.destroy",
            "RecordFinder.startFind",
            "RecordFinder.doFind",
            "RecordFinder.stopFind",
            "RecordFinder.getQuerySize",
            "RecordFinder.doSeekFind",
            "RecordFinder.listMethod"
        ]
    "params": {
        "method": [
            "log.factory.instance",
            "log.destroy",
            "log.getSummary",
            "log.startFind",
            "log.doFind",
            "log.stopFind",
            "log.clear",
            "log.append",
            "log.getCaps",
            "log.getCount",
            "log.doSeekFind",
            "log.stop",
            "log.resume",
            "log.clearByTypes",
            "log.listMethod"
        ]
Müsste man ausprobieren.
 
Das hört sich doch schonmal gut an! Veröffentlicht Ihr das PHP script für das Auflegen? Muss mir dann nur mal überlegen wie ich noch einen Mikrocontroller in die UV reinbekomme. Ist etwas wenig Platz...

Wie würde so ein Türkontaktschalter in der Tür verbaut werden? Mit diesem das Klingeln zu beenden wäre natürlich perfekt!
 
Das sind üblicherweise Magnetkontakte (Reed).
Ich habe meine Tür schon mit einem Magnetkontakt im Rahmen bestellt.
Gibt aber auch Kontakte welche man nachträglich anbauen und über Funk ansprechen kann.

Das Script ist bei mir bereits im Einsatz.
Das einzige Manko ist wie bereits erwähnt der verpasste Anruf welcher im Display angezeigt wird.
Ich werde Rio das Script senden damit er es auf Github stellen kann.
 
Das mit dem verpassten Anruf währe mir egal. Muss mir jetzt nur noch einen Raspberry Pi Zero bestellen und ein Hutschienennetzteil. Damit währe die UV dann entgültig voll... :(

Würde mich über den Link zum PHP script freuen.
 
Der Magnetschalter ist am Wochenende gekommen. Alles verkabelt und den Raspberry Pi Zero W in die UV gepackt. Nun wird das Klingeln sofort beim Öffnen der Tür beendet. Endlich RUHE!

Danke für das Script :)
 
Ja genau, danke für das Script !
Die Lsg. von Bavilo kann ich bei mir leider nicht einbauen (wüsste aber auch nicht wie :) ) - aber mir ging die VTH ziemlich "auf den Keks" da sie mind. 15 sec. klingelt, wenn man nicht den "Beenden-Button" auf der VTH drückt.
Also habe ich es per Script auf 10 sec. beschränkt und nutze hierfür das EventHandleScript.

Code:
    elseif($eventCode == 'CallNoAnswered'){
        logging("Event Call from VTO");
        sleep(10);
        $query_args = array(                   
            'id'=>$this->ID,
            'magic'=>"0x1234",
            'method'=>"console.runCmd",
            'params'=>array(
            'command'=>"hc" //oder "hc"
            ),           
            'session'=>$this->SessionID);           
        $this->Send(json_encode($query_args));
        $this->Receive();
    }
 
Würde gerne nochmals auf die Möglichkeit des Löschens des letzten Anrufs auf der VTH bei manuellem Abbruch zurückkommen ode einfach nur alle Einträge löschen.
@rio: Du hattest ob die evtl. Möglichkeit mit RecordUpdate, RecordFinder und log beschrieben.

Wie müsste ich das denn testen ?
Mich einfach mit depy-Script auf meiner VTH einloggen und dann z.B.
"service RecordUpdate.clear" und dann schauen, ob das Log gelöscht ist ? Oder muss ich dem noch einen Parameter anhängen ?
 
Hab mich damit nicht weiter gespielt, weil ich diese Funktion selbst nicht brauche.
Bin aber überzeugt, dass das möglich ist.
Wie genau kann ich dir nicht sagen.
Schau dir mal dieses File aus der SDK an: "dhnetsdk.h", da sind wertvolle Hinweise enthalten (einfach nach "dhnetsdk.h + dahua" g**gln).
 
  • Like
Reaktionen: kuzco-ip
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.