Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ApprtcDemo on local server works between browsers and Android but NOT on iOS

I'm trying to make a call with webrtc between iPhone to browser with ApprtcDemo

everything works fine through apprtc.appspot.com. but when i ran the app on my server, I was able to make a call between browsers and with the help of this post, I made a call between browser to android.

I can't make the call between iPhone to browser…

changes to code:

in APPRTCAppClient.m:

//NSString *path = [NSString stringWithFormat:@"https:%@", [url resourceSpecifier]];
  NSString *path = [NSString stringWithFormat:@"http:%@", [url resourceSpecifier]];

//NSString *url = [NSString stringWithFormat:@"%@/%@", self.baseURL, self.postMessageUrl];
  NSString *url = [NSString stringWithFormat:@"http://xxx.xx.x.xx:9090%@", self.postMessageUrl];

//[request addValue:@"https://apprtc.appspot.com" forHTTPHeaderField:@"origin"];
  [request addValue:@"http://xxx.xx.x.xx:9090" forHTTPHeaderField:@"origin"];

in APPRTCViewController.m:

//NSString *url = [NSString stringWithFormat:@"apprtc://apprtc.appspot.com/?r=%@", room];
  NSString *url = [NSString stringWithFormat:@"apprtc://xxx.xx.x.xx:9090/?r=%@", room];

in ios_channel.html:

//<script type="text/javascript" src="http://apprtc.appspot.com/_ah/channel/jsapi"></script>
  <script type="text/javascript" src="http://xxx.xx.x.xx:9090/_ah/channel/jsapi"></script>

when I try to connect to the room (from iPhone) on my server I get this log messages:

INFO     2014-02-11 07:11:53,911 apprtc.py:350] IN CLASS MainPage
INFO     2014-02-11 07:11:53,927 apprtc.py:246] IN CLASS Room: add_user
INFO     2014-02-11 07:11:53,941 apprtc.py:77] create_channel
INFO     2014-02-11 07:11:53,941 apprtc.py:163] Applying media constraints: {'vi
deo': True, 'audio': True}
INFO     2014-02-11 07:11:53,957 apprtc.py:517] User 80844306 added to room 85
INFO     2014-02-11 07:11:53,957 apprtc.py:518] Room 85 has state [80844306-Fals
e]
INFO     2014-02-11 07:11:53,973 module.py:612] default: "GET /?r=85 HTTP/1.1" 2
00 1744

at this point ConnectPage should be called to connect to the room, but nothing happens…

when I try to connect to the room (from android) on my server I get this log messages:

INFO     2014-02-11 07:11:53,911 apprtc.py:350] IN CLASS MainPage
INFO     2014-02-11 07:11:53,927 apprtc.py:246] IN CLASS Room: add_user
INFO     2014-02-11 07:11:53,941 apprtc.py:77] create_channel
INFO     2014-02-11 07:11:53,941 apprtc.py:163] Applying media constraints: {'vi
deo': True, 'audio': True}
INFO     2014-02-11 07:11:53,957 apprtc.py:517] User 59372716 added to room 51
INFO     2014-02-11 07:11:53,957 apprtc.py:518] Room 51 has state [59372716-Fals
e]
INFO     2014-02-11 07:11:53,973 module.py:612] default: "GET /?r=51 HTTP/1.1" 2
00 1744

INFO     2014-02-11 07:11:55,142 apprtc.py:306] IN CLASS ConnectPage
INFO     2014-02-11 07:11:55,158 apprtc.py:298] User 59372716 connected to room
51
INFO     2014-02-11 07:11:55,158 apprtc.py:299] Room 51 has state [59372716-True
]
INFO     2014-02-11 07:11:55,190 module.py:612] default: "POST /_ah/channel/conn
ected/ HTTP/1.1" 200 -

The call isn't going through because there is no actual connection to the room.

I also tried using wireshark to see what is being sent between client to server with both android and iPhone as the client

FROM iPhone:

1009    31.978872000    84.94.156.147   xxx.xx.x.xx HTTP    265 GET /?r=9 HTTP/1.1 
1022    32.088116000    xxx.xx.x.xx 84.94.156.147   HTTP    235 HTTP/1.1 200 OK      (text/html)
1093    32.788407000    84.94.156.147   xxx.xx.x.xx HTTP    343 GET /_ah/channel/jsapi HTTP/1.1 
1404    34.191465000    xxx.xx.x.xx 84.94.156.147   HTTP    769 HTTP/1.1 200 OK   (text/javascript)



GET /?r=9 HTTP/1.1 :

