20 #ifndef rtpsession_priv_h
21 #define rtpsession_priv_h
26 RTP_SESSION_RECV_SYNC=1,
27 RTP_SESSION_FIRST_PACKET_DELIVERED=1<<1,
28 RTP_SESSION_SCHEDULED=1<<2,
29 RTP_SESSION_BLOCKING_MODE=1<<3,
30 RTP_SESSION_RECV_NOT_STARTED=1<<4,
31 RTP_SESSION_SEND_NOT_STARTED=1<<5,
32 RTP_SESSION_IN_SCHEDULER=1<<6,
33 RTP_SESSION_USING_EXT_SOCKETS=1<<7,
34 RTP_SOCKET_CONNECTED=1<<8,
35 RTCP_SOCKET_CONNECTED=1<<9,
36 RTP_SESSION_USING_TRANSPORT=1<<10,
37 RTCP_OVERRIDE_LOST_PACKETS=1<11,
38 RTCP_OVERRIDE_JITTER=1<<12,
39 RTCP_OVERRIDE_DELAY=1<<13
42 #define rtp_session_using_transport(s, stream) (((s)->flags & RTP_SESSION_USING_TRANSPORT) && (s->stream.tr != 0))
44 int rtp_session_rtp_recv_abstract(ortp_socket_t socket,
mblk_t *msg,
int flags,
struct sockaddr *from, socklen_t *fromlen);
46 void rtp_session_update_payload_type(
RtpSession * session,
int pt);
49 int rtp_session_rtp_recv(
RtpSession * session, uint32_t ts);
50 int rtp_session_rtcp_recv(
RtpSession * session);
54 void rtp_session_rtp_parse(
RtpSession *session,
mblk_t *mp, uint32_t local_str_ts,
struct sockaddr *addr, socklen_t addrlen);
int channels
Definition: payloadtype.h:63
ORTP_PUBLIC int rtp_session_get_recv_payload_type(const RtpSession *session)
Definition: rtpsession.c:730
ORTP_PUBLIC void rtp_session_enable_rtcp(RtpSession *session, bool_t yesno)
Definition: rtpsession.c:408
Definition: str_utils.h:75
ORTP_PUBLIC uint32_t rtp_session_get_recv_ssrc(RtpSession *session)
Definition: rtpsession.c:656
ORTP_PUBLIC void rtp_session_resync(RtpSession *session)
Definition: rtpsession.c:1489
ORTP_PUBLIC void rtp_session_reset(RtpSession *session)
Definition: rtpsession.c:1502
ORTP_PUBLIC int rtp_session_set_multicast_ttl(RtpSession *session, int ttl)
Definition: rtpsession_inet.c:441
ORTP_PUBLIC int rtp_session_get_multicast_loopback(RtpSession *session)
Definition: rtpsession_inet.c:571
ORTP_PUBLIC int rtp_session_signal_disconnect_by_callback(RtpSession *session, const char *signal_name, RtpCallback cb)
Definition: rtpsession.c:586
ORTP_PUBLIC void rtp_session_set_seq_number(RtpSession *session, uint16_t seq)
Definition: rtpsession.c:607
ORTP_PUBLIC void rtp_session_set_profile(RtpSession *session, RtpProfile *profile)
Definition: rtpsession.c:393
ORTP_PUBLIC mblk_t * rtp_session_pick_with_cseq(RtpSession *session, const uint16_t sequence_number)
Definition: rtpsession.c:1013
ORTP_PUBLIC bool_t ortp_min_version_required(int major, int minor, int micro)
Definition: ortp.c:201
ORTP_PUBLIC int rtp_session_set_pktinfo(RtpSession *session, int activate)
Definition: rtpsession_inet.c:379
ORTP_PUBLIC int rtp_session_get_send_payload_type(const RtpSession *session)
Definition: rtpsession.c:697
ORTP_PUBLIC void rtp_stats_display(const rtp_stats_t *stats, const char *header)
Definition: ortp.c:166
ORTP_PUBLIC void rtp_session_set_symmetric_rtp(RtpSession *session, bool_t yesno)
Definition: rtpsession.c:1623
General purpose library functions.
ORTP_PUBLIC void rtp_session_rtcp_set_lost_packet_value(RtpSession *session, const unsigned int value)
For test purpose only, sets a constant lost packet value within all RTCP output packets....
Definition: rtpsession.c:1548
Definition of payload types.
ORTP_PUBLIC void rtp_profile_clear_all(RtpProfile *prof)
Definition: rtpprofile.c:166
ORTP_PUBLIC int rtp_session_send_telephone_events_supported(RtpSession *session)
Definition: telephonyevents.c:61
ORTP_PUBLIC void ortp_global_stats_display(void)
Definition: ortp.c:155
ORTP_PUBLIC uint32_t rtp_session_get_current_recv_ts(RtpSession *session)
Definition: rtpsession.c:1319
ORTP_PUBLIC void rtp_session_set_scheduling_mode(RtpSession *session, int yesno)
Definition: rtpsession.c:339
Definition: str_utils.h:49
ORTP_PUBLIC int rtp_session_get_multicast_ttl(RtpSession *session)
Definition: rtpsession_inet.c:495
ORTP_PUBLIC uint32_t rtp_session_get_rcv_ext_seq_number(RtpSession *session)
Definition: rtpsession.c:622
ORTP_PUBLIC int rtp_session_sendm_with_ts(RtpSession *session, mblk_t *mp, uint32_t userts)
Definition: rtpsession.c:952
Definition: rtpsession.h:92
Definition: rtpsession.h:169
ORTP_PUBLIC void rtp_session_rtcp_set_jitter_value(RtpSession *session, const unsigned int value)
For test purpose only, sets a constant interarrival_jitter value within all RTCP output packets....
Definition: rtpsession.c:1560
ORTP_PUBLIC RtpProfile * rtp_session_get_recv_profile(RtpSession *session)
Definition: rtpsession.c:496
ORTP_PUBLIC void payload_type_set_recv_fmtp(PayloadType *pt, const char *fmtp)
Definition: payloadtype.c:73
ORTP_PUBLIC void rtp_session_set_recv_buf_size(RtpSession *session, int bufsize)
Definition: rtpsession.c:508
int clock_rate
Definition: payloadtype.h:56
ORTP_PUBLIC int rtp_session_set_payload_type(RtpSession *session, int pt)
Definition: rtpsession.c:743
ORTP_PUBLIC mblk_t * rtp_session_create_packet(RtpSession *session, int header_size, const uint8_t *payload, int payload_size)
Definition: rtpsession.c:775
ORTP_PUBLIC int rtp_session_set_remote_addr_full(RtpSession *session, const char *rtp_addr, int rtp_port, const char *rtcp_addr, int rtcp_port)
Definition: rtpsession_inet.c:773
ORTP_PUBLIC float rtp_session_get_round_trip_propagation(RtpSession *session)
Definition: rtpsession.c:1703
#define session_set_clr(ss, rtpsession)
Definition: sessionset.h:121
ORTP_PUBLIC int rtp_session_set_remote_addr(RtpSession *session, const char *addr, int port)
Definition: rtpsession_inet.c:753
ORTP_PUBLIC int rtp_session_bye(RtpSession *session, const char *reason)
Definition: rtcp.c:468
ORTP_PUBLIC void payload_type_set_send_fmtp(PayloadType *pt, const char *fmtp)
Definition: payloadtype.c:86
int nom_size
Definition: rtpsession.h:57
ORTP_PUBLIC void rtp_session_set_ssrc(RtpSession *session, uint32_t ssrc)
Definition: rtpsession.c:635
ORTP_PUBLIC RtpProfile * rtp_session_get_send_profile(RtpSession *session)
Definition: rtpsession.c:486
ORTP_PUBLIC int rtp_session_set_local_addr(RtpSession *session, const char *addr, int rtp_port, int rtcp_port)
Definition: rtpsession_inet.c:321
ORTP_PUBLIC int rtp_session_set_send_payload_type(RtpSession *session, int paytype)
Definition: rtpsession.c:686
ORTP_PUBLIC int rtp_session_set_multicast_loopback(RtpSession *session, int yesno)
Definition: rtpsession_inet.c:511
ORTP_PUBLIC int rtp_session_get_local_port(const RtpSession *session)
Definition: rtpsession_inet.c:719
int min_size
Definition: rtpsession.h:56
ORTP_PUBLIC void rtp_session_set_rtp_socket_recv_buffer_size(RtpSession *session, unsigned int size)
Definition: rtpsession.c:524
Definition: payloadtype.h:53
char * mime_type
Definition: payloadtype.h:62
ORTP_PUBLIC void rtp_session_set_source_description(RtpSession *session, const char *cname, const char *name, const char *email, const char *phone, const char *loc, const char *tool, const char *note)
Definition: rtcp.c:86
Definition: scheduler.h:28
ORTP_PUBLIC RtpProfile * rtp_session_get_profile(RtpSession *session)
Definition: rtpsession.c:475
ORTP_PUBLIC void rtp_profile_set_name(RtpProfile *prof, const char *name)
Definition: rtpprofile.c:180
Definition: rtpsession.h:55
ORTP_PUBLIC void rtp_session_set_ssrc_changed_threshold(RtpSession *session, int numpackets)
Definition: rtpsession.c:1479
ORTP_PUBLIC void rtp_session_rtcp_set_delay_value(RtpSession *session, const unsigned int value)
For test purpose only, simulates a constant RTT (Round Trip Time) value by setting the LSR field with...
Definition: rtpsession.c:1586
Receiving and sending telephone events (RFC2833)
ORTP_PUBLIC void ortp_scheduler_init(void)
Definition: ortp.c:104
int max_packets
Definition: rtpsession.h:61
Definition: rtpsession.h:201
ORTP_PUBLIC int rtp_session_telephone_events_supported(RtpSession *session)
Definition: telephonyevents.c:44
int type
Definition: payloadtype.h:55
ORTP_PUBLIC void payload_type_destroy(PayloadType *pt)
Definition: payloadtype.c:124
ORTP_PUBLIC void rtp_session_set_recv_profile(RtpSession *session, RtpProfile *profile)
Definition: rtpsession.c:462
Definition: rtptimer.h:35
ORTP_PUBLIC void * rtp_session_get_data(const RtpSession *session)
Definition: rtpsession.c:1609
size_t b64_decode(char const *src, size_t srcLen, void *dest, size_t destSize)
Decodes a sequence of Base-64 into a block of binary data.
Definition: b64.c:477
#define session_set_set(ss, rtpsession)
Definition: sessionset.h:104
ORTP_PUBLIC uint32_t rtp_session_get_send_ssrc(RtpSession *session)
Definition: rtpsession.c:646
ORTP_PUBLIC uint32_t rtp_session_get_current_send_ts(RtpSession *session)
Definition: rtpsession.c:1293
ORTP_PUBLIC int rtp_session_set_recv_payload_type(RtpSession *session, int pt)
Definition: rtpsession.c:713
ORTP_PUBLIC int rtp_session_signal_connect(RtpSession *session, const char *signal_name, RtpCallback cb, unsigned long user_data)
Definition: rtpsession.c:562
ORTP_PUBLIC RtpSession * rtp_session_new(int mode)
Definition: rtpsession.c:312
ORTP_PUBLIC void rtp_session_set_connected_mode(RtpSession *session, bool_t yesno)
Definition: rtpsession.c:1641
ORTP_PUBLIC void ortp_init(void)
Definition: ortp.c:80
ORTP_PUBLIC mblk_t * rtp_session_recvm_with_ts(RtpSession *session, uint32_t user_ts)
Definition: rtpsession.c:1056
ORTP_PUBLIC uint16_t rtp_session_get_seq_number(RtpSession *session)
Definition: rtpsession.c:615
ORTP_PUBLIC void rtp_session_get_last_recv_time(RtpSession *session, struct timeval *tv)
Definition: rtpsession.c:1804
ORTP_PUBLIC void rtp_session_set_rtcp_report_interval(RtpSession *session, int value_ms)
Definition: rtpsession.c:416
const ORTP_PUBLIC rtp_stats_t * rtp_session_get_stats(const RtpSession *session)
Definition: rtpsession.c:1530
ORTP_PUBLIC int rtp_session_recv_with_ts(RtpSession *session, uint8_t *buffer, int len, uint32_t ts, int *have_more)
Definition: rtpsession.c:1245
ORTP_PUBLIC void rtp_session_destroy(RtpSession *session)
Definition: rtpsession.c:1713
Definition: rtpsession.h:117
ORTP_PUBLIC mblk_t * rtp_session_create_packet_with_data(RtpSession *session, uint8_t *payload, int payload_size, void(*freefn)(void *))
Definition: rtpsession.c:809
ORTP_PUBLIC void rtp_profile_set_payload(RtpProfile *prof, int idx, PayloadType *pt)
Definition: rtpprofile.c:153
Definition: rtpsession.h:109
ORTP_PUBLIC void rtp_session_release_sockets(RtpSession *session)
Definition: rtpsession.c:1357
ORTP_PUBLIC void rtp_session_set_time_jump_limit(RtpSession *session, int miliseconds)
Definition: rtpsession.c:1346
ORTP_PUBLIC void ortp_exit(void)
Definition: ortp.c:129
Definition: rtpsession.h:84
ORTP_PUBLIC int rtp_session_get_dscp(const RtpSession *session)
Definition: rtpsession_inet.c:703
Definition: rtpsignaltable.h:27
ORTP_PUBLIC void rtp_session_register_event_queue(RtpSession *session, OrtpEvQueue *q)
Definition: rtpsession.c:1389
ORTP_PUBLIC int rtp_session_recv_telephone_events_supported(RtpSession *session)
Definition: telephonyevents.c:75
ORTP_PUBLIC bool_t fmtp_get_value(const char *fmtp, const char *param_name, char *result, size_t result_len)
Definition: payloadtype.c:143
ORTP_PUBLIC void rtp_session_set_send_profile(RtpSession *session, RtpProfile *profile)
Definition: rtpsession.c:444
ORTP_PUBLIC void rtp_session_set_rtp_socket_send_buffer_size(RtpSession *session, unsigned int size)
Definition: rtpsession.c:516
ORTP_PUBLIC void rtp_session_flush_sockets(RtpSession *session)
Definition: rtpsession_inet.c:939
ORTP_PUBLIC mblk_t * rtp_session_create_packet_in_place(RtpSession *session, uint8_t *buffer, int size, void(*freefn)(void *))
Definition: rtpsession.c:841
const ORTP_PUBLIC jitter_stats_t * rtp_session_get_jitter_stats(const RtpSession *session)
Definition: rtpsession.c:1537
ORTP_PUBLIC int rtp_session_set_dscp(RtpSession *session, int dscp)
Definition: rtpsession_inet.c:586
ORTP_PUBLIC void rtp_session_set_data(RtpSession *session, void *data)
Definition: rtpsession.c:1601
ORTP_PUBLIC int rtp_session_send_with_ts(RtpSession *session, const uint8_t *buffer, int len, uint32_t userts)
Definition: rtpsession.c:972
Definition: rtpprofile.h:41
ORTP_PUBLIC void rtp_session_set_blocking_mode(RtpSession *session, int yesno)
Definition: rtpsession.c:374
int max_size
Definition: rtpsession.h:58