[asterisk-bugs] [Asterisk 0015484]: [branch] RTMP support in Asterisk

Asterisk Bug Tracker noreply at bugs.digium.com
Fri Sep 11 03:51:27 CDT 2009


A NOTE has been added to this issue. 
====================================================================== 
https://issues.asterisk.org/view.php?id=15484 
====================================================================== 
Reported By:                phsultan
Assigned To:                phsultan
====================================================================== 
Project:                    Asterisk
Issue ID:                   15484
Category:                   Channels/NewFeature
Reproducibility:            N/A
Severity:                   feature
Priority:                   normal
Status:                     ready for testing
Target Version:             1.6.x Version Tracker
Asterisk Version:           SVN 
Regression:                 No 
SVN Branch (only for SVN checkouts, not tarball releases):  trunk 
SVN Revision (number only!):  
Request Review:              
====================================================================== 
Date Submitted:             2009-07-10 07:30 CDT
Last Modified:              2009-09-11 03:51 CDT
====================================================================== 
Summary:                    [branch] RTMP support in Asterisk
Description: 
I created a new branch that implements Adobe's RTMP (Real Time Media
Protocol).

It allows Asterisk to connect as a client to an RTMP media server like
Red5 or FMS (Flash Media Server), and then publish or receive media streams
from such server. I only tested the connection with Red5.

To install the branch, you'll need several libavcodec, included in FFMPEG
version 0.5. Be careful to configure FFMPEG's sources with the
--enable-shared option activated in the configure script.

Installation procedure :
# svn co http://svn.digium.com/svn/asterisk/team/phsultan/rtmp-support
asterisk-rtmp
# cd asterisk-rtmp
# ./configure
# make menuselect
[check here that chan_rtmp is eligible for installation]
# make
# make install
====================================================================== 

---------------------------------------------------------------------- 
 (0110566) adamlis (reporter) - 2009-09-11 03:51
 https://issues.asterisk.org/view.php?id=15484#c110566 
---------------------------------------------------------------------- 
I've done checkout of repo this week.

1st issue: configuration variable global->port is not used in connection -
it is parsed and assigned to variable "port", but network connection is
done to constant value not this variable "port"

2nd issue: I'm getting "Floating point exception" on below environment:

Debian GNU/Linux i386/i686 Lenny 5.0.2 + mixed packages from Debian
Squeeze (testing).

Basically all environment and packages are taken from Debian Stable Lenny,
but:

1) ffmpeg packages:

||/ Name                                   Version                        
       Description
+++-======================================-======================================-============================================================================================
ii  libavcodec-dev                         4:0.5+svn20090706-2            
       development files for libavcodec
ii  libavcodec52                           4:0.5+svn20090706-2            
       ffmpeg codec library
ii  libavutil-dev                          4:0.5+svn20090706-2            
       development files for libavutil
ii  libavutil49                            4:0.5+svn20090706-2            
       ffmpeg utility library
ii  libdirac-encoder0                      1.0.2-2                        
       open and royalty free high quality codec - encoder library
ii  libgsm1                                1.0.13-1                       
       Shared libraries for GSM speech compressor
ii  liboil0.3                              0.3.16-1                       
       Library of Optimized Inner Loops
ii  libopenjpeg2                           1.3+dfsg-4                     
       JPEG 2000 image compression/decompression library
ii  libschroedinger-1.0-0                  1.0.7-2                        
       library for encoding/decoding of Dirac video streams
ii  libspeex1                              1.2~rc1-1                      
       The Speex codec runtime library

2) speex packages:

ii  libspeex-dev                           1.2~rc1-1                      
       The Speex codec library development files
ii  libspeexdsp-dev                        1.2~rc1-1                      
       The Speex extended library development files
ii  libspeexdsp1                           1.2~rc1-1                      
       The Speex extended runtime library
ii  speex                                  1.2~rc1-1                      
       The Speex codec command line tools

Other stuff (gcc, g++, cpp) is taken from Debian Lenny stable.

Asterisk that has been taken from your SVN compile without errors nor
warnings.

Modules chan_rtmp connects to my FMS2 server (Red5 too).

Asterisk is configured using "make samples" + rtmp.conf adjusted to our
server location/port/application.

Then I'm trying to redirect simple exten do RTMP:

[greeting]
exten => 400,1,Answer
exten => 400,n(hihi),BackGround(demo-congrats)  ; Play a congratulatory
message
exten => 400,n,Wait(5)
exten => 400,n,HangUp()

By calling from Asterisk CLI:
localhost*CLI> originate RTMP/NetStream/NetStream extension 400 at greeting

I see channels are being registered on FMS2 site - there is kind of system
log of FMS available.

Then output of this 'originate' command:

localhost*CLI> originate RTMP/NetStream/NetStream extension 400 at greeting
Sending createStream request for stream with id 1.000000
Sending createStream request for stream with id 2.000000
[Sep 11 09:03:46] WARNING[11707]: chan_rtmp.c:2798 amf_get_type: Unknown
type 0
Received RTMP message from server :
         result       : 1.000000
         level        : N/A
         code         : N/A
         description  : N/A
Sending publish request for stream with id 1 and name NetStream
[Sep 11 09:03:46] WARNING[11707]: chan_rtmp.c:2798 amf_get_type: Unknown
type 0
Received RTMP message from server :
         result       : 2.000000
         level        : N/A
         code         : N/A
         description  : N/A
[Sep 11 09:03:46] NOTICE[11707]: chan_rtmp.c:2504
rtmp_handle_connection_message: readstream_index : -0
[Sep 11 09:03:46] NOTICE[11707]: chan_rtmp.c:2509
rtmp_handle_connection_message: readstream_name : NetStream
Sending play request for stream with id 2 and name NetStream
    -- Executing [400 at greeting:1] Answer("RTMP/1", "") in new stack
    -- Executing [400 at greeting:2] BackGround("RTMP/1", "demo-congrats") in
new stack
    -- <RTMP/1> Playing 'demo-congrats.gsm' (language '')
Handling PING message (ping type = 0)
Handling CHUNKSIZE message. Chunk size changed from 128 to 128
Handling PING message (ping type = 0)
Handling CHUNKSIZE message. Chunk size changed from 128 to 441
localhost*CLI> sbin/safe_asterisk: line 152: 11693 Floating point
exception(core dumped) nice -n $PRIORITY ${ASTSBINDIR}/asterisk -f
${CLIARGS} ${ASTARGS} > /dev/${TTY} 2>&1 < /dev/${TTY}
Asterisk ended with exit status 136
Asterisk exited on signal EXITSTATUS-128.

Disconnected from Asterisk server
Executing last minute cleanups
Asterisk ending (0).
o2oadmin at localhost:/srv/asterisk$ Automatically restarting Asterisk.
                                     
***

Well - seems it does not understand part of FMS2 messages - but same
problem on Red5.

Could anyone help me investigating this problem? 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2009-09-11 03:51 adamlis        Note Added: 0110566                          
======================================================================




More information about the asterisk-bugs mailing list