/****************************************************************************
*  XARXES DE COMPUTADORS II                                                 
*
*  Practica VoIP
*
*  Realizado por: 
*     Francisco Jose Aguilar Celdran
*     Sergio Blanco Cuaresma
*
*  phone.h:
*     Fichero principal que inicializa la interficie gráfica.
*     Contiene funciones que se ejectuan en threads para tratar
*     eventos en segundo plano: 
*        - Peticiones de inicio de llamada
*        - Recepción y envio de audio: utilizando una funcion externa escrita en C++
****************************************************************************/
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <netdb.h>
#include <sys/param.h>
#include <sys/socket.h>
#include <malloc.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <signal.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>


// Programas externos encargados del envio y recepción de sonido
/*#define RECEIVE_SOUND_EXE        "../receiveRtp"
#define KILLALL_RECEIVE_SOUND_EXE   "killall receiveRtp"
#define SEND_SOUND_EXE           "../sendRtp"*/

// Variables globales a nivel de programa
extern char *usuario_actual;
extern char *maquina_actual;
extern char *puerto_actual;
extern int estado;
extern char *miFrom;  // mi campo from
extern char *toServer;   // campo from del servidor
extern char callid[255];
extern char puerto_local[TAM_PORT];

extern int serverSock;
extern struct sockaddr_in dir_serverSock;
extern int llamadaSock;
extern struct sockaddr_in dir_llamadaSock;

// En que sentido se realiza la llamada?
// - utilizado con colgar(int sentido);
#define RECIBIMOS 0
#define ORIGINAMOS  1

void colgar(int sentido);
void llamar(char *maquina);
