Squashed 'third_party/rawrtc/re/' content from commit f3163ce8b
Change-Id: I6a235e6ac0f03269d951026f9d195da05c40fdab
git-subtree-dir: third_party/rawrtc/re
git-subtree-split: f3163ce8b526a13b35ef71ce4dd6f43585064d8a
diff --git a/src/sipsess/sipsess.h b/src/sipsess/sipsess.h
new file mode 100644
index 0000000..3bdfcc7
--- /dev/null
+++ b/src/sipsess/sipsess.h
@@ -0,0 +1,89 @@
+/**
+ * @file sipsess.h SIP Session Private Interface
+ *
+ * Copyright (C) 2010 Creytiv.com
+ */
+
+
+struct sipsess {
+ struct le he;
+ struct tmr tmr;
+ struct list replyl;
+ struct list requestl;
+ struct sip_loopstate ls;
+ struct sipsess_sock *sock;
+ const struct sip_msg *msg;
+ struct sip_request *req;
+ struct sip_dialog *dlg;
+ struct sip_strans *st;
+ struct sip_auth *auth;
+ struct sip *sip;
+ char *cuser;
+ char *ctype;
+ char *close_hdrs;
+ struct mbuf *hdrs;
+ struct mbuf *desc;
+ sipsess_offer_h *offerh;
+ sipsess_answer_h *answerh;
+ sipsess_progr_h *progrh;
+ sipsess_estab_h *estabh;
+ sipsess_info_h *infoh;
+ sipsess_refer_h *referh;
+ sipsess_close_h *closeh;
+ void *arg;
+ bool owner;
+ bool sent_offer;
+ bool awaiting_answer;
+ bool modify_pending;
+ bool established;
+ bool peerterm;
+ int terminated;
+};
+
+
+struct sipsess_sock {
+ struct sip_lsnr *lsnr_resp;
+ struct sip_lsnr *lsnr_req;
+ struct hash *ht_sess;
+ struct hash *ht_ack;
+ struct sip *sip;
+ sipsess_conn_h *connh;
+ void *arg;
+};
+
+
+struct sipsess_request {
+ struct le le;
+ struct sip_loopstate ls;
+ struct sipsess *sess;
+ struct sip_request *req;
+ char *ctype;
+ struct mbuf *body;
+ sip_resp_h *resph;
+ void *arg;
+};
+
+
+int sipsess_alloc(struct sipsess **sessp, struct sipsess_sock *sock,
+ const char *cuser, const char *ctype, struct mbuf *desc,
+ sip_auth_h *authh, void *aarg, bool aref,
+ sipsess_offer_h *offerh, sipsess_answer_h *answerh,
+ sipsess_progr_h *progrh, sipsess_estab_h *estabh,
+ sipsess_info_h *infoh, sipsess_refer_h *referh,
+ sipsess_close_h *closeh, void *arg);
+void sipsess_terminate(struct sipsess *sess, int err,
+ const struct sip_msg *msg);
+int sipsess_ack(struct sipsess_sock *sock, struct sip_dialog *dlg,
+ uint32_t cseq, struct sip_auth *auth,
+ const char *ctype, struct mbuf *desc);
+int sipsess_ack_again(struct sipsess_sock *sock, const struct sip_msg *msg);
+int sipsess_reply_2xx(struct sipsess *sess, const struct sip_msg *msg,
+ uint16_t scode, const char *reason, struct mbuf *desc,
+ const char *fmt, va_list *ap);
+int sipsess_reply_ack(struct sipsess *sess, const struct sip_msg *msg,
+ bool *awaiting_answer);
+int sipsess_reinvite(struct sipsess *sess, bool reset_ls);
+int sipsess_bye(struct sipsess *sess, bool reset_ls);
+int sipsess_request_alloc(struct sipsess_request **reqp, struct sipsess *sess,
+ const char *ctype, struct mbuf *body,
+ sip_resp_h *resph, void *arg);