Modularizando o src

Dependencies:   EALib EthernetInterface_vz mbed-rtos mbed

Fork of header_main_colinas_V0-20-09-14 by VZTECH

Revision:
119:ee6a53069455
Parent:
117:e9facba9db27
Child:
121:ee02790d00b7
--- a/call_box.h	Fri Apr 24 13:54:24 2015 +0000
+++ b/call_box.h	Thu Apr 30 15:42:41 2015 +0000
@@ -15,63 +15,69 @@
 #include "debug.h"
 #include "shared_variables.h"
 
-#define __RESQUEST_TIME__ 3
-#define MAX_INVITE_RETRY 1000
-
+const int __RESQUEST_TIME__ = 3;
+const uint16_t MAX_INVITE_RETRY = 512 * 2;
 
-#define __TIMEOUT__  250
+const uint8_t __TIMEOUT__  = 250;
+
 ///< O tempo que a Header demora para "pingar" o Call_Box para saber se esta tudo bem.
-#define __RANGE_TO_REGISTER__ 150
+const uint8_t __RANGE_TO_REGISTER__ = 150;
 ///< Doc. later
-#define __TIME_TO_REGISTER__ __TIMEOUT__ - __RANGE_TO_REGISTER__
-
-#define __CYCLES__ __TIME_TO_REGISTER__ / __RESQUEST_TIME__ // 200 // 3 ~ 66
+const uint8_t __TIME_TO_REGISTER__ = __TIMEOUT__ - __RANGE_TO_REGISTER__;
+const uint8_t __CYCLES__ = __TIME_TO_REGISTER__ / __RESQUEST_TIME__; // 200 // 3 ~ 66
+const uint8_t RTP_REQUEST_PORT_TIMEOUT = 45;
 
-#define RTP_REQUEST_PORT_TIMEOUT 45 // 600 // seconds
-
-#define REQUEST_REGISTRY -1
-#define REQUEST_PEND -2
-#define REQUEST_PING -4
+const short int REQUEST_REGISTRY = -1;
+const short int REQUEST_PEND = -2;
+const short int REQUEST_PING = -4;
 
 ///< Valor usado como referencia para registro do equipamento CBx.
-#define __MAX_ATTEMPTS__  5
+const uint8_t __MAX_ATTEMPTS__  = 5;
 ///< O numero maximo de vezes que a Header vai tentar pingar o Call_Box
-#define __STEP__ 30
+const uint8_t __STEP__ = 30;
 ///< Usado para aumentar o intervalo entre cada ping, fora de uso atualmente.
-#define __MAX_TIMEOUT__ __STEP__ * __MAX_ATTEMPTS__
+const uint8_t __MAX_TIMEOUT__ = __STEP__ * __MAX_ATTEMPTS__;
 ///< Usado para limitar o tempo maximo de timeout do Call_Box sem responder o ping, fora de uso.
 
-#define cb_idle 1
+const uint8_t cb_idle = 1;
 ///< Representa que o Call_Box esta disponivel
-#define cb_ringing 2
+const uint8_t cb_ringing = 2;
 ///< Representa o Call_Box no status, discando.
-#define cb_trying 3
+const uint8_t cb_trying = 3;
 ///< Representa o Call_Box no status tentando concluir o pedido de ligação.
-#define cb_on_call 4
+const uint8_t cb_on_call = 4;
 ///< Representa que o Call_Box já esta em uma ligação.
-#define cb_busy 5
+const uint8_t cb_busy = 5;
 ///< Representa que o Call_Box esta ocupado.
-#define cb_denied 6
+const uint8_t cb_denied = 6;
 ///< Representa que o pedido de invite do Call_Box foi negado.
