BelledonneCommunications / linphone-iphone

Linphone is a free VoIP and video softphone based on the SIP protocol. Mirror of linphone-iphone (git://git.linphone.org/linphone-iphone.git)
http://linphone.org
GNU General Public License v3.0
572 stars 343 forks source link

unable to call linphone-iphone #53

Closed cdynak closed 8 years ago

cdynak commented 8 years ago

calling from liphone-iphone is ok, but calling it back is impossible. when i try to call liphone-iphone from other linphone instance (android or linux) it behaves like there is no such device, so just "Request timeout" - logs are the same like when calling device without linphone.

it looks like this:

iphone  -> android (ok)
android -> iphone  (fail)
iphone  -> linux   (ok)
linux   -> iphone  (fail)
android -> linux   (ok)
linux   -> android (ok)

the situation is the same on both device and simulator:

iPhone 4s - iOS 9.3.1
Xcode 7.3 - iOS 9.3

and both linphone-iphone from app store and build from source:

Linphone iOS 3.11.8-30-g8a3c12e
Linphone Core 3.9.1-522-gb0c8780

Linphone iOS 3.12.1-92-gf35ab9e
Linphone Core 3.9.1-1108-g6f48b41

i've also tested it on two different wi-fi networks.

bagage commented 8 years ago

Do you use linphone.org accounts?

Can you grab some logs please (both ends).

cdynak commented 8 years ago

no, i'm using just local network: sip:192.168.0.*

which exactly part of logs could be useful?

on iphone it ends with this and then nothing:

...
2016-04-21 10:50:59.859 linphone[34077:87754] I/lib/Media network reachability state is now [UP]
2016-04-21 10:50:59.859 linphone[34077:87754] I/ios/(LinphoneManager.m:1237) Network connectivity changed to type [wifi]
2016-04-21 10:50:59.860 linphone[34077:87754] I/lib/speex_lib_ctl init with neon ? 0
2016-04-21 10:50:59.860 linphone[34077:87754] I/lib/configuring resampler output to rate=[8000], nchannels=[1]
2016-04-21 10:50:59.860 linphone[34077:87754] I/lib/ms_filter_link: MSFilePlayer:0x7fcfd0447500,0-->MSDtmfGen:0x7fcfd0410fa0,0
2016-04-21 10:50:59.860 linphone[34077:87809] I/lib/Priority used: 47
2016-04-21 10:50:59.860 linphone[34077:87754] I/lib/ms_filter_link: MSDtmfGen:0x7fcfd0410fa0,0-->MSResample:0x7fcfd04346f0,0
2016-04-21 10:50:59.860 linphone[34077:87754] I/lib/ms_filter_link: MSResample:0x7fcfd04346f0,0-->MSAQWrite:0x7fcfd0445f80,0
2016-04-21 10:50:59.860 linphone[34077:87809] I/lib/Ring MSTicker priority set to SCHED_RR and value (47)
2016-04-21 10:50:59.860 linphone[34077:87754] I/lib/Initializing speex resampler in mode [voip] 
2016-04-21 10:50:59.861 linphone[34077:87754] I/lib/AQ: Configuring audio session for playback
2016-04-21 10:50:59.904 linphone[34077:87754] I/bel/stun.linphone.org resolved to 37.59.51.72
2016-04-21 10:50:59.904 linphone[34077:87754] I/lib/Stun server resolution successful.
2016-04-21 10:50:59.905 linphone[34077:87754] I/ios/(honeAppDelegate.m:414 ) application:didFailToRegisterForRemoteNotificationsWithError: : REMOTE_NOTIFICATION_SIMULATOR_NOT_SUPPORTED_NSERROR_DESCRIPTION
2016-04-21 10:50:59.905 linphone[34077:87754] I/ios/(honeAppDelegate.m:423 ) application:didRegisterUserNotificationSettings:
2016-04-21 10:50:59.917 linphone[34077:87754] E/ios/(FastAddressBook.m:134 ) Create AddressBook failed, reason: The operation couldn’t be completed. (ABAddressBookErrorDomain error 1.)
2016-04-21 10:50:59.918 linphone[34077:87754] I/lib/Table already up to date: duplicate column name: url.
2016-04-21 10:50:59.918 linphone[34077:87754] I/lib/Table already up to date: duplicate column name: utc.
2016-04-21 10:50:59.919 linphone[34077:87754] I/lib/Table already up to date: duplicate column name: appdata.
2016-04-21 10:50:59.919 linphone[34077:87754] I/lib/Table already up to date: duplicate column name: content.
2016-04-21 10:50:59.919 linphone[34077:87754] I/lib/Table already up to date: duplicate column name: call_id.
2016-04-21 10:50:59.920 linphone[34077:87754] I/lib/linphone_core_get_call_history(): completed in 1 ms
2016-04-21 10:50:59.920 linphone[34077:87754] W/lib/nothing to migrate, skipping...
2016-04-21 10:50:59.921 linphone[34077:87754] I/ios/(LinphoneManager.m:1256) Cancelling old network reachability
2016-04-21 10:50:59.922 linphone[34077:87754] I/ios/(LinphoneManager.m:1175) Network connection flags: kSCNetworkReachabilityFlagsReachable, 
2016-04-21 10:50:59.922 linphone[34077:87754] I/ios/(LinphoneManager.m:1419) Linphone [3.9.1-1108-g6f48b41]  started on [iPhone]

so when i'm calling from linux nothing is shown in iphone log, and finally on linux call ends due to timeout:

message: ms_quality_indicator_update_local(): no packet received since last call
message: ms_quality_indicator_update_local(): no packet received since last call
message: ms_quality_indicator_update_local(): no packet received since last call
message: Local interface to reach 87.98.157.38 is 192.168.0.27.
message: ms_quality_indicator_update_local(): no packet received since last call
message: ms_quality_indicator_update_local(): no packet received since last call
message: eXosip: remove a call
message: free transaction resource 1 451882038
message: free ict resource
message: eXosip: Reseting timer to 10s before waking up!
message: eXosip: Reseting timer to 10s before waking up!
message: linphone process event get a message 22

message: CALL_RELEASED

message: ms_filter_unlink: MSRtpRecv:0xa0c300,0-->MSVoidSink:0xa0c700,0
message: Audio MSTicker thread exiting
message: ===========================================================
message:                   FILTER USAGE STATISTICS                  
message: Name                Count     Time/tick (ms)      CPU Usage
message: -----------------------------------------------------------
message: MSRtpRecv           4203      0.00623882          100       
message: MSVoidSink          0         0                   0         
message: MSSpeexEC           0         0                   0         
message: MSRtpSend           0         0                   0         
message: ===========================================================
message: Call 0x9b9c60: moving from state LinphoneCallOutgoingProgress to LinphoneCallError
message: Resetting the current call
message: Notifying all friends that we are in status 1
error: Failed to send notification.
message: Call 0x9b9c60: moving from state LinphoneCallError to LinphoneCallReleased
message: Cleaning cid 1
message: Local interface to reach 87.98.157.38 is 192.168.0.27.
message: Local interface to reach 87.98.157.38 is 192.168.0.27.
message: eXosip: Reseting timer to 10s before waking up!
message: Local interface to reach 87.98.157.38 is 192.168.0.27.
message: Local interface to reach 87.98.157.38 is 192.168.0.27.
message: eXosip: Reseting timer to 10s before waking up!
bagage commented 8 years ago

Turn off random ports on iOS

cdynak commented 8 years ago

thank you very much, it resolves the problem. maybe it is worth to write something about it in readme?

bagage commented 8 years ago

Well, that's not the main use case ... but we could improve user experience by providing hints in Linphone instead. Not sure how though.

cdynak commented 8 years ago

maybe warning after unsuccessful call to private network ip: 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16?

bagage commented 8 years ago

I do not think this would work in any case on iOS / android ... actually the fix should be in linphone ios - in side menu we should display the whole user URI where anyone should call to reach him/her, not just the cleaned URI. I'll check that.

cdynak commented 8 years ago

yup, that could be nice. when you are working with multiple devices you can get confused about each linphone URI. displaying it side menu would be faster way to find it, instead of calling back or search in "settings -> ... about -> ...". maybe the same could be done for android?

bagage commented 8 years ago

Done in e5ae91c, thanks for the suggestion.