Como puedo hacer una llamada de x tonos mediante módulo GSM

Buenas a todos, tengo la GSM shield 2 de arduino, y estoy utilizando la librería GSM. Quiero hacer una llamada pero que a los 2 tonos por ejemplo se corte, o a los 4 segundos por ejemplo. Está la instrucción voiceCall() que es la que realiza la llamada, pero hasta que esta no termina el programa no continua con su ejecución. De manera que la instrucción hangCall() encargada de finalizar la llamada sirve de poco.

Alguien me puede ayudar?

Un saludo.

Creo que no has analizado bien la instrucción VoiceCalle()
MIra

/** Place a voice call. If asynchronous, returns while ringing. If synchronous
returns if the call is stablished or cancelled.
@param to Receiver number. Country extension can be used or not.
Char buffer should not be released or used until command is over
@param timeout In millisecods. Time ringing before closing the call.
Only used in synchronous mode.
If zero, ring undefinitely
@return In asynchronous mode returns 0 if last command is still executing, 1 success, >1 error
In synchronous mode returns 1 if the call is placed, 0 if not.
/
int voiceCall(const char
to, unsigned long timeout=30000);

Puedes jugar con timeout para lograr un límite.
Por ahora a menos que la modifiques no hay mucho mas por hacer.
Le pones 4000 como timeout y tienes tus 4 segundos.