-#define cb_bootloader 7                                          
-///< Representa que o Call_Box esta em atualizacao de firmware 
+const uint8_t cb_bootloader = 7;
+///< Representa que o Call_Box esta em atualizacao de firmware  
+
 
 class Call_Box : public Object{
     private :
+        bool invite_response;
+        bool bye_response;
+        
         int ext;  // ramal
         int port; // porta
-        Timer t;
-        Timer rtp_timer; // usado pra controlar o timeout dos pedidos de porta rtp
+        int sip_socket_fd;
+        int shift_port;
+        
         uint8_t remaining_attempts;
-        float timeout;
         uint8_t msg_id;
         uint8_t timeslice;
         uint8_t next_aging_type;
-        bool invite_response;
+        uint8_t  invite_try_number;
+        
         uint16_t invite_retry_count;
-        bool bye_response;
-        Timer seconds;
-        int sip_socket_fd;
+        
+        float timeout;
+        
+        Timer t;
+        Timer rtp_timer; // usado pra controlar o timeout dos pedidos de porta rtp
+        Timer invite_timer;
     public :
                 /**
                  * @Synopsis Objeto Sip que será usado para tratativas com o servidor.
@@ -162,37 +168,6 @@
         float get_elapsed_time( void );
 
                 /**
-                 * @Synopsis Informa se o Call_Box esta inativo acima do tempo previsto.
-                 *
-                 * @retval True - Caso o timer do objeto seja maior que o definido. 
-                 * @retval False - Caso o timer do objeto seja menor que o definido..
-                 *
-                 * Exemplo:
-                 * @code
-                 * ...
-                 *  printf(" %s ", ( cb->is_timeout() ) ? "Call_Box is outdated" : "Call_Box is okay" );
-                 * ...
-                 * @endcode
-                 */
-        bool is_timeout( void );
-
-                /**
-                 * @Synopsis Reconfigura o timeout de forma incremental, informando se ainda existe alguma tentativas de "ping" nesse Call_Box
-                 *
-                 * @return O numero de tentativas restantes de registro desse Call_Box. Retorno 0 significa que as tentativar acabaram.
-                 *
-                 * Exemplo:
-                 * @code
-                 * ...
-                 *  if( cb->has_next_try() == 0x00 ){
-                 *      // faça alguma coisa ...
-                 *  }
-                 * ...
-                 * @endcode
-                 */
-        bool has_next_try( void );
-
-                /**
                  * @Synopsis Reseta o timer do objeto Call_Box.
                  *
                  * Exemplo:
@@ -273,8 +248,7 @@
                  * ...
                  * @endcode
                  */
-                void set_timeslice( uint8_t timeslice );
-
+        void set_timeslice( uint8_t timeslice );
 
                 /**
                  * @Synopsis Informa o timeslice ocupado atualmente pelo Call_Box.
@@ -357,54 +331,48 @@
                  * @endcode
                  */
         void set_sip_status( int status );
-
-                /**
-                 * @Synopsis Inicia ( ou re-inicia ) o Timer do objeto Call_Box.
-                 *
-                 * Exemplo:
-                 * @code
-                 * ...
-                 *   cb->re_start_timer();
-                 * ...
-                 * @endcode
-                 */
-        void re_start_timer( void );
         
+        /*------------------------------------------------------------------------------------------------*/
+        bool get_invite_response( void );
+        bool get_bye_response( void );
+        bool time_to_retry ( void );
+        bool is_rtp_timer_timeout ( void );
         
         int get_sip_status( void );
         int set_sip_status( uint8_t sip_status );
-        
         int get_status( void );
-        void cb_set_status( uint8_t status );
-        
-        int8_t get_next_aging_type( void );
-        
-        //void set_first_invite_response_ok( void );
-        //void set_first_invite_response_pending( void );
-        //bool get_first_invite_response( void );
-        
-        void set_invite_response_ok( void );
-        void set_invite_response_pending( void );
-        bool get_invite_response( void );
-        
-        void set_bye_response_ok( void );
-        void set_bye_response_pending( void );
-        bool get_bye_response( void );
-        
-        int get_sip_socket_fd( void );
-        int sip_udp_incomming_pkg( void );
-        void reset_cb_status( void );
-        void invite_retry_count_reset( void );
-        uint8_t get_invite_retry_count( void );
         int get_sip_ext( void );
         int get_sip_port( void );
         int get_timer( void );
         int get_rtp_port ( void );
         int print_yourself ( void );
+        int get_sip_socket_fd( void );
+        int sip_udp_incomming_pkg( void );
+        int get_rtp_timer ( void );
+        int call_init ( int timeslice );
+        int call_end ( bool send_bye_to_ast = true  );
+        int call_confirmed ( void );
+        int retry_send_invite_pkg_to_ast ( void );
+        
+        void cb_set_status( uint8_t status );
+        void set_invite_response_ok( void );
+        void set_invite_response_pending( void );
+        
+        void set_bye_response_ok( void );
+        void set_bye_response_pending( void );
+        
+        void reset_cb_status( void );
+        void invite_retry_count_reset( void );
+        
+        uint8_t get_invite_try_number ( void );
+        uint8_t msg_id_update ( void );
+        
+        uint16_t get_invite_retry_count( void );
+        
         void set_rtp_port ( int );
         void init_rtp_timer ( void );
         void reset_rtp_timer ( void );
-        bool is_rtp_timer_timeout ( void );
-        int get_rtp_timer ( void );
+        void call_config ( void );        
 };
+
 #endif
\ No newline at end of file