Hypertext Transfer Protocol
    GET /?r=9 HTTP/1.1\r\n
        Expert Info (Chat/Sequence): GET /?r=9 HTTP/1.1\r\n
            Message: GET /?r=9 HTTP/1.1\r\n
            Severity level: Chat
            Group: Sequence
        Request Method: GET
        Request URI: /?r=9
        Request Version: HTTP/1.1
    Host: xxx.xx.x.xx:9090\r\n
    Connection: keep-alive\r\n
    Accept-Encoding: gzip, deflate\r\n
    User-Agent: AppRTCDemo/1.0 CFNetwork/672.0.8 Darwin/14.0.0\r\n
    Accept-Language: he-il\r\n
    Accept: */*\r\n
    \r\n
    Full request URI: http://xxx.xx.x.xx:9090/?r=9
    HTTP request 1/1
    Response in frame: 1022



HTTP/1.1 200 OK  (text/html):

Hypertext Transfer Protocol
HTTP/1.1 200 OK\r\n
    Expert Info (Chat/Sequence): HTTP/1.1 200 OK\r\n
        Message: HTTP/1.1 200 OK\r\n
        Severity level: Chat
        Group: Sequence
    Request Version: HTTP/1.1
    Status Code: 200
    Response Phrase: OK
content-type: text/html; charset=utf-8\r\n
cache-control: no-cache\r\n
Content-Length: 1705\r\n
    Content length: 1705
Server: Development/2.0\r\n
   Date: Thu, 13 Feb 2014 12:55:23 GMT\r\n
   \r\n
   HTTP response 1/1
  Line-based text data: text/html
   (here i have the index.html file filled with the content for each of the vars)


   GET /_ah/channel/jsapi HTTP/1.1 :

   Hypertext Transfer Protocol
       GET /_ah/channel/jsapi HTTP/1.1\r\n
           Expert Info (Chat/Sequence): GET /_ah/channel/jsapi HTTP/1.1\r\n
               Message: GET /_ah/channel/jsapi HTTP/1.1\r\n
               Severity level: Chat
               Group: Sequence
           Request Method: GET
           Request URI: /_ah/channel/jsapi
           Request Version: HTTP/1.1
       Host: xxx.xx.x.xx:9090\r\n
       Connection: keep-alive\r\n
       Accept-Encoding: gzip, deflate\r\n
       User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 7_0_4 like Mac OS X) AppleWebKit/537.51.1    (KHTML, like Gecko) Mobile/11B554a\r\n
       Accept-Language: he-il\r\n
       Accept: */*\r\n
       \r\n
       Full request URI: http://xxx.xx.x.xx:9090/_ah/channel/jsapi
       HTTP request 1/1
       Response in frame: 1404



   HTTP/1.1 200 OK  (text/javascript):


   HTTP/1.1 200 OK  (text/html):

   Hypertext Transfer Protocol
       HTTP/1.1 200 OK\r\n
           Expert Info (Chat/Sequence): HTTP/1.1 200 OK\r\n
               Message: HTTP/1.1 200 OK\r\n
               Severity level: Chat
               Group: Sequence
           Request Version: HTTP/1.1
           Status Code: 200
           Response Phrase: OK
       cache-control: no-cache\r\n
       content-type: text/javascript\r\n
       Content-Length: 238051\r\n
           Content length: 238051
       Server: Development/2.0\r\n
       Date: Thu, 13 Feb 2014 12:55:24 GMT\r\n
       \r\n
       HTTP response 1/1
   Line-based text data: text/html
       (here i have the jsapi file)

FROM android:

   2103 64.994817000    62.219.128.171  xxx.xx.x.xx HTTP    231 GET /?r=7 HTTP/1.1 
   2109 65.056073000    xxx.xx.x.xx 62.219.128.171  HTTP    225 HTTP/1.1 200 OK  (text/html)
   2329 68.436749000    62.219.128.171  xxx.xx.x.xx HTTP    499 GET /_ah/channel/jsapi    HTTP/1.1 
   2659 71.766089000    xxx.xx.x.xx 62.219.128.171  HTTP    869 HTTP/1.1 200 OK     (text/javascript)
   2723 72.548316000    62.219.128.171  xxx.xx.x.xx HTTP    582 GET /_ah/channel/dev?   command=connect&channel=52dc587e2a55f84d5a24d607e01265a6-channel-2672196958-1392299260-7/48366753    HTTP/1.1 
   2725 72.551059000    xxx.xx.x.xx 62.219.128.171  HTTP    67  HTTP/1.1 200 OK  (text/plain)
   2755 73.546369000    62.219.128.171  xxx.xx.x.xx HTTP    588 GET /_ah/channel/dev?   command=poll&channel=52dc587e2a55f84d5a24d607e01265a6-channel-2672196958-1392299260-   7/48366753&client=1 HTTP/1.1 
   2756 73.547829000    xxx.xx.x.xx 62.219.128.171  HTTP    191 HTTP/1.1 200 OK 



