00001 #include "../../dset.h"
00002 #include "../../dprint.h"
00003 #include "../../str.h"
00004 #include "../../parser/msg_parser.h"
00005 #include "../../ut.h"
00006
00007
00008 #ifndef AF_LOCAL
00009 #define AF_LOCAL AF_UNIX
00010 #endif
00011
00012
00013
00014 #define SUP_CPROTOVER 20040107
00015
00016 #define REQ_CPROTOVER "20050322"
00017 #define CPORT "22222"
00018 #define STANDARD_SIPPORT 5060
00019
00020 #define ADIRECTION "A=direction:active\r\n"
00021 #define ADIRECTION_LEN ( sizeof(ADIRECTION) -1 )
00022 #define ANORTPPROXY "a=nortpproxy:yes\r\n"
00023 #define ADD_ADIRECTION 0x01
00024 #define ADD_ANORTPPROXY 0x04
00025 #define FIX_MEDIP 0x02
00026 #define ANORTPPROXY_LEN (sizeof(ANORTPPROXY) -1 )
00027
00028 #define AOLDMEDIP "a=oldmediaip:"
00029 #define AOLDMEDIP_LEN (sizeof(AOLDMEDIP) - 1 )
00030
00031 #define AOLDMEDIP6 "a=oldmediaip6:"
00032 #define AOLDMEDIP6_LEN (sizeof(AOLDMEDIP6) - 1 )
00033
00034 #define AOLDMEDPRT "a=oldmediaport:"
00035 #define AOLDMEDPRT_LEN (sizeof(AOLDMEDPRT) - 1)
00036
00037 #define READ(val) \
00038 (*(val + 0) + (*(val + 1) << 8) + (*(val + 2) << 16) + (*(val + 3) << 24))
00039
00040 #define advance(_ptr,_n,_str,_error) \
00041 do{\
00042 if ((_ptr)+(_n)>(_str).s+(_str).len)\
00043 goto _error;\
00044 (_ptr) = (_ptr) + (_n);\
00045 }while(0);
00046 #define one_of_16( _x , _t ) \
00047 (_x==_t[0]||_x==_t[15]||_x==_t[8]||_x==_t[2]||_x==_t[3]||_x==_t[4]\
00048 ||_x==_t[5]||_x==_t[6]||_x==_t[7]||_x==_t[1]||_x==_t[9]||_x==_t[10]\
00049 ||_x==_t[11]||_x==_t[12]||_x==_t[13]||_x==_t[14])
00050 #define one_of_8( _x , _t ) \
00051 (_x==_t[0]||_x==_t[7]||_x==_t[1]||_x==_t[2]||_x==_t[3]||_x==_t[4]\
00052 ||_x==_t[5]||_x==_t[6])
00053
00054
00055 struct rtpp_node {
00056 char *rn_url;
00057 int rn_umode;
00058 char *rn_address;
00059 int rn_fd;
00060 int rn_disabled;
00061 unsigned rn_weight;
00062 int rn_recheck_ticks;
00063 struct rtpp_node *rn_next;
00064 };
00065
00066 struct rtpp_head {
00067 struct rtpp_node *rn_first;
00068 struct rtpp_node *rn_last;
00069 };
00070
00071
00072 #define STR2IOVEC(sx, ix) do {(ix).iov_base = (sx).s; (ix).iov_len = (sx).len;} while(0)
00073 #define SZ2IOVEC(sx, ix) do {char *_t_p = (ix).iov_base = (sx); (ix).iov_len = strlen(_t_p);} while(0)
00074
00075 int rtpp_test(struct rtpp_node *node, int isdisabled, int force);
00076
00077 int rtpproxy_init();
00078 int rtpproxy_child_init(int rank);
00079
00080 int P_SDP_manipulate(struct sip_msg *msg,char *str1,char *str2);