├── .gitignore ├── web ├── ulex.png ├── FlashPhone.swf ├── history │ ├── history.css │ ├── historyFrame.html │ └── history.js ├── FlashPhone.html ├── index.html ├── custom_phone.php ├── AC_OETags.js ├── look.html └── swfobject.js ├── src ├── chan_rtmp.c ├── rtmp.conf ├── Makefile ├── flvtools.h ├── rtmp.h ├── keys.h ├── dhgroups.h ├── rtmpe.h └── flvtools.c ├── doc ├── rtmp_specification_1.0.pdf ├── video_file_format_spec_v10.pdf └── rtmp_specification_license_1.0.pdf ├── README.md └── LICENSE /.gitignore: -------------------------------------------------------------------------------- 1 | *.d 2 | *.o 3 | src/chan_rtmp.so -------------------------------------------------------------------------------- /web/ulex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voximal/asterisk-rtmp/HEAD/web/ulex.png -------------------------------------------------------------------------------- /src/chan_rtmp.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voximal/asterisk-rtmp/HEAD/src/chan_rtmp.c -------------------------------------------------------------------------------- /web/FlashPhone.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voximal/asterisk-rtmp/HEAD/web/FlashPhone.swf -------------------------------------------------------------------------------- /doc/rtmp_specification_1.0.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voximal/asterisk-rtmp/HEAD/doc/rtmp_specification_1.0.pdf -------------------------------------------------------------------------------- /doc/video_file_format_spec_v10.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voximal/asterisk-rtmp/HEAD/doc/video_file_format_spec_v10.pdf -------------------------------------------------------------------------------- /doc/rtmp_specification_license_1.0.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voximal/asterisk-rtmp/HEAD/doc/rtmp_specification_license_1.0.pdf -------------------------------------------------------------------------------- /src/rtmp.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; RTMP Driver Configuration File 3 | ; 4 | 5 | [general] 6 | bindaddr=0.0.0.0 7 | bindport=1935 8 | application=asterisk 9 | videosupport=yes 10 | textsupport=yes 11 | autousers=yes 12 | multipleusers=yes 13 | 14 | [user1] 15 | type=user 16 | secret=1234 17 | context=default 18 | 19 | 20 | [user2] 21 | type=user 22 | secret=1234 23 | -------------------------------------------------------------------------------- /web/history/history.css: -------------------------------------------------------------------------------- 1 | /* This CSS stylesheet defines styles used by required elements in a flex application page that supports browser history */ 2 | 3 | #ie_historyFrame { width: 0px; height: 0px; display:none } 4 | #firefox_anchorDiv { width: 0px; height: 0px; display:none } 5 | #safari_formDiv { width: 0px; height: 0px; display:none } 6 | #safari_rememberDiv { width: 0px; height: 0px; display:none } 7 | -------------------------------------------------------------------------------- /web/history/historyFrame.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 | 5 | 6 | 7 | 27 | Hidden frame for Browser History support. 28 | 29 | 30 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | chan_rtmp 2 | ========= 3 | 4 | --- 5 | The RTMP Asterisk module allows to place audio (and video) calls from a web browser using the FlashPlayer from Adobe(R). 6 | 7 | We offer a free FlashPhone to connect to the Asterisk using the RTMP module. 8 | 9 | Main features 10 | ------------- 11 | 12 | * Writen in C using asterisk-macros. 13 | * Asterisk 1.6 to Asterisk 11.(help requested to port it to Asterisk 13/14) 14 | * This module supports realtime and static peers. 15 | * Text/Chat features 16 | * Audio and Video 17 | * Codecs supported : Speex, a/ulaw , PCM 16 bits, Video Sorenson 18 | * Geo localisation (with IP) 19 | * Works with Vconference (Video / Switch module), Transcode (video transcoder) 20 | * configuration file (rtmp.conf) 21 | * realtime configuration 22 | 23 | Installation 24 | ------------ 25 | 26 | ```sh 27 | export ASTERISKMACROSDIR=[Asterisk macros Git Voximal directory] 28 | export ASTERISKDIR=[Asterisk sources directory] 29 | export LINUX_BUILD=[x86-64 or i686 or armv6l] 30 | export LIBGEOIPDIR=[GeoIP sources directory]/libGeoIP/ 31 | 32 | git clone https://github.com/voximal/asterisk-rtmp chan_rtmp 33 | cd chan_rtmp/src 34 | make 35 | make install 36 | ``` 37 | 38 | Client 39 | ------ 40 | 41 | The client over FlashPlayer allows to set differents skins. 42 | (Chrome seems to need to host your HTML pages in a HTTS server) 43 | 44 | An Android SDK for smartphone/webtv is available to create video call applications. 45 | 46 | 47 | Demo 48 | ---- 49 | 50 | - default : https://rtmp.ulex.fr:44129/webphone/ 51 | - no https : http://rtmp.ulex.fr/webphone/ 52 | - more looks : http://rtmp.ulex.fr/webphone/look.html 53 | 54 | 55 | 56 | Contact 57 | ------- 58 | 59 | Contact us with the Ulex web site : http://www.ulex.fr 60 | -------------------------------------------------------------------------------- /src/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Asterisk -- A telephony toolkit for Linux. 3 | # 4 | # Makefile for channel drivers 5 | # 6 | # Copyright (C) 1999-2006, Digium, Inc. 7 | # 8 | # This program is free software, distributed under the terms of 9 | # the GNU General Public License 10 | # 11 | 12 | ASTTOPDIR=$(ASTERISKDIR) 13 | FFMPEGDIR=$(FFMPEGOLDDIR) 14 | ASTMACDIR=$(ASTERISKMACROSDIR)/include 15 | 16 | include ${ASTTOPDIR}/menuselect.makeopts ${ASTTOPDIR}/menuselect.makedeps 17 | 18 | INSTALL_PREFIX := /usr 19 | INSTALL_MODULES_DIR := $(INSTALL_PREFIX)/lib/asterisk/modules 20 | MODULES_DIR := ${INSTALL_MODULES_DIR} 21 | 22 | #LIBS := -L$(FFMPEGDIR)/libavcodec -lavcodec -lssl -lcrypto -L$(LIBGEOIPDIR)/.libs -lGeoIP -ljpeg 23 | LIBS := -lssl -lcrypto -L$(LIBGEOIPDIR)/.libs -lGeoIP 24 | RPATH := -Wl,-rpath=/usr/lib/asteriskrtmp:/usr/lib/openvxi 25 | 26 | MENUSELECT_CATEGORY=CHANNELS 27 | MENUSELECT_DESCRIPTION=Channel Drivers 28 | 29 | ALL_C_MODS:=$(patsubst %.c,%,$(wildcard chan_*.c)) 30 | ALL_CC_MODS:=$(patsubst %.cc,%,$(wildcard chan_*.cc)) 31 | 32 | C_MODS:=$(filter-out $(MENUSELECT_CHANNELS),$(ALL_C_MODS)) 33 | CC_MODS:=$(filter-out $(MENUSELECT_CHANNELS),$(ALL_CC_MODS)) 34 | 35 | LOADABLE_MODS:=$(C_MODS) $(CC_MODS) 36 | 37 | ifneq ($(findstring channels,$(MENUSELECT_EMBED)),) 38 | EMBEDDED_MODS:=$(LOADABLE_MODS) 39 | LOADABLE_MODS:= 40 | endif 41 | 42 | RTMPOBJS=chan_rtmp.o flvtools.o 43 | SHAREDOS=chan_rtmp.so 44 | 45 | 46 | CFLAGS += -ggdb -march=$(LINUX_BUILD) -fPIC -DAST_MODULE=\"chan_rtmp\" -pipe -Wall -Wmissing-prototypes -Wmissing-declarations $(DEBUG) $(INCLUDE) -D_REENTRANT -D_GNU_SOURCE -Dulex 47 | RTMPCFLAGS = -I./ -I$(ASTTOPDIR)/include -I$(ASTMACDIR) -I$(LIBGEOIPDIR) 48 | 49 | # Options 50 | ifneq ($(FFMPEGDIR), "") 51 | #LIBS += -L$(FFMPEGDIR)/libavcodec -lavcodec 52 | #RTMPCFLAGS += -DRTMP_FFMPEG -I$(FFMPEGDIR) 53 | endif 54 | 55 | all: _all 56 | 57 | include $(ASTTOPDIR)/Makefile.moddir_rules 58 | 59 | clean:: 60 | rm -f $(addprefix $(RTMPOBJS).,$(ALL_C_MODS) $(ALL_CC_MODS)) 61 | 62 | chan_rtmp.o: ASTCFLAGS+=$(RTMPCFLAGS) $(CFLAGS) 63 | 64 | flvtools.o: ASTCFLAGS+=$(RTMPCFLAGS) $(CFLAGS) 65 | 66 | chan_rtmp.so : $(RTMPOBJS) 67 | $(CC) -pg -shared -Xlinker -x -o $@ $(RTMPOBJS) $(LIBS) $(RPATH) 68 | 69 | $(if $(filter chan_rtmp,$(EMBEDDED_MODS)),modules.link,chan_rtmp.so): ASTCFLAGS+=$(RTMPCFLAGS) $(CFLAGS) 70 | $(if $(filter chan_rtmp,$(EMBEDDED_MODS)),modules.link,chan_rtmp.so): chan_rtmp.o 71 | 72 | install2: all 73 | for x in $(SHAREDOS); do $(INSTALL) -m 755 $$x $(INSTALL_MODULES_DIR) ; done 74 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Asterisk is distributed under the GNU General Public License version 2 2 | and is also available under alternative licenses negotiated directly 3 | with Digium, Inc. If you obtained Asterisk under the GPL, then the GPL 4 | applies to all loadable Asterisk modules used on your system as well, 5 | except as defined below. The GPL (version 2) is included in this 6 | source tree in the file COPYING. 7 | 8 | This package also includes various components that are not part of 9 | Asterisk itself; these components are in the 'contrib' directory 10 | and its subdirectories. These components are also distributed under the 11 | GPL version 2 as well. 12 | 13 | Digium, Inc. (formerly Linux Support Services) holds copyright 14 | and/or sufficient licenses to all components of the Asterisk 15 | package, and therefore can grant, at its sole discretion, the ability 16 | for companies, individuals, or organizations to create proprietary or 17 | Open Source (even if not GPL) modules which may be dynamically linked at 18 | runtime with the portions of Asterisk which fall under our 19 | copyright/license umbrella, or are distributed under more flexible 20 | licenses than GPL. 21 | 22 | If you wish to use our code in other GPL programs, don't worry -- 23 | there is no requirement that you provide the same exception in your 24 | GPL'd products (although if you've written a module for Asterisk we 25 | would strongly encourage you to make the same exception that we do). 26 | 27 | Specific permission is also granted to link Asterisk with OpenSSL, OpenH323 28 | UniMRCP, and/or the UW IMAP Toolkit and distribute the resulting binary files. 29 | 30 | In addition, Asterisk implements several management/control protocols. 31 | This includes the Asterisk Manager Interface (AMI), the Asterisk Gateway 32 | Interface (AGI), and the Asterisk REST Interface (ARI). It is our belief 33 | that applications using these protocols to manage or control an Asterisk 34 | instance do not have to be licensed under the GPL or a compatible license, 35 | as we believe these protocols do not create a 'derivative work' as referred 36 | to in the GPL. However, should any court or other judiciary body find that 37 | these protocols do fall under the terms of the GPL, then we hereby grant you a 38 | license to use these protocols in combination with Asterisk in external 39 | applications licensed under any license you wish. 40 | 41 | The 'Asterisk' name and logos are trademarks owned by Digium, Inc., 42 | and use of them is subject to our trademark licensing policies. If you 43 | wish to use these trademarks for purposes other than simple 44 | redistribution of Asterisk source code obtained from Digium, you 45 | should contact our licensing department to determine the necessary 46 | steps you must take. For more information on this policy, please read: 47 | 48 | http://www.digium.com/en/company/profile/trademarkpolicy.php 49 | 50 | If you have any questions regarding our licensing policy, please 51 | contact us: 52 | 53 | +1.877.344.4861 (via telephone in the USA) 54 | +1.256.428.6000 (via telephone outside the USA) 55 | +1.256.864.0464 (via FAX inside or outside the USA) 56 | IAX2/pbx.digium.com (via IAX2) 57 | licensing@digium.com (via email) 58 | 59 | Digium, Inc. 60 | 445 Jan Davis Drive 61 | Huntsville, AL 35806 62 | USA 63 | -------------------------------------------------------------------------------- /web/FlashPhone.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 13 | 14 |69 | To view this page ensure that Adobe Flash Player version 70 | 0.0.0 or greater is installed. 71 |
72 | 77 |123 | To view this page ensure that Adobe Flash Player version 124 | 0.0.0 or greater is installed. 125 |
126 | 131 ||
62 |
|
65 |
|
68 | 69 | FlashPhone main parameters 70 |71 | |
72 |
| 75 | 243 | | 244 |