Aus IPS Nebenstellen der Fritzbox anrufen

Hallo,

versuche nun schon seit Tagen, es hinzubekommen, dass ich aus IPS Nebenstellen der Fritzbox anrufen kann.

Per LAN-CAPI geht es lt. einigen Forumeinträgen nicht mit internen Teilnehmern, da kann ich nur aufs Handy anrufen. Das habe ich auch schon bestätigen können.

Per ISDN (Fritzcard USB 2.1) auch nicht, da sagt das Debug im ISDN-Modul, es wäre keine CAPI 2.0 installiert. Dienst und Rechner sind neugestartet. Fritzcard mehrmalig gezogen und gesteckt. Der Gerätemanager findet die FC auch unter Netzwerkadapter. Bei der Treibersuche bei AVM habe ich den Hinweis bekommen, dass das Betriebsystem diese bereits mitbringt und daher nicht weitere nötig sei. Kann es sein, dass die FC nicht unter W2k8 läuft? Weiterhin habe ich die beiden CAPIxxx.dll von einem funktionieren Windows8 installierter mit FC kopiert und neu gestartet - auch nichts.

Muss ich denn jetzt jetzt eine andere ISDN-Karte kaufen? Gibt es einen anderen Trick? Oder geht das per ISDN-Karte genauso wenig wie mit der LAN-CAPI von AVM?

Ziel ist es, bei zu langer Öffnung des Gefrierschraknkes alle internen Telefone anzurufen und ein wav-File abzuspielen.

Mit der Fritzbox-API geht es ganz leicht:

$dial = '**610#611#612'; // set to the number to dial

try
{
  require_once('.\fritzbox_api\fritzbox_api.class.php');
  $fritz = new fritzbox_api();

  $formfields = array(
    'telcfg:command/Dial'      => $dial,
    'telcfg:settings/UseClickToDial' => '1',
    'telcfg:settings/DialPort' => '50',
  );
  echo $fritz->doPostForm($formfields);

  IPS_Sleep(9000);

  $formfields = array(
    'telcfg:command/Hangup'      => '50',
  );
  echo $fritz->doPostForm($formfields);
}
catch (Exception $e)
{
	$message .= $e->getMessage();
	echo $message;
}

$fritz = null; // destroy the object to log out

Hallo robi,

mögest du mir die aktuelle API mailen oder ins Forum stellen? Das sind - glaube ich - eine Sammlung von php-Scripts, oder? An welcher Stelle wird die wav-Datei wie eingebunden? Bevor ich auch mit der Telefonie auf die Fritzbox umgestiegen bin, hatte ich eine „echet“ Telefonanlage, wo ich den IPS-Rechner per ISDN-Karte angebunden hatte. Und mit diesem Script konnte ich darüber einen Sammelanschluß anrufen, der dann mehrere Teilnehmer rief, auch interne. Mit der Fritzbox geht das nun nicht mehr. Zumindest weiß ich nicht, wie ich das anstellen soll.

<?
// Testscript zum Testen der ISDN-Verbindung
$rufnummer = "**613";

// ISDN-Moudl festlegen
$isdn = 59382 /*[HWR\Gefrierschrank\Gefrierschrank ISDN Module]*/ ;

// Ordner und Datei festlegen
$dir=IPS_GetKernelDir();
$file = $dir."\wave\gesamt1.wav";

// Verbindung aufbauen, File abspielen und auflegen
$conn = ISDN_Connect($isdn, $rufnummer);
echo $conn;
do {
		IPS_Sleep(500);
		$callinfo = ISDN_GetConnectionInfo($isdn, $conn);
		print_r($callinfo);
	}
while ( $callinfo["State"] != "4") ; // warten, bis abgenommen wurde

$len = ISDN_PlayWave($isdn, $conn, $file); // Spieldauer in ms
IPS_Sleep($len+500); // warten bis abgespielt
ISDN_StopPlay($isdn, $conn);
ISDN_Disconnect($isdn, $conn);

?>

Nein, das möchte ich nicht. Den Aufwand Google zu befragen, kannst Du sicherlich selbst aufbringen.

Hallo robi,

es geht nicht um eine Faulheit zum Googeln, sondern zum einen um die Aktualität dieser Version im Vergleich mit deiner funktionierenden. Zum zweiten: wie spiele ich das wav-File ab.

Problem (teilweise) gelöst: habe die alte PCI-Eicon-Karte wieder gefunden. Die eingebaut und schon Funktion. Allerdings nur abgehend (aus der Sicht von IPS). Da ist im ISDN-Modul die **51 eingetragen. Dmit wird dann auch der Name des Telefons in der FB richtig angezeigt. Nun kann ich meine Texte wieder an den schnurlosen und festen SIP-Telefonen abspielen lassen.

Guten Morgen und einen schönen 1. Advent,

habe bereits erfolgreich die API eingebunden und das Telefon klingelt.

