/*
This file is part of GNUnet
- (C) 2013 Christian Grothoff (and other contributing authors)
+ Copyright (C) 2013, 2014 Christian Grothoff (and other contributing authors)
GNUnet is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
You should have received a copy of the GNU General Public License
along with GNUnet; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
*/
/**
* @param cls closure
* @param code type of the event
* @param caller handle for the caller
- * @param caller_id name of the caller in GNS
+ * @param caller_id public key of the caller (in GNS)
*/
-typedef void (*GNUNET_CONVERSATION_PhoneEventHandler)(void *cls,
- enum GNUNET_CONVERSATION_PhoneEventCode code,
- struct GNUNET_CONVERSATION_Caller *caller,
- const char *caller_id);
+typedef void
+(*GNUNET_CONVERSATION_PhoneEventHandler)(void *cls,
+ enum GNUNET_CONVERSATION_PhoneEventCode code,
+ struct GNUNET_CONVERSATION_Caller *caller,
+ const struct GNUNET_CRYPTO_EcdsaPublicKey *caller_id);
/**
* @param cls closure
* @param code type of the event for this caller
*/
-typedef void (*GNUNET_CONVERSATION_CallerEventHandler)(void *cls,
- enum GNUNET_CONVERSATION_CallerEventCode code);
+typedef void
+(*GNUNET_CONVERSATION_CallerEventHandler)(void *cls,
+ enum GNUNET_CONVERSATION_CallerEventCode code);
/**
* and the microphone. The call can later be resumed with
* #GNUNET_CONVERSATION_caller_resume.
*
- * @param phone phone to pause
+ * @param caller call to suspend
*/
void
GNUNET_CONVERSATION_caller_suspend (struct GNUNET_CONVERSATION_Caller *caller);
/**
* Resume suspended conversation of a phone.
*
- * @param phone phone to resume
+ * @param caller call to resume
* @param speaker speaker to use
* @param mic microphone to use
*/
*/
enum GNUNET_CONVERSATION_CallEventCode
{
+
/**
* We are the caller and are now ringing the other party (GNS lookup
* succeeded).
* both sides can independently suspend and resume calls; a call is
* only "working" of both sides are active.
*/
- GNUNET_CONVERSATION_EC_CALL_RESUMED
+ GNUNET_CONVERSATION_EC_CALL_RESUMED,
+
+ /**
+ * We had an error handing the call, and are now restarting it
+ * (back to lookup). This happens, for example, if the peer
+ * is restarted during a call.
+ */
+ GNUNET_CONVERSATION_EC_CALL_ERROR
};
* @param cls closure
* @param code type of the event on the call
*/
-typedef void (*GNUNET_CONVERSATION_CallEventHandler)(void *cls,
- enum GNUNET_CONVERSATION_CallEventCode code);
+typedef void
+(*GNUNET_CONVERSATION_CallEventHandler)(void *cls,
+ enum GNUNET_CONVERSATION_CallEventCode code);
/**
*
* @param cfg configuration to use, specifies our phone service
* @param caller_id identity of the caller
+ * @param zone_id GNS zone to use to resolve @a callee
* @param callee GNS name of the callee (used to locate the callee's record)
* @param speaker speaker to use (will be used automatically immediately once the
- * #GNUNET_CONVERSATION_EC_READY event is generated); we will NOT generate
+ * #GNUNET_CONVERSATION_EC_CALL_PICKED_UP event is generated); we will NOT generate
* a ring tone on the speaker
* @param mic microphone to use (will be used automatically immediately once the
- * #GNUNET_CONVERSATION_EC_READY event is generated)
+ * #GNUNET_CONVERSATION_EC_CALL_PICKED_UP event is generated)
* @param event_handler how to notify the owner of the phone about events
* @param event_handler_cls closure for @a event_handler
+ * @return handle for the call
*/
struct GNUNET_CONVERSATION_Call *
GNUNET_CONVERSATION_call_start (const struct GNUNET_CONFIGURATION_Handle *cfg,
struct GNUNET_IDENTITY_Ego *caller_id,
+ struct GNUNET_IDENTITY_Ego *zone_id,
const char *callee,
struct GNUNET_SPEAKER_Handle *speaker,
struct GNUNET_MICROPHONE_Handle *mic,
/**
- * Resumes a call after #GNUNET_CONVERSATION_call_pause.
+ * Resumes a call after #GNUNET_CONVERSATION_call_suspend.
*
* @param call call to resume
- * @param speaker speaker to use (will be used automatically immediately once the
- * #GNUNET_CONVERSATION_EC_READY event is generated); we will NOT generate
- * a ring tone on the speaker
- * @param mic microphone to use (will be used automatically immediately once the
- * #GNUNET_CONVERSATION_EC_READY event is generated)
+ * @param speaker speaker to use
+ * @param mic microphone to use
*/
void
GNUNET_CONVERSATION_call_resume (struct GNUNET_CONVERSATION_Call *call,