7 Commits

Author SHA1 Message Date
4f0cae501c Update about multitam in README 2021-07-07 23:30:25 +02:00
41916ae7c7 Merged with multitam. 2021-07-07 22:50:22 +02:00
0e85b61868 Merge with multitam branch. 2021-07-07 22:31:05 +02:00
fe2ce2b420 Nothing to test up to now ... 2021-07-06 23:05:04 +02:00
dfe3543777 Test for fritzab2matrix.py 2021-07-06 17:16:00 +02:00
6f696bf970 File to import main file to tests. 2021-07-06 17:15:15 +02:00
25aeeb5c9b Moved helper functions out of the main function. 2021-07-06 17:14:00 +02:00
4 changed files with 42 additions and 6 deletions

View File

@@ -3,7 +3,8 @@
__FritzAB2Matrix__ reads out the answering machine (_TAM_) of a _Fritz!Box_ in your LAN and posts the messages into a private chat in the __matrix__ network. While you could let your _Fritz!Box_ send the messages by mail - unencrypted of course - the matrix chat is __e2e encrypted__. Which kindly acknowledges the privacy of any caller that leaves a message for you. __FritzAB2Matrix__ reads out the answering machine (_TAM_) of a _Fritz!Box_ in your LAN and posts the messages into a private chat in the __matrix__ network. While you could let your _Fritz!Box_ send the messages by mail - unencrypted of course - the matrix chat is __e2e encrypted__. Which kindly acknowledges the privacy of any caller that leaves a message for you.
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
* 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)
## 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
@@ -23,11 +24,12 @@ If you like to test this repository you are recommended to use one of the follow
* Inside the repo run `pip install --upgrade pip && pip install -r requirements.txt` * Inside the repo run `pip install --upgrade pip && pip install -r requirements.txt`
* Create an `.env` file with your favourite editor: * Create an `.env` file with your favourite editor:
``` ```
FRITZ_USERNAME="fritzab" FRITZ_USERNAME="fritzab2matrix"
FRITZ_PASSWORD="SomeRand0mPa55word" FRITZ_PASSWORD="S0meSecretPa5sw02d"
FRITZ_IP="192.168.178.1" FRITZ_IP="192.168.178.1"
FRITZ_VOICEBOX_PATH="fritz.nas/FRITZ/voicebox"
FRITZ_TMP="/tmp" FRITZ_TMP="/tmp"
# FRITZ_VOICEBOX_PATH="fritz.nas/FRITZ/voicebox"
FRITZ_TAM='{"0" : "!roomhash1:matrix.org", "1" : "!roomhash2:matrix.org"}'
``` ```
__.env__ __.env__
@@ -54,6 +56,8 @@ Provided you have docker and docker-compose installed on your system:
* Follow the appearing dialog and input your matrix account data. * Follow the appearing dialog and input your matrix account data.
* After all that the running docker container should watch your box and your TAM messages should be posted in the chosen matrix chat. * After all that the running docker container should watch your box and your TAM messages should be posted in the chosen matrix chat.
### Special Thx ### Special Thx
Gratitude to all people that enabled that project by their passionate work and will to share it! Gratitude to all people that enabled that project by their passionate work and will to share it!
Especially to Especially to

View File

@@ -33,8 +33,30 @@ print(env_tam)
if env_tmp is None: if env_tmp is None:
env_tmp = "/tmp" env_tmp = "/tmp"
# Build the url to download the message via smb
def build_download_url(mid, tam=0):
recording = "rec." + str(tam) + r"." + str(mid).zfill(3)
url = os.path.join("//",env_ip,env_voicebox,"rec",recording)
return url
def download_speex_file(smb_url):
smbclient.register_session(server=env_ip, username=env_user, password=env_pass, auth_protocol="ntlm")
fd = smbclient.open_file(smb_url, mode="rb")
return fd
def get_message_list(url):
""" Get and and convert the xml formatted list of messages into a dictionary. """
with urllib.request.urlopen(url) as f:
doc = f.read()
# Convert the xml formatted message list to dict
messages = xmltodict.parse(doc)
return messages
def fritzab2matrix(tam): def fritzab2matrix(tam):
###
### CHECK AND GET MESSAGES FROM FRITZBOX ### ### CHECK AND GET MESSAGES FROM FRITZBOX ###
############################################ ############################################

5
tests/context.py Normal file
View File

@@ -0,0 +1,5 @@
import os
import sys
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
import fritzab2matrix

View File

@@ -0,0 +1,5 @@
from context import fritzab2matrix as fab2m