11 Commits

5 changed files with 21 additions and 10 deletions

View File

@@ -5,6 +5,7 @@ __FritzAB2Matrix__ reads out the answering machine (_TAM_) of a _Fritz!Box_ in y
Uses the python based cmd-line-tool [matrix-commander](https://github.com/8go/matrix-commander) so the matrix-commander.py in this repo is just a copy of that file to ease testing.
## Features
* Since _v0.1.1_ __Multitam__ is integrated so that you can check multiple answering machines __and__ post the messages to different matrix rooms. (Use _FRITZ\_TAM_ variable in .env file)
* Set _FRITZ\_CALL\_WATCH_=True if you want to receive a message everytime you miss a call.
## Installation
If you like to test this repository you are recommended to use one of the following two options.
### Necessary preparations for both cases
@@ -30,6 +31,7 @@ FRITZ_IP="192.168.178.1"
FRITZ_TMP="/tmp"
# FRITZ_VOICEBOX_PATH="fritz.nas/FRITZ/voicebox"
FRITZ_TAM='{"0" : "!roomhash1:matrix.org", "1" : "!roomhash2:matrix.org"}'
FRITZ_CALL_WATCH=False
```
__.env__
@@ -67,4 +69,4 @@ Especially to
* https://github.com/jiaaro/pydub/
* https://git.savannah.nongnu.org/cgit/fbvbconv-py.git/

View File

@@ -16,13 +16,15 @@ RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone;
cargo \
libffi-dev \
openssl-dev \
olm-dev \
zlib-dev \
jpeg-dev ; \
apk add --no-cache ffmpeg speex; \
pip install --no-cache-dir upgrade pip; \
apk add --no-cache olm libmagic ffmpeg speex; \
pip install pip -U --no-cache-dir; \
pip install --no-cache-dir -r requirements.txt ; \
apk del --no-cache .build-deps;
ENTRYPOINT ["python3", "-u", "fritzab2matrix.py "]
# ENTRYPOINT ["python3", "-u", "fritzab2matrix.py"]
ENTRYPOINT /bin/sh -c "export UNBUFFERED=1 && python3 -u ./fritzab2matrix.py"

View File

@@ -8,7 +8,7 @@ from libs.monitoring import endedCall
from libs.message import conversion as conv
import urllib.request
import xmltodict, json
import sys, os
import sys, os, time
import smbclient
@@ -97,7 +97,6 @@ def lastcall2matrix(tam,tam_no):
def fritzab2matrix(tam):
### CHECK AND GET MESSAGES FROM FRITZBOX ###
############################################
@@ -125,7 +124,7 @@ def fritzab2matrix(tam):
for a in messages:
# format the information regarding the message
msg_info = a['Date'] + " - " + a['Number']
msg_info = a['Date'] + " - " + str(a['Number'])
if a['Name']:
msg_info += " (" + a['Name'] + ") "
@@ -173,6 +172,7 @@ def fritzab2matrix(tam):
def multitam(tams):
time.sleep(10)
for tam in tams.keys():
print("Check TAM {}.".format(tam))
fritzab2matrix(tam)

View File

@@ -15,10 +15,17 @@ def watch_disconnect(monitor, event_queue, func, tams, healthcheck_interval=10):
else:
# do event processing here:
print(event)
if 'DISCONNECT' in event:
print("Anruf beendet. Jetzt den AB checken.\n")
if 'DISCONNECT;0' in event:
print("Incoming call stopped. Check the TAM.\n")
func(tams)
elif 'DISCONNECT;1' in event:
print("Outgoing call stopped. Do nothing.\n")
else:
print("Unknown event.\n")
def endedCall(func, tams, fritz_ip='192.168.1.1'):

View File

@@ -15,7 +15,7 @@ atomicwrites
cachetools
datetime
markdown
matrix-nio # [e2e]>=0.18.3
matrix-nio[e2e]>=0.18.3
peewee
Pillow
python-magic