Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

net::sip::dtmf(3pm) [debian man page]

Net::SIP::DTMF(3pm)					User Contributed Perl Documentation				       Net::SIP::DTMF(3pm)

NAME
Net::SIP::DTMF - DTMF RTP packet generating and extracting SYNOPSIS
use Net::SIP::DTMF; my $sub = dtmf_generator( 11, # event '#' 100, # duration 100ms rfc2833_type => 101, # RTP type 101 for telephone-event/8000 # audio_type => 0, # RTP type 0 for PCMU/8000 ); while (...) { my @pkt = $sub->($sequence,$timestamp,$srcid); last if ! @pkt; # dtmf done next if $buf[0] eq ''; # more coming, but no data this time (pause) .. send @pkts ... } use Net::SIP::DTMF; my $sub = dtmf_extractor( rfc2833_type => 101, # RTP type 101 for telephone-event/8000 audio_type => 0, # RTP type 0 for PCMU/8000 ); while (...) { if ( my ($event,$duration,$type) = $sub->($packet)) { # event received ... } } DESCRIPTION
This package provides functions for generating RTP packets containing DTMF events or extracting DTMF events from RTP packets. FUNCTIONS
dtmf_generator ( EVENT, DURATION, %ARGS ) Generates a function which is used to generate packets for the given EVENT. EVENT is the event numer (0..15) or undef if it should just generate silence or pause. DURATION is the time for the event in ms. ARGS contain information how the event should be packed: either as RFC2833 RTP event or as RTP audio PCMU/8000. %ARGS can be rfc2833_type => rtp_type Gives the RTP payload type number for rfc2833 RTP events (telephone-event/8000). If not given will try audio_type instead. audio_type => rtp_type Gives the RTP payload type number for PCMU/8000. If not given and no rfc2833_type given it will croak. volume => volume Sets the volume for RTP event according to rfc2833. The generated function should then be called with SEQUENCE,TIMESTAMP,SRCID to generate the RTP packets and will return @RTP_PACKETS, with () - DTMF event is finished $RTP_PACKETS[0] eq '' - no RTP packet for this call (pause) @RTP_PACKETS - RTP packets which can be send to the peer dtmf_extractor ( %ARGS ) Generates a function which is used to extract DTMF events. Keys rfc2833_type and audio_type have the same meaning as in generate_dtmf. It will only attempt to extract DTMF events from rfc2833 RTP events or audio if the relevant rtp_type is given. The function will be called with the RTP packet as the only argument and will return () if no new events where found or (EVENT,DURATION,TYPE) if an event finished, where DURATION is the duration in ms and TYPE is audio|rfc2833. For performance reasons it is best to use only rfc2833 if the peer supports it. perl v5.14.2 2012-06-12 Net::SIP::DTMF(3pm)

Check Out this Related Man Page

Net::SIP::Simple::RTP(3pm)				User Contributed Perl Documentation				Net::SIP::Simple::RTP(3pm)

NAME
Net::SIP::Simple::RTP - simple RTP handling for Net::SIP::Simple SYNOPSIS
my $echo_10 = Net::SIP::Simple->rtp( 'media_recv_echo', 'output.pcmu-8000', 10 ); my $announce = Net::SIP::Simple->rtp( 'media_send_recv', 'announce.pcmu-8000', 2 ); DESCRIPTION
This package handles simple RTP stuff for testing and small applications. It provides methods for receiving PCUM/8000 data and for echoing them back or for sending and receiving PCMU/8000 data. It's used from method rtp in Net::SIP::Simple. SUBROUTINES
media_recv_echo ( [ OUTPUT, DELAY ] ) Receives RTP data and echos them back to the sender. If OUTPUT is given it will be used as the file for saving the received data without the RTP header. OUTPUT might also be a callback which gets the payload as argument. If DELAY is >0 the data will not be echoed back immediatly but with an delay of DELAY packets (e.g. with DELAY 10 it will send back the first packet after it received the 10th packet). If DELAY is <0 the data will not be echoed back. If DELAY is not given or equal 0 the data will be echoed back immediatly. If no traffic comes in for more then 10 seconds it will hang up the call because of inactivity. media_send_recv ( INPUT, [ REPEAT, OUTPUT ] ) Will read data from file INPUT and send them as RTP to peer. It will assume that each data block in INPUT consists of 160 bytes, which is right for PCMU/8000 without RTP header. The RTP header will be added to the data. If it reaches the end of the file it will stop unless REPEAT is given in which case it will repeat the sending REPEAT times (if REPEAT is less 0 it will repeat forever e.g. until the other party hangs up). On stopping it will invoke the callback cb_rtp_done from the connection params for the Net::SIP::Simple::Call or if this is not given it will close the call by issuing a BYE. INPUT might also be a callback usable by invoke_callback in Net::SIP::Util which returns the data to send. In this case REPEAT is not used. Incoming data will be written to the optional OUTPUT file like in media_recv_echo. The content from OUTPUT has the same format as INPUT or OUTPUT from media_recv_echo. OUTPUT might also be a callback which gets the payload as argument. If no traffic comes in for more then 10 seconds it will hang up the call because of inactivity. perl v5.14.2 2009-01-23 Net::SIP::Simple::RTP(3pm)
Man Page