![Patrick McHardy](/assets/img/avatar_default.png)
Add SIP connection tracking helper. Originally written by Christian Hentschel <chentschel@arnet.com.ar>, some cleanup, minor fixes and bidirectional SIP support added by myself. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
45 lines
1.2 KiB
C
45 lines
1.2 KiB
C
#ifndef __IP_CONNTRACK_SIP_H__
|
|
#define __IP_CONNTRACK_SIP_H__
|
|
#ifdef __KERNEL__
|
|
|
|
#define SIP_PORT 5060
|
|
#define SIP_TIMEOUT 3600
|
|
|
|
#define POS_VIA 0
|
|
#define POS_CONTACT 1
|
|
#define POS_CONTENT 2
|
|
#define POS_MEDIA 3
|
|
#define POS_OWNER 4
|
|
#define POS_CONNECTION 5
|
|
#define POS_REQ_HEADER 6
|
|
#define POS_SDP_HEADER 7
|
|
|
|
struct sip_header_nfo {
|
|
const char *lname;
|
|
const char *sname;
|
|
const char *ln_str;
|
|
size_t lnlen;
|
|
size_t snlen;
|
|
size_t ln_strlen;
|
|
int (*match_len)(const char *, const char *, int *);
|
|
};
|
|
|
|
extern unsigned int (*ip_nat_sip_hook)(struct sk_buff **pskb,
|
|
enum ip_conntrack_info ctinfo,
|
|
struct ip_conntrack *ct,
|
|
const char **dptr);
|
|
extern unsigned int (*ip_nat_sdp_hook)(struct sk_buff **pskb,
|
|
enum ip_conntrack_info ctinfo,
|
|
struct ip_conntrack_expect *exp,
|
|
const char *dptr);
|
|
|
|
extern int ct_sip_get_info(const char *dptr, size_t dlen,
|
|
unsigned int *matchoff,
|
|
unsigned int *matchlen,
|
|
struct sip_header_nfo *hnfo);
|
|
extern int ct_sip_lnlen(const char *line, const char *limit);
|
|
extern const char *ct_sip_search(const char *needle, const char *haystack,
|
|
size_t needle_len, size_t haystack_len);
|
|
#endif /* __KERNEL__ */
|
|
#endif /* __IP_CONNTRACK_SIP_H__ */
|