123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230 |
- #ifndef __PJSIP_SIP_EVENT_H__
- #define __PJSIP_SIP_EVENT_H__
- PJ_BEGIN_DECL
- #include <pj/types.h>
- #include <pj/timer.h>
- typedef enum pjsip_event_id_e
- {
-
- PJSIP_EVENT_UNKNOWN,
-
- PJSIP_EVENT_TIMER,
-
- PJSIP_EVENT_TX_MSG,
-
- PJSIP_EVENT_RX_MSG,
-
- PJSIP_EVENT_TRANSPORT_ERROR,
-
- PJSIP_EVENT_TSX_STATE,
-
- PJSIP_EVENT_USER
- } pjsip_event_id_e;
- struct pjsip_event
- {
-
- PJ_DECL_LIST_MEMBER(struct pjsip_event);
-
- pjsip_event_id_e type;
-
- union
- {
-
- struct
- {
- pj_timer_entry *entry;
- } timer;
-
- struct
- {
- union
- {
- pjsip_rx_data *rdata;
- pjsip_tx_data *tdata;
- pj_timer_entry *timer;
- pj_status_t status;
- void *data;
- } src;
- pjsip_transaction *tsx;
- int prev_state;
- pjsip_event_id_e type;
- } tsx_state;
-
- struct
- {
- pjsip_tx_data *tdata;
- } tx_msg;
-
- struct
- {
- pjsip_tx_data *tdata;
- pjsip_transaction *tsx;
- } tx_error;
-
- struct
- {
- pjsip_rx_data *rdata;
- } rx_msg;
-
- struct
- {
- void *user1;
- void *user2;
- void *user3;
- void *user4;
- } user;
- } body;
- };
- #define PJSIP_EVENT_INIT_TIMER(event,pentry) \
- do { \
- (event).type = PJSIP_EVENT_TIMER; \
- (event).body.timer.entry = pentry; \
- } while (0)
- #define PJSIP_EVENT_INIT_TSX_STATE(event,ptsx,ptype,pdata,prev) \
- do { \
- (event).type = PJSIP_EVENT_TSX_STATE; \
- (event).body.tsx_state.tsx = ptsx; \
- (event).body.tsx_state.type = ptype; \
- (event).body.tsx_state.src.data = pdata; \
- (event).body.tsx_state.prev_state = prev; \
- } while (0)
- #define PJSIP_EVENT_INIT_TX_MSG(event,ptdata) \
- do { \
- (event).type = PJSIP_EVENT_TX_MSG; \
- (event).body.tx_msg.tdata = ptdata; \
- } while (0)
- #define PJSIP_EVENT_INIT_RX_MSG(event,prdata) \
- do { \
- (event).type = PJSIP_EVENT_RX_MSG; \
- (event).body.rx_msg.rdata = prdata; \
- } while (0)
- #define PJSIP_EVENT_INIT_TRANSPORT_ERROR(event,ptsx,ptdata) \
- do { \
- (event).type = PJSIP_EVENT_TRANSPORT_ERROR; \
- (event).body.tx_error.tsx = ptsx; \
- (event).body.tx_error.tdata = ptdata; \
- } while (0)
- #define PJSIP_EVENT_INIT_USER(event,u1,u2,u3,u4) \
- do { \
- (event).type = PJSIP_EVENT_USER; \
- (event).body.user.user1 = (void*)u1; \
- (event).body.user.user2 = (void*)u2; \
- (event).body.user.user3 = (void*)u3; \
- (event).body.user.user4 = (void*)u4; \
- } while (0)
- PJ_DECL(const char *) pjsip_event_str(pjsip_event_id_e e);
- PJ_END_DECL
- #endif /* __PJSIP_SIP_EVENT_H__ */
|