Compare commits
11 Commits
1949f9f84a
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| f537edc4cb | |||
| 63a3dee8fd | |||
| 558ed192d9 | |||
| 2b65daff7f | |||
| 114e9c3e49 | |||
| 3a32e64719 | |||
| 97eb34814f | |||
| 60adf393ef | |||
| d91095dcf8 | |||
| 31cd42b43c | |||
| dbc54f595e |
@@ -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.
|
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
|
## 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)
|
* 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
|
## Installation
|
||||||
If you like to test this repository you are recommended to use one of the following two options.
|
If you like to test this repository you are recommended to use one of the following two options.
|
||||||
### Necessary preparations for both cases
|
### Necessary preparations for both cases
|
||||||
@@ -30,6 +31,7 @@ FRITZ_IP="192.168.178.1"
|
|||||||
FRITZ_TMP="/tmp"
|
FRITZ_TMP="/tmp"
|
||||||
# FRITZ_VOICEBOX_PATH="fritz.nas/FRITZ/voicebox"
|
# FRITZ_VOICEBOX_PATH="fritz.nas/FRITZ/voicebox"
|
||||||
FRITZ_TAM='{"0" : "!roomhash1:matrix.org", "1" : "!roomhash2:matrix.org"}'
|
FRITZ_TAM='{"0" : "!roomhash1:matrix.org", "1" : "!roomhash2:matrix.org"}'
|
||||||
|
FRITZ_CALL_WATCH=False
|
||||||
```
|
```
|
||||||
__.env__
|
__.env__
|
||||||
|
|
||||||
@@ -67,4 +69,4 @@ Especially to
|
|||||||
* https://github.com/jiaaro/pydub/
|
* https://github.com/jiaaro/pydub/
|
||||||
* https://git.savannah.nongnu.org/cgit/fbvbconv-py.git/
|
* https://git.savannah.nongnu.org/cgit/fbvbconv-py.git/
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -16,13 +16,15 @@ RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone;
|
|||||||
cargo \
|
cargo \
|
||||||
libffi-dev \
|
libffi-dev \
|
||||||
openssl-dev \
|
openssl-dev \
|
||||||
|
olm-dev \
|
||||||
zlib-dev \
|
zlib-dev \
|
||||||
jpeg-dev ; \
|
jpeg-dev ; \
|
||||||
apk add --no-cache ffmpeg speex; \
|
apk add --no-cache olm libmagic ffmpeg speex; \
|
||||||
pip install --no-cache-dir upgrade pip; \
|
pip install pip -U --no-cache-dir; \
|
||||||
pip install --no-cache-dir -r requirements.txt ; \
|
pip install --no-cache-dir -r requirements.txt ; \
|
||||||
apk del --no-cache .build-deps;
|
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"
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ from libs.monitoring import endedCall
|
|||||||
from libs.message import conversion as conv
|
from libs.message import conversion as conv
|
||||||
import urllib.request
|
import urllib.request
|
||||||
import xmltodict, json
|
import xmltodict, json
|
||||||
import sys, os
|
import sys, os, time
|
||||||
import smbclient
|
import smbclient
|
||||||
|
|
||||||
|
|
||||||
@@ -97,7 +97,6 @@ def lastcall2matrix(tam,tam_no):
|
|||||||
|
|
||||||
|
|
||||||
def fritzab2matrix(tam):
|
def fritzab2matrix(tam):
|
||||||
|
|
||||||
### CHECK AND GET MESSAGES FROM FRITZBOX ###
|
### CHECK AND GET MESSAGES FROM FRITZBOX ###
|
||||||
############################################
|
############################################
|
||||||
|
|
||||||
@@ -125,7 +124,7 @@ def fritzab2matrix(tam):
|
|||||||
for a in messages:
|
for a in messages:
|
||||||
|
|
||||||
# format the information regarding the message
|
# format the information regarding the message
|
||||||
msg_info = a['Date'] + " - " + a['Number']
|
msg_info = a['Date'] + " - " + str(a['Number'])
|
||||||
if a['Name']:
|
if a['Name']:
|
||||||
msg_info += " (" + a['Name'] + ") "
|
msg_info += " (" + a['Name'] + ") "
|
||||||
|
|
||||||
@@ -173,6 +172,7 @@ def fritzab2matrix(tam):
|
|||||||
|
|
||||||
|
|
||||||
def multitam(tams):
|
def multitam(tams):
|
||||||
|
time.sleep(10)
|
||||||
for tam in tams.keys():
|
for tam in tams.keys():
|
||||||
print("Check TAM {}.".format(tam))
|
print("Check TAM {}.".format(tam))
|
||||||
fritzab2matrix(tam)
|
fritzab2matrix(tam)
|
||||||
|
|||||||
@@ -15,10 +15,17 @@ def watch_disconnect(monitor, event_queue, func, tams, healthcheck_interval=10):
|
|||||||
else:
|
else:
|
||||||
# do event processing here:
|
# do event processing here:
|
||||||
print(event)
|
print(event)
|
||||||
if 'DISCONNECT' in event:
|
if 'DISCONNECT;0' in event:
|
||||||
print("Anruf beendet. Jetzt den AB checken.\n")
|
print("Incoming call stopped. Check the TAM.\n")
|
||||||
func(tams)
|
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'):
|
def endedCall(func, tams, fritz_ip='192.168.1.1'):
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ atomicwrites
|
|||||||
cachetools
|
cachetools
|
||||||
datetime
|
datetime
|
||||||
markdown
|
markdown
|
||||||
matrix-nio # [e2e]>=0.18.3
|
matrix-nio[e2e]>=0.18.3
|
||||||
peewee
|
peewee
|
||||||
Pillow
|
Pillow
|
||||||
python-magic
|
python-magic
|
||||||
|
|||||||
Reference in New Issue
Block a user