Modularizando o src

Dependencies:   EALib EthernetInterface_vz mbed-rtos mbed

Fork of header_main_colinas_V0-20-09-14 by VZTECH

Revision:
121:ee02790d00b7
Parent:
119:ee6a53069455
Child:
132:05cd37f7e007
--- a/sip.h	Mon May 04 17:25:29 2015 +0000
+++ b/sip.h	Fri May 08 04:15:23 2015 +0000
@@ -9,22 +9,16 @@
 #ifndef __SIP_H__
 #define __SIP_H__
 
-#include <stdlib.h>
-#include <stdint.h>
-#include <string.h>
+#include "EthernetInterface.h"
 #include "mbed.h"
-#include "EthernetInterface.h"
+#include <stdint.h>
 #include "call.h"
-#include "vz_protocol.h"
-#include "parallelcpld.h" // need for send confort song to CBx
-#include "debug.h"
-#include "shared_variables.h"
 
 const uint8_t INVITE_MAX_WAITING_TIME = 45;
 ///< Indica o timeout de espera de resposta de pedido de ligação para o servidor, após esse tempo responde ligação encerrado para o Call_box
 const uint16_t SIP_MAXFIELDSIZE = 256;
 ///< Define o tamanho máximo de algumas mensagens usadas na negociação Sip.
-const uint16_t SIP_MAXMSGSIZE = 2048;
+const uint16_t SIP_MAXMSGSIZE = 1024;
 ///< Define o tamanho máximo das mensagens enviadas, porém, fora de uso atualmente.
 const uint8_t SIP_REGISTER_EXPIRES = 120;
 ///< Define o timeout do registro no servidor asterisk ( * ), porém, hardcoded atualmente.
