onsip / onsip-cordova

Other
48 stars 29 forks source link

One-way audio with PSTN to iOS 8 #15

Open asafreedman opened 9 years ago

asafreedman commented 9 years ago

Caller hears sound from an iPad Mini Retina running iOS 8 but no sound from caller.

We're using a barebones Cordova application with only the OnSIP plugin. The index.html is that taken from this projects' readme.

Can provide logs but I don't immediately know what would be useful to anyway.

Any help would be appreciated.

egreenmachine commented 9 years ago

Hi, I have updated the WebRTC libraries and SIP.js library. Try pulling that down and let me know if that resolves your issue. Thanks

asafreedman commented 9 years ago

Thank you for getting to this.

I run into the following issue when attempting to run the command that adds this plugin.

cordova plugin add https://github.com/onsip/onsip-cordova.git Fetching plugin "https://github.com/onsip/onsip-cordova.git" via git clone Installing "com.onsip.cordova" for ios Error during processing of action! Attempting to revert... Failed to install 'com.onsip.cordova':Error: Uh oh! cannot find "/Users/asafreedman/CordovaProjects/demo/plugins/com.onsip.cordova/src/ios/PhoneRTCPlugin.m" ios at module.exports.source-file.install (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/platforms/ios.js:52:48) at Object.ActionStack.process (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/util/action-stack.js:72:25) at handleInstall (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/install.js:591:20) at /usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/install.js:340:28 at _fulfilled (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/node_modules/q/q.js:787:54) at self.promiseDispatch.done (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/node_modules/q/q.js:816:30) at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/node_modules/q/q.js:749:13) at /usr/local/lib/node_modules/cordova/node_modules/cordova-lib/node_modules/q/q.js:509:49 at flush (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/node_modules/q/q.js:108:17) at process._tickCallback (node.js:419:13) Error: Uh oh! cannot find "/Users/asafreedman/CordovaProjects/demo/plugins/com.onsip.cordova/src/ios/PhoneRTCPlugin.m" ios at module.exports.source-file.install (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/platforms/ios.js:52:48) at Object.ActionStack.process (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/util/action-stack.js:72:25) at handleInstall (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/install.js:591:20) at /usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/install.js:340:28 at _fulfilled (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/node_modules/q/q.js:787:54) at self.promiseDispatch.done (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/node_modules/q/q.js:816:30) at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/node_modules/q/q.js:749:13) at /usr/local/lib/node_modules/cordova/node_modules/cordova-lib/node_modules/q/q.js:509:49 at flush (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/node_modules/q/q.js:108:17) at process._tickCallback (node.js:419:13)

The same error occurs if I install the plugin and then run 'cordova platform add ios'.

I attempted this with a project that was newly created and had no other plugins as well.

egreenmachine commented 9 years ago

Sorry about that. I missed the PhoneRTC library when compiling everything together. It should be in there now.

asafreedman commented 9 years ago

Thanks again. Got past that error but build fails using 'cordova run' to build for iOS. I'm on OS X 10.10. Project will successfully build if I 'cordova plugin remove com.onsip.cordova'. The log I've attached is from the first error statement to the end. Project builds successfully until that point.

/Users/asafreedman/CordovaProjects/onsip_demo/platforms/ios/OnSIPDemo/Plugins/com.onsip.cordova/PhoneRTCPlugin.m:82:29: error: property 'videoTrack' not found on object of type 'RTCEAGLVideoView ' remoteVideoView.videoTrack = remoteVideoTrack; ^ /Users/asafreedman/CordovaProjects/onsip_demo/platforms/ios/OnSIPDemo/Plugins/com.onsip.cordova/PhoneRTCPlugin.m:141:20: error: property 'videoTrack' not found on object of type 'RTCEAGLVideoView ' localVideoView.videoTrack = track; ^ /Users/asafreedman/CordovaProjects/onsip_demo/platforms/ios/OnSIPDemo/Plugins/com.onsip.cordova/PhoneRTCPlugin.m:150:25: error: property 'videoTrack' not found on object of type 'RTCEAGLVideoView ' remoteVideoView.videoTrack = track; ^ /Users/asafreedman/CordovaProjects/onsip_demo/platforms/ios/OnSIPDemo/Plugins/com.onsip.cordova/PhoneRTCPlugin.m:162:25: error: property 'videoTrack' not found on object of type 'RTCEAGLVideoView ' self.localVideoView.videoTrack = nil; ^ /Users/asafreedman/CordovaProjects/onsip_demo/platforms/ios/OnSIPDemo/Plugins/com.onsip.cordova/PhoneRTCPlugin.m:163:26: error: property 'videoTrack' not found on object of type 'RTCEAGLVideoView *' self.remoteVideoView.videoTrack = nil; ^ 5 errors generated.

