include/ortp/telephonyevents.h File Reference

Receiving and sending telephone events (RFC2833). More...

#include <ortp/rtpsession.h>

Go to the source code of this file.

Data Structures

struct  _telephone_event

Defines

#define TELEPHONY_EVENTS_ALLOCATED_SIZE   (4*sizeof(telephone_event_t))
#define TEV_DTMF_0   (0)
#define TEV_DTMF_1   (1)
#define TEV_DTMF_2   (2)
#define TEV_DTMF_3   (3)
#define TEV_DTMF_4   (4)
#define TEV_DTMF_5   (5)
#define TEV_DTMF_6   (6)
#define TEV_DTMF_7   (7)
#define TEV_DTMF_8   (8)
#define TEV_DTMF_9   (9)
#define TEV_DTMF_STAR   (10)
#define TEV_DTMF_POUND   (11)
#define TEV_DTMF_A   (12)
#define TEV_DTMF_B   (13)
#define TEV_DTMF_C   (14)
#define TEV_DTMF_D   (15)
#define TEV_FLASH   (16)

Typedefs

typedef struct _telephone_event telephone_event_t

Functions

int rtp_session_telephone_events_supported (RtpSession *session)
int rtp_session_send_telephone_events_supported (RtpSession *session)
int rtp_session_recv_telephone_events_supported (RtpSession *session)
mblk_t * rtp_session_create_telephone_event_packet (RtpSession *session, int start)
int rtp_session_add_telephone_event (RtpSession *session, mblk_t *packet, uint8_t event, int end, uint8_t volume, uint16_t duration)
int rtp_session_read_telephone_event (RtpSession *session, mblk_t *packet, telephone_event_t **tab)
int rtp_session_send_dtmf (RtpSession *session, char dtmf, uint32_t userts)
int rtp_session_send_dtmf2 (RtpSession *session, char dtmf, uint32_t userts, int duration)
void rtp_session_check_telephone_events (RtpSession *session, mblk_t *m0)


Detailed Description

Receiving and sending telephone events (RFC2833).


Function Documentation

int rtp_session_add_telephone_event ( RtpSession session,
mblk_t *  packet,
uint8_t  event,
int  end,
uint8_t  volume,
uint16_t  duration 
)

Parameters:
session a rtp session.
packet a rtp packet as a mblk_t
event the event type as described in rfc2833, ie one of the TEV_* macros.
end a boolean to indicate if the end bit should be set. (end of tone)
volume the volume of the telephony tone, as described in rfc2833
duration the duration of the telephony tone, in timestamp unit.
Adds a named telephony event to a rtp packet previously allocated using rtp_session_create_telephone_event_packet().

Returns:
0 on success.

mblk_t* rtp_session_create_telephone_event_packet ( RtpSession session,
int  start 
)

Allocates a new rtp packet to be used to add named telephony events. The application can use then rtp_session_add_telephone_event() to add named events to the packet. Finally the packet has to be sent with rtp_session_sendm_with_ts().

Parameters:
session a rtp session.
start boolean to indicate if the marker bit should be set.
Returns:
a message block containing the rtp packet if successfull, NULL if the rtp session cannot support telephony event (because the rtp profile it is bound to does not include a telephony event payload type).

int rtp_session_read_telephone_event ( RtpSession session,
mblk_t *  packet,
telephone_event_t **  tab 
)

Reads telephony events from a rtp packet. * points to the beginning of the event buffer.

Parameters:
session a rtp session from which telephony events are received.
packet a rtp packet as a mblk_t.
tab the address of a pointer.
Returns:
the number of events in the packet if successfull, 0 if the packet did not contain telephony events.

int rtp_session_recv_telephone_events_supported ( RtpSession session  ) 

Tells whether telephone event payload type is supported for receiving within the context of the rtp session.

Parameters:
session a rtp session
Returns:
the payload type number used for telephony events if found, -1 if not found.

int rtp_session_send_dtmf ( RtpSession session,
char  dtmf,
uint32_t  userts 
)

This functions creates telephony events packets for dtmf and sends them. It uses rtp_session_create_telephone_event_packet() and rtp_session_add_telephone_event() to create them and finally rtp_session_sendm_with_ts() to send them.

Parameters:
session a rtp session
dtmf a character meaning the dtmf (ex: '1', '#' , '9' ...)
userts the timestamp
Returns:
0 if successfull, -1 if the session cannot support telephony events or if the dtmf given as argument is not valid.

int rtp_session_send_dtmf2 ( RtpSession session,
char  dtmf,
uint32_t  userts,
int  duration 
)

A variation of rtp_session_send_dtmf() with duration specified.

Parameters:
session a rtp session
dtmf a character meaning the dtmf (ex: '1', '#' , '9' ...)
userts the timestamp
duration duration of the dtmf in timestamp units
Returns:
0 if successfull, -1 if the session cannot support telephony events or if the dtmf given as argument is not valid.

int rtp_session_send_telephone_events_supported ( RtpSession session  ) 

Tells whether telephone event payload type is supported for send within the context of the rtp session.

Parameters:
session a rtp session
Returns:
the payload type number used for telephony events if found, -1 if not found.

int rtp_session_telephone_events_supported ( RtpSession session  ) 

Tells whether telephony events payload type is supported within the context of the rtp session.

Parameters:
session a rtp session
Returns:
the payload type number used for telephony events if found, -1 if not found.


Generated on Tue Feb 5 21:35:36 2008 for oRTP by  doxygen 1.5.4