/********************************************************************************************************************************/ /* Created: 7-May-2010 15:21:08 by OpenVMS SDL EV2-3 */ /* Source: 07-MAY-2010 13:57:54 DISK$SYSMAN:[LAISHEV.WORK.SIP]SIPDEF.SDL;197 */ /********************************************************************************************************************************/ /*** MODULE SIPDEF IDENT SIPDEF-1-X ***/ #ifndef __SIPDEF_LOADED #define __SIPDEF_LOADED 1 #pragma __nostandard /* This file uses non-ANSI-Standard features */ #pragma __member_alignment __save #pragma __nomember_alignment #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __save /* Save the previously-defined required ptr size */ #pragma __required_pointer_size __short /* And set ptr size default to 32-bit pointers */ #endif #ifdef __cplusplus extern "C" { #define __unknown_params ... #define __optional_params ... #else #define __unknown_params #define __optional_params ... #endif #ifndef __struct #if !defined(__VAXC) #define __struct struct #else #define __struct variant_struct #endif #endif #ifndef __union #if !defined(__VAXC) #define __union union #else #define __union variant_union #endif #endif /*++ */ /* */ /* Facility: */ /* Session Initation Protocol */ /* */ /* Abstract: */ /* This is an interface module contains data structures definitions, */ /* constants, functions/procedures prototypes. */ /* */ /* Author: */ /* Ruslan R. Laishev */ /* */ /* Creation Date: 26-APR-2009 */ /* */ /* Modification History: */ /* 3-MAR-2010 RRL Removed 'line' field from the SIP FLD aggregate. */ /* 4-MAR-2010 RRL Added IPS and IDS options into the 'conf' aggregate. */ /* 7-MAY-2010 RRL Added 'bot' field into the 'path' structure. */ /* */ /* */ /*-- */ #define SIP$PORT_SIP 5060 #define SIP$PORT_SIPS 5061 #define SIP$K_MAXTHDS 32 /* */ /* */ /* */ #define SIP$FA_OFF -2147483648 #define SIP$FA_ON 2147483647 /* */ /* SIP Methods/request code */ /* */ #define SIP$MT_STATUS 0 /* SIP/2.0 200 OK */ #define SIP$MT_INVITE 1 #define SIP$MT_REINVITE 2 #define SIP$MT_REGISTER 3 #define SIP$MT_ACK 4 #define SIP$MT_CANCEL 5 #define SIP$MT_BYE 6 #define SIP$MT_OPTIONS 7 #define SIP$MT_INFO 8 #define SIP$MT_NOTIFY 9 #define SIP$MT_SUBSCRIBE 10 #define SIP$MT_UNSUBSCRIBE 11 #define SIP$MT_UPDATE 12 #define SIP$MT_MESSAGE 13 #define SIP$MT_REFER 14 #define SIP$MT_PACK 15 #define SIP$MT_PUBLISH 16 /* */ /* UAS/UAC allow methods */ /* */ #define SIP$M_STATUS 0x1 #define SIP$M_INVITE 0x2 #define SIP$M_REINVITE 0x4 #define SIP$M_REGISTER 0x8 #define SIP$M_ACK 0x10 #define SIP$M_CANCEL 0x20 #define SIP$M_BYE 0x40 #define SIP$M_OPTIONS 0x80 #define SIP$M_INFO 0x100 #define SIP$M_NOTIFY 0x200 #define SIP$M_SUBSCRIBE 0x400 #define SIP$M_UNSUBSCRIBE 0x800 #define SIP$M_UPDATE 0x1000 #define SIP$M_MESSAGE 0x2000 #define SIP$M_REFER 0x4000 #define SIP$M_PACK 0x8000 #define SIP$M_PUBLISH 0x10000 #ifdef __NEW_STARLET typedef union _mt_allow { __union { unsigned int sip$l_allow; __struct { unsigned sip$v_status : 1; unsigned sip$v_invite : 1; unsigned sip$v_reinvite : 1; unsigned sip$v_register : 1; unsigned sip$v_ack : 1; unsigned sip$v_cancel : 1; unsigned sip$v_bye : 1; unsigned sip$v_options : 1; unsigned sip$v_info : 1; unsigned sip$v_notify : 1; unsigned sip$v_subscribe : 1; unsigned sip$v_unsubscribe : 1; unsigned sip$v_update : 1; unsigned sip$v_message : 1; unsigned sip$v_refer : 1; unsigned sip$v_pack : 1; unsigned sip$v_publish : 1; unsigned sip$v_fill_2_ : 7; } sip$r_fill_1_; } sip$r_fill_0_; } MT_ALLOW; #if !defined(__VAXC) #define sip$l_allow sip$r_fill_0_.sip$l_allow #define sip$v_status sip$r_fill_0_.sip$r_fill_1_.sip$v_status #define sip$v_invite sip$r_fill_0_.sip$r_fill_1_.sip$v_invite #define sip$v_reinvite sip$r_fill_0_.sip$r_fill_1_.sip$v_reinvite #define sip$v_register sip$r_fill_0_.sip$r_fill_1_.sip$v_register #define sip$v_ack sip$r_fill_0_.sip$r_fill_1_.sip$v_ack #define sip$v_cancel sip$r_fill_0_.sip$r_fill_1_.sip$v_cancel #define sip$v_bye sip$r_fill_0_.sip$r_fill_1_.sip$v_bye #define sip$v_options sip$r_fill_0_.sip$r_fill_1_.sip$v_options #define sip$v_info sip$r_fill_0_.sip$r_fill_1_.sip$v_info #define sip$v_notify sip$r_fill_0_.sip$r_fill_1_.sip$v_notify #define sip$v_subscribe sip$r_fill_0_.sip$r_fill_1_.sip$v_subscribe #define sip$v_unsubscribe sip$r_fill_0_.sip$r_fill_1_.sip$v_unsubscribe #define sip$v_update sip$r_fill_0_.sip$r_fill_1_.sip$v_update #define sip$v_message sip$r_fill_0_.sip$r_fill_1_.sip$v_message #define sip$v_refer sip$r_fill_0_.sip$r_fill_1_.sip$v_refer #define sip$v_pack sip$r_fill_0_.sip$r_fill_1_.sip$v_pack #define sip$v_publish sip$r_fill_0_.sip$r_fill_1_.sip$v_publish #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ union mt_allow { __union { unsigned int sip$l_allow; __struct { unsigned sip$v_status : 1; unsigned sip$v_invite : 1; unsigned sip$v_reinvite : 1; unsigned sip$v_register : 1; unsigned sip$v_ack : 1; unsigned sip$v_cancel : 1; unsigned sip$v_bye : 1; unsigned sip$v_options : 1; unsigned sip$v_info : 1; unsigned sip$v_notify : 1; unsigned sip$v_subscribe : 1; unsigned sip$v_unsubscribe : 1; unsigned sip$v_update : 1; unsigned sip$v_message : 1; unsigned sip$v_refer : 1; unsigned sip$v_pack : 1; unsigned sip$v_publish : 1; unsigned sip$v_fill_2_ : 7; } sip$r_fill_1_; } sip$r_fill_0_; } ; #if !defined(__VAXC) #define sip$l_allow sip$r_fill_0_.sip$l_allow #define sip$v_status sip$r_fill_0_.sip$r_fill_1_.sip$v_status #define sip$v_invite sip$r_fill_0_.sip$r_fill_1_.sip$v_invite #define sip$v_reinvite sip$r_fill_0_.sip$r_fill_1_.sip$v_reinvite #define sip$v_register sip$r_fill_0_.sip$r_fill_1_.sip$v_register #define sip$v_ack sip$r_fill_0_.sip$r_fill_1_.sip$v_ack #define sip$v_cancel sip$r_fill_0_.sip$r_fill_1_.sip$v_cancel #define sip$v_bye sip$r_fill_0_.sip$r_fill_1_.sip$v_bye #define sip$v_options sip$r_fill_0_.sip$r_fill_1_.sip$v_options #define sip$v_info sip$r_fill_0_.sip$r_fill_1_.sip$v_info #define sip$v_notify sip$r_fill_0_.sip$r_fill_1_.sip$v_notify #define sip$v_subscribe sip$r_fill_0_.sip$r_fill_1_.sip$v_subscribe #define sip$v_unsubscribe sip$r_fill_0_.sip$r_fill_1_.sip$v_unsubscribe #define sip$v_update sip$r_fill_0_.sip$r_fill_1_.sip$v_update #define sip$v_message sip$r_fill_0_.sip$r_fill_1_.sip$v_message #define sip$v_refer sip$r_fill_0_.sip$r_fill_1_.sip$v_refer #define sip$v_pack sip$r_fill_0_.sip$r_fill_1_.sip$v_pack #define sip$v_publish sip$r_fill_0_.sip$r_fill_1_.sip$v_publish #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ /* */ /* SIP Message fields code */ /* */ #define SIP$FLD_UNDEF 0 #define SIP$FLD_VIA 1 #define SIP$FLD_CONTACT 2 #define SIP$FLD_TO 3 #define SIP$FLD_FROM 4 #define SIP$FLD_CSEQ 5 #define SIP$FLD_EXPIRES 6 #define SIP$FLD_ALLOW 7 #define SIP$FLD_USERAGENT 8 #define SIP$FLD_MAXFORWD 9 #define SIP$FLD_CONTLEN 10 #define SIP$FLD_CALLID 11 #define SIP$FLD_ENCODING 12 #define SIP$FLD_SUPPORTED 13 #define SIP$FLD_SUBJECT 14 #define SIP$FLD_EVENT 15 #define SIP$FLD_CALLINFO 16 #define SIP$FLD_TYPE 17 #define SIP$FLD_WWWAUTH 18 #define SIP$FLD_AUTHORIZATION 19 #define SIP$FLD_ACCEPT 20 #define SIP$FLD_SUBSTATE 21 /* Subscription-State: */ #define SIP$FLD_PXYAUTH 22 /* Proxy-Authenticate */ #define SIP$FLD_SERVER 23 /* Server */ /* */ /* SIP Message fields parameters/arguments code */ /* */ #define SIP$ARG_UNDEF 0 #define SIP$ARG_BRANCH 1 #define SIP$ARG_RPORT 2 #define SIP$ARG_RINSTANCE 3 #define SIP$ARG_TAG 4 #define SIP$ARG_DIGEST 5 #define SIP$ARG_USERNAME 6 #define SIP$ARG_REALM 7 #define SIP$ARG_NONCE 8 #define SIP$ARG_URI 9 #define SIP$ARG_RESPONSE 10 #define SIP$ARG_CNONCE 11 #define SIP$ARG_NC 12 #define SIP$ARG_QOP 13 #define SIP$ARG_ALGORITHM 14 #define SIP$ARG_EXPIRES 15 #define SIP$ARG_RECEIVED 16 #define SIP$ARG_ACTIVE 17 #define SIP$ARG_TRANSPORT 18 #define SIP$ARG_LINE 19 /* */ /* Status classes */ /* */ #define SIP$RC_INFO 100 #define SIP$RC_SUC 200 #define SIP$RC_ADD 300 #define SIP$RC_ERR 400 #define SIP$RC_INTERR 500 #define SIP$RC_FAT 600 #define SIP$RC_TRYING 100 #define SIP$RC_RINGING 180 #define SIP$RC_FORWARDED 181 #define SIP$RC_QUEUED 182 #define SIP$RC_PROGRESS 183 #define SIP$RC_OK 200 #define SIP$RC_ACCEPTED 202 #define SIP$RC_MCHOICES 300 #define SIP$RC_MOVEDPERM 301 #define SIP$RC_MOVEDTEMP 302 #define SIP$RC_USEPROXY 305 #define SIP$RC_ALTSERVICE 380 #define SIP$RC_BADREQ 400 #define SIP$RC_UNAUTHORIZED 401 #define SIP$RC_PAYREQRD 402 #define SIP$RC_FORBIDDEN 403 #define SIP$RC_NOTFOUND 404 #define SIP$RC_METHODNOTALWD 405 #define SIP$RC_NOTACCEPT 406 #define SIP$RC_PROXYAUTH 407 #define SIP$RC_TIMEOUT 408 #define SIP$RC_CONFLICT 409 #define SIP$RC_GONE 410 #define SIP$RC_LENREQ 411 #define SIP$RC_REQTOOL 413 #define SIP$RC_URITOOL 414 #define SIP$RC_UNSUPPMEDIA 415 #define SIP$RC_UNSUPPURI 416 #define SIP$RC_BADEXT 420 #define SIP$RC_EXTREQ 421 #define SIP$RC_TOOBRIEF 423 #define SIP$RC_TEMPUNAV 480 #define SIP$RC_CTXNOTEXIST 481 #define SIP$RC_LOOP 482 #define SIP$RC_TOOMHOPS 483 #define SIP$RC_ADDRINC 484 #define SIP$RC_AMBIG 485 #define SIP$RC_BUSY 486 #define SIP$RC_REQTERMTD 487 #define SIP$RC_NOTACCPT 488 #define SIP$RC_EVNOTSUP 489 /* Event Package Not Supported */ #define SIP$RC_PENDING 491 #define SIP$RC_UNDECIPH 493 #define SIP$RC_SIE 500 #define SIP$RC_NOTIMPL 501 #define SIP$RC_BADGATWY 502 #define SIP$RC_SERVUNAV 503 #define SIP$RC_SERVTMO 504 #define SIP$RC_UNSUPPVER 505 #define SIP$RC_MSGTOOL 513 #define SIP$RC_BUSYEVERYW 600 #define SIP$RC_DECLINED 603 #define SIP$RC_NOTEXISTEVERYW 604 #define SIP$RC_NOTACCEPT 605 /* */ /* Queue/Double Linked list */ /* */ #ifdef __NEW_STARLET #pragma __member_alignment typedef struct _que { struct _que *que_a_flink; #pragma __member_alignment struct _que *que_a_blink; #pragma __member_alignment unsigned int que_l_spare; } QUE; #else /* __OLD_STARLET */ struct que { void *que_a_flink; void *que_a_blink; unsigned int que_l_spare; } ; #endif /* #ifdef __NEW_STARLET */ #ifdef __NEW_STARLET typedef struct _asc { /* next ADDRESS (asc); */ unsigned char asc_b_asc; char asc_t_asc [255]; } ASC; #else /* __OLD_STARLET */ struct asc { /* next ADDRESS (asc); */ unsigned char asc_b_asc; char asc_t_asc [255]; } ; #endif /* #ifdef __NEW_STARLET */ #ifdef __cplusplus /* Define structure prototypes */ struct _sip_reg; #endif /* #ifdef __cplusplus */ #ifdef __NEW_STARLET typedef struct _node { QUE node_r_links; __union { void *node_a_ptr; struct _sip_reg *node_a_reg; } node_r_u_; } NODE; #if !defined(__VAXC) #define node_a_ptr node_r_u_.node_a_ptr #define node_a_reg node_r_u_.node_a_reg #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ #pragma __member_alignment struct node { struct que node_r_links; __union { void *node_a_ptr; void *node_a_reg; } node_r_u_; } ; #if !defined(__VAXC) #define node_a_ptr node_r_u_.node_a_ptr #define node_a_reg node_r_u_.node_a_reg #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ #ifdef __NEW_STARLET typedef struct _adr { struct _adr *adr_a_next; #pragma __member_alignment char adr_b_fill_3_ [4]; unsigned __int64 adr_q_adr [4]; } ADR; #else /* __OLD_STARLET */ struct adr { void *adr_a_next; char adr_b_fill_3_ [4]; unsigned int adr_q_adr [4] [2]; } ; #endif /* #ifdef __NEW_STARLET */ /* */ /* SIP Message fields arguments */ /* */ #define ARG_M_DOMAIN 0x1 #define ARG_M_PROXY 0x2 #define ARG_M_PASS 0x4 #ifdef __NEW_STARLET typedef struct _sip_arg { struct _sip_arg *arg_a_next; __union { unsigned int arg_l_flags; __struct { unsigned arg_v_domain : 1 /** WARNING: bitfield array has been reduced to a string **/ ; unsigned arg_v_proxy : 1 /** WARNING: bitfield array has been reduced to a string **/ ; unsigned arg_v_pass : 1 /** WARNING: bitfield array has been reduced to a string **/ ; unsigned arg_v_fill_6_ : 5; } arg_r_fill_5_; } arg_r_fill_4_; unsigned int arg_l_code; /* An argument code */ __struct { unsigned char arg_b_name; char arg_t_name [255]; } arg_r_name; /* A field's data */ __union { unsigned int arg_l_val; __struct { unsigned char arg_b_len; char arg_t_val [255]; } arg_r_val; } arg_r_val_; } SIP_ARG; #if !defined(__VAXC) #define arg_l_flags arg_r_fill_4_.arg_l_flags #define arg_v_domain arg_r_fill_4_.arg_r_fill_5_.arg_v_domain #define arg_v_proxy arg_r_fill_4_.arg_r_fill_5_.arg_v_proxy #define arg_v_pass arg_r_fill_4_.arg_r_fill_5_.arg_v_pass #define arg_b_name arg_r_name.arg_b_name #define arg_t_name arg_r_name.arg_t_name #define arg_l_val arg_r_val_.arg_l_val #define arg_r_val arg_r_val_.arg_r_val #define arg_b_len arg_r_val.arg_b_len #define arg_t_val arg_r_val.arg_t_val #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ struct sip_arg { void *arg_a_next; __union { unsigned int arg_l_flags; __struct { unsigned arg_v_domain : 1 /** WARNING: bitfield array has been reduced to a string **/ ; unsigned arg_v_proxy : 1 /** WARNING: bitfield array has been reduced to a string **/ ; unsigned arg_v_pass : 1 /** WARNING: bitfield array has been reduced to a string **/ ; unsigned arg_v_fill_6_ : 5; } arg_r_fill_5_; } arg_r_fill_4_; unsigned int arg_l_code; /* An argument code */ __struct { unsigned char arg_b_name; char arg_t_name [255]; } arg_r_name; /* A field's data */ __union { unsigned int arg_l_val; __struct { unsigned char arg_b_len; char arg_t_val [255]; } arg_r_val; } arg_r_val_; } ; #if !defined(__VAXC) #define arg_l_flags arg_r_fill_4_.arg_l_flags #define arg_v_domain arg_r_fill_4_.arg_r_fill_5_.arg_v_domain #define arg_v_proxy arg_r_fill_4_.arg_r_fill_5_.arg_v_proxy #define arg_v_pass arg_r_fill_4_.arg_r_fill_5_.arg_v_pass #define arg_b_name arg_r_name.arg_b_name #define arg_t_name arg_r_name.arg_t_name #define arg_l_val arg_r_val_.arg_l_val #define arg_b_len arg_r_val_.arg_r_val.arg_b_len #define arg_t_val arg_r_val_.arg_r_val.arg_t_val #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ /* */ /* A SIP control information in the request */ /* */ #ifdef __NEW_STARLET typedef struct _sip_fld { struct _sip_fld *fld_a_next; unsigned int fld_l_code; /* A field code */ __struct { unsigned char fld_b_name; char fld_t_name [255]; } fld_r_name; /* A field's data */ __union { __struct { unsigned char fld_b_len; char fld_t_val [255]; } fld_r_val; } fld_r_val_; unsigned int fld_l_args; SIP_ARG *fld_a_args; } SIP_FLD; #if !defined(__VAXC) #define fld_b_name fld_r_name.fld_b_name #define fld_t_name fld_r_name.fld_t_name #define fld_r_val fld_r_val_.fld_r_val #define fld_b_len fld_r_val.fld_b_len #define fld_t_val fld_r_val.fld_t_val #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ struct sip_fld { void *fld_a_next; unsigned int fld_l_code; /* A field code */ __struct { unsigned char fld_b_name; char fld_t_name [255]; } fld_r_name; /* A field's data */ __union { __struct { unsigned char fld_b_len; char fld_t_val [255]; } fld_r_val; } fld_r_val_; unsigned int fld_l_args; void *fld_a_args; } ; #if !defined(__VAXC) #define fld_b_name fld_r_name.fld_b_name #define fld_t_name fld_r_name.fld_t_name #define fld_b_len fld_r_val_.fld_r_val.fld_b_len #define fld_t_val fld_r_val_.fld_r_val.fld_t_val #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ /* */ /* SIP message state */ /* */ #define SIP$RC_RECEIVED 100 #define SIP$RC_TOBESENT 200 #define SIP$RC_COMPLETED 300 #define SIP$RC_RETRYING 400 /* */ /* SIP message */ /* */ #ifdef __cplusplus /* Define structure prototypes */ struct _fld; #endif /* #ifdef __cplusplus */ #ifdef __NEW_STARLET #pragma __member_alignment typedef struct _sip_msg { QUE msg_r_next; /* A Link to the next in queue */ unsigned int msg_l_id; /* A message id/number */ /* Source port & host */ unsigned __int64 msg_q_src [4]; /* Destination adress list */ unsigned __int64 msg_q_dst [4]; unsigned int msg_l_code; /* See sip_type sonstants */ unsigned int msg_l_state; /* A processing state */ unsigned int msg_l_status; /* A processing status (return code), see sip_rc constants */ __union { __struct { unsigned char msg_b_len; char msg_t_val [255]; } msg_r_val; } msg_r_val_; struct _fld *msg_a_flds; #pragma __member_alignment unsigned int msg_l_bodylen; char *msg_a_body; } SIP_MSG; #if !defined(__VAXC) #define msg_r_val msg_r_val_.msg_r_val #define msg_b_len msg_r_val.msg_b_len #define msg_t_val msg_r_val.msg_t_val #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ #pragma __member_alignment struct sip_msg { struct que msg_r_next; /* A Link to the next in queue */ unsigned int msg_l_id; /* A message id/number */ /* Source port & host */ unsigned int msg_q_src [4] [2]; /* Destination adress list */ unsigned int msg_q_dst [4] [2]; unsigned int msg_l_code; /* See sip_type sonstants */ unsigned int msg_l_state; /* A processing state */ unsigned int msg_l_status; /* A processing status (return code), see sip_rc constants */ __union { __struct { unsigned char msg_b_len; char msg_t_val [255]; } msg_r_val; } msg_r_val_; void *msg_a_flds; unsigned int msg_l_bodylen; char *msg_a_body; } ; #if !defined(__VAXC) #define msg_b_len msg_r_val_.msg_r_val.msg_b_len #define msg_t_val msg_r_val_.msg_r_val.msg_t_val #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ #ifdef __NEW_STARLET #pragma __member_alignment typedef struct _sip_itm { unsigned int itm_l_code; __union { SIP_FLD *itm_a_fld; #pragma __member_alignment SIP_ARG *itm_a_arg; } itm_r_u_; } SIP_ITM; #if !defined(__VAXC) #define itm_a_fld itm_r_u_.itm_a_fld #define itm_a_arg itm_r_u_.itm_a_arg #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ #pragma __member_alignment struct sip_itm { unsigned int itm_l_code; __union { void *itm_a_fld; void *itm_a_arg; } itm_r_u_; } ; #if !defined(__VAXC) #define itm_a_fld itm_r_u_.itm_a_fld #define itm_a_arg itm_r_u_.itm_a_arg #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ /* */ /* Registry record */ /* */ #define REG_SIP_KSZ 256 #define REG_M_ACTIVE 0x1 #ifdef __NEW_STARLET typedef struct _sip_reg { ASC reg_r_to; __union { unsigned int reg_l_flags; __struct { unsigned reg_v_active : 1 /** WARNING: bitfield array has been reduced to a string **/ ; unsigned reg_v_fill_9_ : 31; } reg_r_fill_8_; } reg_r_fill_7_; /* Source port & host */ char reg_b_fill_10_ [4]; unsigned __int64 reg_q_src [4]; ASC reg_r_contact; /* sip: */ /* im: */ /* mailto: */ unsigned __int64 reg_q_expires; /* Current time + Expires */ MT_ALLOW reg_r_allow; /* Contact's allow methods/requests */ char reg_b_fill_11_ [4]; } SIP_REG; #if !defined(__VAXC) #define reg_l_flags reg_r_fill_7_.reg_l_flags #define reg_v_active reg_r_fill_7_.reg_r_fill_8_.reg_v_active #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ struct sip_reg { struct asc reg_r_to; __union { unsigned int reg_l_flags; __struct { unsigned reg_v_active : 1 /** WARNING: bitfield array has been reduced to a string **/ ; unsigned reg_v_fill_9_ : 31; } reg_r_fill_8_; } reg_r_fill_7_; /* Source port & host */ char reg_b_fill_10_ [4]; unsigned int reg_q_src [4] [2]; struct asc reg_r_contact; /* sip: */ /* im: */ /* mailto: */ unsigned int reg_q_expires [2]; /* Current time + Expires */ union mt_allow reg_r_allow; /* Contact's allow methods/requests */ char reg_b_fill_11_ [4]; } ; #if !defined(__VAXC) #define reg_l_flags reg_r_fill_7_.reg_l_flags #define reg_v_active reg_r_fill_7_.reg_r_fill_8_.reg_v_active #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ /* */ /* SIP Server configuration vector */ /* */ #ifdef __NEW_STARLET typedef struct _mque { QUE *mque_a_flink; #pragma __member_alignment QUE *mque_a_blink; #pragma __member_alignment unsigned int mque_l_spare; char mque_b_fill_12_ [4]; unsigned __int64 mque_q_cnd [16]; unsigned __int64 mque_q_mtx [16]; } MQUE; #else /* __OLD_STARLET */ struct mque { void *mque_a_flink; void *mque_a_blink; unsigned int mque_l_spare; char mque_b_fill_12_ [4]; unsigned int mque_q_cnd [16] [2]; unsigned int mque_q_mtx [16] [2]; } ; #endif /* #ifdef __NEW_STARLET */ /* */ /* */ /* */ #define REALM_M_DOMAIN 0x1 #define REALM_M_PROXY 0x2 #define REALM_M_PASS 0x4 #ifdef __NEW_STARLET typedef struct _sip_realm { struct _sip_realm *realm_a_next; #pragma __member_alignment __union { unsigned int realm_l_flags; __struct { unsigned realm_v_domain : 1 /** WARNING: bitfield array has been reduced to a string **/ ; unsigned realm_v_proxy : 1 /** WARNING: bitfield array has been reduced to a string **/ ; unsigned realm_v_pass : 1 /** WARNING: bitfield array has been reduced to a string **/ ; unsigned realm_v_fill_15_ : 29; } realm_r_fill_14_; } realm_r_fill_13_; ASC realm_r_realm; /* Realm name */ ASC realm_r_via; /* Via - host & port information */ /* struct sockaddr_in */ unsigned __int64 realm_q_dst [4]; } SIP_REALM; #if !defined(__VAXC) #define realm_l_flags realm_r_fill_13_.realm_l_flags #define realm_v_domain realm_r_fill_13_.realm_r_fill_14_.realm_v_domain #define realm_v_proxy realm_r_fill_13_.realm_r_fill_14_.realm_v_proxy #define realm_v_pass realm_r_fill_13_.realm_r_fill_14_.realm_v_pass #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ struct sip_realm { void *realm_a_next; __union { unsigned int realm_l_flags; __struct { unsigned realm_v_domain : 1 /** WARNING: bitfield array has been reduced to a string **/ ; unsigned realm_v_proxy : 1 /** WARNING: bitfield array has been reduced to a string **/ ; unsigned realm_v_pass : 1 /** WARNING: bitfield array has been reduced to a string **/ ; unsigned realm_v_fill_15_ : 29; } realm_r_fill_14_; } realm_r_fill_13_; struct asc realm_r_realm; /* Realm name */ struct asc realm_r_via; /* Via - host & port information */ /* struct sockaddr_in */ unsigned int realm_q_dst [4] [2]; } ; #if !defined(__VAXC) #define realm_l_flags realm_r_fill_13_.realm_l_flags #define realm_v_domain realm_r_fill_13_.realm_r_fill_14_.realm_v_domain #define realm_v_proxy realm_r_fill_13_.realm_r_fill_14_.realm_v_proxy #define realm_v_pass realm_r_fill_13_.realm_r_fill_14_.realm_v_pass #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ /* */ /* */ /* */ #define PATH_M_DOMAIN 0x1 #define PATH_M_WILD 0x2 #define PATH_M_REGEX 0x4 #define PATH_M_BOT 0x8 #ifdef __NEW_STARLET typedef struct _sip_path { struct _sip_path *path_a_next; #pragma __member_alignment __union { unsigned int path_l_flags; __struct { unsigned path_v_domain : 1 /** WARNING: bitfield array has been reduced to a string **/ ; unsigned path_v_wild : 1 /** WARNING: bitfield array has been reduced to a string **/ ; unsigned path_v_regex : 1 /** WARNING: bitfield array has been reduced to a string **/ ; unsigned path_v_bot : 1 /** WARNING: bitfield array has been reduced to a string **/ ; unsigned path_v_fill_18_ : 28; } path_r_fill_17_; } path_r_fill_16_; ASC path_r_path; /* Path pattern */ unsigned char path_b_regex [255]; ASC path_r_via; /* Via - host & port information */ /* struct sockaddr_in */ char path_b_fill_19_; unsigned __int64 path_q_dst [4]; } SIP_PATH; #if !defined(__VAXC) #define path_l_flags path_r_fill_16_.path_l_flags #define path_v_domain path_r_fill_16_.path_r_fill_17_.path_v_domain #define path_v_wild path_r_fill_16_.path_r_fill_17_.path_v_wild #define path_v_regex path_r_fill_16_.path_r_fill_17_.path_v_regex #define path_v_bot path_r_fill_16_.path_r_fill_17_.path_v_bot #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ struct sip_path { void *path_a_next; __union { unsigned int path_l_flags; __struct { unsigned path_v_domain : 1 /** WARNING: bitfield array has been reduced to a string **/ ; unsigned path_v_wild : 1 /** WARNING: bitfield array has been reduced to a string **/ ; unsigned path_v_regex : 1 /** WARNING: bitfield array has been reduced to a string **/ ; unsigned path_v_bot : 1 /** WARNING: bitfield array has been reduced to a string **/ ; unsigned path_v_fill_18_ : 28; } path_r_fill_17_; } path_r_fill_16_; struct asc path_r_path; /* Path pattern */ unsigned char path_b_regex [255]; struct asc path_r_via; /* Via - host & port information */ /* struct sockaddr_in */ char path_b_fill_19_; unsigned int path_q_dst [4] [2]; } ; #if !defined(__VAXC) #define path_l_flags path_r_fill_16_.path_l_flags #define path_v_domain path_r_fill_16_.path_r_fill_17_.path_v_domain #define path_v_wild path_r_fill_16_.path_r_fill_17_.path_v_wild #define path_v_regex path_r_fill_16_.path_r_fill_17_.path_v_regex #define path_v_bot path_r_fill_16_.path_r_fill_17_.path_v_bot #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ /* */ /* */ /* */ #define CONF_M_DBG 0x1 #define CONF_M_IPS 0x2 #define CONF_M_IDS 0x4 #ifdef __NEW_STARLET typedef struct _sip_conf { __union { unsigned int conf_l_flags; __struct { unsigned conf_v_dbg : 1 /** WARNING: bitfield array has been reduced to a string **/ ; /* DEBUG */ unsigned conf_v_ips : 1 /** WARNING: bitfield array has been reduced to a string **/ ; /* Intrusion Detection */ unsigned conf_v_ids : 1 /** WARNING: bitfield array has been reduced to a string **/ ; /* Intrusion Prevention */ unsigned conf_v_fill_22_ : 29; } conf_r_fill_21_; } conf_r_fill_20_; unsigned int conf_l_msgid; SIP_REALM *conf_a_realm; #pragma __member_alignment SIP_PATH *conf_a_path; #pragma __member_alignment ASC conf_r_host; ASC *conf_a_srvid; #pragma __member_alignment MQUE conf_r_outq; /* Outgoing messages queue */ MQUE conf_r_inq; /* Received messages queue */ MQUE conf_r_lcl; /* Localy processed messages */ } SIP_CONF; #if !defined(__VAXC) #define conf_l_flags conf_r_fill_20_.conf_l_flags #define conf_v_dbg conf_r_fill_20_.conf_r_fill_21_.conf_v_dbg #define conf_v_ips conf_r_fill_20_.conf_r_fill_21_.conf_v_ips #define conf_v_ids conf_r_fill_20_.conf_r_fill_21_.conf_v_ids #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ struct sip_conf { __union { unsigned int conf_l_flags; __struct { unsigned conf_v_dbg : 1 /** WARNING: bitfield array has been reduced to a string **/ ; /* DEBUG */ unsigned conf_v_ips : 1 /** WARNING: bitfield array has been reduced to a string **/ ; /* Intrusion Detection */ unsigned conf_v_ids : 1 /** WARNING: bitfield array has been reduced to a string **/ ; /* Intrusion Prevention */ unsigned conf_v_fill_22_ : 29; } conf_r_fill_21_; } conf_r_fill_20_; unsigned int conf_l_msgid; void *conf_a_realm; void *conf_a_path; struct asc conf_r_host; void *conf_a_srvid; struct mque conf_r_outq; /* Outgoing messages queue */ struct mque conf_r_inq; /* Received messages queue */ struct mque conf_r_lcl; /* Localy processed messages */ } ; #if !defined(__VAXC) #define conf_l_flags conf_r_fill_20_.conf_l_flags #define conf_v_dbg conf_r_fill_20_.conf_r_fill_21_.conf_v_dbg #define conf_v_ips conf_r_fill_20_.conf_r_fill_21_.conf_v_ips #define conf_v_ids conf_r_fill_20_.conf_r_fill_21_.conf_v_ids #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ /* */ /* Delayed Message Queue record structure */ /* */ #define IM_USER_POS 0 #define IM_USER_KSZ 32 #define IM_TIME_POS 40 #define IM_TIME_KSZ 8 #ifdef __NEW_STARLET typedef struct _sip_im { __struct { /* Recipient UserName */ unsigned char im_b_len; char im_t_user [31]; } im_r_user; unsigned __int64 im_q_time; /* IM time */ unsigned short int im_w_bodylen; #if defined(__VAXC) char im_t_body[]; #else /* Warning: empty char[] member for im_t_body at end of structure not created */ #endif /* #if defined(__VAXC) */ } SIP_IM; #if !defined(__VAXC) #define im_b_len im_r_user.im_b_len #define im_t_user im_r_user.im_t_user #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ struct sip_im { __struct { /* Recipient UserName */ unsigned char im_b_len; char im_t_user [31]; } im_r_user; unsigned int im_q_time [2]; /* IM time */ unsigned short int im_w_bodylen; #if defined(__VAXC) char im_t_body[]; #else /* Warning: empty char[] member for im_t_body at end of structure not created */ #endif /* #if defined(__VAXC) */ } ; #if !defined(__VAXC) #define im_b_len im_r_user.im_b_len #define im_t_user im_r_user.im_t_user #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ #pragma __member_alignment __restore #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __restore /* Restore the previously-defined required ptr size */ #endif #ifdef __cplusplus } #endif #pragma __standard #endif /* __SIPDEF_LOADED */