Sorry, but I can't see anything that might be causing the problem, but I don't have your hardware so I can't do any tests.
In the program that is in Reply #16 try adding these few extra lines into the keypadInput() function
void keypadInput() {
if (coinsValue < 1) { // new piece
Serial.println("not enough money");
return;
}
//pressing the key -> assigning the filename
char customKey = myKeypad.waitForKey();
if (customKey != NO_KEY)
{
Another diagnostic approach is to try this, without any keypadInput()
// if coins value is enough to make a call - dial
if (coinsValue >= 1)
{
lcd.setCursor (7, 0); // go to start of 2nd line
lcd.print("Skambink!");
playSound("test.wav");
}
It would be much better if you separated the keypadInput() code into two functions. One that reads the keypad and saves the value and another that checks that saved value and plays the sound. That way you can test the two parts separately.
...R