par tibhix » 24 Mars 2014 23:05
Bonjour,
@DomotiFred = J'ai fait des modifications pour récupérer les appels manqués sur la Freebox:
Méthode:
- J'ai patché légèrement le fichier freebox.class.php (ligne 549) pour avoir une conversion de timestamp en format lisible (je n'ai pas réussi à le faire avec XPATH):
$encoded_item = str_replace ($array_special_char, $array_replace_char,$item);
// Ajout pour conversion datetime
if ($key=="datetime") {$encoded_item=date('d/m H:i', $encoded_item);}
$element = $dom_doc->createElement($key,utf8_encode($encoded_item));
$node->appendChild($element);
- créer ensuite un périphérique virtuel (capteur HTTP):
--> type de données : Texte
--> URL : http://[Ip_du_serveur_ayant_le_php]/fbxapi/freebox.php
--> Chemin XPATH (ça doit surement être simplifiable mais pas trouvé...)
substring(concat(/freeboxOS/Calls_Contacts/GetCallsList/id-0[type='missed']/datetime,'[',/freeboxOS/Calls_Contacts/GetCallsList/id-0[type='missed']/name,']',/freeboxOS/Calls_Contacts/GetCallsList/id-1[type='missed']/datetime,'[',/freeboxOS/Calls_Contacts/GetCallsList/id-1[type='missed']/name,']',/freeboxOS/Calls_Contacts/GetCallsList/id-2[type='missed']/datetime,'[',/freeboxOS/Calls_Contacts/GetCallsList/id-2[type='missed']/name,']',/freeboxOS/Calls_Contacts/GetCallsList/id-3[type='missed']/datetime,'[',/freeboxOS/Calls_Contacts/GetCallsList/id-3[type='missed']/name,']',/freeboxOS/Calls_Contacts/GetCallsList/id-4[type='missed']/datetime,'[',/freeboxOS/Calls_Contacts/GetCallsList/id-4[type='missed']/name,']',/freeboxOS/Calls_Contacts/GetCallsList/id-5[type='missed']/datetime,'[',/freeboxOS/Calls_Contacts/GetCallsList/id-5[type='missed']/name,']',/freeboxOS/Calls_Contacts/GetCallsList/id-6[type='missed']/datetime,'[',/freeboxOS/Calls_Contacts/GetCallsList/id-6[type='missed']/name,']',/freeboxOS/Calls_Contacts/GetCallsList/id-7[type='missed']/datetime,'[',/freeboxOS/Calls_Contacts/GetCallsList/id-7[type='missed']/name,']',/freeboxOS/Calls_Contacts/GetCallsList/id-8[type='missed']/datetime,'[',/freeboxOS/Calls_Contacts/GetCallsList/id-8[type='missed']/name,']',/freeboxOS/Calls_Contacts/GetCallsList/id-9[type='missed']/datetime,'[',/freeboxOS/Calls_Contacts/GetCallsList/id-9[type='missed']/name,']',/freeboxOS/Calls_Contacts/GetCallsList/id-10[type='missed']/datetime,'[',/freeboxOS/Calls_Contacts/GetCallsList/id-10[type='missed']/name,']',/freeboxOS/Calls_Contacts/GetCallsList/id-11[type='missed']/datetime,'[',/freeboxOS/Calls_Contacts/GetCallsList/id-11[type='missed']/name,']'),0,60) change('[]','') change(']',']<br>')
Pour les appels émis, il suffit de faire la même chose en remplaçant "missed" par "outgoing" et pour les reçus, mettre "accepted".
J'ai mis un substring à 60 pour couper à 60 caractères car au-delà, ça ne s'affiche pas sur les périphériques HTTP eedomus (trop de caractères je suppose). Je ne peux pas remonter plus que les 11 derniers appels car le XPATH ne permet pas plus de caractères..
Enjoy !