Modularizando o src

Dependencies:   EALib EthernetInterface_vz mbed-rtos mbed

Fork of header_main_colinas_V0-20-09-14 by VZTECH

Revision:
76:9f5f99dd895a
Parent:
75:bd3c647b860b
Child:
77:e8c0253b57bc
--- a/main.cpp	Mon Nov 24 18:57:54 2014 +0000
+++ b/main.cpp	Tue Nov 25 17:37:56 2014 +0000
@@ -218,34 +218,6 @@
             }
             pshowcb = 0;
         }
-        /*
-        if( cb_status ){
-            cb_status = false;
-            send_msg("Registred %d CBx", v_cb->size() );
-            char str[ 1024 ];
-            
-            if( v_cb->size() == 0 ){
-                send_msg("{-/-}");
-            }else if( v_cb->size() == 1 ){
-                Call_Box * cb = ( Call_Box * )v_cb->get_element( 0 );
-                send_msg(" %i ", cb->get_ext() );    
-            }else{
-                register uint8_t i;
-                char aux[ 16 ];
-                Call_Box * cb = NULL;
-                for( i = 0; i < v_cb->size() - 1; i++ ){
-                    cb = ( Call_Box * )v_cb->get_element( i );
-                    sprintf( aux, "%i, ", cb->get_ext() );
-                    strcat( str, aux );
-                    if( ( i != 0 ) && !( ( i + 1 ) % 8 ) ) strcat( str, "\n\r " );
-                }
-                cb = ( Call_Box * )v_cb->get_element( i );
-                sprintf( aux, "%i ", cb->get_ext() );
-                strcat( str, aux );
-                send_msg( "%s", str );
-            }
-        }
-        */
         
         if( pflood == 1 ) flood();               
         
