Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: EthernetInterface NTPClient mbed-rtos_old mbed
Fork of header_main_public by
sip.h
00001 #ifndef __SIP_H__ 00002 #define __SIP_H__ 00003 00004 #include <stdlib.h> 00005 #include <stdint.h> 00006 #include <string.h> 00007 #include "mbed.h" 00008 #include "EthernetInterface.h" 00009 #include "call.h" 00010 #include "vz_protocol.h" 00011 #include "debug.h" 00012 00013 #define __INVITE_MAX_WAITING_TIME__ 30 00014 #define SIP_MAXFIELDSIZE 256 00015 #define SIP_MAXMSGSIZE 2048 00016 #define SIP_REGISTER_EXPIRES 120 00017 #define DRAMBASEADDR 0xa0000000 00018 #define SIP_ALLOW "Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER" 00019 /* #define SIP_ALLOW "Allow: ACK, BYE, CANCEL, INVITE, OPTIONS" */ 00020 /* 00021 #define __SEVER_IP__ "192.168.120.120" 00022 #define __SERVER_PORT__ 5075 00023 //#define __MY_IP__ "192.168.120.191" 00024 */ 00025 #define __MY_PORT__ 5062 00026 #define __MY_EXT__ 820 00027 //#define __PEER_EXT__ 801 00028 #define __PEER_EXT__ 913 00029 //#define __PEER_EXT__ 803 00030 00031 00032 //#ifdef debug_colinas 00033 #define __SEVER_IP__ "192.168.30.25" 00034 #define __SERVER_PORT__ 5060 00035 //#endif 00036 //#ifndef debug_colinas 00037 //#define __SEVER_IP__ "192.168.120.120" 00038 //#define __SEVER_IP__ "192.168.30.25" 00039 //#define __SERVER_PORT__ 5075 00040 //#define __SERVER_PORT__ 5060 00041 //#endif 00042 00043 #define sip_idle 0 00044 #define sip_waiting_trying 1 << 1 00045 #define sip_trying 1 << 2 00046 #define sip_ringing 1 << 3 00047 #define sip_busy 1 << 4 00048 #define sip_ok 1 << 5 00049 #define sip_on_call 1 << 6 00050 #define sip_denied 1 << 7 00051 00052 class Sip{ 00053 00054 private : 00055 int id; 00056 char server_ip[20]; 00057 int server_port; 00058 char my_ip[20]; 00059 int my_port; 00060 int my_ext; 00061 int my_rtp_port; 00062 char my_display[20]; 00063 int peer_ext; 00064 char fill_random_aux[ 65 ]; 00065 char last_invite_tag[ SIP_MAXFIELDSIZE ]; 00066 char last_invite_callid[ SIP_MAXFIELDSIZE ]; 00067 char SVNREV[ 16 ]; 00068 char buffer[ 1024 ]; 00069 UDPSocket sock; 00070 Endpoint sip_server; 00071 void __init_sock__( void ); 00072 void __end_sock__( void ); 00073 public : 00074 uint8_t status; 00075 Sip(); 00076 Sip( int id, uint16_t my_port ); 00077 Sip( int id, uint16_t my_port, int dest_ext ); 00078 Sip( char * server_ip, int server_port, char * my_ip, int my_port, int my_ext, int peer_ext, int id ); 00079 ~Sip(); 00080 void registry( void ); 00081 VZ_call * invite( void ); 00082 00083 char * make_content_length( char * header, char * body, char * pkg ); 00084 00085 int get_return_code( char * s ); 00086 int get_cseq( void ); 00087 int get_id( void ); 00088 int get_my_rtp_port( void ); 00089 00090 char * build_registry_package( char * buffer ); 00091 char * build_unregistry_package( char * buffer ); 00092 char * build_invite_package( char * s, char * callbox_string, int * cseq ); 00093 char * build_bye_package( char * buffer ); 00094 char * build_ack_package( char * buffer, unsigned char * orig ); 00095 char * build_generic_reply_package(char * s, unsigned char * orig, char * tag); 00096 char * build_trying_package( char * buffer, unsigned char * orig ); 00097 char * build_busy_package( char * buffer, unsigned char * orig ); 00098 char * build_reply_package( char * buffer, unsigned char * orig ); 00099 00100 char * fill_random16h(char * buffer ); 00101 char * fill_random( char * buffer, int size ); 00102 int fill_random_rtp_port( void ); 00103 00104 char * decode_cseq(unsigned char * package, char * cseq); 00105 char * decode_branch( unsigned char * package, char * branch ); 00106 int decode_gettag( unsigned char * package, char * tag, char * out ); 00107 00108 void change_sip_server(); 00109 char * get_next_server_ip( char *server_ip ); 00110 int get_next_server_port(); 00111 int get_next_server_ext(); 00112 00113 void set_server_ext( int new_server_ext ); 00114 void set_server_port( int new_server_port ); 00115 void set_ext( int ext ); 00116 void set_port( int port ); 00117 void set_server_ip( char * new_server_ip ); 00118 00119 int listen_SIP_server( void ); 00120 void send_bye( void ); 00121 void send_unregistry_pkg( void ); 00122 00123 uint8_t get_status( void ); 00124 }; 00125 #endif
Generated on Sat Jul 16 2022 08:57:54 by
1.7.2