CompileC build/OnSIPDemo.build/Debug-iphoneos/OnSIPDemo.build/Objects-normal/armv7/PhoneRTCDelegate.o OnSIPDemo/Plugins/com.onsip.cordova/PhoneRTCDelegate.m normal armv7 objective-c com.apple.compilers.llvm.clang.1_0.compiler cd /Users/asafreedman/CordovaProjects/onsip_demo/platforms/ios export LANG=en_US.US-ASCII export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/Users/asafreedman/.rbenv/shims:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/mysql/bin" /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x objective-c -arch armv7 -fmessage-length=116 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -fcolor-diagnostics -std=c99 -fobjc-arc -Wno-trigraphs -fpascal-strings -O0 -Wno-missing-field-initializers -Wno-missing-prototypes -Wno-implicit-atomic-properties -Wno-receiver-is-weak -Wno-arc-repeated-use-of-weak -Wduplicate-method-match -Wno-missing-braces -Wparentheses -Wswitch -Wunused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wempty-body -Wuninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wno-shorten-64-to-32 -Wpointer-sign -Wno-newline-eof -Wno-selector -Wno-strict-selector-match -Wundeclared-selector -Wno-deprecated-implementations -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk -fstrict-aliasing -Wprotocol -Wdeprecated-declarations -g -fvisibility=hidden -Wno-sign-conversion -miphoneos-version-min=6.0 -iquote /Users/asafreedman/CordovaProjects/onsip_demo/platforms/ios/build/OnSIPDemo.build/Debug-iphoneos/OnSIPDemo.build/OnSIPDemo-generated-files.hmap -I/Users/asafreedman/CordovaProjects/onsip_demo/platforms/ios/build/OnSIPDemo.build/Debug-iphoneos/OnSIPDemo.build/OnSIPDemo-own-target-headers.hmap -I/Users/asafreedman/CordovaProjects/onsip_demo/platforms/ios/build/OnSIPDemo.build/Debug-iphoneos/OnSIPDemo.build/OnSIPDemo-all-target-headers.hmap -iquote /Users/asafreedman/CordovaProjects/onsip_demo/platforms/ios/build/OnSIPDemo.build/Debug-iphoneos/OnSIPDemo.build/OnSIPDemo-project-headers.hmap -I/Users/asafreedman/CordovaProjects/onsip_demo/platforms/ios/build/device/include -I/Users/asafreedman/CordovaProjects/onsip_demo/platforms/ios/build/device/usr/local/lib/include -I/Users/asafreedman/CordovaProjects/onsip_demo/platforms/ios/build/UninstalledProducts/include -I/Users/asafreedman/CordovaProjects/onsip_demo/platforms/ios/build/device -I/Users/asafreedman/CordovaProjects/onsip_demo/platforms/ios/build/OnSIPDemo.build/Debug-iphoneos/OnSIPDemo.build/DerivedSources/armv7 -I/Users/asafreedman/CordovaProjects/onsip_demo/platforms/ios/build/OnSIPDemo.build/Debug-iphoneos/OnSIPDemo.build/DerivedSources -F/Users/asafreedman/CordovaProjects/onsip_demo/platforms/ios/build/device -include /Users/asafreedman/CordovaProjects/onsip_demo/platforms/ios/build/sharedpch/OnSIPDemo-Prefix-dostbjrktjmpsjapjwxdheofhitk/OnSIPDemo-Prefix.pch -MMD -MT dependencies -MF /Users/asafreedman/CordovaProjects/onsip_demo/platforms/ios/build/OnSIPDemo.build/Debug-iphoneos/OnSIPDemo.build/Objects-normal/armv7/PhoneRTCDelegate.d --serialize-diagnostics /Users/asafreedman/CordovaProjects/onsip_demo/platforms/ios/build/OnSIPDemo.build/Debug-iphoneos/OnSIPDemo.build/Objects-normal/armv7/PhoneRTCDelegate.dia -c /Users/asafreedman/CordovaProjects/onsip_demo/platforms/ios/OnSIPDemo/Plugins/com.onsip.cordova/PhoneRTCDelegate.m -o /Users/asafreedman/CordovaProjects/onsip_demo/platforms/ios/build/OnSIPDemo.build/Debug-iphoneos/OnSIPDemo.build/Objects-normal/armv7/PhoneRTCDelegate.o /Users/asafreedman/CordovaProjects/onsip_demo/platforms/ios/OnSIPDemo/Plugins/com.onsip.cordova/PhoneRTCDelegate.m:75:26: error: no visible @interface for 'RTCPeerConnection' declares the selector 'addStream:constraints:' [self.peerConnection addStream:lms constraints:[self constraints]];