@@ -35,6 +29,10 @@
 
 static char fill_random_aux[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789pP";
 
+const uint8_t CALLBOX_STRING_SIZE = 32;
+
+const uint8_t CONTENT_LENGTH_MSG_SIZE = 65;
+
 const uint8_t sip_idle = 0;
 const uint8_t sip_waiting_trying = 1 << 1;
 const uint8_t sip_trying = 1 << 2;
@@ -47,6 +45,8 @@
 class Sip{
 
 private :
+    uint8_t status; ///< Representa o status do objeto Sip em dado momento.
+
     int my_ext;
     int my_port;
     int peer_ext;
@@ -60,14 +60,14 @@
     char my_ip[ 20 ];
     char my_display[ 20 ];
     char SVNREV[ 16 ];
-    char buffer[ 1024 ];
-    char last_invite_tag[ SIP_MAXFIELDSIZE ];
-    char last_invite_callid[ SIP_MAXFIELDSIZE ];
-    char last_branch[ SIP_MAXFIELDSIZE ];
+    char buffer[ SIP_MAXMSGSIZE ];
+    char last_invite_tag [ SIP_MAXFIELDSIZE ];
+    char last_invite_callid [ SIP_MAXFIELDSIZE ];
+    char last_branch [ SIP_MAXFIELDSIZE ];
     
-    void __init_sock__( void );
-    void __end_sock__( void );
-    void __reconnect__( void );
+    void __init_sock__ ( void );
+    void __end_sock__ ( void );
+    void __reconnect__ ( void );
     
     bool waiting;
     
@@ -80,8 +80,6 @@
     Timer invite_timer;
     
 public :
-    uint8_t status; ///< Representa o status do objeto Sip em dado momento.
-
         /**
          * @Synopsis Cria um objeto Sip setando ramal e porta e o restando buscando valores default.
          *
@@ -96,7 +94,7 @@
          * ...
          * @endcode
          */
-    Sip( int my_ext, uint16_t my_port );
+    Sip ( const int my_ext, const uint16_t my_port );
 
         /**
          * @Synopsis Destroi o objeto Sip
@@ -109,7 +107,7 @@
          * ...
          * @endcode
          */
-    ~Sip();
+    ~Sip ( void );
 
         /**
          * @Synopsis Responsavel por montar encaminhar o pacote de registro para o servidor.
@@ -121,7 +119,7 @@
          * ...
          * @endcode
          */
-    int registry( void );
+    int registry ( void );
 
         /**
          * @Synopsis Efetivamente envia o pedido de ligação para o servidor.
@@ -139,49 +137,7 @@
          * ...
          * @endcode
          */
-    VZ_call * invite( void );
-    
-        /**
-         * @Synopsis Monta o pacote para ser encaminhado para o servidor.
-         *
-         * @param header O pré-pacote contendo o cabeçalho do pacote.
-         * @param body O pré-pacote contendo o corpo do pacote.
-         * @param pkg Um ponteiro para o pacote montado no formado header + "Content-Length: " + strlen( body ) + body;
-         *
-         * @return O pacote montado, o mesmo endereço apontado por pkg.
-         *
-         * Exemplo:
-         * @code
-         * ...
-         *  #define SIP_MAXMSGSIZE 2048;
-         *  char pkg[ SIP_MAXMSGSIZE ];
-         *  char header[ SIP_MAXMSGSIZE ];
-         *  char bod y[ SIP_MAXMSGSIZE ];
-         *  pkg = sip->make_content_length( header,body, pkg ); 
-         * ...
-         * @endcode
-         */
-    char * make_content_length( char * header, char * body, char * pkg );
-
-        /**
-         * @Synopsis Função que decodifiica o codigo recebido em um dado pocote Sip.
-         *
-         * @param s O pacote que se deseja decodificar.
-         *
-         * @return O código identificado no pacote recebido.
-         * 
-         * \note Não esta em uso atualmente.
-         *
-         * Exemplo:
-         * @code
-         * ...
-         *  char buffer[ 1024 ];
-         *  //assumindo que em buffer será armazenado o valor do pacote que será analisado para saber o codigo de retorno.
-         *  int code = sip->get_return_code( buffer );
-         * ...
-         * @endcode
-         */
-    int get_return_code( char * s );
+    VZ_call * invite ( void );
 
         /**
          * @Synopsis Gera um nro de cseq para preenchimento no cabeçalho dos pacotes Sip.
@@ -195,21 +151,7 @@
          * ...
          * @endcode
          */
-    int get_cseq( void );
-
-        /**
-         * @Synopsis Obtem o id( ramal ) do objeto.
-         *
-         * @return Retorna o id( ramal ) do objeto.
-         *
-         * Exemplo:
-         * @code
-         * ...
-         *  int ext = sip->get_id();
-         * ...
-         * @endcode
-         */
-    int get_id( void );
+    int get_cseq ( void );
     
         /**
          * @Synopsis Obtem a porta rtp na qual a Header ira encaminhar e receber dados do Server.
@@ -223,7 +165,7 @@
          * ...
          * @endcode
          */
-    int get_my_rtp_port( void );
+    int get_my_rtp_port ( void );
     
         /**
          * @Synopsis Efetivamente cria o pacote de registro.
@@ -232,7 +174,7 @@
          *
          * @return Um ponteiro para o inicio do pacote montado ( mesmo endereço passado como parâmetro ).
          */
-    char * build_registry_package( char * buffer );
+    char * build_registry_package ( void );
     
         /**
          * @Synopsis Efetivamente cria um pacote de invite ( pedido de chamada ) do Call_box para o server.
@@ -243,7 +185,7 @@
          *
          * @return 
          */
-    char * build_invite_package( char * s, char * callbox_string, int * cseq, bool retry = false );
+    char * build_invite_package ( int * cseq, const bool retry = false );
     
         /**
          * @Synopsis Efetivamente cria um pacote de "despedida" para o servidor, usado para encerrar ligações.
@@ -252,7 +194,7 @@
          *
          * @return Um ponteiro para o inicio do pacote montado ( mesmo endereço passado como parâmetro ).
          */
-    char * build_bye_package( char * buffer );
+    char * build_bye_package ( void );
     
         /**
          * @Synopsis Efetivamente cria um pacote de ack de mensagem recebida.
@@ -262,38 +204,7 @@
          *
          * @return Um ponteiro para o inicio do pacote montado ( mesmo endereço passado como parâmetro ).
          */
-    char * build_ack_package( char * buffer, unsigned char * orig );
-    
-        /**
-         * @Synopsis 
-         *
-         * @param s Um ponteiro para a posição de memória onde será montado o pacote.
-         * @param orig O pacote recebido do servidor, serve como referência para criação da resposta.
-         * @param tag A tag que será usada no pacote de resposta.
-         *
-         * @return Um ponteiro para o inicio do pacote montado ( mesmo endereço passado como parâmetro ).
-         */
-    char * build_generic_reply_package( char * s, unsigned char * orig, char * tag );
-    
-        /**
-         * @Synopsis Cria um pacote genérico de resposta.
-         *
-         * @param buffer Um ponteiro para a posição de memória onde será montado o pacote.
-         * @param orig 
-         *
-         * @return Um ponteiro para o inicio do pacote montado ( mesmo endereço passado como parâmetro ).
-         */
-    char * build_trying_package( char * buffer, unsigned char * orig );
-    
-        /**
-         * @Synopsis 
-         *
-         * @param buffer Um ponteiro para a posição de memória onde será montado o pacote.
-         * @param orig O pacote de origem, serve como referência na criação do pacote.
-         *
-         * @return Um ponteiro para o inicio do pacote montado ( mesmo endereço passado como parâmetro ).
-         */
-    char * build_busy_package( char * buffer, unsigned char * orig );
+    char * build_ack_package ( char * buffer, const unsigned char * orig );
     
         /**
          * @Synopsis 
@@ -303,7 +214,7 @@
          *
          * @return Um ponteiro para o inicio do pacote montado ( mesmo endereço passado como parâmetro ).
          */
-    char * build_reply_package( char * buffer, unsigned char * orig );
+    char * build_reply_package ( char * buffer, const unsigned char * orig );
     
         /**
          * @Synopsis Preenche de forma aleatótia 16 posições de memória.
@@ -312,7 +223,7 @@
          *
          * @return Retorna um ponteiro para os dados preenchidos ( mesmo endereço passado como parâmetro.
          */
-    char * fill_random16h(char * buffer );
+    char * fill_random16h ( char * buffer );
     
         /**
          * @Synopsis Preenche de forma aleatótia dados.
@@ -322,14 +233,14 @@
          *
          * @return Um ponteiro para o inicio das posições preenchidas ( mesmo endereço do parâmetro passado ).
          */
-    char * fill_random( char * buffer, int size );
+    char * fill_random ( char * buffer, const int size );
     
         /**
          * @Synopsis Gera aleatóriamente a porta RTP de onde os dados de audiao serão enviados da Header.
          *
          * @return O nro da porta que será usada na negociação Sip.
          */
-    int fill_random_rtp_port( void );
+    int fill_random_rtp_port ( void );
     
         /**
          * @Synopsis Dado um pacote recebido do server, decodifica o nro cseq.
@@ -339,7 +250,7 @@
          *
          * @return Um ponteiro para o inicio da posição de memória que contem o cseq ( mesma passada como parâmetro ).
          */
-    char * decode_cseq(unsigned char * package, char * cseq);
+    char * decode_cseq ( const unsigned char * package, char * cseq );
     
         /**
          * @Synopsis Dado um pacote recebido do server, decodifica o branch.
@@ -349,7 +260,7 @@
          *
          * @return Um ponteiro para o inicio da posição de memória onde escrevemos o branch ( mesma passada como parâmentro ).
          */
-    char * decode_branch( unsigned char * package, char * branch );
+    char * decode_branch ( const unsigned char * package, char * branch );
     
         /**
          * @Synopsis Busca por uma determinado substring em um pacote recebido do servidor. Copiando o restando desse pacote para
@@ -363,7 +274,7 @@
          * @return 1, caso tenha encontrado a string tag contida no package, copia o restando do conteudo de package para out e retorna 1,
          * retorna 0 caso a substring não seja encontrada.
          */
-    int decode_gettag( unsigned char * package, char * tag, char * out );
+    int decode_gettag ( const unsigned char * package, const char * tag, char * out );
     
         /**
          * @Synopsis Recebe um ramal de comunicação com o servidor, realizando solicitações futuras com esse ramal.
@@ -377,7 +288,7 @@
          * ...
          * @endcode
          */
-    void set_server_ext( int new_server_ext );
+    void set_server_ext ( const int new_server_ext );
     
         /**
          * @Synopsis Recebe uma porta de comunicação com o servidor, setando e realizando comunicaões entre Header-Server atraves 
@@ -392,7 +303,7 @@
          * ...
          * @endcode
          */
-    void set_server_port( int new_server_port );
+    void set_server_port ( const int new_server_port );
     
         /**
          * @Synopsis Seta ramal de comunicação Sip da Header.
@@ -407,7 +318,7 @@
          * @endcode
          *
          */
-    void set_ext( int ext );
+    void set_ext ( const int ext );
     
         /**
          * @Synopsis Seta a porta de comunicação Sip da Header.
@@ -423,7 +334,7 @@
          *
          *
          */
-    void set_port( int port );
+    void set_port ( const int port );
     
         /**
          * @Synopsis Seta o valor passado como parâmetro como sendo o endeço IP de contato do servidor.
@@ -437,7 +348,7 @@
          * ...
          * @endcode
          */
-    void set_server_ip( char * new_server_ip );
+    void set_server_ip ( const char * new_server_ip );
     
         /**
          * @Synopsis Responsavel por ouvir o servidor *, verificando se o mesmo esta mandando alguma mensagem, seja Sip ou qualquer outra
@@ -446,7 +357,7 @@
          * @return 0, sucesso na execução, sem pendencia, ou retorna um nro maior que zero, representando o nro do ramal cuja ligação deve
          * ser encerrada.
          */
-    int listen_SIP_server( void );
+    int listen_SIP_server ( void );
     
         /**
          * @Synopsis Envia efetivamente o pacote de despedita com Call_box pro servidor
@@ -458,26 +369,35 @@
          * ...
          * @endcode
          */
-    void send_bye( void );
+    void send_bye ( void );
     
         /**
          * @Synopsis Retorna o status atual do objeto
          *
          * @return O valor correspondente ao status do objeto
          */
-    int get_status( void );
+    int get_status ( void );
     
     /*------------------------------------------------------------------------------------------------*/
-    int get_socket_fd( void );
-    int udp_incomming_pkg( void );
-    int get_ext( void );
-    int get_port( void );
+    int get_socket_fd ( void );
+    
+    int udp_incomming_pkg ( void );
+    
+    int get_ext ( void );
+    
+    int get_port ( void );
+    
     int get_sip_rtp_port ( void );
+    
     int print_yourself ( void );
+    
     int retry_send_last_invite_pkg_to_ast ( void );
     
-    void set_sip_rtp_port ( int );
-    void sip_set_status( uint8_t status );
-    void reset_call( void );
+    
+    void set_sip_rtp_port ( const int new_my_rtp_port );
+    
+    void sip_set_status ( const uint8_t status );
+    
+    void reset_call ( void );
 };
 #endif
\ No newline at end of file