Jetzt will ich zusätzlich eine Wave Datei abspielen (ohne ISDN Modul) und stehe im Moment auf dem Schlauch, wie ich es umsetze.

Ich könnte die Wartemusik umändern, will ich aber nicht, da es ja für alle Rufnummern gilt.

Oben ist ja ein Beispiel mit ISDN Modul angegeben… Wie portiere ich das nun.

Merci!

Hallo ubittner,

wenns schon robi nicht macht …

könntest Du bitte die für die Nutzung der API nötigen Dateien incl Zielspeicherort zum Download einstellen. Bei ip-phone-forum.de wollen die eine Anmeldung zum Dowload. Für ein mal …

Dann kann ichs ja mal testen und posten.

Habe eine 7490 os 6.2

Danke schon mal und

hier ist die Script Sammlung:

fritzbox_api_php_v0.5.0b7.zip (15.8 KB)

Das wäre toll, wenn das funktionieren würde, dann kann man sich den Asterisk Server sparen.

Mögliche Ideen: die wav (oder auch anderes Format) Datei in den flash oder auf einen usbstick ablegen und dann abspielen.

Soviel zur Theorie…

Hallo ubittner,

wie sieht denn Dein Script aus dass das Telefon klingelt? Ich bekomme nicht mal das hin.

Hallo Wolfgang,

Welchen Fehler bekommst du denn?

Generell muss in der Fritte UPNP aktiviert sein.

Dann braucht man diese drei scripts:

  1. die fritzbox_api.class.php , in IPS einfach neues Script anlegen und als Scriptnamen „fritzbox_api.class.php“ nehmen und nicht die Variablennummer

  2. die fritzbox_user.conf.php , Vorgehensweise wie oben … Scriptnamen umbenennen.

Das Script editieren und mit deinen Daten füllen:

Hier nur ein Auszug:

Ich arbeite mit einem User auf der Fritte zur Anmeldung, also muss das config file so aussehen:

set to your Fritz!Box username, if login with username is enabled (will be ignored, when remote config is enabled)

$this->config->setItem(‚username‘, DEINNAME; // DEINNAME musst du dann ersetzen :wink:

set to your Fritz!Box password (defaults to no password, will be ignored, when remote config is enabled)

$this->config->setItem(‚password‘, PASSWORT); // PASSWORT

usw.

  1. das fritzbox_ring_phone.php, Vorgehensweise auch wie oben, Scriptnamen umbenennen

und unter DIAL

$dial = ‚**610‘; // set to the number to dial dann deine Nummer eintragen

bei extern $dial = ‚01234567890‘;

Bei mir klappt es, es klingelt entweder intern (**610) oder mit externer Nummer lasse ich mich auf meinem Handy anrufen.

Habe die Fritte so konfiguriert, dass über ein SIP Account gewählt wird.

Scriptnamen:
Ich selber habe die Scriptnamen wie folgt benannt:
fritzbox_api_class.ips.php
fritzbox_user_conf.ips.php
fritzbox_ring_phone.ips.php

Musste dann in den Scripten selber die Namen ändern.

Sonst versuche mal dieses DIAL Script:

<?php
$dial = '01234567';//**610'; // set to the number to dial
// init the output message
$message = date('Y-m-d H:i') . ' ';
try
{
  // load the fritzbox_api class
  require_once(__DIR__ . '/fritzbox_api_class.ips.php');
  $fritz = new fritzbox_api();

  // update the setting
  $formfields = array(
    'telcfg:command/Dial'      => $dial,
  );
  $fritz->doPostForm($formfields);
  $message .= 'Phone ' . $dial . ' ringed.';
}
catch (Exception $e)
{
  $message .= $e->getMessage();
}

// log the result
if ( isset($fritz) && is_object($fritz) && get_class($fritz) == 'fritzbox_api' )
{
  $fritz->logMessage($message);
}
else
{
  echo($message);
}
$fritz = null; // destroy the object to log out
?>

Hallo ubittner,

erst mal Danke für Deine Unterstützung. Damit klingelts jetzt auch bei mir.

Nach ein wenig rumspielen hab ich bemerkt, dass der Logout entweder nicht stattfindet, oder von der FB nicht geloggt wird.

Zum abspielen von eigenem Text hab ich im inet rausgefunden:

  • Es wird immer die Warteschleife abgespielt. …

Sehe gerade, dass Du die Frage nach dem abspielen der wav auch im ip-phone-forum gestellt hast. Damit erübrigt es sich die einzelnen Erkenntnisse daraus hier aufzuführen.

Ergebnis in kurz: Es können keine wav-dateien abgespielt werden!

Evtl hilft Dir der dortige Post 21 u 22 als Workaround weiter. Wenn Du fit genug bist (ich bins nicht) das per Script zu automatisieren für verschiedene Ansagen und wieder zum Standard zurück.