X-Git-Url: http://git.eversberg.eu/gitweb.cgi?p=lcr.git;a=blobdiff_plain;f=sip.h;fp=sip.h;h=1e13aeee6254cf79d21429bf0d78f1f0e83448c8;hp=2c5d5efb810a87df0c38c39aa2bb391860a96068;hb=dd298160ec62b7d50a2764d472c906f6b1f353ab;hpb=8ed162789e913b5315c865f2747238571994bb9a diff --git a/sip.h b/sip.h index 2c5d5ef..1e13aee 100644 --- a/sip.h +++ b/sip.h @@ -19,6 +19,7 @@ class Psip : public Port public: Psip(int type, char *portname, struct port_settings *settings, struct interface *interface); ~Psip(); + unsigned int get_local_ip(unsigned int ip); int message_epoint(unsigned int epoint_id, int message, union parameter *param); int message_connect(unsigned int epoint_id, int message, union parameter *param); int message_release(unsigned int epoint_id, int message, union parameter *param); @@ -32,10 +33,15 @@ class Psip : public Port void r_bye(int status, char const *phrase, nua_t *nua, nua_magic_t *magic, nua_handle_t *nh, nua_hmagic_t *hmagic, sip_t const *sip, tagi_t tags[]); void r_cancel(int status, char const *phrase, nua_t *nua, nua_magic_t *magic, nua_handle_t *nh, nua_hmagic_t *hmagic, sip_t const *sip, tagi_t tags[]); void r_invite(int status, char const *phrase, nua_t *nua, nua_magic_t *magic, nua_handle_t *nh, nua_hmagic_t *hmagic, sip_t const *sip, tagi_t tags[]); + void i_options(int status, char const *phrase, nua_t *nua, nua_magic_t *magic, nua_handle_t *nh, nua_hmagic_t *hmagic, sip_t const *sip, tagi_t tags[]); + void r_options(int status, char const *phrase, nua_t *nua, nua_magic_t *magic, nua_handle_t *nh, nua_hmagic_t *hmagic, sip_t const *sip, tagi_t tags[]); + void i_state(int status, char const *phrase, nua_t *nua, nua_magic_t *magic, nua_handle_t *nh, nua_hmagic_t *hmagic, sip_t const *sip, tagi_t tags[]); void *p_s_sip_inst; struct lcr_work p_s_delete; nua_handle_t *p_s_handle; nua_magic_t *p_s_magic; + struct lcr_timer p_s_invite_option_timer; /* time to send OPTION to invite transaction */ + int p_s_invite_direction; /* DIRECTION_* of invite */ int p_s_rtp_bridge; /* bridge RTP instead of having a local RTP peer */ unsigned short p_s_rtp_port_local; unsigned short p_s_rtp_port_remote; @@ -64,11 +70,12 @@ class Psip : public Port unsigned char p_s_rxdata[160]; /* receive audio buffer */ int p_s_rxpos; /* position in audio buffer 0..159 */ int bridge_rx(unsigned char *data, int len); + const char *generate_sdp(unsigned int rtp_ip_local, unsigned short rtp_port_local, int payloads, unsigned char *payload_types, int *media_types); int parse_sdp(sip_t const *sip, unsigned int *ip, unsigned short *port, uint8_t *payload_types, int *media_types, int *payloads, int max_payloads); void rtp_shutdown(void); /* audio */ - struct lcr_timer p_s_loadtimer; /* timer for audio transmission */ + struct lcr_timer p_s_load_timer; /* timer for audio transmission */ virtual void update_load(void); void load_tx(void); unsigned int p_s_next_tv_sec; /* time stamp of next expected tx_load call, (to sync audio data) */