Have a message read aloud for a phone call

ISDN provides the calling party and is available from many routers. Have a configurable message read aloud by this device when a call arrives.
This device extracts the phone number of the calling party party from the ISDN signal. This signal is available on many routers out in the market. For each configured number a message may be read aloud using a text to speech module, an amplifier module and a set of speakers.
The message is configured of three parts: First a prefix from a configurable list of prefix messages. Then a message for the exact number actually calling and then a suffix from a configurable list of suffix messages.
Example:
"Hello " from the prefices.
"John " for the phone number (e. g. of John).
"is calling" from the suffices.
In total "Hello John is calling".
The current implementation allows for 16 prefix and suffix messages and 64 number specific messages. If the number is unknown the message "Unknown number" is read.
The message is configured of three parts: First a prefix from a configurable list of prefix messages. Then a message for the exact number actually calling and then a suffix from a configurable list of suffix messages.
Example:
"Hello " from the prefices.
"John " for the phone number (e. g. of John).
"is calling" from the suffices.
In total "Hello John is calling".
The current implementation allows for 16 prefix and suffix messages and 64 number specific messages. If the number is unknown the message "Unknown number" is read.
Updates van de auteur
mwmuc 6 jaar geleden
Layout top view with the placed components (132kb)
ClemensValens 6 jaar geleden
P.S. Do you also have the software for the controllers?
mwmuc 6 jaar geleden
an MP3 player is indeed much cheaper (e. g. 10-20 Euros). I liked the idea though to use the text-2-speech module (about 65 Euros) because that way I could change the configuration of numbers and texts more easily via a download. The module is capable of Englisch and Spanish but I dont mind if the German messages are spoken with an accent.
As regards the two microprocessors: The two processors have been chosen because I did not have to optimize the project for cost and that way each processor has its own concern for itself. The PIC24 handles the number extraction from the ISDN signal and forwards the number via SPI. Here I needed a high-speed PIC for the processing. The PIC18 does the rest: if a call arrives find the message for a number in the EEPROM, send the message to the text-2-speech module. Receive and store configuration in the EEPROM (numbers and messages) from a PC application via a download.
Today I post the code for the PIC24 with this comment. It is written in assembler and the project is suitable for MPLABX and the XC compiler from Microchip. Maybe it is possible to have the PIC24 do all the work. This is something I could support but do not plan to implement right now.
If this project is of further interest I am going to publish the code for the PIC18 (written in C for MPLABX and XC) and the PC (written in C# for Visual Studio 2017 community edition) as well.
ClemensValens 6 jaar geleden
mwmuc 6 jaar geleden
Defining the phone number specific messages (19kb)
The zipped XML data file with all defined messages (1kb)