Modularizando o src

Dependencies:   EALib EthernetInterface_vz mbed-rtos mbed

Fork of header_main_colinas_V0-20-09-14 by VZTECH

Committer:
klauss
Date:
Sat Sep 13 19:21:48 2014 +0000
Revision:
7:019b08223b87
Parent:
6:a10de9926fbe
Child:
8:e3bfe62a477e
testando estabilidade do embarcado

Who changed what in which revision?

UserRevisionLine numberNew contents of line
klauss 0:4d17cd9c8f9d 1 #ifndef __SIP_H__
klauss 0:4d17cd9c8f9d 2 #define __SIP_H__
klauss 0:4d17cd9c8f9d 3
klauss 0:4d17cd9c8f9d 4 #include <stdlib.h>
klauss 0:4d17cd9c8f9d 5 #include <stdint.h>
klauss 0:4d17cd9c8f9d 6 #include <string.h>
klauss 0:4d17cd9c8f9d 7 #include "mbed.h"
klauss 0:4d17cd9c8f9d 8 #include "EthernetInterface.h"
klauss 0:4d17cd9c8f9d 9 #include "call.h"
klauss 0:4d17cd9c8f9d 10 #include "vz_protocol.h"
klauss 0:4d17cd9c8f9d 11 #include "debug.h"
klauss 0:4d17cd9c8f9d 12
klauss 3:cd9148672e25 13 #define __INVITE_MAX_WAITING_TIME__ 30
klauss 0:4d17cd9c8f9d 14 #define SIP_MAXFIELDSIZE 256
klauss 0:4d17cd9c8f9d 15 #define SIP_MAXMSGSIZE 2048
klauss 0:4d17cd9c8f9d 16 #define SIP_REGISTER_EXPIRES 120
klauss 0:4d17cd9c8f9d 17 #define DRAMBASEADDR 0xa0000000
klauss 0:4d17cd9c8f9d 18 #define SIP_ALLOW "Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER"
klauss 0:4d17cd9c8f9d 19 /* #define SIP_ALLOW "Allow: ACK, BYE, CANCEL, INVITE, OPTIONS" */
klauss 0:4d17cd9c8f9d 20
klauss 6:a10de9926fbe 21 //#define debug_colinas
klauss 6:a10de9926fbe 22 #ifdef debug_colinas
klauss 6:a10de9926fbe 23 #define __SEVER_IP__ "192.168.30.25"
klauss 6:a10de9926fbe 24 #define __SERVER_PORT__ 5060
klauss 6:a10de9926fbe 25 #endif
klauss 6:a10de9926fbe 26 #ifndef debug_colinas
klauss 0:4d17cd9c8f9d 27 #define __SEVER_IP__ "192.168.120.120"
klauss 0:4d17cd9c8f9d 28 #define __SERVER_PORT__ 5075
klauss 6:a10de9926fbe 29 #endif
klauss 6:a10de9926fbe 30
klauss 0:4d17cd9c8f9d 31 #define __MY_PORT__ 5062
klauss 0:4d17cd9c8f9d 32 #define __MY_EXT__ 820
klauss 7:019b08223b87 33 #define __PEER_EXT__ 913
klauss 0:4d17cd9c8f9d 34
klauss 0:4d17cd9c8f9d 35 #define sip_idle 0
klauss 0:4d17cd9c8f9d 36 #define sip_waiting_trying 1 << 1
klauss 0:4d17cd9c8f9d 37 #define sip_trying 1 << 2
klauss 0:4d17cd9c8f9d 38 #define sip_ringing 1 << 3
klauss 0:4d17cd9c8f9d 39 #define sip_busy 1 << 4
klauss 0:4d17cd9c8f9d 40 #define sip_ok 1 << 5
klauss 0:4d17cd9c8f9d 41 #define sip_on_call 1 << 6
klauss 0:4d17cd9c8f9d 42 #define sip_denied 1 << 7
klauss 0:4d17cd9c8f9d 43
klauss 0:4d17cd9c8f9d 44 class Sip{
klauss 0:4d17cd9c8f9d 45
klauss 0:4d17cd9c8f9d 46 private :
klauss 0:4d17cd9c8f9d 47 int id;
klauss 0:4d17cd9c8f9d 48 char server_ip[20];
klauss 0:4d17cd9c8f9d 49 int server_port;
klauss 0:4d17cd9c8f9d 50 char my_ip[20];
klauss 0:4d17cd9c8f9d 51 int my_port;
klauss 0:4d17cd9c8f9d 52 int my_ext;
klauss 0:4d17cd9c8f9d 53 int my_rtp_port;
klauss 0:4d17cd9c8f9d 54 char my_display[20];
klauss 0:4d17cd9c8f9d 55 int peer_ext;
klauss 0:4d17cd9c8f9d 56 char fill_random_aux[ 65 ];
klauss 0:4d17cd9c8f9d 57 char last_invite_tag[ SIP_MAXFIELDSIZE ];
klauss 0:4d17cd9c8f9d 58 char last_invite_callid[ SIP_MAXFIELDSIZE ];
klauss 0:4d17cd9c8f9d 59 char SVNREV[ 16 ];
klauss 0:4d17cd9c8f9d 60 char buffer[ 1024 ];
klauss 0:4d17cd9c8f9d 61 UDPSocket sock;
klauss 0:4d17cd9c8f9d 62 Endpoint sip_server;
klauss 0:4d17cd9c8f9d 63 void __init_sock__( void );
klauss 0:4d17cd9c8f9d 64 void __end_sock__( void );
klauss 0:4d17cd9c8f9d 65 public :
klauss 0:4d17cd9c8f9d 66 uint8_t status;
klauss 0:4d17cd9c8f9d 67 Sip();
klauss 0:4d17cd9c8f9d 68 Sip( int id, uint16_t my_port );
klauss 0:4d17cd9c8f9d 69 Sip( int id, uint16_t my_port, int dest_ext );
klauss 0:4d17cd9c8f9d 70 Sip( char * server_ip, int server_port, char * my_ip, int my_port, int my_ext, int peer_ext, int id );
klauss 0:4d17cd9c8f9d 71 ~Sip();
klauss 0:4d17cd9c8f9d 72 void registry( void );
klauss 0:4d17cd9c8f9d 73 VZ_call * invite( void );
klauss 0:4d17cd9c8f9d 74
klauss 0:4d17cd9c8f9d 75 char * make_content_length( char * header, char * body, char * pkg );
klauss 0:4d17cd9c8f9d 76
klauss 0:4d17cd9c8f9d 77 int get_return_code( char * s );
klauss 0:4d17cd9c8f9d 78 int get_cseq( void );
klauss 0:4d17cd9c8f9d 79 int get_id( void );
klauss 0:4d17cd9c8f9d 80 int get_my_rtp_port( void );
klauss 0:4d17cd9c8f9d 81
klauss 0:4d17cd9c8f9d 82 char * build_registry_package( char * buffer );
klauss 0:4d17cd9c8f9d 83 char * build_unregistry_package( char * buffer );
klauss 0:4d17cd9c8f9d 84 char * build_invite_package( char * s, char * callbox_string, int * cseq );
klauss 0:4d17cd9c8f9d 85 char * build_bye_package( char * buffer );
klauss 0:4d17cd9c8f9d 86 char * build_ack_package( char * buffer, unsigned char * orig );
klauss 0:4d17cd9c8f9d 87 char * build_generic_reply_package(char * s, unsigned char * orig, char * tag);
klauss 0:4d17cd9c8f9d 88 char * build_trying_package( char * buffer, unsigned char * orig );
klauss 0:4d17cd9c8f9d 89 char * build_busy_package( char * buffer, unsigned char * orig );
klauss 0:4d17cd9c8f9d 90 char * build_reply_package( char * buffer, unsigned char * orig );
klauss 0:4d17cd9c8f9d 91
klauss 0:4d17cd9c8f9d 92 char * fill_random16h(char * buffer );
klauss 0:4d17cd9c8f9d 93 char * fill_random( char * buffer, int size );
klauss 0:4d17cd9c8f9d 94 int fill_random_rtp_port( void );
klauss 0:4d17cd9c8f9d 95
klauss 0:4d17cd9c8f9d 96 char * decode_cseq(unsigned char * package, char * cseq);
klauss 0:4d17cd9c8f9d 97 char * decode_branch( unsigned char * package, char * branch );
klauss 0:4d17cd9c8f9d 98 int decode_gettag( unsigned char * package, char * tag, char * out );
klauss 0:4d17cd9c8f9d 99
klauss 0:4d17cd9c8f9d 100 void change_sip_server();
klauss 0:4d17cd9c8f9d 101 char * get_next_server_ip( char *server_ip );
klauss 0:4d17cd9c8f9d 102 int get_next_server_port();
klauss 0:4d17cd9c8f9d 103 int get_next_server_ext();
klauss 0:4d17cd9c8f9d 104
klauss 0:4d17cd9c8f9d 105 void set_server_ext( int new_server_ext );
klauss 0:4d17cd9c8f9d 106 void set_server_port( int new_server_port );
klauss 0:4d17cd9c8f9d 107 void set_ext( int ext );
klauss 0:4d17cd9c8f9d 108 void set_port( int port );
klauss 0:4d17cd9c8f9d 109 void set_server_ip( char * new_server_ip );
klauss 0:4d17cd9c8f9d 110
klauss 0:4d17cd9c8f9d 111 int listen_SIP_server( void );
klauss 0:4d17cd9c8f9d 112 void send_bye( void );
klauss 0:4d17cd9c8f9d 113 void send_unregistry_pkg( void );
klauss 0:4d17cd9c8f9d 114
klauss 0:4d17cd9c8f9d 115 uint8_t get_status( void );
klauss 0:4d17cd9c8f9d 116 };
klauss 0:4d17cd9c8f9d 117 #endif