Openvidu Call not working on iPhone-6 Safari

First user logged in at desktop with screen sharing and camera.
Second user logged in iPhone 6 version 12.4.7 with sharing camera only.

Desktop user was able to see all three videos running (self video, iPhone user video and screen sharing video)
but iPhone user is only able to see Screen i.e. shared by desktop user and the self video running but other user video is paused and not able to click on full screen button.

iPhone screen resolution: 375*553 > all 3 volume buttons are not properly visible at this resolution.

Have you tested with 4G Data or Wifi?

Could you test with both and check if the result is the same?

Share the iPhone browser logs with us please

Yes on 4G Data & Wifi results are same on both while using this:
https://demos.openvidu.io/openvidu-call/

Share the iPhone browser logs and openvidu-server log please

Hello @rahulnagpal,

We just tested and reproduced your problem with OpenVidu Call.

We’ve used AWS Device Farm to check and test with different devices and the results are the following:

TEST CASE:

  1. User PC (Chrome) join to the room with webcam

  2. User iPhone (Safari) join to the room with front camera

  3. User PC share screen

iPhone 6 (11.4.1) :
After userPC shares the screen, the user iPhone can’t see the webcam from user PC (it’s freeze)
Unpublish and republish the userPC camera, from the iPhone view, the userPC webcam come back to live

iPhone X (12.0) :

Same behaviour

iPhone X (13.1.3) :

Issue doesn’t happen

iPhone 7 (13.3):

Issue doesn’t happen.

To sum up, this issue is related with iOS versions less than 13. You should update your OS system to fix the several bugs that Safari and iOS have with WebRTC.

Thanks for your reply in my iPhone 6 my phone is updated with the latest security patch of 12.4.7, there is no any further update showing in my phone.

I have fixed this issue by applied this below patch.
But now when we start meeting using 4-5 iPhones and 7-8 desktop users, on iPhone it stop working after sometimes and page reloads automatically.
Only one desktop user sharing screen and webcam rest all users are communicated via audio, still it is not able to sustain a connection for a long.

var isMobile = false; //initiate as false
// device detection
if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.userAgent) 
            || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(navigator.userAgent.substr(0,4))) { 
            isMobile = true;
}

setInterval(function(){playAllVideos()}, 2000);

     function playAllVideos(){
            if( !isMobile) return;
            $('video').each(function(){
                var rm = $(this).parent().parent().parent().parent();
                if($(rm).height()<96) $(rm).css('height', '96px');
                if($(rm).css('display')!='none' && $(this)[0].paused){
                    $(this)[0].muted=true;
                    $(this)[0].play();
                    if($(rm).find('#volumeButton mat-icon').hasClass('mat-warn')==false){
                        $(this)[0].muted=false;
                    }
                }
            });
        }
1 Like

Error logs would be nice.

This could happen because you’re overload the browser with the setInterval.

redis server also got stop working after a day and need to restart openvidu

