voltando a versao de n aberturas e fechamentos de sockets data 19/09
Dependencies: EthernetInterface NTPClient mbed-rtos mbed EALib
Fork of header_main_publish by
Diff: sip.cpp
- Revision:
- 13:ae278302dffe
- Parent:
- 12:07fd716e0f35
- Child:
- 14:22a35f575502
--- a/sip.cpp Tue Sep 16 13:21:01 2014 +0000 +++ b/sip.cpp Tue Sep 16 15:09:11 2014 +0000 @@ -105,24 +105,21 @@ } void Sip::registry(){ - //jhcchar out[ 1000 ]; - char out[ 350 ]; + char out[ 1000 ]; debug_msg("registrando -- %d", this->my_ext ); build_registry_package( buffer ); - int sent = sock.sendTo( sip_server, buffer, strlen( buffer ) ); + int sent = sock.sendTo( sip_server, buffer, sizeof( buffer ) ); sock.receiveFrom( sip_server, buffer, sizeof( buffer ) ); debug_msg(" Recebidos %d bytes para o o ext %d", sent, my_ext ); if( decode_gettag( (unsigned char *)buffer, "cseq: ", out ) ){ if(strlen( out ) > 7){ if(strcasecmp("options",out+strlen(out)-7) == 0){ - //jhcchar ans[ 2000 ]; - char ans[ 350 ]; + char ans[ 2000 ]; build_reply_package( ans, (unsigned char*)buffer ); sock.sendTo( sip_server, ans, sizeof( ans ) ); } } } - debug_msg("registrei"); } VZ_call * Sip::invite(){ @@ -173,8 +170,7 @@ ref += 6; // audio ref = strtok( ref, " "); if( call == NULL ) call = new VZ_call( this->my_ext, this->my_rtp_port, this->peer_ext, atoi( ref ) ); - //jhcchar ans[ 1024 ]; - char ans[ 350 ]; + char ans[ 1024 ]; build_ack_package( ans, ( unsigned char *)buffer ); sock.sendTo( sip_server, ans, sizeof( ans ) ); debug_msg("Call alocada -- Sip::status::%d -- loop_times :: %d :: received_loop_times :: %d", status, loop_times, received_loop_times ); @@ -921,22 +917,21 @@ > 0 :: devo remover essa call do vetor de calls */ int Sip::listen_SIP_server( void ){ - sock.set_blocking( false, 1 ); // verificar isso com mais cuidado depois + sock.set_blocking( false, 3 ); // verificar isso com mais cuidado depois uint8_t read = sock.receiveFrom( sip_server, this->buffer, sizeof( this->buffer ) ); if( read > 0 ){ + //debug_msg( "-- SIP recebeu algo --" ); if( !( strncasecmp( buffer, "bye", strlen("bye") ) ) ){ - //jhcchar ans[ 2000 ]; - char ans[ 350 ]; + char ans[ 2000 ]; build_reply_package( ans, (unsigned char*)buffer ); - int sent_to_ast = sock.sendTo( sip_server, ans, sizeof( ans ) ); - debug_msg(" Server request BYE to %d ext -- %d bytes reply", my_ext, sent_to_ast ); + sock.sendTo( sip_server, ans, sizeof( ans ) ); + debug_msg(" Server request BYE to %d ext", my_ext ); return( this->my_ext ); }else if( !( strncasecmp( buffer, "options", strlen("options") ) ) ){ - //jhcchar ans[ 2000 ]; - char ans[ 350 ]; + char ans[ 2000 ]; + debug_msg(" Options received "); build_reply_package( ans, (unsigned char*)buffer ); - int sent_to_ast = sock.sendTo( sip_server, ans, sizeof( ans ) ); - debug_msg(" Ext %d :: Options -- %d bytes reply ", my_ext, sent_to_ast ); + sock.sendTo( sip_server, ans, sizeof( ans ) ); } } return( 0 ); @@ -951,10 +946,8 @@ } void Sip::send_bye( void ){ - debug_msg(""); build_bye_package( this->buffer ); sock.sendTo( sip_server, build_bye_package( this->buffer ), sizeof( this->buffer ) ); - debug_msg(""); } void Sip::send_unregistry_pkg(){