Recovering deleted messages from a digital answering machine

Status
Not open for further replies.
Sammy was last seen here over 8 months ago.

I would say there is little hope of contacting him.

What I can do however, is email him, and ask him to take a look at this thread, as there are a number of techs who would like his services if possible.

Whether or not his email address is still valid or not, I do not know.
 
As I said, this is #1 on google if you search for the topic, and all the other hits are of no help in recovery.
I think some people see it, and join just to get help.
 
I have received a email off Sammy last night. He has very limited internet access - email only.

He asked me to send the questions over to him, which I have done. He will then reply to them to the best of his knowledge, and I will post the answers here.

Hope this is ok with everyone.
 
Message off Sammy.

You have my permission to post thisE-Mail address and tell the folks that need help that they can contact me directly and I will try to help them.
 
Last edited:
I have been contacted from Sammy in relation to this thread.

He has asked me to remove his email address from the thread, and replace it with the attached, which is basically a full walkthrough for how to recover these deleted messages.
 

Attachments

  • answering machines.pdf
    34.6 KB · Views: 113
  • answering-machines.zip
    35.9 KB · Views: 70
I have been contacted from Sammy in relation to this thread.

He has asked me to remove his email address from the thread, and replace it with the attached, which is basically a full walkthrough for how to recover these deleted messages.
 
I was trying to read the pdf documents but they are encoded or something.
 
As a service to the Technibble community, I have copied the information from sammyizimmy's attached files to a normal forum post. Hopefully this will help avoid having people join the forum for the sole purpose of getting this information. -Karlin High

How to recover digital answering machine messages in X easy steps*
* Easy, here meaning "not impossible."

1. Buy a test machine: If you are trying to recover valuable data you want make sure you can successfully extract the messages from a test machine with the EXACT model number before even attempting the real thing.

