int message_release(unsigned int epoint_id, int message, union parameter *param);
int message_setup(unsigned int epoint_id, int message, union parameter *param);
int message_notify(unsigned int epoint_id, int message, union parameter *param);
+ int message_information(unsigned int epoint_id, int message, union parameter *param);
int message_dtmf(unsigned int epoint_id, int message, union parameter *param);
void i_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_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[]);
nua_handle_t *p_s_handle;
nua_magic_t *p_s_magic;
int p_s_rtp_bridge; /* bridge RTP instead of having a local RTP peer */
- uint8_t p_s_rtp_payload_type;
unsigned short p_s_rtp_port_local;
unsigned short p_s_rtp_port_remote;
unsigned int p_s_rtp_ip_local;
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);
- int parse_sdp(sip_t const *sip, unsigned int *ip, unsigned short *port, uint8_t payload_type);
+ 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);
};
+const char *media_type2name(uint8_t media_type);
int sip_init_inst(struct interface *interface);
void sip_exit_inst(struct interface *interface);
int sip_init(void);