Richard Alam
5af6374265
Track call session state
...
Currently, we user DTMF to inform the client when the call session is in echo test and when entering the voice conference.
Unfortunately, sometimes when FS sends the DTMF, FS crashes.
Monitor the progress of the call session using ESL events and propagate to the client.
The client would be informed of these call states: CALL_STARTED, IN_ECHO_TEST, IN_CONFERENCE, CALL_ENDED.
2020-02-05 14:58:47 -08:00
Richard Alam
4c5f1c660c
Add timeout waiting for response from FreeSWITCH when sending ESL command
...
- When waiting for a response from FS after sending an ESL command and the ESL connection disconnects,
the sending thread will be blocked as the trigger for it to unblock is the response from FS which never
comes.
Add a 30 second timesout waiting for response and give up to go send a new FS ESL command.
2020-02-04 10:00:20 -08:00
Richard Alam
a29bbb250f
Track client's webrtc call session
...
- We want to be able to correlate client webrtc calls with freeswitch logs. We add extra info
on callerid which we strip out in akka-fsesl.
2019-11-13 08:49:06 -08:00
Richard Alam
9dd44ad84b
- filter our global audio users
2019-10-21 15:08:51 -07:00
Richard Alam
0261a5e2b8
- send users and recordings in one message
2019-10-21 14:29:52 -07:00
Richard Alam
1e7557562f
Sync FS user status
...
- poll FreeSWITCH for status of user so that akka-apps would be in sync with FreeSWITCH
2019-10-21 11:01:58 -07:00
Richard Alam
3395cdbdc0
Make sure we record audio if meeting is recorded
...
- We had an issue where FreeSWITCH, for some unknow reason, stopped recording the voice conference
in the middle of the meeting while there are users in the voice conference. We've relied on the
voice conf started event to trigger recording of wav files. This event is sent when the first user
joins the voice conference. In this case, there was no voice user joined after the recording stopped
as there were already users in the voice conference. TO make sure that the audio is recorded, akka-apps
will send a "check if voice conf is running and recording" message to FreeSWITCH every 30sec. If akka-apps
receives a "running=true recording=false" response from FreeSWITCH, akka-apps will send a start recording
msg to FreeSWITCH.
2019-10-17 11:50:12 -07:00
Richard Alam
aa22c629cb
Eject users by force from FreeSWITCH
...
- when meeting ends, we try to eject all users by force from freeswitch to make sure
that recording ends. However, we are not actually sending the command to freeswitch.
This change sends the command so that users can be kicked out.
2019-10-10 11:38:27 -07:00
Richard Alam
0a6701ff5b
Have only one ESL listener
...
- on auto-reconnect when FS restarts, the auto-reconnect add another
listener to the ESL client resulting in multiple handlers of ESL events
and multiple messages to akka-apps. This resulted in multiple recordings
of audio when the first user joins as akka-apps receives 2 user join events.
2019-10-10 09:50:25 -07:00
Richard Alam
0491046e7e
- stop trying to eject after several attempts if unsuccessful.
2019-10-01 14:31:47 -07:00
Richard Alam
c373dc42e8
For eject of voice conference user
...
- Sometimes ejecting voice conf users using "conference vconf kick all" doesn't work. We need to
forcefully eject the user by using "uuid_kill uuid".
2019-10-01 11:36:06 -07:00
Richard Alam
9893e352be
Add more akka fsesl logs
...
- add more logs to trace messages
- add FS status check by sending ESL message to FS
2019-09-13 10:54:56 -07:00
Richard Alam
4d42a74ea8
Add more logging
...
- FreeSWITCH core dumped and akka-fsesl managed to reconnect. However, commands (mute, unmute, record, etc.) to FS are not reaching FS.
But events (user joined, left, talking) from FS are received by akka-fsesl. Can't determine where the commands are falling off. These
extra logging hopefully helps us narrow down if this happens again.
I wasn't able to reproduce the issue when stopping and restarting FS. Akka-fsesl reconnects and command/events are flowing in both
directions.
2019-09-06 11:25:04 -07:00
Richard Alam
8cb00f457a
- track FS caller using UUID so we can find when the channel was created and destroyed.
...
This will help us hunt an issue where a channel gets stuck in a voice conference.
2019-05-30 12:07:32 -07:00
Fred Dixon
1383e741cc
Merge pull request #7464 from ritzalam/fix-deserialization-error-callingwith
...
- fix issue where akka-apps cannot deserialize the message because of…
2019-05-26 12:09:04 -04:00
Richard Alam
df55ff262d
- check if we have successfully ejected all users from the voice conference.
2019-05-24 20:24:00 -07:00
Richard Alam
75fc1e12b5
- fix issue where akka-apps cannot deserialize the message bcause of the null field.
2019-05-17 13:53:42 -07:00
Richard Alam
bf7898225b
- minor cleanup
2019-04-30 12:30:59 -07:00
Richard Alam
17b8229afc
- add redis password to fsesl
2019-04-05 11:35:05 -07:00
Richard Alam
8d4122cece
- enable scalariforn for fsesl-akka
2019-03-27 13:33:22 -07:00
Ghazi Triki
0bad0747be
Update scala, sbt and akka version to the latest.
2018-12-16 20:18:37 +01:00
Ghazi Triki
78f5b2715d
Improve akka-bbb-fsesl packaging.
2018-12-14 15:15:19 +01:00
Richard Alam
71da5e6cac
Merge pull request #6383 from ritzalam/try-to-fix-akka-logging
...
- minimize logging of redis connection
2018-12-11 17:08:35 -05:00
Richard Alam
3f9dc6655a
- minimize logging of redis connection
2018-12-11 14:06:09 -08:00
Richard Alam
2f383512c8
Merge pull request #6382 from ritzalam/try-to-fix-akka-logging
...
Try to fix akka logging
2018-12-11 16:47:16 -05:00
Richard Alam
c69fb9d585
- try to fix logging for akka fsesl
2018-12-11 13:45:45 -08:00
Ghazi Triki
9569704254
Exclude red5 dependencies from akka and web projects.
2018-12-10 20:32:08 +01:00
Ghazi Triki
575c77d991
Minor edits to build.sbt
2018-12-10 19:18:32 +01:00
Ghazi Triki
5a9f74c88d
Fix akka applications packaging configuration.
2018-12-10 19:10:46 +01:00
Ghazi Triki
fd959f9e14
Remove rediscala library and replace it by a lettuce implementation.
2018-12-05 20:21:06 +01:00
Ghazi Triki
2614ba2cd0
Update deployment configuration.
2018-11-22 12:54:40 -02:00
Ghazi Triki
fbd1d631d6
Move redis communication classes from red5 applications to bbb-apps-common project.
2018-11-21 10:55:06 -02:00
Ghazi Triki
8e10280614
Fix configuration for akka and bbb-web projects.
2018-11-14 20:18:12 +01:00
Ghazi Triki
fc4028d6de
Redis refactoring : remove duplicate classes, factorisation and build configuration update.
2018-11-09 20:19:46 +01:00
Richard Alam
cc6f88d020
- my IntelliJ IDE seems to format differently with Ghazi's
...
- fix screenshare redis connection error
- fix bbb-web create meeting exception when second user joins
2018-09-13 13:08:49 -07:00
Ghazi Triki
83025a9d5e
Merge remote-tracking branch 'bigbluebutton/master' into jvm-quality-improve
...
# Conflicts:
# bbb-common-web/src/main/java/org/bigbluebutton/presentation/imp/ImageToSwfSlidesGenerationService.java
2018-09-12 18:49:25 +01:00
Anton Georgiev
1462810b96
Merge branch 'v2.0.x-release' of github.com:bigbluebutton/bigbluebutton into merge-2.0
2018-09-06 22:06:40 +00:00
Felipe Cecagno
4857382969
fsesl wait for freeswitch; change links by depends_on; remove freeswitch ipv6 config files; enable wss-binding element on freeswitch; fix kurento listen only
2018-08-24 17:15:47 -03:00
Felipe Cecagno
232c485762
revert some unneeded changes
2018-08-24 17:15:47 -03:00
Felipe Cecagno
b91c13e054
update instructions and implementation of a working docker-compose (no recordings yet)
2018-08-24 17:15:47 -03:00
Felipe Cecagno
62311387b8
more changes to configure redis using environment variables
2018-08-24 17:15:47 -03:00
Felipe Cecagno
c2e507713a
add a few docker containers definitions and compiled a list of what is still missing
2018-08-24 17:15:47 -03:00
Ghazi Triki
2820178b83
Updated JVM projects dependencies and configuration.
2018-08-05 22:37:11 +01:00
Richard Alam
a2eaa9babd
Merge branch 'master' of github.com:bigbluebutton/bigbluebutton into 21-and-20-merge-working-branch
...
- some conflicts have been fixed.
The following needs working on:
both modified: ../bigbluebutton-client/src/org/bigbluebutton/modules/chat/services/ChatCopy.as
both modified: ../bigbluebutton-client/src/org/bigbluebutton/modules/chat/services/ChatSaver.as
both modified: ../bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/ChatTab.mxml
both modified: ../bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/ChatWindowEventHandler.as
both modified: ../bigbluebutton-client/src/org/bigbluebutton/modules/users/services/MessageReceiver.as
both modified: ../bigbluebutton-client/src/org/bigbluebutton/modules/users/services/MessageSender.as
both modified: ../bigbluebutton-client/src/org/bigbluebutton/modules/users/views/MediaItemRenderer.mxml
Parking as need to work on something else.
2018-06-06 08:23:13 -07:00
Richard Alam
b352ee2c95
- change log timestamp format so they are all the same
2018-05-15 10:50:40 -07:00
Richard Alam
c14a946041
- generate recording path in akka-apps for audio
2017-10-26 14:07:22 -07:00
Richard Alam
1968756f73
- update fsesl lib jar version
2017-10-20 08:35:50 -07:00
Richard Alam
e01692c40b
- send voice conf started and destroyed message
2017-10-19 17:18:50 -07:00
Richard Alam
33e1cb0b4f
- indicate thru the userId that a user is calling through the phone.
2017-09-01 12:06:38 -07:00
Anton Georgiev
19355eef41
Merge pull request #4249 from antobinary/audio-state
...
Handle renamed stop_talking_handler event from FreeSWITCH
2017-08-17 12:20:43 -04:00
Anton Georgiev
47ab72de88
handle renamed stop_talking_handler event from FreeSWITCH
2017-08-16 10:17:23 -04:00
Richard Alam
7956b561d2
- remove some printlns to minimize noise
2017-08-11 11:22:26 -07:00
Richard Alam
f2c7826772
- removing old pubsub
2017-07-12 11:52:46 -07:00
Richard Alam
d48f46c5e7
- try renaming deskshare to screenshare
2017-07-12 10:50:27 -07:00
Richard Alam
b04519ef0f
FreeSWITCH webrtc screenshare
...
- use webrtc screenshare using FS Verto
- publish screenshare as rtmp to red5
- flash clients view screenshare from red5 rtmp
Fix mute/unmute/talking of user in voice conference
2017-07-11 13:31:56 -07:00
Richard Alam
40d00282f5
- send deskshare messages from fsesl
2017-07-10 19:17:51 -07:00
Richard Alam
507cc69939
- fix compile issues
2017-07-07 14:51:25 -07:00
Richard Alam
c2c6b19e95
- group messages into it's own file
2017-06-28 07:23:49 -07:00
Richard Alam
99046fb685
- handle emoji status changed message in client
2017-06-26 12:38:00 -07:00
Richard Alam
ae4fc536b1
- fix use leaving voice conf
2017-06-24 06:47:19 -07:00
Richard Alam
d0343b40d2
- delay processing of pre-uploaded presentation to make sure that meeting has been created before
...
presentation conversion has completed.
2017-06-19 13:04:07 -07:00
Ghazi Triki
c7c39989a3
Added all breakout rooms events handlers in akka-bbb-apps project.
2017-06-19 16:57:36 +01:00
Richard Alam
b192327d7e
- put back old voice conf message as duplicate so we can have a working client
2017-06-12 14:24:23 -07:00
Richard Alam
35b449b199
- create new status models
2017-06-10 11:11:22 -07:00
Richard Alam
e69b451a7b
- cleanup
2017-06-09 13:30:52 -07:00
Richard Alam
4727eb8e8e
- send messages from fs to akka apps
2017-06-09 11:04:17 -07:00
Richard Alam
1ccf71cad7
- add new voice conf messages
2017-06-08 17:55:27 -07:00
Ghazi Triki
08ff58f2b4
Fix akka-bbb-fsesl build.sbt and upgrade scala to 2.12.2 and akka to 2.5.1
2017-06-01 15:00:32 +01:00
Richard Alam
467598ffd2
- turn off keep alive message
2017-05-23 17:36:05 -07:00
Richard Alam
b8de0c9231
- add authorized role to registered user
2017-04-17 21:23:17 +00:00
Pedro Beschorner Marin
c74cc682c4
Merge remote-tracking branch 'mconf/mconf'
2017-03-20 19:45:59 +00:00
Richard Alam
1e8d7a5229
Merge branch 'master' of github.com:bigbluebutton/bigbluebutton into try-to-cleanup-connection
...
Conflicts:
akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/BreakoutRoomApp.scala
2016-10-21 19:36:07 +00:00
Richard Alam
5ba3405941
- remove defunct connection when client auto-reconnects.
2016-10-20 15:08:58 +00:00
Ghazi Triki
b10237ebad
Upgrade commons-codec dependency version to 1.10
2016-10-05 17:29:37 +01:00
Ghazi Triki
1d34bda5c2
Force audio profile in freeswitch transfer command.
2016-09-21 21:10:44 +01:00
perroned
0e3096d00d
Merge remote-tracking branch 'upstream/master' into merge-webrtc-screenshare-2
2016-08-05 18:45:59 +00:00
Richard Alam
8e9b16776c
Joining voice conf of breakout room
...
A moderator should be able to listen-in on the breakout room. During a previous merge, the
handler of the transfer message in FSESL was accidentally removed. The user isn't able to
the breakout room's voice conference anymore.
2016-08-05 13:58:07 +00:00
Anton Georgiev
2ae55432fd
deskshare transition to webrtc screenshare changes
2016-07-29 16:16:55 +00:00
Anton Georgiev
01e0c99c58
subscribe for -DESKSHARE in meeting, adjust for liveMeeting
2016-07-20 21:39:36 +00:00
Richard Alam
58c239bc43
Merge branch 'master' into merge-bbb-1.1-dev-java8-with-master
...
Conflicts:
akka-bbb-apps/build.sbt
akka-bbb-apps/src/main/java/org/bigbluebutton/core/api/IBigBlueButtonInGW.java
akka-bbb-apps/src/main/resources/application.conf
akka-bbb-apps/src/main/scala/org/bigbluebutton/Boot.scala
akka-bbb-apps/src/main/scala/org/bigbluebutton/core/BigBlueButtonActor.scala
akka-bbb-apps/src/main/scala/org/bigbluebutton/core/BigBlueButtonInGW.scala
akka-bbb-apps/src/main/scala/org/bigbluebutton/core/MeetingActor.scala
akka-bbb-apps/src/main/scala/org/bigbluebutton/core/MeetingModel.scala
akka-bbb-apps/src/main/scala/org/bigbluebutton/core/MessageSenderActor.scala
akka-bbb-apps/src/main/scala/org/bigbluebutton/core/RecorderActor.scala
akka-bbb-apps/src/main/scala/org/bigbluebutton/core/api/InMessages.scala
akka-bbb-apps/src/main/scala/org/bigbluebutton/core/api/OutMessages.scala
akka-bbb-apps/src/main/scala/org/bigbluebutton/core/api/ValueObjects.scala
akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/WhiteboardApp.scala
akka-bbb-fsesl/build.sbt
akka-bbb-fsesl/src/main/java/org/bigbluebutton/freeswitch/pubsub/receivers/RedisMessageReceiver.java
akka-bbb-fsesl/src/main/java/org/bigbluebutton/freeswitch/voice/freeswitch/ConnectionManager.java
akka-bbb-fsesl/src/main/java/org/bigbluebutton/freeswitch/voice/freeswitch/FreeswitchApplication.java
bbb-common-message/build.sbt
bbb-common-message/src/main/java/org/bigbluebutton/common/messages/Constants.java
bbb-common-message/src/main/java/org/bigbluebutton/common/messages/MessagingConstants.java
bbb-common-message/src/main/java/org/bigbluebutton/common/messages/Util.java
bigbluebutton-apps/build.gradle
bigbluebutton-apps/src/main/java/org/bigbluebutton/red5/pubsub/redis/RedisPubSubMessageHandler.java
bigbluebutton-apps/src/main/webapp/WEB-INF/red5-web.xml
bigbluebutton-client/build.xml
bigbluebutton-client/resources/config.xml.template
bigbluebutton-client/resources/prod/BigBlueButton.html
bigbluebutton-client/src/org/bigbluebutton/common/Images.as
bigbluebutton-client/src/org/bigbluebutton/main/maps/ApplicationEventMap.mxml
bigbluebutton-client/src/org/bigbluebutton/main/model/users/Conference.as
bigbluebutton-client/src/org/bigbluebutton/modules/deskshare/utils/JavaCheck.as
bigbluebutton-client/src/org/bigbluebutton/modules/users/services/MessageReceiver.as
bigbluebutton-web/build.gradle
bigbluebutton-web/grails-app/conf/spring/resources.xml
bigbluebutton-web/grails-app/controllers/org/bigbluebutton/web/controllers/ApiController.groovy
bigbluebutton-web/src/java/org/bigbluebutton/api/MeetingService.java
bigbluebutton-web/src/java/org/bigbluebutton/api/domain/Meeting.java
bigbluebutton-web/src/java/org/bigbluebutton/api/messaging/MeetingMessageHandler.java
bigbluebutton-web/src/java/org/bigbluebutton/api/messaging/RedisMessagingService.java
record-and-playback/core/scripts/bigbluebutton.yml
2016-05-16 11:35:36 -04:00
Richard Alam
7ae9b7b204
Merge branch 'merge-webrtc-ds' of https://github.com/antobinary/bigbluebutton into antobinary-merge-webrtc-ds
...
Conflicts:
akka-bbb-apps/build.sbt
akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/UsersApp.scala
akka-bbb-fsesl/build.sbt
akka-bbb-fsesl/src/main/java/org/bigbluebutton/freeswitch/voice/freeswitch/ESLEventListener.java
akka-bbb-fsesl/src/main/scala/org/bigbluebutton/freeswitch/VoiceConferenceService.scala
bbb-common-message/build.sbt
bbb-common-message/src/main/java/org/bigbluebutton/common/messages/Constants.java
bbb-common-message/src/main/java/org/bigbluebutton/common/messages/Util.java
bigbluebutton-apps/build.gradle
bigbluebutton-web/grails-app/conf/spring/resources.xml
bigbluebutton-web/src/java/org/bigbluebutton/api/MeetingService.java
2016-05-20 20:27:52 +00:00
Richard Alam
433f09f72d
Merge branch 'dfengBBB' of https://github.com/dfeng99/bigbluebutton into dfeng99-dfengBBB
...
Conflicts:
bbb-common-message/build.sbt
bigbluebutton-web/src/java/org/bigbluebutton/api/MeetingService.java
2016-05-20 15:40:50 +00:00
Anton Georgiev
228dfb4061
Merge branch 'mod-verto-1' of github.com:antobinary/bigbluebutton into merge-webrtc-ds
...
Conflicts:
akka-bbb-apps/build.sbt
akka-bbb-apps/src/main/resources/application.conf
akka-bbb-apps/src/main/scala/org/bigbluebutton/SystemConfiguration.scala
akka-bbb-apps/src/main/scala/org/bigbluebutton/core/MessageSenderActor.scala
akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/UsersApp.scala
akka-bbb-fsesl/build.sbt
bbb-common-message/build.sbt
bbb-fsesl-client/build.sbt
bbb-fsesl-client/src/main/java/org/freeswitch/esl/client/inbound/Client.java
bigbluebutton-apps/build.gradle
bigbluebutton-client/build.xml
bigbluebutton-client/src/org/bigbluebutton/modules/deskshare/utils/BrowserCheck.as
bigbluebutton-client/src/org/bigbluebutton/modules/deskshare/utils/JavaCheck.as
bigbluebutton-client/src/org/bigbluebutton/modules/deskshare/view/components/DesktopPublishWindow.mxml
bigbluebutton-client/src/org/bigbluebutton/modules/users/services/MessageReceiver.as
bigbluebutton-html5/app/client/NotificationControl.coffee
bigbluebutton-html5/app/client/globals.coffee
bigbluebutton-html5/app/client/lib/bbb_api_bridge.coffee
bigbluebutton-html5/app/client/main.coffee
bigbluebutton-html5/app/client/main.html
bigbluebutton-html5/app/client/stylesheets/whiteboard.less
bigbluebutton-html5/app/client/views/chat/chat_bar.coffee
bigbluebutton-html5/app/client/views/modals/settings.coffee
bigbluebutton-html5/app/client/views/modals/settings.html
bigbluebutton-html5/app/client/views/users/user_item.coffee
bigbluebutton-html5/app/client/views/whiteboard/whiteboard.coffee
bigbluebutton-html5/app/client/views/whiteboard/whiteboard.html
bigbluebutton-html5/app/collections/collections.coffee
bigbluebutton-html5/app/config.coffee
bigbluebutton-html5/app/lib/router.coffee
bigbluebutton-html5/app/server/collection_methods/meetings.coffee
bigbluebutton-html5/app/server/collection_methods/users.coffee
bigbluebutton-html5/app/server/publish.coffee
bigbluebutton-html5/app/server/server.coffee
bigbluebutton-web/src/java/org/bigbluebutton/api/MeetingService.java
record-and-playback/presentation/scripts/process/presentation.rb
record-and-playback/presentation/scripts/publish/presentation.rb
2016-05-18 15:14:04 +00:00
Chad Pilkey
24c6d48dc2
removing files that should not have been committed
2016-05-02 12:45:25 -07:00
Richard Alam
b86f32b8c1
Sync with upstream repository
...
Merge branch 'master' of github.com:bigbluebutton/bigbluebutton
2016-04-26 20:01:20 -04:00
Ghaz Triki
11d86f6aa8
Merge 'branch air-ui' into 'mobile-client'
2016-04-26 09:19:17 +01:00
David Feng
67c14f9056
This enable avatar to be display in other participants video window
2016-04-20 14:08:13 +08:00
Anton Georgiev
095680cd46
resolve import issues
2016-03-30 17:34:34 -04:00
Richard Alam
a684aa4dfc
Merge into bbb-1.1.dev
...
Merge master, breakout rooms, and closed captioning into bbb-1.1-dev branch.
Conflicts:
akka-bbb-apps/src/main/java/org/bigbluebutton/core/api/IBigBlueButtonInGW.java
akka-bbb-apps/src/main/scala/org/bigbluebutton/core/api/MessageNames.scala
bigbluebutton-client/src/org/bigbluebutton/main/model/users/NetConnectionDelegate.as
2016-03-21 18:12:30 +00:00
Anton Georgiev
12d61d0ddc
remove unused classes
2016-02-04 20:53:43 +00:00
Ghazi Triki
2fb347bc25
Refactored the way that conference transfer between the parent room and breakout room is requested.
2016-02-03 22:30:08 +01:00
Anton Georgiev
0cdea4d9f0
add FreeSWITCH deskshare related conf
2016-02-03 20:00:29 +00:00
Pedro Beschorner Marin
e9cc024e5e
Added exception handlers to deskshare actors and refactored the akka ones
2016-02-03 18:41:49 +00:00
Anton Georgiev
21f2d7a788
limit -DESKSHARE to fsesl only, not akka-bbb-apps
2016-01-29 20:52:14 +00:00
Ghazi Triki
eb0243634f
Make sure that TransferUsetToMeetingCommand is executed by freeswitch.
2016-01-28 21:28:12 +01:00
Ghazi Triki
2968f69939
Fixed conference transfer command syntax for getCommandArgs method.
2016-01-28 20:12:10 +01:00
Pedro Beschorner Marin
d74c571958
Akka actors now print and log the exceptions and are kept alive
2016-01-28 18:15:24 +00:00
Ghazi Triki
edef66357c
Fixed TransferUserToVoiceConfRequestMessage properties names.
2016-01-28 19:11:43 +01:00
Ghazi Triki
cda1e800d2
Deleted non exisint class from import in RedisMessageReceiver.java
2016-01-28 15:04:46 +01:00
Anton Georgiev
08d6ee36f9
recover videoWidth, videoHeight params
2016-01-27 21:42:10 +00:00