2. Identify the flash memory: Most digital answering machines contain a flash memory chip where all the messages are stored, open the answering machine case and identify the flash memory chip. (Usually by Googling each chip's part number till you find the right one.) Most flash chips are similar to the one pictured. The chip on the left is the flash memory.

PCBflash.png

3. Get the datasheet: Googleing for “foo datasheet pdf” usually gets you the datasheet you need(replace foo with the actual part number)

4. Remove/desolder the flash memory: My preferred method is using a hot air gun, I won't write a soldering tutorial so if you need help on that subject there are plenty of good guides and tutorials for surface mount device(SMD) soldering/desoldering on the web.

5. Solder the flash memory to adapter board: Usually the flash memory is a SMD like the one pictured above, soldering the chip to an adapter board makes it much easier to work with. The flash memory's chip package type(TSSOP, TQFP, etc) can be found in the datasheet.

6. Get and setup the Raspberry Pi: There are a lot of “Getting started” guides for the Raspberry Pi on the web so I won't cover that here.

7. Wire the flash memory to the Raspberry Pi: This can be a bit tricky. First read the datasheet and make sure the flash memory is 3.3v tolerant, if it isn't you will have to use a voltage level converter for the Raspberry Pi's GPIO are 3.3v. For this example I am using a SPI flash
memory, connect the SCLK,SI,SO and CS to any of the Raspberry Pi's GPIO. Connect the flash memory's VDD and VSS to the correct Raspberry Pi's power supply and ground as specified by the datasheet. Add any other circuitry as specified by the datasheet.

8. Write the software to read the flash memory: I have included a sample C program that implements a “bit bang” SPI port to read and dump the contents of a flash chip to a file. You have to install “wiringPi” to compile my sample code. The code has to be modified to suit your specific chip as specified by the datasheet.

9. Decode the flash dump: [No instructions given in original. Likely varies per model. -KH]

END OF PDF FILE.

****************************
Contents of README
****************************
Code:
Sample README
===============

Install wiringPi:
The official way to get wiringPi is via git from git.drogon.net and not GitHub.
ie.
 git clone git://git.drogon.net/wiringPi

Build the sample with make:
 make
Run the sample:
 ./chipread


  -Sammyizimmy
****************************
Contents of Makefile
****************************
Code:
#
# Makefile:
#   wiringPi - Wiring Compatable library for the Raspberry Pi
#   https://projects.drogon.net/wiring-pi
#
#   Copyright (c) 2012 Gordon Henderson
#################################################################################
# This file is part of wiringPi:
#   Wiring Compatable library for the Raspberry Pi
#
#  wiringPi is free software: you can redistribute it and/or modify
#  it under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation, either version 3 of the License, or
#  (at your option) any later version.
#
#  wiringPi is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU Lesser General Public License for more details.
#
#  You should have received a copy of the GNU Lesser General Public License
#  along with wiringPi.  If not, see <http://www.gnu.org/licenses/>.
#################################################################################


#DEBUG   = -g -O0
DEBUG   = -O3
CC   = gcc
INCLUDE   = -I/usr/local/include
CFLAGS   = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe

LDFLAGS   = -L/usr/local/lib
LDLIBS  = -lwiringPi -lpthread -lm

# Should not alter anything below this line
###############################################################################

SRC   =   chipread.c

OBJ   =   $(SRC:.c=.o)

BINS   =   $(SRC:.c=)

all:   chipread.o
   @echo [link]
   @$(CC) -o chipread chipread.o $(LDFLAGS) $(LDLIBS)

.c.o:
   @echo [CC] $<
   @$(CC) -c $(CFLAGS) $< -o $@

clean:
   @echo "[Clean]"
   @rm -f $(OBJ) *~ core tags $(BINS)

tags:   $(SRC)
   @echo [ctags]
   @ctags $(SRC)

depend:
   makedepend -Y $(SRC)

# DO NOT DELETE
****************************
Contents of chipread.c
****************************
Code:
#include <stdio.h>
#include <time.h>
#include <wiringPi.h>

//This a simple "bit bang" spi example.

#define CLK 10 // Map Clock to pin 10
#define SI 8 // Map Slave In to pin 8
#define SO 7 // Map Slave Out to pin 7
#define CS 16 // Map Chip Select to pin 16
#define RST 12 // Map Reset to pin 12

//setup the gpio
void setalts(){

    //set SO as input
    pinMode(SO,INPUT);

    //set CLK as input
    pinMode(CLK,OUTPUT);
    //set CLK low
    digitalWrite(CLK,0);

    //set SI as input
    pinMode(SI,OUTPUT);
    //set SI low
    digitalWrite(SI,0);

    //set CS as input
    pinMode(CS,OUTPUT);
    //set CS high
    digitalWrite(CS,1);

    //set RST as input
    pinMode(RST,OUTPUT);
    //set RST low
    digitalWrite(RST,0);
}

//this writes one byte of data to the spi
static void spi_write_data(char data)
{
    int x = 0;
    for(x = 7;x != 0;x--){
        //write bit x of data to SI
        digitalWrite(SI,(data >> x)  & 0x01);
        //set CLK high
        digitalWrite(CLK,1);
        usleep(10);
        //set CLK low
        digitalWrite(CLK,0);
        usleep(10);
    }
}

//this reads one byte of data from the spi
static char spi_read_data()
{
    char in = 0x00;

    int x = 0;
    for(x = 7;x != 0;x--){
        //Read SO to bit x of in;
        in |= (digitalRead(SO) << x);
        //set CLK high
        digitalWrite(CLK,1);
        usleep(10);
        //set CLK low
        digitalWrite(CLK,0);
        usleep(10);
    }  
    return in;
}

int main (void)
{
    printf ("Raspberry Pi SPI test\n") ;
    //setup wiringpi
    wiringPiSetupPhys();
    //setup gpio
    setalts();

    //set RST high
    digitalWrite(RST,1);
    //set CS high
    digitalWrite(CS,0);
  
  
    //Read all flash contents on some chips
    spi_write_data(0x68);
    //Starting at address 0x000000
    spi_write_data(0x00);
    spi_write_data(0x00);
    spi_write_data(0x00);
    //and one dummy byte
    spi_write_data(0x00);

    //Open the file we dump the raw flash data
    FILE* f = fopen("/home/pi/dump.raw","w+");
  
  
    int x,y = 0;
    //how many Kilo Bytes to read
    int kbits = 16000;
  
    for(y = 0;y < kbits ;y++){
        for(x = 0;x < 1024;x++){
            //read one byte and write to file
            putc(spi_read_data(),f);
        } 
        printf("Dumped %dKiB\n",y + 1);
    }

    //close file
    fclose(f);

    //set CS low
    digitalWrite(CS,1);
 
    return 0 ;
}
 
For future visitors from web searches: don't bother trying to contact people mentioned in this thread.

Instead, gather up the info here and take it to someone who is good at working with electronics and circuit boards. One place to start might be a "maker" group near you. For more info, see the Wikipedia article on Maker culture or visit makerfaire.com. Or do a web search for "makers Chicago IL" if you live there, change it to a city near you if you don't. The contacts you find will probably be starting points - they might not have the skills to help, but hopefully they can refer you to someone that does.

The challenge here will be finding someone with the advanced electronics and microcontroller programming skills needed, but who is not someone so professional that they see your project as beneath them. Can't be bothered with anything this hackish.

The people mentioned in this thread did the project out of compassion for a schoolmate's widow. They are busy with day jobs, and don't really want to go into business in this area. It quickly gets into forensics and legal cases, which are just not our thing. Plus, people like Sammy can get data off the chips just fine, but he said sometimes the data is encoded in proprietary formats, and the answering machine vendors are no help at all with deciphering them.

Recovering deleted messages from digital answering machines like this takes considerable technical skill. But in the end, it is still a "dirty job" with uncertain chances of success.
 
I’m looking for help retrieving deleted voice messages on a Panasonic model no TG-4021.
I had multiple saved messages from my father, who lost his ability to speak due to ALS. His voice messages have been my only way to hear his voice for the last 2 years. I inadvertently pressed the erase button and am devastated. Can anyone help?
 
Although this tip won't help anyone finding this thread after a message has been deleted, perhaps use it to save a future messages you don't want to lose.

If you have a message on an answering machine that is very important to you, keeping it on your machine is the worst place to keep it safe.
Do you have a cell phone? Practically every cell phone nowadays has a built in voice recorder.

Play your message (make sure the volume is adequate) and use the voice recorder on your cell phone to record the message as it's played. Then make sure you back up the data on your phone to something else. You now have that precious voice message saved and backed up.


I had a message on my answering machine from my mother just before she passed away and wanted to save it. I used this method and still have a copy of it safe and sound after many years.
 
@Nige - This thread keeps cropping up as one of the first few results in Google when searching for how to recover deleted messages from an answering machine or voice recorder, and it's really not helpful any more. Would it be sensible to move it to TEO now so that we can cut down on the number of users who find us this way? We can't help them and it's cruel to suggest that we might.
 
@Nige - This thread keeps cropping up as one of the first few results in Google when searching for how to recover deleted messages from an answering machine or voice recorder, and it's really not helpful any more. Would it be sensible to move it to TEO now so that we can cut down on the number of users who find us this way? We can't help them and it's cruel to suggest that we might.

And/or lock it so no more posts can be added.
 
Although this tip won't help anyone finding this thread after a message has been deleted, perhaps use it to save a future messages you don't want to lose.

If you have a message on an answering machine that is very important to you, keeping it on your machine is the worst place to keep it safe.
Do you have a cell phone? Practically every cell phone nowadays has a built in voice recorder.

Play your message (make sure the volume is adequate) and use the voice recorder on your cell phone to record the message as it's played. Then make sure you back up the data on your phone to something else. You now have that precious voice message saved and backed up.


I had a message on my answering machine from my mother just before she passed away and wanted to save it. I used this method and still have a copy of it safe and sound after many years.
That was my plan, to record it to my iPhone. I have been providing care to my father and I just didn’t make the time to secure it.
Thanks for the feedback.
 
@Nige - This thread keeps cropping up as one of the first few results in Google when searching for how to recover deleted messages from an answering machine or voice recorder, and it's really not helpful any more. Would it be sensible to move it to TEO now so that we can cut down on the number of users who find us this way? We can't help them and it's cruel to suggest that we might.
So sorry for the misunderstanding.
 
Status
Not open for further replies.
Back
Top