symeonmattes / pjsip

Cordova plugin for the PJSIP library version 2.5.5.
Apache License 2.0
9 stars 7 forks source link

iOS connect not working #2

Closed diegomichel closed 6 years ago

diegomichel commented 6 years ago

Hello @symeonmattes,

I have followed the instructions for setup on xcode, but connect function doesn't do anything(I turned the logs on my FreeSwitch server, I do the same on Android and can see the client connecting, but not for iOS). If I call isSupported it does indeed calls the success callback.

So I don't know were the issue could be.

Bests, Diego Michel.

symeonmattes commented 6 years ago

Have you done the following things?

After installation you need to add manually in Build settings the following configurations a. Apple LLVM 8.1 Preprocessing->Preprocessor Macros->(both debug/release) PJ_AUTOCONF=1 b. Search paths->Header Search Paths -> (both debug/release in cordova plugin) i. fulllocation/pjsua/pjmedia ii. fulllocation/pjsua/pjnath iii. fulllocation/pjsua/pjlib-util iv. fulllocation/pjsua/pjlib v. fulllocation/pjsua/pjsip

diegomichel commented 6 years ago

Hello @symeonmattes,

Yes I followed the steps on the guide. Here is the whole project in a zip. Thanks!. https://drive.google.com/open?id=1rWIb8jF8pTF1nV6GRIhuFwRc_110ZYDh

Bests, Diego.

symeonmattes commented 6 years ago

What you sent me doesn't use at all the current plugin. It's just the ionic default tab project. Perhaps put 3 fields (username/password/ip address) that are used to connect to a PBX system. Then try to connect to the system through PJSIP.connect(arg0,arg1,arg2,arg3) and then make a call with PJSIP.makeCall(arg0) (See documentation that I have).

diegomichel commented 6 years ago

Hello @symeonmattes,

I have used the web inspector on safari to run the PJSIP functions. I have enabled siptrace on my FreeSwitch server but cannot see the client connecting or making calls. On Android it does work fine.

Safari web inspector connected to iPhone

screen shot 2018-01-12 at 5 11 22 am

On the device logs I can see this: Jan 12 05:08:04 diegos-iPhone ionic_ios_pjsip[633] <Notice>: Connection settings:{user:1001,pass:123456,systemIP:staging.chronosar.com,proxyIP:}

But that's about it. I don't know if it is less verbose than Android for example, where I can see the whole connection process with adb logcat.

Bests, Diego.

symeonmattes commented 6 years ago

I would suggest to do exactly the same thing on an iphone device. Perhaps create a button in ionic and call the function you call from browser and see what it does. I have checked it in iOS devices (iphone 5s,ipad2) and it works as expected.

diegomichel commented 6 years ago

Hello @symeonmattes,

Added the button as recommended but got the same results. I'm running it on a iPhone 6 SE. I have updated the project on Google Drive: https://drive.google.com/open?id=1olh6LAMJTlmc8nGi5q-w0hC0BUhc_1Nh

I don't know any Objective-C but I get the feeling that connect function doesn't do anything on the code in the repository.

https://github.com/symeonmattes/pjsip/blob/3bea634e042aea21ed0451c78f9a7b07f03c0fac/src/ios/PJSIP.m#L74

I believe that line shouldn't be commented, please correct me if I'm wrong.

Bests, Diego.

symeonmattes commented 6 years ago

Hi Diego,

You're right on that. Apple doesn't accept applications that are under GPL license and pjsip is one of them. Probably, because of this, I commented out all the functionality of pjsip in ios. I'll check it and I'll let you know.

Thanks Symeon

symeonmattes commented 6 years ago

Hi Diego, I made some modifications on the code. Download the latest version, uninstall the old plugin and reinstall the new one.

Kind Regards Symeon

diegomichel commented 6 years ago

Hello @symeonmattes,

Works great, thanks!.