/Users/asafreedman/CordovaProjects/onsip_demo/platforms/ios/OnSIPDemo/Plugins/com.onsip.cordova/PhoneRTCDelegate.m:5:17: warning: 
      method 'resetUi' in protocol 'PHONERTCSendMessage' not implemented [-Wprotocol]
@implementation PhoneRTCDelegate
                ^
In file included from /Users/asafreedman/CordovaProjects/onsip_demo/platforms/ios/OnSIPDemo/Plugins/com.onsip.cordova/PhoneRTCDelegate.m:3:
/Users/asafreedman/CordovaProjects/onsip_demo/platforms/ios/OnSIPDemo/Plugins/com.onsip.cordova/PhoneRTCDelegate.h:24:1: note: 
      method 'resetUi' declared here
- (void)resetUi;
  ^
  /Users/asafreedman/CordovaProjects/onsip_demo/platforms/ios/OnSIPDemo/Plugins/com.onsip.cordova/PhoneRTCDelegate.m:292:17: warning: 
    method 'peerConnection:didOpenDataChannel:' in protocol 'RTCPeerConnectionDelegate' not implemented
    [-Wprotocol]
  @implementation PCObserver {
              ^
  In file included from /Users/asafreedman/CordovaProjects/onsip_demo/platforms/ios/OnSIPDemo/Plugins/com.onsip.cordova/PhoneRTCDelegate.m:3:
  In file included from /Users/asafreedman/CordovaProjects/onsip_demo/platforms/ios/OnSIPDemo/Plugins/com.onsip.cordova/PhoneRTCDelegate.h:12:
  In file included from /Users/asafreedman/CordovaProjects/onsip_demo/platforms/ios/OnSIPDemo/Plugins/com.onsip.cordova/RTCPeerConnection.h:28:
  /Users/asafreedman/CordovaProjects/onsip_demo/platforms/ios/OnSIPDemo/Plugins/com.onsip.cordova/RTCPeerConnectionDelegate.h:69:1: note: 
    method 'peerConnection:didOpenDataChannel:' declared here
- (void)peerConnection:(RTCPeerConnection*)peerConnection
  ^
  2 warnings and 1 error generated.

*\* BUILD FAILED **

The following build commands failed:
    CompileC build/OnSIPDemo.build/Debug-iphoneos/OnSIPDemo.build/Objects-normal/armv7/PhoneRTCPlugin.o OnSIPDemo/Plugins/com.onsip.cordova/PhoneRTCPlugin.m normal armv7 objective-c com.apple.compilers.llvm.clang.1_0.compiler
    CompileC build/OnSIPDemo.build/Debug-iphoneos/OnSIPDemo.build/Objects-normal/armv7/PhoneRTCDelegate.o OnSIPDemo/Plugins/com.onsip.cordova/PhoneRTCDelegate.m normal armv7 objective-c com.apple.compilers.llvm.clang.1_0.compiler
(2 failures)

I'd be willing to Skype and screen share with your at any point if you're available.  
egreenmachine commented 9 years ago

It looks like you did not copy the build file. cp plugins/com.onsip.cordova/build platforms/ios/cordova/

asafreedman commented 9 years ago

'cordova run' still presents same logs as above in a new project.

I ran the following commands:

cordova create onsip_demo1 com.onsipdemo.demo OnSIPDemo Creating a new cordova project with name "OnSIPDemo" and id "com.onsipdemo.demo" at location "/Users/asafreedman/CordovaProjects/onsip_demo1" ip-192-168-1-4:CordovaProjects asafreedman$ cd onsip_demo1/ ip-192-168-1-4:onsip_demo1 asafreedman$ cordova platform add ios Creating ios project... ip-192-168-1-4:onsip_demo1 asafreedman$ cordova plugin add https://github.com/onsip/onsip-cordova.git Fetching plugin "https://github.com/onsip/onsip-cordova.git" via git clone Installing "com.onsip.cordova" for ios ip-192-168-1-4:onsip_demo1 asafreedman$ cp plugins/com.onsip.cordova/build platforms/ios/cordova/ ip-192-168-1-4:onsip_demo1 asafreedman$ cordova run

egreenmachine commented 9 years ago

In a gist can you provide full logs and the build file from platforms/ios/cordova/?

asafreedman commented 9 years ago

Here is a link to the gist with the build file at top and the logs at bottom.

https://gist.github.com/asafreedman/9d59da111fcd6a31bf96

egreenmachine commented 9 years ago

Looks like XCode might be getting in the way. There are a few things that you need to do.

  1. Remove all traces of libCordova.a
  2. Open the project in XCode and choose Product > Clean from the menu.
  3. Go the build settings for both CordovaLib and your Cordova Project. Set the following settings:
Build Active Architecture Only: No
Valid Architectures: armv7

Once all of that is done you can try compiling again.

asafreedman commented 9 years ago

Still same issue when building in X Code.

Does it matter that you wiped the method and properties the compiler is balking at in commit 0af5c4636bb6780da4ce348f57ffa534977cce84 and never added them back?

Specifically 'videoTrack' for RTCEAGLVideoView and 'selector addStream:constraints:' in RTCPeerConnection.

It didn't look like they were replaced in the protocols you specified in the same commit for those files.

egreenmachine commented 9 years ago

Did you grab the newest version? I just put them back in the last commit b2ed032

asafreedman commented 9 years ago

You added the four files in that commit.

You never added back the property 'videoTrack' to 'src/ios/RTCEAGLVideoView.h' which you changed in the commit I listed above.

The same for src/ios/RTCPeerConnection.h where the selector 'addStream:constraints:' was changed to simply 'addStream'.

The four files you added back reference both videoTrack and the missing selector. For instance PhoneRTCDelegate.m at line 75.

egreenmachine commented 9 years ago

Thanks for pointing that out. I have reverted the webrtc library for the time being. I will have to spend some time to readdress that.

asafreedman commented 9 years ago

No problem. I wish I had the understanding you do to help you. Thank you for taking your time.

egreenmachine commented 9 years ago

As a side note, src/ios/RTCPeerConnection.h and src/ios/RTCEAGLVideoView.h are generated by the Google WebRTC libraries and cannot be modified. It is our PhoneRTC libraries that will need to be modified.

asafreedman commented 9 years ago

Oh. I was unaware. I guess it makes sense that those changes could be missed then.

I was wrong in using 'your changes' and so on then. I apologize for placing the blame so squarely on you.