From 63a178571870604f03faf7aa878b9394e2e0ef73 Mon Sep 17 00:00:00 2001 From: Jehan Monnier Date: Mon, 26 Apr 2010 17:24:41 +0200 Subject: [PATCH] test network availability before calling --- Classes/PhoneViewController.m | 15 +++++++-- Classes/linphoneAppDelegate.m | 53 ++++++++++++++++--------------- Resources/icone-linphone-512.png | Bin 0 -> 24228 bytes Resources/icone-linphone-57.png | Bin 0 -> 2450 bytes linphone-Info.plist | 5 +++ linphonerc | 42 ++---------------------- 6 files changed, 47 insertions(+), 68 deletions(-) create mode 100644 Resources/icone-linphone-512.png create mode 100644 Resources/icone-linphone-57.png diff --git a/Classes/PhoneViewController.m b/Classes/PhoneViewController.m index 9cd9ae6d0..7a6277b77 100644 --- a/Classes/PhoneViewController.m +++ b/Classes/PhoneViewController.m @@ -72,6 +72,15 @@ -(IBAction) doAction:(id)sender { if (sender == call) { + if (!linphone_core_is_network_reachabled(mCore)) { + UIAlertView* error = [[UIAlertView alloc] initWithTitle:@"Network Error" + message:@"There is no network connection available, enable WIFI or WWAN prior to place a call" + delegate:nil + cancelButtonTitle:@"Continue" + otherButtonTitles:nil]; + [error show]; + return; + } if (!linphone_core_in_call(mCore)) { LinphoneProxyConfig* proxyCfg; //get default proxy @@ -83,9 +92,9 @@ } else if ( proxyCfg==nil){ UIAlertView* error = [[UIAlertView alloc] initWithTitle:@"Invalid sip address" message:@"Either configure a SIP proxy server from settings prior to place a call or use a valid sip address (I.E sip:john@example.net)" - delegate:nil - cancelButtonTitle:@"Continue" - otherButtonTitles:nil]; + delegate:nil + cancelButtonTitle:@"Continue" + otherButtonTitles:nil]; [error show]; } else { diff --git a/Classes/linphoneAppDelegate.m b/Classes/linphoneAppDelegate.m index e980f477b..51fff82dd 100644 --- a/Classes/linphoneAppDelegate.m +++ b/Classes/linphoneAppDelegate.m @@ -23,7 +23,6 @@ #import "AddressBook/ABPerson.h" #import #import -#import "osip2/osip.h" #import "ConsoleViewController.h" #import "MoreViewController.h" @@ -239,6 +238,9 @@ extern void libmsilbc_init(); , [factoryConfig cStringUsingEncoding:[NSString defaultCStringEncoding]] ,self); + //initial state is network off + linphone_core_set_network_reachable(myLinphoneCore,false); + // Set audio assets const char* lRing = [[myBundle pathForResource:@"oldphone-mono"ofType:@"wav"] cStringUsingEncoding:[NSString defaultCStringEncoding]]; linphone_core_set_ring(myLinphoneCore, lRing ); @@ -283,18 +285,18 @@ extern void libmsilbc_init(); proxyCfg = linphone_proxy_config_new(); // add username password - osip_from_t *from; + LinphoneAddress *from = linphone_address_new(identity); LinphoneAuthInfo *info; - osip_from_init(&from); - if (osip_from_parse(from,identity)==0){ - info=linphone_auth_info_new(from->url->username,NULL,password,NULL,NULL); + if (from !=0){ + info=linphone_auth_info_new(linphone_address_get_username(from),NULL,password,NULL,NULL); linphone_core_add_auth_info(myLinphoneCore,info); } - osip_from_free(from); + linphone_address_destroy(from); // configure proxy entries linphone_proxy_config_set_identity(proxyCfg,identity); linphone_proxy_config_set_server_addr(proxyCfg,proxy); + linphone_proxy_config_enable_register(proxyCfg,true); if (isOutboundProxy) linphone_proxy_config_set_route(proxyCfg,proxy); @@ -311,8 +313,7 @@ extern void libmsilbc_init(); LinphoneAddress* addr=linphone_address_new(linphone_proxy_config_get_addr(proxyCfg)); proxyReachability=SCNetworkReachabilityCreateWithName(nil, linphone_address_get_domain(addr)); proxyReachabilityContext.info=self; - bool result=SCNetworkReachabilitySetCallback(proxyReachability, (SCNetworkReachabilityCallBack)networkReachabilityCallBack,&proxyReachabilityContext); - SCNetworkReachabilityScheduleWithRunLoop(proxyReachability, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode); + [self doRegister]; } else if (configCheckDisable == false) { UIAlertView* error = [[UIAlertView alloc] initWithTitle:@"Warning" @@ -321,7 +322,13 @@ extern void libmsilbc_init(); cancelButtonTitle:@"Continue" otherButtonTitles:@"Never remind",nil]; [error show]; + proxyReachability=SCNetworkReachabilityCreateWithName(nil, @"linphone.org"); + } + + SCNetworkReachabilitySetCallback(proxyReachability, (SCNetworkReachabilityCallBack)networkReachabilityCallBack,&proxyReachabilityContext); + SCNetworkReachabilityScheduleWithRunLoop(proxyReachability, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode); + //Configure Codecs PayloadType *pt; @@ -441,26 +448,22 @@ extern void libmsilbc_init(); } bool networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReachabilityFlags flags, void * info) { - LinphoneProxyConfig* proxyCfg; id linphoneDelegate=info; - if (linphone_core_get_default_proxy([linphoneDelegate getLinphoneCore],&proxyCfg)) { - //glob, no default proxy - return false; - } - linphone_proxy_config_edit(proxyCfg); + LinphoneCore* lc = [linphoneDelegate getLinphoneCore]; bool result = false; - if ((flags == 0) | (flags & (kSCNetworkReachabilityFlagsConnectionRequired |kSCNetworkReachabilityFlagsConnectionOnTraffic))) { - [linphoneDelegate kickOffNetworkConnection]; + + if (lc != nil) { + if ((flags == 0) | (flags & (kSCNetworkReachabilityFlagsConnectionRequired |kSCNetworkReachabilityFlagsConnectionOnTraffic))) { + [linphoneDelegate kickOffNetworkConnection]; + } + if (flags) { + linphone_core_set_network_reachable(lc,true); + result = true; + } else { + linphone_core_set_network_reachable(lc,false); + result = false; + } } - if (flags) { - // register whatever connection type - linphone_proxy_config_enable_register(proxyCfg,TRUE); - result = true; - } else { - linphone_proxy_config_enable_register(proxyCfg,false); - result = false; - } - linphone_proxy_config_done(proxyCfg); return result; } -(LinphoneCore*) getLinphoneCore { diff --git a/Resources/icone-linphone-512.png b/Resources/icone-linphone-512.png new file mode 100644 index 0000000000000000000000000000000000000000..511cb49f4496e1bd0fd9ebaa4973b4e0d8e06575 GIT binary patch literal 24228 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.1.2 NSMainNibFile PhoneMainView + UIRequiredDeviceCapabilities + + wifi + microphone + diff --git a/linphonerc b/linphonerc index 30522d6c0..a3ce7dc34 100644 --- a/linphonerc +++ b/linphonerc @@ -7,12 +7,13 @@ mtu=0 [sip] sip_port=5060 guess_hostname=1 -contact=sip:jehanmonnier@unknown-host +contact=sip:toto@unknown-host inc_timeout=15 use_info=0 use_ipv6=0 register_only_when_network_is_up=0 default_proxy=-1 +auto_net_state_mon=0 [rtp] audio_rtp_port=7076 @@ -26,43 +27,4 @@ playback_dev_id=AU: Audio Unit ringer_dev_id=AU: Audio Unit capture_dev_id=AU: Audio Unit -[audio_codec_0] -mime=speex -rate=32000 -enabled=0 - -[audio_codec_1] -mime=speex -rate=16000 -enabled=0 - -[audio_codec_2] -mime=speex -rate=8000 -enabled=0 - -[audio_codec_3] -mime=GSM -rate=22050 -enabled=0 - -[audio_codec_4] -mime=GSM -rate=11025 -enabled=0 - -[audio_codec_5] -mime=GSM -rate=8000 -enabled=0 - -[audio_codec_6] -mime=PCMU -rate=8000 -enabled=0 - -[audio_codec_7] -mime=PCMA -rate=8000 -enabled=0