NodeMCU und TR-064 Schnittstelle Fritz!Box

Ich hatte das Problem auch nicht explizit getestet.

Nachdem es nicht geklingelt hat bin ich halt auf die Suche gegangen.
Als erstes ob er sich überhaupt mit dem WLAN verbindet.
Dabei ist mir aufgefallen, dass der ESP die IP ...23 bekommen hat, aber im Sketch
hatte ich die ...50 vorgesehen. Daraufhin habe ich etwas gesucht, und den "Fehler" gefunden.

was ich viel interessanter finde, ist das ganze als WLan Telefon einzurichten.

In der Fritte mussw ein IP/WLan Telefon eingerichtet werden.

Funktioniert super, Code ist nicht von mir, hab ich im WWW gefunden.:

Da zu groß, hab ich ihn angehangen.

Interessant finde ich, das mehrere Telefone angelegt werden können und deshalb verschiedene aktionen damit erledigt werden können.

SIP Dialer.txt (15.3 KB)

Hallo,

muss dafür nicht noch irgendwo ein "Asterisk Server" laufen?

@garagenloeter Danke für das Script funktioniert super!

@Doc_Arduino Nein, einfach ein WLAN\IP Telefon einrichten, den User und Passwort + weitere Config im Sketch.

Gruß.

ich benutze den sketch in verbindung mit drei Homematic Zwischenstecker mit Leistungsmessung.
Diese lösen unter einem voreingestellten Stromverbrauch den ESP aus und klingelt dann meine Telefone an und signalisiert im Display "WaMa fertig", oder "Trockner fertig".

WLan Türklingel wäre auch denkbar, oder Panikstaster, der ne Handynr. anruft.
Da gibts vieles.

bei mir läuft der Sketch auf nem Wemos. schön klein.
Ich hab im Sketch für mich die Klingelzeit verlängert.
Kann sein, das das im hiesigen Sketch schon drinne ist.

Hallo,

aha, interessant zu wissen. Ich fragte deshalb, weil das SIP Raspi Klingel Projekt aus c't 17/2017 noch den Asterisk Server benötigte, also die Telefonanlage. Fällt nur nicht so auf, weil alles auf dem Raspi läuft. Nur ist eben ein Raspi als Klingel etwas sinnfrei. Ich werde die ESP Variante bald testen. Danke für den Hinweis.

Hallo,

bei mir klingelt nichts. Irgendwie stelle ich mich glatt an. :confused:

Zeile 46, 47, Fritzbox Kennung.

Zeile 52, 53
neuen User angelegt und PW vergeben.
Bzw. das vergeben was man beim IP Telefon anlegen angibt.

Zeile 57 sollte egal sein, ist erstmal identisch mit dem Namen des angelegten IP Telefons.

Ich weiß nicht was ich falsch mache.

// wlan param
const char* ssid        = "SSID";		// ist nicht das Echte
const char* password    = "PW_SSID";		// ist nicht das Echte

// sip params
const char *sipip       = "192.168.178.1";
int         sipport     = 5060;
const char *sipuser     = "SipUser";		// ist nicht das Echte
const char *sippasswd   = "PW_SipUser";		// ist nicht das Echte

// dial params
const char *sipdialnr   = "**620";
const char *sipdialtext = "SIP-Klingel";

// network params
const char *ip          = "192.168.178.88"; 	// ist nicht das Echte
const char *gw          = "192.168.178.1"; 
const char *mask        = "255.255.255.0"; 
const char *dns         = "192.168.178.1";

WLan Telefon in der Fritte ist angelegt?

Wer ist **620?

Hoffendlich nicht der ESP? das würde nicht funktionieren.
Da muss die Nr. hin, die angewählt werden soll.
Deswegen hab ich da eine Kurzwahl gewählt, ist beim ändern einfacher.

Hallo,

**620 ist die interne Nummer vom LAN/WLAN Telefon names "SIP-Klingel".
Die Nummer vergibt die Fritzbox. Du hast bei dir die **701.
Mein richtiges Telefon an FON1 hat die **1.

Ich habe wie vorher auch den neuen Fritzbox-User samt seinem PW bei sipuser/sippasswd eingetragen im Sketch und bei der "SIP-Klingel" in der Fritz.Box in den Anmeldedaten.

Edit:
Jetzt gehts. Ich muss für die sipdialnr nicht die **620 sondern die **1 eintragen. Also die die angerufen werden soll. Meine Fresse ... :o

Edit:
Danke.

Guten Abend,
ich habe den Scatch (von Heise und von Reichelt) ans Laufen gebracht. Wenn ich meinen Router neu starte funktioniert alles wie es soll.

Aber: Wenn ich nach ca. 10 Minuten die Klingel erneut betätigen möchte, dann entsteht zwar die WLAN Verbindung zur FB 7590, jedoch wird der Kingelton auf den Endgeräten nicht ausgelöst.

Wer kann helfen??

Grüße
Christian

Hallo,

hmm, keine Ahnung. Bau erstmal paar Debugausgaben rein um zusehen wo es hängen bleibt.
Klingelzeit darf auch nicht zu kurz sein. 2s sind bei mir Minimum.
Den Abfragezyklus kannste auch mal probieren zu erhöhen von 50 auf 100ms.

void setup() {
  Serial.begin(115200);

  WiFi.hostname(DEVICE_NAME);
  WiFi.config(STATIC_IP, SUBNET, GATEWAY, DNS); 
  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
  WiFi.mode(WIFI_STA);
 
  while (WiFi.status() != WL_CONNECTED) {
    delay(50);                                              // 100 probieren
  }
 
  connection.init();
  Serial.println("init okay");
  
  // Die Telefonnummer **9 ist der Fritzbox-Rundruf.
  String params[][2] = {{"NewX_AVM-DE_PhoneNumber", "**9"}};
 
  String req[][2] = {{}};
  String params1[][2] = {{}};
  connection.action("urn:dslforum-org:service:X_VoIP:1","X_AVM-DE_DialNumber", params, 1, req, 0);
  Serial.println("action 1 okay");
  
  //Hier können Sie die Zeit, die das Telefon klingelt, in Millisekunden einstellen
  delay(2000);
 
  connection.action("urn:dslforum-org:service:X_VoIP:1","X_AVM-DE_DialHangup", params1, 1, req, 0);
  Serial.println("action 2 okay");
  Serial.flush();
  
  ESP.deepSleep(0);
}

Vielen Dank für die schnelle Antwort.
Möglicherweise liegt der Fehler in einer Abhängigkeit zum Apple TV und ggf. der Sky Ticket App.

Heute früh, ohne Apple TV läuft die Lösung perfekt.
Kann man in der Fritzbox die Ports erkennen, über die die Gräte gehen?

Hallo,

meinst du die IP Adresse oder wirklich den Port?

Komplette IP Übersicht bekommste

Heimnetz > Heimnetzübersicht > Netzwerkverbindungen

Du wirst die 7er Firmware haben, da wird es bei dir grafisch schöner/anders aussehen.

Der Fehler ist nicht reproduzierbar. Ggf. ein Bug der HW.
CM.