Modularizando o src

Dependencies:   EALib EthernetInterface_vz mbed-rtos mbed

Fork of header_main_colinas_V0-20-09-14 by VZTECH

Committer:
klauss
Date:
Thu Apr 30 15:42:41 2015 +0000
Revision:
119:ee6a53069455
Parent:
117:e9facba9db27
Child:
121:ee02790d00b7
funcionalidade - clock "ogro" - implementada

Who changed what in which revision?

UserRevisionLine numberNew contents of line
klauss 0:4d17cd9c8f9d 1 #include "call_box.h"
klauss 0:4d17cd9c8f9d 2
klauss 0:4d17cd9c8f9d 3 Call_Box::Call_Box( int ext, int port ){
klauss 0:4d17cd9c8f9d 4 this->ext = ext;
klauss 0:4d17cd9c8f9d 5 this->port = port;
klauss 0:4d17cd9c8f9d 6 t.start();
klauss 0:4d17cd9c8f9d 7 remaining_attempts = __MAX_ATTEMPTS__;
klauss 0:4d17cd9c8f9d 8 timeout = __TIMEOUT__;
klauss 4:de46f0d9b14d 9 msg_id = 0x10;
klauss 0:4d17cd9c8f9d 10 timeslice = 0x00;
klauss 0:4d17cd9c8f9d 11 status = cb_idle;
klauss 114:472502b31a12 12 sip = new Sip( ext, port );
klauss 89:0fe315117b00 13 sip_socket_fd = sip->get_socket_fd();
klauss 89:0fe315117b00 14 if( sip == NULL )
klauss 89:0fe315117b00 15 {
klauss 89:0fe315117b00 16 memory_is_over = true;
klauss 119:ee6a53069455 17 if( debug_memory ) debug_msg("[%d] Sip allocation fail", this->ext );
klauss 89:0fe315117b00 18 }
klauss 87:679ee0d594a9 19
klauss 78:1353744f01e1 20 next_aging_type = __CYCLES__;
klauss 81:3656f00ab3db 21 invite_response = true;
klauss 81:3656f00ab3db 22 bye_response = true;
klauss 92:92df17f538a8 23 invite_retry_count = MAX_INVITE_RETRY;
klauss 85:b6f2dc1d0f4f 24 cb_new_counter++;
klauss 119:ee6a53069455 25 invite_try_number = 0;
klauss 78:1353744f01e1 26 }
klauss 78:1353744f01e1 27
klauss 78:1353744f01e1 28 int Call_Box::get_status( void ){ return this->status; }
klauss 78:1353744f01e1 29
klauss 78:1353744f01e1 30 void Call_Box::cb_set_status( uint8_t status ){ this->status = status; }
klauss 78:1353744f01e1 31
klauss 78:1353744f01e1 32 int Call_Box::get_sip_status( void ){
klauss 78:1353744f01e1 33 if( sip == NULL ) return -1;
klauss 78:1353744f01e1 34
klauss 78:1353744f01e1 35 else return this->sip->get_status();
klauss 78:1353744f01e1 36 }
klauss 78:1353744f01e1 37
klauss 78:1353744f01e1 38 int Call_Box::set_sip_status( uint8_t status ){
klauss 78:1353744f01e1 39 if( sip == NULL ) return( -1 );
klauss 78:1353744f01e1 40
klauss 78:1353744f01e1 41 sip->sip_set_status( status );
klauss 78:1353744f01e1 42
klauss 78:1353744f01e1 43 return( 0 );
klauss 0:4d17cd9c8f9d 44 }
klauss 0:4d17cd9c8f9d 45
klauss 0:4d17cd9c8f9d 46 Call_Box::~Call_Box( void ){
klauss 85:b6f2dc1d0f4f 47 if( sip != NULL ) delete( sip );
klauss 85:b6f2dc1d0f4f 48 cb_delete_counter++;
klauss 0:4d17cd9c8f9d 49 }
klauss 0:4d17cd9c8f9d 50
klauss 0:4d17cd9c8f9d 51 int Call_Box::get_port( void ){ return( this->port ); }
klauss 119:ee6a53069455 52
klauss 0:4d17cd9c8f9d 53 int Call_Box::get_ext( void ){ return( this->ext ); }
klauss 0:4d17cd9c8f9d 54
klauss 0:4d17cd9c8f9d 55 float Call_Box::get_elapsed_time( void ){ return( this->t.read_ms() ); }
klauss 0:4d17cd9c8f9d 56
klauss 100:09a23fcd3bdf 57 void Call_Box::reset_elapsed_time( void ){
klauss 0:4d17cd9c8f9d 58 this->t.reset();
klauss 78:1353744f01e1 59 timeout = __TIMEOUT__;
klauss 78:1353744f01e1 60 next_aging_type = __CYCLES__;
klauss 0:4d17cd9c8f9d 61 }
klauss 0:4d17cd9c8f9d 62
klauss 0:4d17cd9c8f9d 63 void Call_Box::registry( void ){
klauss 119:ee6a53069455 64 if ( drop_registry_pkg )
klauss 119:ee6a53069455 65 {
klauss 119:ee6a53069455 66 send_msg("[%d] Dropando registry pck", this->ext );
klauss 119:ee6a53069455 67 return;
klauss 119:ee6a53069455 68 }
klauss 119:ee6a53069455 69
klauss 119:ee6a53069455 70 if( this->sip != NULL )
klauss 119:ee6a53069455 71 {
klauss 119:ee6a53069455 72 if( sip->registry() > 0x00 ) reset_elapsed_time();
klauss 119:ee6a53069455 73 if( debug_aging ) send_msg( "[%d] Registered - ( %f )", this->ext, __TIMEOUT__ - t.read() );
klauss 119:ee6a53069455 74
klauss 119:ee6a53069455 75 } else {
klauss 119:ee6a53069455 76 debug_msg("[%d] Eu definitivamente nao deveria estar aqui!!!", this->ext );
klauss 106:a34fcf9f0e02 77 deleted_sip++;
klauss 0:4d17cd9c8f9d 78 }
klauss 0:4d17cd9c8f9d 79 }
klauss 0:4d17cd9c8f9d 80
klauss 119:ee6a53069455 81 VZ_call * Call_Box::invite ( void )
klauss 119:ee6a53069455 82 {
klauss 29:7246460b73f8 83 VZ_call * call = NULL;
klauss 29:7246460b73f8 84
klauss 119:ee6a53069455 85 if( this->sip != NULL )
klauss 119:ee6a53069455 86 {
klauss 119:ee6a53069455 87 call = sip->invite();
klauss 119:ee6a53069455 88 } else {
klauss 119:ee6a53069455 89 debug_msg("[%d] Eu definitivamente nao deveria estar aqui!!!", this->ext );
klauss 0:4d17cd9c8f9d 90
klauss 119:ee6a53069455 91 deleted_sip++;
klauss 0:4d17cd9c8f9d 92 }
klauss 29:7246460b73f8 93
klauss 119:ee6a53069455 94 if( debug_cb ) send_msg("[%d] Call returned value :: %p ", this->ext, (void * )call );
klauss 29:7246460b73f8 95 if( call == NULL ) t.start();
klauss 29:7246460b73f8 96 return( call );
klauss 0:4d17cd9c8f9d 97 }
klauss 0:4d17cd9c8f9d 98
klauss 0:4d17cd9c8f9d 99 /* Retorna
klauss 0:4d17cd9c8f9d 100 = 0 :: ok
klauss 0:4d17cd9c8f9d 101 < 0 :: tive problemas
klauss 0:4d17cd9c8f9d 102 > 0 :: devo remover essa call do vetor de calls
klauss 0:4d17cd9c8f9d 103 */
klauss 0:4d17cd9c8f9d 104 int Call_Box::listen_SIP_server( void ){
klauss 119:ee6a53069455 105 if( this->sip == NULL )
klauss 119:ee6a53069455 106 {
klauss 119:ee6a53069455 107 debug_msg("[%d] Eu definitivamente nao deveria estar aqui!!!", this->ext );
klauss 119:ee6a53069455 108
klauss 114:472502b31a12 109 deleted_sip++;
klauss 119:ee6a53069455 110
klauss 119:ee6a53069455 111 return ( -3 );
klauss 119:ee6a53069455 112 } else {
klauss 0:4d17cd9c8f9d 113 if( status == cb_on_call || status == cb_idle ){
klauss 13:ae278302dffe 114 return ( sip->listen_SIP_server() );
klauss 119:ee6a53069455 115 } else return ( 0 );
klauss 0:4d17cd9c8f9d 116 }
klauss 0:4d17cd9c8f9d 117 }
klauss 0:4d17cd9c8f9d 118
klauss 0:4d17cd9c8f9d 119 void Call_Box::set_msg_id( uint8_t msg_id ){
klauss 78:1353744f01e1 120 this->msg_id = ( msg_id > 0x10 ) ? msg_id : 0x11;
klauss 0:4d17cd9c8f9d 121 }
klauss 0:4d17cd9c8f9d 122 uint8_t Call_Box::get_msg_id( void ){ return( this->msg_id ); }
klauss 0:4d17cd9c8f9d 123
klauss 0:4d17cd9c8f9d 124 void Call_Box::set_timeslice( uint8_t timeslice ){
klauss 0:4d17cd9c8f9d 125 this->timeslice = timeslice;
klauss 0:4d17cd9c8f9d 126 }
klauss 0:4d17cd9c8f9d 127 uint8_t Call_Box::get_timeslice( void ){ return( this->timeslice ); }
klauss 0:4d17cd9c8f9d 128
klauss 0:4d17cd9c8f9d 129 void Call_Box::send_bye( void ){
klauss 119:ee6a53069455 130 if( this->sip == NULL )
klauss 119:ee6a53069455 131 {
klauss 119:ee6a53069455 132 debug_msg("[%d] Eu definitivamente nao deveria estar aqui!!!", this->ext );
klauss 0:4d17cd9c8f9d 133
klauss 119:ee6a53069455 134 deleted_sip++;
klauss 119:ee6a53069455 135 } else {
klauss 0:4d17cd9c8f9d 136 sip->send_bye();
klauss 0:4d17cd9c8f9d 137 }
klauss 1:a1758104fa1d 138 }
klauss 1:a1758104fa1d 139
klauss 1:a1758104fa1d 140 void Call_Box::reset_sip( void ){
klauss 119:ee6a53069455 141 debug_msg("[%d] reset_sip", this->ext );
klauss 1:a1758104fa1d 142
klauss 114:472502b31a12 143 if( this->sip != NULL )
klauss 114:472502b31a12 144 {
klauss 114:472502b31a12 145 delete( this->sip );
klauss 119:ee6a53069455 146 debug_msg("[%d] deletei", this->ext );
klauss 114:472502b31a12 147 }
klauss 114:472502b31a12 148
klauss 114:472502b31a12 149 this->sip = new Sip( ext, port );
klauss 119:ee6a53069455 150 debug_msg( "[%d ]sobrescrevi", this->ext );
klauss 114:472502b31a12 151
klauss 106:a34fcf9f0e02 152 deleted_sip++;
klauss 87:679ee0d594a9 153
klauss 87:679ee0d594a9 154 if( sip == NULL ) memory_is_over = true;
klauss 14:22a35f575502 155 }
klauss 14:22a35f575502 156
klauss 14:22a35f575502 157 void Call_Box::set_sip_status( int status ){
klauss 14:22a35f575502 158 if( this->sip != NULL ){
klauss 14:22a35f575502 159 this->sip->status = status;
klauss 14:22a35f575502 160 }else{
klauss 119:ee6a53069455 161 if( debug_cb) debug_msg("[%d] Sip equals NULL o.O", this->ext );
klauss 109:a5b8264ffbbc 162 deleted_sip++;
klauss 119:ee6a53069455 163 debug_msg("[%d] Sip equals NULL o.O", this->ext );
klauss 114:472502b31a12 164 }
klauss 29:7246460b73f8 165 }
klauss 29:7246460b73f8 166
klauss 119:ee6a53069455 167 void Call_Box::set_invite_response_ok ( void )
klauss 119:ee6a53069455 168 {
klauss 119:ee6a53069455 169 this->invite_response = true;
klauss 119:ee6a53069455 170 if ( debug_invite ) send_msg ("[%d] Invite response :: ok", this->ext );
klauss 81:3656f00ab3db 171 }
klauss 81:3656f00ab3db 172
klauss 119:ee6a53069455 173 void Call_Box::set_invite_response_pending( void ){ this->invite_response = false; }
klauss 117:e9facba9db27 174
klauss 81:3656f00ab3db 175 bool Call_Box::get_invite_response( void ){ return( this->invite_response ); }
klauss 81:3656f00ab3db 176
klauss 119:ee6a53069455 177 void Call_Box::invite_retry_count_reset( void ){ invite_retry_count = MAX_INVITE_RETRY; }
klauss 117:e9facba9db27 178
klauss 119:ee6a53069455 179 uint16_t Call_Box::get_invite_retry_count( void ){
klauss 92:92df17f538a8 180 return ( invite_retry_count ) ? invite_retry_count-- : 0;
klauss 92:92df17f538a8 181 }
klauss 92:92df17f538a8 182
klauss 81:3656f00ab3db 183 void Call_Box::set_bye_response_ok( void ){ this->bye_response = true; }
klauss 119:ee6a53069455 184
klauss 81:3656f00ab3db 185 void Call_Box::set_bye_response_pending( void ){ this->bye_response = false; }
klauss 119:ee6a53069455 186
klauss 89:0fe315117b00 187 bool Call_Box::get_bye_response( void ){ return( this->bye_response ); }
klauss 89:0fe315117b00 188
klauss 89:0fe315117b00 189
klauss 119:ee6a53069455 190 int Call_Box::get_sip_socket_fd ( void ) { return( sip_socket_fd ); }
klauss 89:0fe315117b00 191
klauss 91:c2a86b1f8aaa 192 int Call_Box::sip_udp_incomming_pkg( void ){
klauss 91:c2a86b1f8aaa 193 return sip->udp_incomming_pkg();
klauss 91:c2a86b1f8aaa 194 }
klauss 91:c2a86b1f8aaa 195
klauss 119:ee6a53069455 196 void Call_Box::reset_cb_status ( void ) { if( sip != NULL ) sip->reset_call(); }
klauss 97:8985817e8847 197
klauss 97:8985817e8847 198 int Call_Box::get_sip_ext( void ){ return this->sip->get_ext(); }
klauss 119:ee6a53069455 199
klauss 99:e80850c51106 200 int Call_Box::get_sip_port( void ){ return this->sip->get_port(); }
klauss 99:e80850c51106 201
klauss 119:ee6a53069455 202 int Call_Box::get_timer ( void )
klauss 119:ee6a53069455 203 {
klauss 119:ee6a53069455 204 int now = t.read ();
klauss 119:ee6a53069455 205 if( now >= 9999 || now <= 0 ) t.reset ();
klauss 119:ee6a53069455 206 return t.read ();
klauss 119:ee6a53069455 207 }
klauss 108:18a3702650f3 208
klauss 108:18a3702650f3 209 int Call_Box::get_rtp_port ( void )
klauss 108:18a3702650f3 210 {
klauss 108:18a3702650f3 211 if( this->sip != NULL ){
klauss 108:18a3702650f3 212 return this->sip->get_sip_rtp_port();
klauss 108:18a3702650f3 213 }else{
klauss 119:ee6a53069455 214 debug_msg("[%d] Eu definitivamente nao deveria estar aqui!!!", this->ext );
klauss 119:ee6a53069455 215
klauss 109:a5b8264ffbbc 216 deleted_sip++;
klauss 119:ee6a53069455 217
klauss 108:18a3702650f3 218 return -1;
klauss 108:18a3702650f3 219 }
klauss 108:18a3702650f3 220 }
klauss 108:18a3702650f3 221
klauss 108:18a3702650f3 222 void Call_Box::set_rtp_port ( int new_rtp_port )
klauss 108:18a3702650f3 223 {
klauss 108:18a3702650f3 224 if( this->sip != NULL ){
klauss 108:18a3702650f3 225 this->sip->set_sip_rtp_port( new_rtp_port );
klauss 114:472502b31a12 226 }else{
klauss 119:ee6a53069455 227 debug_msg("[%d] Eu definitivamente nao deveria estar aqui!!!", this->ext );
klauss 119:ee6a53069455 228
klauss 109:a5b8264ffbbc 229 deleted_sip++;
klauss 114:472502b31a12 230 }
klauss 108:18a3702650f3 231 }
klauss 108:18a3702650f3 232
klauss 119:ee6a53069455 233 void Call_Box::init_rtp_timer ( void )
klauss 119:ee6a53069455 234 {
klauss 119:ee6a53069455 235 this->rtp_timer.start();
klauss 119:ee6a53069455 236 }
klauss 119:ee6a53069455 237
klauss 119:ee6a53069455 238 void Call_Box::reset_rtp_timer ( void )
klauss 119:ee6a53069455 239 {
klauss 119:ee6a53069455 240 this->rtp_timer.stop();
klauss 119:ee6a53069455 241 this->rtp_timer.reset();
klauss 119:ee6a53069455 242 }
klauss 119:ee6a53069455 243
klauss 119:ee6a53069455 244 bool Call_Box::is_rtp_timer_timeout ( void )
klauss 119:ee6a53069455 245 {
klauss 119:ee6a53069455 246 return ( rtp_timer.read () > RTP_REQUEST_PORT_TIMEOUT ) ? true : false;
klauss 119:ee6a53069455 247 }
klauss 119:ee6a53069455 248
klauss 119:ee6a53069455 249 int Call_Box::get_rtp_timer ( void )
klauss 119:ee6a53069455 250 {
klauss 119:ee6a53069455 251 return ( rtp_timer.read () );
klauss 119:ee6a53069455 252 }
klauss 119:ee6a53069455 253
klauss 109:a5b8264ffbbc 254 int Call_Box::print_yourself ( void )
klauss 109:a5b8264ffbbc 255 {
klauss 109:a5b8264ffbbc 256 send_msg ("");
klauss 109:a5b8264ffbbc 257 send_msg ("Values ::\r\n");
klauss 109:a5b8264ffbbc 258 switch( status ) {
klauss 109:a5b8264ffbbc 259 case cb_idle : {
klauss 109:a5b8264ffbbc 260 send_msg ("status :: cb_idle" );
klauss 109:a5b8264ffbbc 261 break;
klauss 109:a5b8264ffbbc 262 }
klauss 109:a5b8264ffbbc 263 case cb_ringing : {
klauss 109:a5b8264ffbbc 264 send_msg ("status :: cb_ringing" );
klauss 109:a5b8264ffbbc 265 break;
klauss 109:a5b8264ffbbc 266 }
klauss 109:a5b8264ffbbc 267 case cb_trying : {
klauss 109:a5b8264ffbbc 268 send_msg ("status :: cb_trying" );
klauss 109:a5b8264ffbbc 269 break;
klauss 109:a5b8264ffbbc 270 }
klauss 109:a5b8264ffbbc 271 case cb_on_call : {
klauss 109:a5b8264ffbbc 272 send_msg ("status :: cb_on_call" );
klauss 109:a5b8264ffbbc 273 break;
klauss 109:a5b8264ffbbc 274 }
klauss 109:a5b8264ffbbc 275 case cb_busy : {
klauss 109:a5b8264ffbbc 276 send_msg ("status :: cb_busy" );
klauss 109:a5b8264ffbbc 277 break;
klauss 109:a5b8264ffbbc 278 }
klauss 109:a5b8264ffbbc 279 case cb_denied : {
klauss 109:a5b8264ffbbc 280 send_msg ("status :: cb_denied" );
klauss 109:a5b8264ffbbc 281 break;
klauss 109:a5b8264ffbbc 282 }
klauss 109:a5b8264ffbbc 283 }
klauss 109:a5b8264ffbbc 284 send_msg ("ext :: %i", ext );
klauss 109:a5b8264ffbbc 285 send_msg ("port :: %i", port );
klauss 109:a5b8264ffbbc 286 send_msg ("Timer t :: %d", ( int )t.read () );
klauss 109:a5b8264ffbbc 287 send_msg ("remaining_attempts :: %u", remaining_attempts );
klauss 109:a5b8264ffbbc 288 send_msg ("timeout :: %f", timeout );
klauss 109:a5b8264ffbbc 289 send_msg ("msg_id :: %d", msg_id );
klauss 109:a5b8264ffbbc 290 send_msg ("timeslice :: %u", timeslice );
klauss 109:a5b8264ffbbc 291 send_msg ("next_aging_type :: %u", next_aging_type );
klauss 109:a5b8264ffbbc 292 send_msg ("invite_response :: %s", ( invite_response ) ? "true" : "false" );
klauss 109:a5b8264ffbbc 293 send_msg ("invite_retry_count :: %u", invite_retry_count );
klauss 109:a5b8264ffbbc 294 send_msg ("bye_response :: %s", ( bye_response ) ? "true" : "false" );
klauss 109:a5b8264ffbbc 295 send_msg ("sip_socket_fd :: %d", sip_socket_fd );
klauss 109:a5b8264ffbbc 296 send_msg ("");
klauss 109:a5b8264ffbbc 297
klauss 109:a5b8264ffbbc 298 return ( sizeof( Call_Box ) );
klauss 117:e9facba9db27 299 }
klauss 119:ee6a53069455 300
klauss 119:ee6a53069455 301 int Call_Box::call_init ( int timeslice )
klauss 117:e9facba9db27 302 {
klauss 119:ee6a53069455 303 invite_timer.reset ();
klauss 117:e9facba9db27 304
klauss 119:ee6a53069455 305 invite_timer.start ();
klauss 119:ee6a53069455 306
klauss 119:ee6a53069455 307 this->timeslice = timeslice;
klauss 119:ee6a53069455 308
klauss 119:ee6a53069455 309 this->status = cb_ringing;
klauss 119:ee6a53069455 310
klauss 119:ee6a53069455 311 set_invite_response_pending ();
klauss 119:ee6a53069455 312
klauss 119:ee6a53069455 313 invite_try_number = 0;
klauss 119:ee6a53069455 314
klauss 119:ee6a53069455 315 msg_id_update ();
klauss 119:ee6a53069455 316
klauss 119:ee6a53069455 317 return 0;
klauss 117:e9facba9db27 318 }
klauss 119:ee6a53069455 319
klauss 119:ee6a53069455 320 int Call_Box::call_end ( bool send_bye_to_ast )
klauss 117:e9facba9db27 321 {
klauss 119:ee6a53069455 322 uint8_t timeslice = this->timeslice;
klauss 119:ee6a53069455 323
klauss 119:ee6a53069455 324 this->timeslice = 0;
klauss 119:ee6a53069455 325
klauss 119:ee6a53069455 326 this->status = cb_idle;
klauss 119:ee6a53069455 327
klauss 119:ee6a53069455 328 if ( sip != NULL ) {
klauss 119:ee6a53069455 329 sip -> sip_set_status ( sip_idle );
klauss 119:ee6a53069455 330 } else {
klauss 119:ee6a53069455 331 if( debug_cb ) debug_msg("[%d] Sip equals NULL o.O", this->ext );
klauss 119:ee6a53069455 332 }
klauss 119:ee6a53069455 333
klauss 119:ee6a53069455 334 set_rtp_port ( 0 );
klauss 119:ee6a53069455 335
klauss 119:ee6a53069455 336 reset_rtp_timer ();
klauss 119:ee6a53069455 337
klauss 119:ee6a53069455 338 if ( send_bye_to_ast )
klauss 119:ee6a53069455 339 {
klauss 119:ee6a53069455 340 if ( timeslice != 0 ) send_bye ();
klauss 119:ee6a53069455 341 }
klauss 119:ee6a53069455 342
klauss 119:ee6a53069455 343 reset_cb_status ();
klauss 119:ee6a53069455 344
klauss 119:ee6a53069455 345 invite_timer.stop ();
klauss 119:ee6a53069455 346
klauss 119:ee6a53069455 347 invite_timer.reset ();
klauss 119:ee6a53069455 348
klauss 119:ee6a53069455 349 invite_try_number = 0;
klauss 119:ee6a53069455 350
klauss 119:ee6a53069455 351 msg_id_update ();
klauss 119:ee6a53069455 352
klauss 119:ee6a53069455 353 return timeslice;
klauss 117:e9facba9db27 354 }
klauss 119:ee6a53069455 355
klauss 119:ee6a53069455 356 int Call_Box::call_confirmed ( void )
klauss 119:ee6a53069455 357 {
klauss 119:ee6a53069455 358 set_invite_response_pending ();
klauss 119:ee6a53069455 359
klauss 119:ee6a53069455 360 this->status = cb_on_call;
klauss 119:ee6a53069455 361
klauss 119:ee6a53069455 362 msg_id_update ();
klauss 119:ee6a53069455 363
klauss 119:ee6a53069455 364 return 0;
klauss 119:ee6a53069455 365 }
klauss 119:ee6a53069455 366
klauss 119:ee6a53069455 367 uint8_t Call_Box::msg_id_update ( void )
klauss 119:ee6a53069455 368 {
klauss 119:ee6a53069455 369 this->msg_id = ( ( this->msg_id + 1 ) & ~BIT7 ) ? msg_id : 0x11;
klauss 119:ee6a53069455 370
klauss 119:ee6a53069455 371 return this->msg_id;
klauss 119:ee6a53069455 372 }
klauss 119:ee6a53069455 373
klauss 119:ee6a53069455 374 void Call_Box::call_config ( void )
klauss 117:e9facba9db27 375 {
klauss 119:ee6a53069455 376 set_invite_response_ok ();
klauss 119:ee6a53069455 377 reset_rtp_timer ();
klauss 119:ee6a53069455 378 init_rtp_timer ();
klauss 119:ee6a53069455 379 }
klauss 119:ee6a53069455 380
klauss 119:ee6a53069455 381 bool Call_Box::time_to_retry ( void )
klauss 119:ee6a53069455 382 {
klauss 119:ee6a53069455 383 if ( invite_timer.read_ms () > 1000 ){
klauss 119:ee6a53069455 384 invite_timer.reset ();
klauss 119:ee6a53069455 385 return true;
klauss 119:ee6a53069455 386 } else {
klauss 119:ee6a53069455 387 return false;
klauss 119:ee6a53069455 388 }
klauss 119:ee6a53069455 389 }
klauss 119:ee6a53069455 390
klauss 119:ee6a53069455 391 uint8_t Call_Box::get_invite_try_number ( void ) {return invite_try_number; }
klauss 119:ee6a53069455 392
klauss 119:ee6a53069455 393 int Call_Box::retry_send_invite_pkg_to_ast ( void )
klauss 119:ee6a53069455 394 {
klauss 119:ee6a53069455 395 if( this->sip != NULL )
klauss 119:ee6a53069455 396 {
klauss 119:ee6a53069455 397 invite_try_number++;
klauss 119:ee6a53069455 398 return ( sip -> retry_send_last_invite_pkg_to_ast () );
klauss 119:ee6a53069455 399 } else {
klauss 119:ee6a53069455 400 debug_msg("[%d] Eu definitivamente nao deveria estar aqui!!!", this->ext );
klauss 119:ee6a53069455 401
klauss 119:ee6a53069455 402 deleted_sip++;
klauss 119:ee6a53069455 403
klauss 119:ee6a53069455 404 return ( 0 );
klauss 119:ee6a53069455 405 }
klauss 108:18a3702650f3 406 }