@@ -397,7 +369,7 @@
             
             case __INVITE__ : {
                 invite_counter++;
-                if( debug_main ) debug_msg("Request Invite received from Cbx %i", ext);
+                if( debug_invite ) debug_msg("Request Invite received from Cbx %i", ext);
                 /*procura pelo cbx usando como chave o ramal( ext ) - caso nao encontre, cria o objeto e coloca na logica*/
                 Call_Box * cb = __find_CB__( v_cb, ext );
                 if( cb == NULL ){
@@ -408,96 +380,8 @@
                     cb->registry();
                 }
                 cb->reset_elapsed_time();
-                /* restricao de que so podemos fazer 1 call por vez */
-                /*
-                if( v_call->size() != 0 ){
-                    data[ 0 ] |= BIT7;
-                    cb->set_msg_id( data[ 0 ] );
-                    set_status(cb->status,cb_idle);
-                    cb->set_timeslice( 0x00 );
-                    data[ __TIMESLICE_PLACE__ ] = 0x00;
-                    send2callboxes( __build_cb_package__( ext, port, __INVITE__, 
-                        ( char * )data, cb->get_msg_id(), __CB_BUFFER_SIZE__ - __VZ_HEADER_OFFSET__, write_buffer ) );
-                    if( debug_main ) debug_msg( "denying call - another call box on call" );    
-                    break;
-                }
-                */
-                set_status( cb->status, cb_trying );
-                if( debug_main ) debug_msg("Request invite cbx status :: %d", cb->status );
-                //FIXMEj essa logica deve estar la embaixo, fora do switch maior, a ideia eh
-                // quando receber um pedido de invite, apenas manda o invite pro server
-                // dai rodar, ver se alguem mandou alguma coisa e voltar a tratar com o 
-                // * ver se ja esta tudo ok, a ideia é fazer esse pedido de invite funcionar
-                // assincrono.
-                switch( cb->status ){
-                    case cb_on_call : {
-                        // a priori, nao fazer nada
-                        //data[ __TIMESLICE_PLACE__ ] = 0x00;
-                        //send2callboxes( __build_cb_package__( ext, port, __BYE__, 
-                        //    ( char * )data, cb->get_msg_id(), __CB_BUFFER_SIZE__ - __VZ_HEADER_OFFSET__, write_buffer ) );
-                    }break;
-                    
-                    case cb_ringing : {
-                        // tratar sip 2
-                    }break;
-                
-                    case cb_trying : {
-                        data[ 0 ] |= BIT7;
-                        cb->set_msg_id( data[ 0 ] );
-                        cb->set_timeslice( ts->get_timeslice() );
-                        if( cb->get_timeslice() == 0x00 ){
-                            //sem timeslice pra tratar com o *
-                            set_status(cb->status,cb_idle);
-                            data[ __TIMESLICE_PLACE__ ] = 0x00;
-                            send2callboxes( __build_cb_package__( ext, port, __INVITE__, 
-                                ( char * )data, cb->get_msg_id(), __CB_BUFFER_SIZE__ - __VZ_HEADER_OFFSET__, write_buffer ) );
-                            set_status( cb->sip->status, sip_idle );
-                            if( debug_main ) debug_msg( "-- Trying -- without TS -- %s ", write_buffer );
-                        }else{
-                            set_status(cb->status,cb_busy);
-                            data[ __TIMESLICE_PLACE__ ] = cb->get_timeslice();
-                            send2callboxes( __build_cb_package__( ext, port, __INVITE__, 
-                                ( char * )data, cb->get_msg_id(), __CB_BUFFER_SIZE__ - __VZ_HEADER_OFFSET__, write_buffer ) );
-                            
-                            if( debug_main ) debug_msg(" -- %d on %d -- ", cb->get_ext(), data[ __TIMESLICE_PLACE__ ] );
-                             
-                            cb->set_msg_id( ( ( cb->get_msg_id() ) + 1 ) & ( BIT7 ^ 0xff ) );
-                            
-                            VZ_call * call = cb->invite();
-                        
-                            if( call != NULL ){
-                                v_call->add( call );
-                                set_status(cb->status,cb_on_call);
-                                
-                                if( debug_main ) debug_msg(" -- %d on %d -- ", cb->get_ext(), data[ __TIMESLICE_PLACE__ ] );
-                                send2callboxes( __build_cb_package__( ext, port, __INVITE__, 
-                                    ( char * )data, cb->get_msg_id(), __CB_BUFFER_SIZE__ - __VZ_HEADER_OFFSET__, write_buffer ) );
-                                if( debug_main ) debug_msg( "-- Trying -- accepting call request --" );
-                            }else{
-                                set_status( cb->status,cb_idle);
-                                ts->return_timeslice( cb->get_timeslice() );
-                                cb->set_timeslice( 0x00 );
-                                data[ __TIMESLICE_PLACE__ ] = 0x00;
-                                if( debug_main ) debug_msg(" -- %d on %d -- ", cb->get_ext(), data[ __TIMESLICE_PLACE__ ] );
-                                send2callboxes( __build_cb_package__( ext, port, __CB_BYE__, 
-                                    ( char * )data, cb->get_msg_id(), __CB_BUFFER_SIZE__ - __VZ_HEADER_OFFSET__, write_buffer ) );
-                                if( debug_main ) debug_msg( "-- Trying -- denying call request --" );
-                                set_status( cb->sip->status, sip_idle);
-                            }
-                        }
-                    }break;                    
-                    case cb_busy : {
-                        set_status( cb->status,cb_idle);
-                        ts->return_timeslice( cb->get_timeslice() );
-                        cb->set_timeslice( 0x00 );
-                        data[ __TIMESLICE_PLACE__ ] = 0x00;
-                        if( debug_main ) debug_msg(" -- %d on %d -- ", cb->get_ext(), data[ __TIMESLICE_PLACE__ ] );
-                        send2callboxes( __build_cb_package__( ext, port, __CB_BYE__, 
-                            ( char * )data, cb->get_msg_id(), __CB_BUFFER_SIZE__ - __VZ_HEADER_OFFSET__, write_buffer ) );
-                        if( debug_main ) debug_msg( "-- Trying -- denying call request << Busy Here >> --" );
-                        set_status( cb->sip->status, sip_idle );
-                    }break;
-                }                            
+                      
+                invite_handler( v_call, v_cb, ts, cb );
             }break;
             case __REGISTRY__ : {
                 registry_counter++;
@@ -623,6 +507,8 @@
         
         call_manager( v_call, v_cb, buffer, write_buffer, ts );
         
+        invite_handler( v_call, v_cb, ts, NULL );        
+        
         /*
         static uint8_t flag = 0;
         if( v_call->size() == 0 ){