Modularizando o src

Dependencies:   EALib EthernetInterface_vz mbed-rtos mbed

Fork of header_main_colinas_V0-20-09-14 by VZTECH

Committer:
klauss
Date:
Mon Oct 20 16:13:10 2014 +0000
Revision:
48:195c97f12e8e
Parent:
29:7246460b73f8
Child:
55:2f5e7374af9d
versao em validacao

Who changed what in which revision?

UserRevisionLine numberNew contents of line
klauss 0:4d17cd9c8f9d 1 #include "call_box.h"
klauss 29:7246460b73f8 2 #include "prompt.h"
klauss 0:4d17cd9c8f9d 3
klauss 0:4d17cd9c8f9d 4 Call_Box::Call_Box( int ext, int port ){
klauss 0:4d17cd9c8f9d 5 this->ext = ext;
klauss 0:4d17cd9c8f9d 6 this->port = port;
klauss 0:4d17cd9c8f9d 7 t.start();
klauss 0:4d17cd9c8f9d 8 remaining_attempts = __MAX_ATTEMPTS__;
klauss 0:4d17cd9c8f9d 9 timeout = __TIMEOUT__;
klauss 0:4d17cd9c8f9d 10 //sip.set_ext( this->ext );
klauss 0:4d17cd9c8f9d 11 //sip.set_port( this->port );
klauss 4:de46f0d9b14d 12 msg_id = 0x10;
klauss 0:4d17cd9c8f9d 13 timeslice = 0x00;
klauss 0:4d17cd9c8f9d 14 status = cb_idle;
klauss 0:4d17cd9c8f9d 15 //Sip sip( ext, port );
klauss 12:07fd716e0f35 16 //sip = NULL;
klauss 12:07fd716e0f35 17 sip = new Sip( ext, port );
klauss 0:4d17cd9c8f9d 18 }
klauss 0:4d17cd9c8f9d 19
klauss 0:4d17cd9c8f9d 20 Call_Box::~Call_Box( void ){
klauss 0:4d17cd9c8f9d 21 if( sip != NULL ) delete( sip );
klauss 0:4d17cd9c8f9d 22 }
klauss 0:4d17cd9c8f9d 23
klauss 0:4d17cd9c8f9d 24 int Call_Box::get_port( void ){ return( this->port ); }
klauss 0:4d17cd9c8f9d 25 int Call_Box::get_ext( void ){ return( this->ext ); }
klauss 0:4d17cd9c8f9d 26
klauss 0:4d17cd9c8f9d 27 float Call_Box::get_elapsed_time( void ){ return( this->t.read_ms() ); }
klauss 0:4d17cd9c8f9d 28
klauss 0:4d17cd9c8f9d 29 void Call_Box::reset_elapsed_time( void ){
klauss 0:4d17cd9c8f9d 30 this->t.reset();
klauss 0:4d17cd9c8f9d 31 remaining_attempts = __MAX_ATTEMPTS__;
klauss 3:cd9148672e25 32 // timeout = __TIMEOUT__;
klauss 0:4d17cd9c8f9d 33 }
klauss 0:4d17cd9c8f9d 34
klauss 0:4d17cd9c8f9d 35 bool Call_Box::is_timeout( void ){
klauss 0:4d17cd9c8f9d 36 return( t.read() > timeout ) ? true : false;
klauss 0:4d17cd9c8f9d 37 }
klauss 0:4d17cd9c8f9d 38
klauss 0:4d17cd9c8f9d 39 uint8_t Call_Box::reconfigure_timeout( void ){
klauss 3:cd9148672e25 40 //static int count = 1;
klauss 3:cd9148672e25 41 //if( timeout != __MAX_TIMEOUT__ ) timeout = __STEP__ * count++;
klauss 0:4d17cd9c8f9d 42 t.reset();
klauss 48:195c97f12e8e 43 //return( remaining_attempts-- );
klauss 48:195c97f12e8e 44 return( remaining_attempts );
klauss 0:4d17cd9c8f9d 45 }
klauss 0:4d17cd9c8f9d 46
klauss 0:4d17cd9c8f9d 47 void Call_Box::registry( void ){
klauss 0:4d17cd9c8f9d 48 if( this->sip == NULL ){
klauss 0:4d17cd9c8f9d 49 this->sip = new Sip( ext, port );
klauss 0:4d17cd9c8f9d 50
klauss 0:4d17cd9c8f9d 51 sip->registry();
klauss 0:4d17cd9c8f9d 52
klauss 0:4d17cd9c8f9d 53 delete( sip );
klauss 0:4d17cd9c8f9d 54 this->sip = NULL;
klauss 0:4d17cd9c8f9d 55 }else{
klauss 0:4d17cd9c8f9d 56 sip->registry();
klauss 0:4d17cd9c8f9d 57 }
klauss 0:4d17cd9c8f9d 58 }
klauss 0:4d17cd9c8f9d 59
klauss 0:4d17cd9c8f9d 60 void Call_Box::unregistry( void ){
klauss 0:4d17cd9c8f9d 61 if( this->sip == NULL ){
klauss 0:4d17cd9c8f9d 62 this->sip = new Sip( ext, port );
klauss 0:4d17cd9c8f9d 63
klauss 0:4d17cd9c8f9d 64 sip->send_unregistry_pkg();
klauss 0:4d17cd9c8f9d 65
klauss 0:4d17cd9c8f9d 66 delete( sip );
klauss 0:4d17cd9c8f9d 67 this->sip = NULL;
klauss 0:4d17cd9c8f9d 68 }else{
klauss 0:4d17cd9c8f9d 69 sip->send_unregistry_pkg();
klauss 0:4d17cd9c8f9d 70 }
klauss 0:4d17cd9c8f9d 71 }
klauss 0:4d17cd9c8f9d 72
klauss 0:4d17cd9c8f9d 73 VZ_call * Call_Box::invite( void ){
klauss 29:7246460b73f8 74 t.stop();
klauss 29:7246460b73f8 75 VZ_call * call = NULL;
klauss 29:7246460b73f8 76
klauss 0:4d17cd9c8f9d 77 if( this->sip == NULL ){
klauss 0:4d17cd9c8f9d 78 this->sip = new Sip( ext, port );
klauss 0:4d17cd9c8f9d 79
klauss 29:7246460b73f8 80 call = sip->invite();
klauss 0:4d17cd9c8f9d 81
klauss 13:ae278302dffe 82 delete( sip );
klauss 13:ae278302dffe 83 this->sip = NULL;
klauss 29:7246460b73f8 84 }else{
klauss 29:7246460b73f8 85 call = sip->invite();
klauss 0:4d17cd9c8f9d 86 }
klauss 29:7246460b73f8 87
klauss 29:7246460b73f8 88 if( debug_cb ) debug_msg("Call returned value :: %p ", (void * )call );
klauss 29:7246460b73f8 89 if( call == NULL ) t.start();
klauss 29:7246460b73f8 90 return( call );
klauss 0:4d17cd9c8f9d 91 }
klauss 0:4d17cd9c8f9d 92
klauss 0:4d17cd9c8f9d 93 /* Retorna
klauss 0:4d17cd9c8f9d 94 = 0 :: ok
klauss 0:4d17cd9c8f9d 95 < 0 :: tive problemas
klauss 0:4d17cd9c8f9d 96 > 0 :: devo remover essa call do vetor de calls
klauss 0:4d17cd9c8f9d 97 */
klauss 0:4d17cd9c8f9d 98 int Call_Box::listen_SIP_server( void ){
klauss 0:4d17cd9c8f9d 99 if( this->sip == NULL ){
klauss 0:4d17cd9c8f9d 100 if( status == cb_on_call || status == cb_idle ){
klauss 0:4d17cd9c8f9d 101 this->sip = new Sip( ext, port );
klauss 0:4d17cd9c8f9d 102 int out_read = sip->listen_SIP_server();
klauss 0:4d17cd9c8f9d 103 delete( sip );
klauss 0:4d17cd9c8f9d 104 this->sip = NULL;
klauss 0:4d17cd9c8f9d 105 return( out_read );
klauss 0:4d17cd9c8f9d 106 }else return( 0 );
klauss 0:4d17cd9c8f9d 107 }else{
klauss 0:4d17cd9c8f9d 108 if( status == cb_on_call || status == cb_idle ){
klauss 13:ae278302dffe 109 return ( sip->listen_SIP_server() );
klauss 13:ae278302dffe 110 } else return( 0 );
klauss 0:4d17cd9c8f9d 111 }
klauss 0:4d17cd9c8f9d 112 }
klauss 0:4d17cd9c8f9d 113
klauss 0:4d17cd9c8f9d 114 void Call_Box::set_msg_id( uint8_t msg_id ){
klauss 0:4d17cd9c8f9d 115 this->msg_id = msg_id;
klauss 0:4d17cd9c8f9d 116 }
klauss 0:4d17cd9c8f9d 117 uint8_t Call_Box::get_msg_id( void ){ return( this->msg_id ); }
klauss 0:4d17cd9c8f9d 118
klauss 0:4d17cd9c8f9d 119 void Call_Box::set_timeslice( uint8_t timeslice ){
klauss 0:4d17cd9c8f9d 120 this->timeslice = timeslice;
klauss 0:4d17cd9c8f9d 121 }
klauss 0:4d17cd9c8f9d 122 uint8_t Call_Box::get_timeslice( void ){ return( this->timeslice ); }
klauss 0:4d17cd9c8f9d 123
klauss 0:4d17cd9c8f9d 124 //void Call_Box::set_sip( Sip * sip ){
klauss 0:4d17cd9c8f9d 125 // this->sip = sip;
klauss 0:4d17cd9c8f9d 126 //}
klauss 0:4d17cd9c8f9d 127
klauss 0:4d17cd9c8f9d 128 void Call_Box::send_bye( void ){
klauss 0:4d17cd9c8f9d 129 if( this->sip == NULL ){
klauss 0:4d17cd9c8f9d 130 this->sip = new Sip( ext, port );
klauss 0:4d17cd9c8f9d 131
klauss 0:4d17cd9c8f9d 132 sip->send_bye();
klauss 13:ae278302dffe 133
klauss 13:ae278302dffe 134 delete( sip );
klauss 0:4d17cd9c8f9d 135 sip = NULL;
klauss 0:4d17cd9c8f9d 136 }else{
klauss 0:4d17cd9c8f9d 137 sip->send_bye();
klauss 0:4d17cd9c8f9d 138 }
klauss 1:a1758104fa1d 139 }
klauss 1:a1758104fa1d 140
klauss 1:a1758104fa1d 141 void Call_Box::reset_sip( void ){
klauss 1:a1758104fa1d 142 if( this->sip != NULL ) delete( this->sip );
klauss 1:a1758104fa1d 143
klauss 1:a1758104fa1d 144 this->sip = new Sip( ext, port );
klauss 14:22a35f575502 145 }
klauss 14:22a35f575502 146
klauss 14:22a35f575502 147 void Call_Box::set_sip_status( int status ){
klauss 14:22a35f575502 148 if( this->sip != NULL ){
klauss 14:22a35f575502 149 this->sip->status = status;
klauss 14:22a35f575502 150 }else{
klauss 29:7246460b73f8 151 if( debug_cb) debug_msg("Sem objeto sip vinculado");
klauss 14:22a35f575502 152 }
klauss 29:7246460b73f8 153 }
klauss 29:7246460b73f8 154
klauss 29:7246460b73f8 155 void Call_Box::re_start_timer( void ){
klauss 29:7246460b73f8 156 t.start();
klauss 0:4d17cd9c8f9d 157 }