Mod rtmp

From FreeSWITCH Wiki
Jump to: navigation, search

Note: mod_rtmp is not yet fully documented. Waiting for Math to get us started.

Contents

Introduction

mod_rtmp is a RTMP (Real time media protocol) endpoint for FreeSWITCH. The RTMP protocol is primarily used by Flash for streaming audio, video and data over the Internet.

Installation

The lastest git for FreeSWITCH already have mod_rtmp source included. Before compilation, edit modules.conf. Uncomment "endpoints/mod_rtmp" and save the file. Run your FreeSWITCH compilation like you would normally do.

Configuration

RTMP Configuration Files, rtmp.conf.xml

See RTMP Configuration Files.

API

Status

To view the endpoint status:

freeswitch> rtmp status

To view the status of a profile:

freeswitch> rtmp status profile <profile>

To view sessions on a profile:

freeswitch> rtmp status profile <profile> sessions

To view registrations on a profile:

freeswitch> rtmp status profile <profile> reg

Profiles

To start, stop or restart a profile:

freeswitch> rtmp profile <profile> start
freeswitch> rtmp profile <profile> stop
freeswitch> rtmp profile <profile> restart

To rescan the configuration for a profile:

freeswitch> rtmp profile <profile> rescan

Sessions

To kill a session:

freeswitch> rtmp session <session> kill

To login or logout a session:

freeswitch> rtmp session <session> login
freeswitch> rtmp session <session> logout

Contact

To get a dialstring to call a registered user (optionally with nickname):

rtmp_contact profile/user@domain[/[!]nickname]

This can be used to bridge a call to the user:

<action application="bridge" data="${rtmp_contact($${rtmp_profile}/${dialed_ext}@$${domain})}"/>

Latency

If you experience latency when receiving streamed audio through Flash, first check the latency isn't generated through Flash's interaction with your browser and audio system. For example on some Linux distributions which use PulseAudio you may find executing the following command in a desktop terminal window has a great effect on reducing latency for the current session:

export PULSE_LATENCY_MSEC=20
/usr/bin/firefox "$@"

Flex Client

There is also a sample flex client that works with mod_rtmp. The source is currently located right under the /usr/src/freeswitch/clients/flex. You need to copy those files and put it under a web server directory. Modify the freeswitch.html file and modify the following section:

var flashvars = { 
          rtmp_url: 'rtmp://my.ip.address.here/phone'
                 };

replace my.ip.address.here to your freeswitch server IP running the mod_rtmp module. Now open your browser and load the freeswitch.html page to see the client in action.