redis_1            | 1:M 02 Jul 2020 05:38:59.109 * DB saved on disk
redis_1            | 1:M 02 Jul 2020 05:39:02.846 * DB saved on disk
redis_1            | 1:M 02 Jul 2020 05:39:06.997 * DB saved on disk
redis_1            | 1:M 02 Jul 2020 05:39:10.473 * DB saved on disk
redis_1            | 1:M 02 Jul 2020 05:39:14.631 * DB saved on disk
redis_1            | 1:M 02 Jul 2020 05:39:18.549 * DB saved on disk
redis_1            | 1:M 02 Jul 2020 05:39:24.634 * DB saved on disk
redis_1            | 1:M 02 Jul 2020 05:39:28.693 * DB saved on disk
redis_1            | 1:S 02 Jul 2020 05:39:31.987 * Before turning into a replica, using my master parameters to synthesize a cached master: I may be able to synchronize with the new master with just a partial transfer.
redis_1            | 1:S 02 Jul 2020 05:39:31.987 * REPLICAOF 93.189.43.3:8886 enabled (user request from 'id=296 addr=95.215.108.217:38495 fd=14 name= age=0 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=45 qbuf-free=32723 obl=0 oll=0 omem=0 events=r cmd=slaveof')
redis_1            | 1:S 02 Jul 2020 05:39:32.000 * REPLICAOF would result into synchronization with the master we are already connected with. No operation performed.
redis_1            | 1:S 02 Jul 2020 05:39:32.019 * REPLICAOF would result into synchronization with the master we are already connected with. No operation performed.
redis_1            | 1:M 02 Jul 2020 05:39:32.733 # Setting secondary replication ID to cf455a3a0f101cd8434efbe920ef968b49f93229, valid up to offset: 1. New replication ID is 8d1a4438a3ba9f0d3f9cd23c715e3cfd85a0818c
redis_1            | 1:M 02 Jul 2020 05:39:32.733 * Discarding previously cached master state.
redis_1            | 1:M 02 Jul 2020 05:39:32.733 * MASTER MODE enabled (user request from 'id=300 addr=212.8.247.179:35502 fd=17 name= age=0 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=34 qbuf-free=32734 obl=0 oll=0 omem=0 events=r cmd=slaveof')
redis_1            | 1:S 02 Jul 2020 05:39:32.895 * Before turning into a replica, using my master parameters to synthesize a cached master: I may be able to synchronize with the new master with just a partial transfer.
redis_1            | 1:S 02 Jul 2020 05:39:32.895 * REPLICAOF 93.189.43.3:8886 enabled (user request from 'id=300 addr=212.8.247.179:35502 fd=17 name= age=0 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=45 qbuf-free=32723 obl=0 oll=0 omem=0 events=r cmd=slaveof')
redis_1            | 1:S 02 Jul 2020 05:39:32.912 * Connecting to MASTER 93.189.43.3:8886
redis_1            | 1:S 02 Jul 2020 05:39:32.913 * MASTER <-> REPLICA sync started
redis_1            | 1:S 02 Jul 2020 05:39:33.915 # Error condition on socket for SYNC: Connection refused
redis_1            | 1:S 02 Jul 2020 05:39:33.917 * Connecting to MASTER 93.189.43.3:8886
redis_1            | 1:S 02 Jul 2020 05:39:33.917 * MASTER <-> REPLICA sync started
redis_1            | 1:S 02 Jul 2020 05:39:34.919 # Error condition on socket for SYNC: Connection refused
redis_1            | 1:S 02 Jul 2020 05:39:34.923 * Connecting to MASTER 93.189.43.3:8886
redis_1            | 1:S 02 Jul 2020 05:39:34.923 * MASTER <-> REPLICA sync started
redis_1            | 1:S 02 Jul 2020 05:39:35.925 # Error condition on socket for SYNC: Connection refused
redis_1            | 1:S 02 Jul 2020 05:39:35.927 * Connecting to MASTER 93.189.43.3:8886
redis_1            | 1:S 02 Jul 2020 05:39:35.928 * MASTER <-> REPLICA sync started
redis_1            | 1:S 02 Jul 2020 05:39:36.929 # Error condition on socket for SYNC: Connection refused
redis_1            | 1:S 02 Jul 2020 05:39:36.932 * Connecting to MASTER 93.189.43.3:8886
redis_1            | 1:S 02 Jul 2020 05:39:36.932 * MASTER <-> REPLICA sync started
redis_1            | 1:S 02 Jul 2020 05:39:37.933 # Error condition on socket for SYNC: Connection refused
redis_1            | 1:S 02 Jul 2020 05:39:37.938 * Connecting to MASTER 93.189.43.3:8886
redis_1            | 1:S 02 Jul 2020 05:39:37.938 * MASTER <-> REPLICA sync started
redis_1            | 1:S 02 Jul 2020 05:39:38.941 # Error condition on socket for SYNC: Connection refused
redis_1            | 1:S 02 Jul 2020 05:39:38.943 * Connecting to MASTER 93.189.43.3:8886
redis_1            | 1:S 02 Jul 2020 05:39:38.943 * MASTER <-> REPLICA sync started
redis_1            | 1:S 02 Jul 2020 05:39:39.302 # Module ./red2.so failed to load: ./red2.so: invalid ELF header
redis_1            | 1:S 02 Jul 2020 05:39:39.320 # Module ./red2.so failed to load: ./red2.so: invalid ELF header
redis_1            | 1:S 02 Jul 2020 05:39:39.352 # Module ./red2.so failed to load: ./red2.so: invalid ELF header
redis_1            | 1:M 02 Jul 2020 05:39:39.459 # Setting secondary replication ID to 8d1a4438a3ba9f0d3f9cd23c715e3cfd85a0818c, valid up to offset: 1. New replication ID is db239d036c2d89371d03f826d5cb272e1bc70eaf
redis_1            | 1:M 02 Jul 2020 05:39:39.459 * Discarding previously cached master state.
redis_1            | 1:M 02 Jul 2020 05:39:39.460 * MASTER MODE enabled (user request from 'id=296 addr=95.215.108.217:38495 fd=14 name= age=8 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=34 qbuf-free=32734 obl=0 oll=0 omem=0 events=r cmd=slaveof')
redis_1            | 1:M 02 Jul 2020 05:39:40.218 # Module ./red2.so failed to load: ./red2.so: invalid ELF header
redis_1            | 1:S 02 Jul 2020 06:32:44.966 * Before turning into a replica, using my master parameters to synthesize a cached master: I may be able to synchronize with the new master with just a partial transfer.
redis_1            | 1:S 02 Jul 2020 06:32:44.966 * REPLICAOF 185.244.39.112:55882 enabled (user request from 'id=304 addr=185.244.39.112:25656 fd=13 name= age=0 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=49 qbuf-free=32719 obl=0 oll=0 omem=0 events=r cmd=slaveof')
redis_1            | 1:S 02 Jul 2020 06:32:45.129 * Connecting to MASTER 185.244.39.112:55882
redis_1            | 1:S 02 Jul 2020 06:32:45.130 * MASTER <-> REPLICA sync started
redis_1            | 1:S 02 Jul 2020 06:32:45.204 # Error condition on socket for SYNC: Connection refused
redis_1            | 1:S 02 Jul 2020 06:32:46.134 * Connecting to MASTER 185.244.39.112:55882
redis_1            | 1:S 02 Jul 2020 06:32:46.135 * MASTER <-> REPLICA sync started
redis_1            | 1:S 02 Jul 2020 06:32:46.212 # Error condition on socket for SYNC: Connection refused
redis_1            | 1:S 02 Jul 2020 06:32:47.139 * Connecting to MASTER 185.244.39.112:55882
redis_1            | 1:S 02 Jul 2020 06:32:47.139 * MASTER <-> REPLICA sync started
redis_1            | 1:S 02 Jul 2020 06:32:47.215 * Non blocking connect for SYNC fired the event.
redis_1            | 1:S 02 Jul 2020 06:32:47.291 * Master replied to PING, replication can continue...
redis_1            | 1:S 02 Jul 2020 06:32:47.443 * Trying a partial resynchronization (request db239d036c2d89371d03f826d5cb272e1bc70eaf:1).
redis_1            | 1:S 02 Jul 2020 06:32:47.521 * Full resync from master: ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ:0
redis_1            | 1:S 02 Jul 2020 06:32:47.522 * Discarding previously cached master state.
redis_1            | 1:S 02 Jul 2020 06:32:47.526 * MASTER <-> REPLICA sync: receiving 1578199 bytes from master
redis_1            | 1:S 02 Jul 2020 06:32:48.072 * MASTER <-> REPLICA sync: Flushing old data
redis_1            | 1:S 02 Jul 2020 06:32:48.072 * MASTER <-> REPLICA sync: Loading DB in memory
redis_1            | 1:S 02 Jul 2020 06:32:48.072 # Wrong signature trying to load DB from file
redis_1            | 1:S 02 Jul 2020 06:32:48.072 # Failed trying to load the MASTER synchronization DB from disk
redis_1            | 1:S 02 Jul 2020 06:32:48.144 * Connecting to MASTER 185.244.39.112:55882
redis_1            | 1:S 02 Jul 2020 06:32:48.144 * MASTER <-> REPLICA sync started
redis_1            | 1:S 02 Jul 2020 06:32:48.220 * Non blocking connect for SYNC fired the event.
redis_1            | 1:M 02 Jul 2020 06:32:49.907 # Setting secondary replication ID to db239d036c2d89371d03f826d5cb272e1bc70eaf, valid up to offset: 1. New replication ID is 8c5d60ea0a3ac7731dc357a8cc24ac9b8e504798
redis_1            | 1:M 02 Jul 2020 06:32:49.907 * MASTER MODE enabled (user request from 'id=304 addr=185.244.39.112:25656 fd=13 name= age=5 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=34 qbuf-free=32734 obl=0 oll=0 omem=0 events=r cmd=slaveof')
redis_1            | 1:S 02 Jul 2020 06:32:50.271 * Before turning into a replica, using my master parameters to synthesize a cached master: I may be able to synchronize with the new master with just a partial transfer.
redis_1            | 1:S 02 Jul 2020 06:32:50.271 * REPLICAOF 185.244.39.112:43261 enabled (user request from 'id=306 addr=185.244.39.112:25744 fd=13 name= age=0 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=49 qbuf-free=32719 obl=0 oll=0 omem=0 events=r cmd=slaveof')
redis_1            | 1:S 02 Jul 2020 06:32:51.158 * Connecting to MASTER 185.244.39.112:43261
redis_1            | 1:S 02 Jul 2020 06:32:51.158 * MASTER <-> REPLICA sync started
redis_1            | 1:S 02 Jul 2020 06:32:51.233 # Error condition on socket for SYNC: Connection refused
redis_1            | 1:S 02 Jul 2020 06:32:52.162 * Connecting to MASTER 185.244.39.112:43261
redis_1            | 1:S 02 Jul 2020 06:32:52.162 * MASTER <-> REPLICA sync started
redis_1            | 1:S 02 Jul 2020 06:32:52.237 # Error condition on socket for SYNC: Connection refused
redis_1            | 1:S 02 Jul 2020 06:32:53.166 * Connecting to MASTER 185.244.39.112:43261
redis_1            | 1:S 02 Jul 2020 06:32:53.166 * MASTER <-> REPLICA sync started
redis_1            | 1:S 02 Jul 2020 06:32:53.244 * Non blocking connect for SYNC fired the event.
redis_1            | 1:S 02 Jul 2020 06:32:53.319 * Master replied to PING, replication can continue...
redis_1            | 1:S 02 Jul 2020 06:32:53.470 * Trying a partial resynchronization (request 8c5d60ea0a3ac7731dc357a8cc24ac9b8e504798:1).
redis_1            | 1:S 02 Jul 2020 06:32:53.546 * Full resync from master: ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ:0
redis_1            | 1:S 02 Jul 2020 06:32:53.546 * Discarding previously cached master state.
redis_1            | 1:S 02 Jul 2020 06:32:53.551 * MASTER <-> REPLICA sync: receiving 42680 bytes from master
redis_1            | 1:S 02 Jul 2020 06:32:53.621 * MASTER <-> REPLICA sync: Flushing old data
redis_1            | 1:S 02 Jul 2020 06:32:53.621 * MASTER <-> REPLICA sync: Loading DB in memory
redis_1            | 1:S 02 Jul 2020 06:32:53.621 # Wrong signature trying to load DB from file
redis_1            | 1:S 02 Jul 2020 06:32:53.622 # Failed trying to load the MASTER synchronization DB from disk
redis_1            | 1:S 02 Jul 2020 06:32:54.170 * Connecting to MASTER 185.244.39.112:43261
redis_1            | 1:S 02 Jul 2020 06:32:54.170 * MASTER <-> REPLICA sync started
redis_1            | 1:S 02 Jul 2020 06:32:54.247 * Non blocking connect for SYNC fired the event.
redis_1            | 1:S 02 Jul 2020 06:32:55.548 * Module 'system' loaded from /tmp/exp_lin.so
redis_1            | 1:M 02 Jul 2020 06:32:55.623 # Setting secondary replication ID to 8c5d60ea0a3ac7731dc357a8cc24ac9b8e504798, valid up to offset: 1. New replication ID is d718d500554e9843e4fb7c0a3ca8d20bb8a46f9d
redis_1            | 1:M 02 Jul 2020 06:32:55.623 * MASTER MODE enabled (user request from 'id=306 addr=185.244.39.112:25744 fd=13 name= age=5 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=34 qbuf-free=32734 obl=0 oll=0 omem=0 events=r cmd=slaveof')
redis_1            | sh: 1: killall: not found

Open a different post

Thread is already exist but no one reply over their: