Modularizando o src
Dependencies: EALib EthernetInterface_vz mbed-rtos mbed
Fork of header_main_colinas_V0-20-09-14 by
sip.h@18:01a93677e40c, 2014-09-19 (annotated)
- Committer:
- klauss
- Date:
- Fri Sep 19 17:39:09 2014 +0000
- Revision:
- 18:01a93677e40c
- Parent:
- 17:67a6b557eda5
- Child:
- 20:2d6ab23956e5
hills_01
Who changed what in which revision?
User | Revision | Line number | New 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 | 15:9c7456c1b6f4 | 20 | /* |
klauss | 0:4d17cd9c8f9d | 21 | #define __SEVER_IP__ "192.168.120.120" |
klauss | 0:4d17cd9c8f9d | 22 | #define __SERVER_PORT__ 5075 |
klauss | 8:e3bfe62a477e | 23 | //#define __MY_IP__ "192.168.120.191" |
klauss | 15:9c7456c1b6f4 | 24 | */ |
klauss | 0:4d17cd9c8f9d | 25 | #define __MY_PORT__ 5062 |
klauss | 0:4d17cd9c8f9d | 26 | #define __MY_EXT__ 820 |
klauss | 18:01a93677e40c | 27 | //#define __PEER_EXT__ 801 |
klauss | 15:9c7456c1b6f4 | 28 | #define __PEER_EXT__ 913 |
klauss | 18:01a93677e40c | 29 | //#define __PEER_EXT__ 803 |
klauss | 15:9c7456c1b6f4 | 30 | |
klauss | 18:01a93677e40c | 31 | |
klauss | 18:01a93677e40c | 32 | //#ifdef debug_colinas |
klauss | 15:9c7456c1b6f4 | 33 | #define __SEVER_IP__ "192.168.30.25" |
klauss | 15:9c7456c1b6f4 | 34 | #define __SERVER_PORT__ 5060 |
klauss | 18:01a93677e40c | 35 | //#endif |
klauss | 18:01a93677e40c | 36 | //#ifndef debug_colinas |
klauss | 18:01a93677e40c | 37 | //#define __SEVER_IP__ "192.168.120.120" |
klauss | 18:01a93677e40c | 38 | //#define __SEVER_IP__ "192.168.30.25" |
klauss | 18:01a93677e40c | 39 | //#define __SERVER_PORT__ 5075 |
klauss | 18:01a93677e40c | 40 | //#define __SERVER_PORT__ 5060 |
klauss | 18:01a93677e40c | 41 | //#endif |
klauss | 0:4d17cd9c8f9d | 42 | |
klauss | 0:4d17cd9c8f9d | 43 | #define sip_idle 0 |
klauss | 0:4d17cd9c8f9d | 44 | #define sip_waiting_trying 1 << 1 |
klauss | 0:4d17cd9c8f9d | 45 | #define sip_trying 1 << 2 |
klauss | 0:4d17cd9c8f9d | 46 | #define sip_ringing 1 << 3 |
klauss | 0:4d17cd9c8f9d | 47 | #define sip_busy 1 << 4 |
klauss | 0:4d17cd9c8f9d | 48 | #define sip_ok 1 << 5 |
klauss | 0:4d17cd9c8f9d | 49 | #define sip_on_call 1 << 6 |
klauss | 0:4d17cd9c8f9d | 50 | #define sip_denied 1 << 7 |
klauss | 0:4d17cd9c8f9d | 51 | |
klauss | 0:4d17cd9c8f9d | 52 | class Sip{ |
klauss | 0:4d17cd9c8f9d | 53 | |
klauss | 0:4d17cd9c8f9d | 54 | private : |
klauss | 0:4d17cd9c8f9d | 55 | int id; |
klauss | 0:4d17cd9c8f9d | 56 | char server_ip[20]; |
klauss | 0:4d17cd9c8f9d | 57 | int server_port; |
klauss | 0:4d17cd9c8f9d | 58 | char my_ip[20]; |
klauss | 0:4d17cd9c8f9d | 59 | int my_port; |
klauss | 0:4d17cd9c8f9d | 60 | int my_ext; |
klauss | 0:4d17cd9c8f9d | 61 | int my_rtp_port; |
klauss | 0:4d17cd9c8f9d | 62 | char my_display[20]; |
klauss | 0:4d17cd9c8f9d | 63 | int peer_ext; |
klauss | 0:4d17cd9c8f9d | 64 | char fill_random_aux[ 65 ]; |
klauss | 0:4d17cd9c8f9d | 65 | char last_invite_tag[ SIP_MAXFIELDSIZE ]; |
klauss | 0:4d17cd9c8f9d | 66 | char last_invite_callid[ SIP_MAXFIELDSIZE ]; |
klauss | 0:4d17cd9c8f9d | 67 | char SVNREV[ 16 ]; |
klauss | 13:ae278302dffe | 68 | char buffer[ 1024 ]; |
klauss | 0:4d17cd9c8f9d | 69 | UDPSocket sock; |
klauss | 0:4d17cd9c8f9d | 70 | Endpoint sip_server; |
klauss | 0:4d17cd9c8f9d | 71 | void __init_sock__( void ); |
klauss | 0:4d17cd9c8f9d | 72 | void __end_sock__( void ); |
klauss | 0:4d17cd9c8f9d | 73 | public : |
klauss | 0:4d17cd9c8f9d | 74 | uint8_t status; |
klauss | 0:4d17cd9c8f9d | 75 | Sip(); |
klauss | 0:4d17cd9c8f9d | 76 | Sip( int id, uint16_t my_port ); |
klauss | 0:4d17cd9c8f9d | 77 | Sip( int id, uint16_t my_port, int dest_ext ); |
klauss | 0:4d17cd9c8f9d | 78 | Sip( char * server_ip, int server_port, char * my_ip, int my_port, int my_ext, int peer_ext, int id ); |
klauss | 0:4d17cd9c8f9d | 79 | ~Sip(); |
klauss | 0:4d17cd9c8f9d | 80 | void registry( void ); |
klauss | 0:4d17cd9c8f9d | 81 | VZ_call * invite( void ); |
klauss | 0:4d17cd9c8f9d | 82 | |
klauss | 0:4d17cd9c8f9d | 83 | char * make_content_length( char * header, char * body, char * pkg ); |
klauss | 0:4d17cd9c8f9d | 84 | |
klauss | 0:4d17cd9c8f9d | 85 | int get_return_code( char * s ); |
klauss | 0:4d17cd9c8f9d | 86 | int get_cseq( void ); |
klauss | 0:4d17cd9c8f9d | 87 | int get_id( void ); |
klauss | 0:4d17cd9c8f9d | 88 | int get_my_rtp_port( void ); |
klauss | 0:4d17cd9c8f9d | 89 | |
klauss | 0:4d17cd9c8f9d | 90 | char * build_registry_package( char * buffer ); |
klauss | 0:4d17cd9c8f9d | 91 | char * build_unregistry_package( char * buffer ); |
klauss | 0:4d17cd9c8f9d | 92 | char * build_invite_package( char * s, char * callbox_string, int * cseq ); |
klauss | 0:4d17cd9c8f9d | 93 | char * build_bye_package( char * buffer ); |
klauss | 0:4d17cd9c8f9d | 94 | char * build_ack_package( char * buffer, unsigned char * orig ); |
klauss | 0:4d17cd9c8f9d | 95 | char * build_generic_reply_package(char * s, unsigned char * orig, char * tag); |
klauss | 0:4d17cd9c8f9d | 96 | char * build_trying_package( char * buffer, unsigned char * orig ); |
klauss | 0:4d17cd9c8f9d | 97 | char * build_busy_package( char * buffer, unsigned char * orig ); |
klauss | 0:4d17cd9c8f9d | 98 | char * build_reply_package( char * buffer, unsigned char * orig ); |
klauss | 0:4d17cd9c8f9d | 99 | |
klauss | 0:4d17cd9c8f9d | 100 | char * fill_random16h(char * buffer ); |
klauss | 0:4d17cd9c8f9d | 101 | char * fill_random( char * buffer, int size ); |
klauss | 0:4d17cd9c8f9d | 102 | int fill_random_rtp_port( void ); |
klauss | 0:4d17cd9c8f9d | 103 | |
klauss | 0:4d17cd9c8f9d | 104 | char * decode_cseq(unsigned char * package, char * cseq); |
klauss | 0:4d17cd9c8f9d | 105 | char * decode_branch( unsigned char * package, char * branch ); |
klauss | 0:4d17cd9c8f9d | 106 | int decode_gettag( unsigned char * package, char * tag, char * out ); |
klauss | 0:4d17cd9c8f9d | 107 | |
klauss | 0:4d17cd9c8f9d | 108 | void change_sip_server(); |
klauss | 0:4d17cd9c8f9d | 109 | char * get_next_server_ip( char *server_ip ); |
klauss | 0:4d17cd9c8f9d | 110 | int get_next_server_port(); |
klauss | 0:4d17cd9c8f9d | 111 | int get_next_server_ext(); |
klauss | 0:4d17cd9c8f9d | 112 | |
klauss | 0:4d17cd9c8f9d | 113 | void set_server_ext( int new_server_ext ); |
klauss | 0:4d17cd9c8f9d | 114 | void set_server_port( int new_server_port ); |
klauss | 0:4d17cd9c8f9d | 115 | void set_ext( int ext ); |
klauss | 0:4d17cd9c8f9d | 116 | void set_port( int port ); |
klauss | 0:4d17cd9c8f9d | 117 | void set_server_ip( char * new_server_ip ); |
klauss | 0:4d17cd9c8f9d | 118 | |
klauss | 0:4d17cd9c8f9d | 119 | int listen_SIP_server( void ); |
klauss | 0:4d17cd9c8f9d | 120 | void send_bye( void ); |
klauss | 0:4d17cd9c8f9d | 121 | void send_unregistry_pkg( void ); |
klauss | 0:4d17cd9c8f9d | 122 | |
klauss | 0:4d17cd9c8f9d | 123 | uint8_t get_status( void ); |
klauss | 0:4d17cd9c8f9d | 124 | }; |
klauss | 0:4d17cd9c8f9d | 125 | #endif |