GET /?r=7 HTTP/1.1 :

Hypertext Transfer Protocol
    GET /?r=7 HTTP/1.1\r\n
        Expert Info (Chat/Sequence): GET /?r=7 HTTP/1.1\r\n
            Message: GET /?r=7 HTTP/1.1\r\n
            Severity level: Chat
            Group: Sequence
        Request Method: GET
        Request URI: /?r=7
        Request Version: HTTP/1.1
    User-Agent: Dalvik/1.6.0 (Linux; U; Android 4.3; Nexus 4 Build/JWR66V)\r\n
    Host: xxx.xx.x.xx:9090\r\n
    Connection: keep-alive\r\n
    Accept-Encoding: gzip\r\n
    \r\n
    Full request URI: http://xxx.xx.x.xx:9090/?r=7
    HTTP request 1/1
    Response in frame: 2109



HTTP/1.1 200 OK  (text/html):

Hypertext Transfer Protocol
    HTTP/1.1 200 OK\r\n
        Expert Info (Chat/Sequence): HTTP/1.1 200 OK\r\n
            Message: HTTP/1.1 200 OK\r\n
            Severity level: Chat
            Group: Sequence
        Request Version: HTTP/1.1
        Status Code: 200
        Response Phrase: OK
    content-type: text/html; charset=utf-8\r\n
    cache-control: no-cache\r\n
    Content-Length: 1695\r\n
        Content length: 1695
    Server: Development/2.0\r\n
    Date: Thu, 13 Feb 2014 13:17:39 GMT\r\n
    \r\n
    HTTP response 1/2
Line-based text data: text/html
    (here i have the index.html file filled with the content for each of the vars)


    GET /_ah/channel/jsapi HTTP/1.1 :

    Hypertext Transfer Protocol
        GET /_ah/channel/jsapi HTTP/1.1\r\n
            Expert Info (Chat/Sequence): GET /_ah/channel/jsapi HTTP/1.1\r\n
                Message: GET /_ah/channel/jsapi HTTP/1.1\r\n
                Severity level: Chat
                Group: Sequence
            Request Method: GET
            Request URI: /_ah/channel/jsapi
            Request Version: HTTP/1.1
        Host: xxx.xx.x.xx:9090\r\n
        Connection: keep-alive\r\n
        Referer: http://xxx.xx.x.xx:9090/\r\n
        Accept: */*\r\n
        X-Requested-With: org.appspot.apprtc\r\n
        User-Agent: Mozilla/5.0 (Linux; U; Android 4.3; he-il; Nexus 4 Build/JWR66V)         AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30\r\n
        Accept-Encoding: gzip, deflate\r\n
        Accept-Language: he-IL, en-US\r\n
        Accept-Charset: utf-8, iso-8859-1, utf-16, *;q=0.7\r\n
        \r\n
        Full request URI: http://xxx.xx.x.xx:9090/_ah/channel/jsapi
        HTTP request 1/8




HTTP/1.1 200 OK  (text/javascript):


HTTP/1.1 200 OK  (text/html):

Hypertext Transfer Protocol
    HTTP/1.1 200 OK\r\n
        Expert Info (Chat/Sequence): HTTP/1.1 200 OK\r\n
            Message: HTTP/1.1 200 OK\r\n
            Severity level: Chat
            Group: Sequence
        Request Version: HTTP/1.1
        Status Code: 200
        Response Phrase: OK
    cache-control: no-cache\r\n
    content-type: text/javascript\r\n
    Content-Length: 238051\r\n
        Content length: 238051
    Server: Development/2.0\r\n
    Date: Thu, 13 Feb 2014 13:17:42 GMT\r\n
    \r\n
    HTTP response 1/8
Line-based text data: text/html
    (here i have the jsapi file)

Can any one please help with this issue. any ideas on how to proceed will be good at this point.

Thanks in advance

like image 364
user2717267 Avatar asked Feb 13 '14 14:02

user2717267


1 Answers

I'm on the WebRTC team and it's quite likely iOS version of AppRTCDemo (now renamed to AppRTCMobile) wasn't working as you explain. Let us know if this is still an issue. The app has gotten a lot of work done on it lately.

like image 51
kjellander Avatar answered Nov 09 '22 05:11

kjellander