-force PDP context allocation if network not reachable

-use 2 ip addresses for tunnels
This commit is contained in:
Jehan Monnier 2010-02-11 18:08:42 +01:00
parent 357b76c6e7
commit 689514f408
9 changed files with 129 additions and 7680 deletions

View file

@ -1,216 +0,0 @@
#include "bitlib.hh"
#include <stdlib.h>
typedef unsigned int UInt32;
namespace BitLib
{
// ----------------------------------------------------------------------------------------
UInt64 Bit::Add(int start, int length, UInt64 val, UInt32 numToAdd)
{
int end = start + length - 1;
UInt64 result = val;
// Clear out bits that will be modified
for (int i = start; i <= end; i++)
{
result &= ~((UInt64)1 << i);
}
UInt64 n = val >> start;
n += numToAdd;
for (int i = 0; i < length; i++)
{
UInt64 b = n & ((UInt64)1 << i);
b = b << start;
result |= b;
}
return result;
}
// ----------------------------------------------------------------------------------------
UInt64 Bit::Subtract(int start, int length, UInt64 val, UInt32 numToSubtract)
{
int end = start + length - 1;
UInt64 result = val;
// Clear out bits that will be modified
for (int i = start; i <= end; i++)
{
result &= ~((UInt64)1 << i);
}
UInt64 n = val >> start;
n -= numToSubtract;
for (int i = 0; i < length; i++)
{
UInt64 b = n & ((UInt64)1 << i);
b = b << start;
result |= b;
}
return result;
}
// ----------------------------------------------------------------------------------------
UInt64 Bit::Xor(int start, int length, UInt64 val, UInt32 val2)
{
int end = start + length - 1;
UInt64 result = val;
for (int i = 0; i < length; i++)
{
UInt64 b = val2 & ((UInt64)1 << i);
b = b << start;
result ^= b;
}
return result;
}
// ----------------------------------------------------------------------------------------
UInt64 Bit::RotateLeft(int start, int length, UInt64 val)
{
if (length <= 1)
{
return val;
}
int end = start + length - 1;
if (end >= 48)
{
abort();
}
UInt64 result = val;
// Clear out bits that will be modified
for (int i = start; i <= end; i++)
{
result &= ~((UInt64)1 << i);
}
// Shift all bits except the last
for (int i = start; i < end; i++)
{
UInt64 b = val & ((UInt64)1 << i);
result |= (b << 1);
}
// Wrap the last bit
{
UInt64 b = val & ((UInt64)1 << end);
result |= (b >> (length-1));
}
return result;
}
// ----------------------------------------------------------------------------------------
UInt64 Bit::RotateRight(int start, int length, UInt64 val)
{
if (length <= 1)
{
return val;
}
int end = start + length - 1;
if (end >= 48)
{
abort();
}
UInt64 result = val;
// Clear out bits that will be modified
for (int i = start; i <= end; i++)
{
result &= ~((UInt64)1 << i);
}
// Shift all bits except the first
for (int i = start+1; i <= end; i++)
{
UInt64 b = val & ((UInt64)1 << i);
result |= (b >> 1);
}
// Wrap the first bit
{
UInt64 b = val & ((UInt64)1 << start);
result |= (b << (length - 1));
}
return result;
}
// ----------------------------------------------------------------------------------------
UInt64 Bit::Swizzle(UInt64 val, const int operations[], int op_len)
{
int index = 0;
while (index < op_len)
{
Operation op = (Operation)operations[index++];
switch (op)
{
case OpRor:
{
int start = operations[index++];
int length = operations[index++];
val = RotateRight(start, length, val);
break;
}
case OpRol:
{
int start = operations[index++];
int length = operations[index++];
val = RotateLeft(start, length, val);
break;
}
case OpAdd:
{
int start = operations[index++];
int length = operations[index++];
UInt32 toAdd = (UInt32)operations[index++];
val = Add(start, length, val, toAdd);
break;
}
case OpSubtract:
{
int start = operations[index++];
int length = operations[index++];
UInt32 toSubtract = (UInt32)operations[index++];
val = Subtract(start, length, val, toSubtract);
break;
}
case OpXor:
{
int start = operations[index++];
int length = operations[index++];
UInt32 toXor = (UInt32)operations[index++];
val = Xor(start, length, val, toXor);
break;
}
default:
break;
}
}
return val;
}
}

View file

@ -1,26 +0,0 @@
#include <stdint.h>
#include <stdlib.h>
typedef uint64_t UInt64;
typedef unsigned int UInt32;
typedef uint8_t byte;
typedef unsigned int uint;
namespace BitLib{
class Bit{
public:
enum Operation{
OpRor = 0,
OpRol,
OpAdd,
OpSubtract,
OpXor,
OpMax
};
static UInt64 Add(int start, int length, UInt64 val, UInt32 numToAdd);
static UInt64 Subtract(int start, int length, UInt64 val, UInt32 numToSubtract);
static UInt64 Xor(int start, int length, UInt64 val, UInt32 val2);
static UInt64 RotateLeft(int start, int length, UInt64 val);
static UInt64 RotateRight(int start, int length, UInt64 val);
static UInt64 Swizzle(UInt64 val, const int operations[], int oplen);
};
}

View file

@ -1,98 +0,0 @@
#include "codechecker.hh"
#include <arpa/inet.h>
#include <string.h>
#include <ctype.h>
#include "decodetable.cc"
using namespace BitLib;
namespace axcodechecker{
CodeChecker * CodeChecker::sUnique=0;
CodeChecker * CodeChecker::get(){
if (sUnique==0)
sUnique=new CodeChecker();
return sUnique;
}
CodeChecker::CodeChecker(){
memset(mIpAddress,0,sizeof(mIpAddress));
memset(mCode,0,sizeof(mCode));
memset(mNumber,0,sizeof(mNumber));
}
static UInt64 hexStringToUint64(const char *str){
return strtoll(str,NULL,16);
}
CodeChecker::Result CodeChecker::validate(){
UInt64 key = hexStringToUint64(mCode);
key = Bit::Swizzle(key, decodeTable, decodeTableLen);
UInt32 ip = (UInt32)(key >> 16);
byte phoneHash = (byte)(key >> 8);
byte crc = (byte)key;
byte b1 = (byte)(phoneHash & 0xff);
byte b2 = (byte)(ip & 0xff);
byte b3 = (byte)((ip >> 8) & 0xff);
byte b4 = (byte)((ip >> 16) & 0xff);
byte b5 = (byte)((ip >> 24) & 0xff);
byte crc2 = (byte)(b5 ^ b1 ^ b4 ^ b2 ^ b3);
if (crc == crc2)
{
if (phoneHash == sdbmHash(mNumber))
{
struct in_addr ia;
ia.s_addr=htonl(ip);
inet_ntop(AF_INET,&ia,mIpAddress,sizeof(mIpAddress));
return Ok;
}
else
{
return WrongPhoneNumber;
}
}
return WrongCode;
}
byte CodeChecker::sdbmHash(const char *str){
uint hash = 0;
int i;
int ch;
for(i=0;str[i]!='\0';++i){
ch=str[i];
hash = ch + (hash << 6) + (hash << 16) - hash;
}
return (byte)hash;
}
void CodeChecker::setCode(const char *code){
strncpy(mCode,code,sizeof(mCode));
}
void CodeChecker::setPhoneNumber(const char *phoneNumber){
strncpy(mNumber,phoneNumber,sizeof(mNumber));
}
}
extern "C" const char* axtunnel_get_ip_from_key(const char* phone,const char* key) {
axcodechecker::CodeChecker::get()->setPhoneNumber(phone);
axcodechecker::CodeChecker::get()->setCode(key);
axcodechecker::CodeChecker::Result result=axcodechecker::CodeChecker::get()->validate();
if (result == axcodechecker::CodeChecker::Ok) {
return axcodechecker::CodeChecker::get()->getIpAddress();
} else {
return 0;
}
}

View file

@ -1,25 +0,0 @@
#include "bitlib.hh"
namespace axcodechecker{
class CodeChecker{
public:
enum Result{ Ok, WrongPhoneNumber, WrongCode};
static CodeChecker *get();
void setCode(const char *code);
void setPhoneNumber(const char *phoneNumber);
Result validate();
const char *getIpAddress()const{
return mIpAddress;
}
private:
byte sdbmHash(const char *str);
CodeChecker();
char mCode[64];
char mNumber[32];
char mIpAddress[32];
static CodeChecker *sUnique;
};
}//end of namespace

File diff suppressed because it is too large Load diff

View file

@ -36,6 +36,8 @@
-(bool) toggleTunnel;
-(bool) isTunnel;
-(void) resetConfig;
-(void) doRegister;
-(void) kickOffNetworkConnection;
-(LinphoneCore*) getLinphoneCore;
@ -51,7 +53,8 @@
@class FirstLoginViewController;
@interface linphoneAppDelegate : NSObject <UIApplicationDelegate,LinphoneManagerDelegate,UIActionSheetDelegate> {
UIWindow *window;
UIWindow *window;
IBOutlet UITabBarController* myTabBarController;
IBOutlet ABPeoplePickerNavigationController* myPeoplePickerController;
IBOutlet PhoneViewController* myPhoneViewController;
@ -64,12 +67,15 @@
bool isTunnelConfigured;
bool isTunnel;
bool isDebug;
bool isStarted;
LinphoneCore* myLinphoneCore;
SCNetworkReachabilityContext proxyReachabilityContext;
SCNetworkReachabilityRef proxyReachability;
}
void tunnel_state_cb(bool connected, void *data);
/**********************************
* liblinphone initialization method
**********************************/

View file

@ -29,10 +29,18 @@
#import "MoreViewController.h"
#import "ConsoleViewController.h"
#import "FirstLoginViewController.h"
#import "codechecker.hh"
extern void ms_au_register_card();
extern void linphone_iphone_tunneling_init(const char* ip,unsigned int port,bool isDebug);
extern void linphone_iphone_tunneling_init(const char* ip1
,const char* ip2
,unsigned int port
,bool isDebug
,void (*cb)(bool connected, void *data)
,void* userdata);
extern void linphone_iphone_enable_tunneling(LinphoneCore* lc);
extern void linphone_iphone_disable_tunneling(LinphoneCore* lc);
extern int linphone_iphone_tunneling_isready();
@ -225,6 +233,24 @@ LinphoneCoreVTable linphone_iphone_vtable = {
}
-(void) kickOffNetworkConnection {
CFWriteStreamRef writeStream;
CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)@"208.109.100.191", 15000, nil, &writeStream);
Boolean status = CFWriteStreamOpen (writeStream);
const char* buff="yop";
int written = CFWriteStreamWrite (writeStream,(const UInt8*)buff,strlen(buff));
NSLog(@"activating network interface status [%i], [%i] byte sent",status,written);
CFWriteStreamClose (writeStream);
}
- (void)applicationDidBecomeActive:(UIApplication *)application {
if (isStarted) {
NSLog(@"becomming active, make sure we are registered");
[self doRegister];
} else {
isStarted=true;
}
}
- (void)dealloc {
[window release];
[myPeoplePickerController release];
@ -343,9 +369,14 @@ LinphoneCoreVTable linphone_iphone_vtable = {
NSString* axtelPin = [[NSUserDefaults standardUserDefaults] stringForKey:@"axtelpin_preference"];
if (isTunnelConfigured) {
const char* tunnelIp=axtunnel_get_ip_from_key([username cStringUsingEncoding:[NSString defaultCStringEncoding]]
,[axtelPin cStringUsingEncoding:[NSString defaultCStringEncoding]] );
if(!tunnelIp) {
char ip1[32];
char ip2[32];
int status = axkeydec_get_ip_from_key([username cStringUsingEncoding:[NSString defaultCStringEncoding]]
, [axtelPin cStringUsingEncoding:[NSString defaultCStringEncoding]]
, ip1
, ip2
, sizeof(ip1));
if(status) {
UIAlertView* alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Alert",nil)
message:NSLocalizedString(@"Wrong axtel number or pin, disabling tunnel",nil)
delegate:nil
@ -356,7 +387,7 @@ LinphoneCoreVTable linphone_iphone_vtable = {
isTunnel=false;
} else {
linphone_iphone_tunneling_init(tunnelIp,443,isDebug);
linphone_iphone_tunneling_init((const char*)ip1,(const char*)ip2,443,isDebug,tunnel_state_cb,self);
isTunnel=true;
}
}
@ -420,7 +451,7 @@ LinphoneCoreVTable linphone_iphone_vtable = {
}
LinphoneAddress* addr=linphone_address_new(linphone_proxy_config_get_addr(proxyCfg));
proxyReachability=SCNetworkReachabilityCreateWithName(nil, linphone_address_get_domain(addr));
proxyReachabilityContext.info=myLinphoneCore;
proxyReachabilityContext.info=self;
bool result=SCNetworkReachabilitySetCallback(proxyReachability, networkReachabilityCallBack,&proxyReachabilityContext);
SCNetworkReachabilityFlags reachabilityFlags;
result=SCNetworkReachabilityGetFlags (proxyReachability,&reachabilityFlags);
@ -434,7 +465,7 @@ LinphoneCoreVTable linphone_iphone_vtable = {
linphone_core_add_proxy_config(myLinphoneCore,proxyCfg);
//set to default proxy
linphone_core_set_default_proxy(myLinphoneCore,proxyCfg);
networkReachabilityCallBack(proxyReachability,reachabilityFlags,myLinphoneCore);
networkReachabilityCallBack(proxyReachability,reachabilityFlags,self);
}
}
@ -493,7 +524,11 @@ LinphoneCoreVTable linphone_iphone_vtable = {
}
bool networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReachabilityFlags flags, void * info) {
LinphoneProxyConfig* proxyCfg;
linphone_core_get_default_proxy((LinphoneCore*)info,&proxyCfg);
id<LinphoneManagerDelegate> linphoneDelegate=info;
if (linphone_core_get_default_proxy([linphoneDelegate getLinphoneCore],&proxyCfg)) {
//glob, no default proxy
return false;
}
linphone_proxy_config_edit(proxyCfg);
bool result = false;
#ifdef LINPHONE_WIFI_ONLY
@ -505,6 +540,9 @@ bool networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach
result = false;
}
#else
if ((flags == 0) | (flags & (kSCNetworkReachabilityFlagsConnectionRequired |kSCNetworkReachabilityFlagsConnectionOnTraffic))) {
[linphoneDelegate kickOffNetworkConnection];
}
if (flags) {
// register whatever connection type
linphone_proxy_config_enable_register(proxyCfg,TRUE);
@ -517,15 +555,29 @@ bool networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach
linphone_proxy_config_done(proxyCfg);
return result;
}
void tunnel_state_cb(bool connected, void *data) {
id <LinphoneManagerDelegate> linphoneApp = (id <LinphoneManagerDelegate>)data;
if ([linphoneApp isTunnel] && connected) {
NSLog(@"Tunnel connected");
[linphoneApp doRegister];
} else if ([linphoneApp isTunnel] && !connected) {
NSLog(@"Tunnel connection failure detected");
LinphoneProxyConfig* proxyCfg;
linphone_core_get_default_proxy([linphoneApp getLinphoneCore],&proxyCfg);
linphone_proxy_config_edit(proxyCfg);
linphone_proxy_config_enable_register(proxyCfg,false);
linphone_proxy_config_done(proxyCfg);
}
}
-(bool) toggleTunnel {
if (isTunnelConfigured) {
if (isTunnel) {
[self disableTunnel];
} else {
[self enableTunnel];
}
isTunnel=!isTunnel;
if (isTunnel) {
[self enableTunnel];
} else {
[self disableTunnel];
}
} else {
UIAlertView* alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Alert",nil)
message:NSLocalizedString(@"Auroc cannot be activated, go to the settings to configure",nil)
@ -540,7 +592,7 @@ bool networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach
-(void) enableTunnel {
linphone_iphone_enable_tunneling(myLinphoneCore);
[self doRegister];
if (linphone_iphone_tunneling_isready()) [self doRegister];
}
-(void) disableTunnel {
@ -551,7 +603,7 @@ bool networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach
-(void) doRegister {
SCNetworkReachabilityFlags reachabilityFlags;
SCNetworkReachabilityGetFlags (proxyReachability,&reachabilityFlags);
networkReachabilityCallBack(proxyReachability,reachabilityFlags,myLinphoneCore);
networkReachabilityCallBack(proxyReachability,reachabilityFlags,self);
}
-(LinphoneCore*) getLinphoneCore {
return myLinphoneCore;

View file

@ -106,14 +106,25 @@ static RtpTransport audio_transport={
};
extern "C" void linphone_iphone_tunneling_init(const char* ip,unsigned int port,bool isDebug){
extern "C" void linphone_iphone_tunneling_init(const char* ip1
,const char* ip2
,unsigned int port
,bool isDebug
,void (*cb)(bool connected, void *data)
,void* userdata) {
if (isDebug) {
SetLogHandler(&linphone_iphone_log_handler);
SetLogLevel(AXTUNNEL_ERROR|AXTUNNEL_WARN);
} else {
SetLogLevel(0);
}
linphone_iphone_tun = new TunnelClient(ip,port);
linphone_iphone_tun = new TunnelClient();
linphone_iphone_tun->addServer(ip1, port);
linphone_iphone_tun->addServer(ip2, port);
linphone_iphone_tun->setCallback(cb, userdata);
linphone_iphone_tun->start();
}
extern "C" void linphone_iphone_enable_tunneling(LinphoneCore* lc){

View file

@ -111,6 +111,8 @@
224567C2107B968500F10948 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 224567C1107B968500F10948 /* AVFoundation.framework */; };
22527EF410DBB82C00E9915B /* FirstLoginViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 22527EF210DBB82C00E9915B /* FirstLoginViewController.m */; };
22527EF510DBB82C00E9915B /* FirstLoginViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 22527EF310DBB82C00E9915B /* FirstLoginViewController.xib */; };
225BCDD61122F043009EE0C0 /* libaxkeydec.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 225BCDD51122F043009EE0C0 /* libaxkeydec.a */; };
225BCDD71122F043009EE0C0 /* libaxkeydec.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 225BCDD51122F043009EE0C0 /* libaxkeydec.a */; };
2273785E10A3703300526073 /* libmsiounit.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2273785D10A3703300526073 /* libmsiounit.a */; };
2274401A106F31BD006EC466 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 22744019106F31BD006EC466 /* CoreAudio.framework */; };
2274402F106F335E006EC466 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2274402E106F335E006EC466 /* AudioToolbox.framework */; };
@ -324,20 +326,13 @@
22F255151073EEE600AC9B3F /* green.png in Resources */ = {isa = PBXBuildFile; fileRef = 22F255131073EEE600AC9B3F /* green.png */; };
22F255161073EEE600AC9B3F /* red.png in Resources */ = {isa = PBXBuildFile; fileRef = 22F255141073EEE600AC9B3F /* red.png */; };
22F51EF6107FA66500F98953 /* untitled.plist in Resources */ = {isa = PBXBuildFile; fileRef = 22F51EF5107FA66500F98953 /* untitled.plist */; };
22FAD379110E065100E2BA6A /* decodetable.cc in Sources */ = {isa = PBXBuildFile; fileRef = 22B44F8A10F4E519005A07E6 /* decodetable.cc */; };
22FAD37A110E065100E2BA6A /* codechecker.hh in Headers */ = {isa = PBXBuildFile; fileRef = 22B44F8C10F4E519005A07E6 /* codechecker.hh */; };
22FAD37B110E065100E2BA6A /* codechecker.cc in Sources */ = {isa = PBXBuildFile; fileRef = 22B44F8D10F4E519005A07E6 /* codechecker.cc */; };
22FAD37C110E065100E2BA6A /* bitlib.hh in Headers */ = {isa = PBXBuildFile; fileRef = 22B44F8E10F4E519005A07E6 /* bitlib.hh */; };
22FAD37D110E065100E2BA6A /* bitlib.cc in Sources */ = {isa = PBXBuildFile; fileRef = 22B44F8F10F4E519005A07E6 /* bitlib.cc */; };
22FAD393110E06D800E2BA6A /* libkeydecoder.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22FAD370110E05FC00E2BA6A /* libkeydecoder.a */; };
22FAD394110E06E500E2BA6A /* libkeydecoder.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22FAD370110E05FC00E2BA6A /* libkeydecoder.a */; };
288765FD0DF74451002DB57D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765FC0DF74451002DB57D /* CoreGraphics.framework */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
1D3623240D0F684500981E51 /* linphoneAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = linphoneAppDelegate.h; sourceTree = "<group>"; };
1D3623250D0F684500981E51 /* linphoneAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = linphoneAppDelegate.m; sourceTree = "<group>"; };
1D3623250D0F684500981E51 /* linphoneAppDelegate.m */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; path = linphoneAppDelegate.m; sourceTree = "<group>"; };
1D6058910D05DD3D006BFB54 /* axphone.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = axphone.app; sourceTree = BUILT_PRODUCTS_DIR; };
1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
220646AA10D7B90300632606 /* tunnel.cc */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; name = tunnel.cc; path = Classes/tunnel.cc; sourceTree = "<group>"; };
@ -560,6 +555,8 @@
22527EF110DBB82C00E9915B /* FirstLoginViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FirstLoginViewController.h; sourceTree = "<group>"; };
22527EF210DBB82C00E9915B /* FirstLoginViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FirstLoginViewController.m; sourceTree = "<group>"; };
22527EF310DBB82C00E9915B /* FirstLoginViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = FirstLoginViewController.xib; sourceTree = "<group>"; };
225BCDD51122F043009EE0C0 /* libaxkeydec.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libaxkeydec.a; path = "../liblinphone-sdk/armv6-apple-darwin/lib/libaxkeydec.a"; sourceTree = SOURCE_ROOT; };
225BCDE81122F094009EE0C0 /* codechecker.hh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = codechecker.hh; sourceTree = "<group>"; };
2273785D10A3703300526073 /* libmsiounit.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmsiounit.a; path = "../liblinphone-sdk/armv6-apple-darwin/lib/mediastreamer/plugins/libmsiounit.a"; sourceTree = SOURCE_ROOT; };
22744019106F31BD006EC466 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; };
2274402E106F335E006EC466 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
@ -593,11 +590,6 @@
22B44E6610F4AB5A005A07E6 /* FavoriteEditViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FavoriteEditViewController.h; sourceTree = "<group>"; };
22B44E6710F4AB5A005A07E6 /* FavoriteEditViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FavoriteEditViewController.m; sourceTree = "<group>"; };
22B44E6B10F4AEE0005A07E6 /* FavoriteEditViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = FavoriteEditViewController.xib; sourceTree = "<group>"; };
22B44F8A10F4E519005A07E6 /* decodetable.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = decodetable.cc; sourceTree = "<group>"; };
22B44F8C10F4E519005A07E6 /* codechecker.hh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = codechecker.hh; sourceTree = "<group>"; };
22B44F8D10F4E519005A07E6 /* codechecker.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = codechecker.cc; sourceTree = "<group>"; };
22B44F8E10F4E519005A07E6 /* bitlib.hh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = bitlib.hh; sourceTree = "<group>"; };
22B44F8F10F4E519005A07E6 /* bitlib.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = bitlib.cc; sourceTree = "<group>"; };
22B4506510F5D391005A07E6 /* about.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = about.jpg; sourceTree = "<group>"; };
22B4506910F5D66A005A07E6 /* boton_colgar.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = boton_colgar.png; sourceTree = "<group>"; };
22B4506A10F5D66A005A07E6 /* corner_der.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = corner_der.png; sourceTree = "<group>"; };
@ -636,7 +628,6 @@
22F255131073EEE600AC9B3F /* green.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = green.png; path = ../linphone/pixmaps/green.png; sourceTree = SOURCE_ROOT; };
22F255141073EEE600AC9B3F /* red.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = red.png; path = ../linphone/pixmaps/red.png; sourceTree = SOURCE_ROOT; };
22F51EF5107FA66500F98953 /* untitled.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = untitled.plist; sourceTree = "<group>"; };
22FAD370110E05FC00E2BA6A /* libkeydecoder.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libkeydecoder.a; sourceTree = BUILT_PRODUCTS_DIR; };
288765FC0DF74451002DB57D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
32CA4F630368D1EE00C91783 /* linphone_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = linphone_Prefix.pch; sourceTree = "<group>"; };
@ -670,7 +661,7 @@
220646F310D7C62600632606 /* libssl.a in Frameworks */,
220646F410D7C62600632606 /* libcrypto.a in Frameworks */,
229242BC10F2298C008A8A37 /* SystemConfiguration.framework in Frameworks */,
22FAD394110E06E500E2BA6A /* libkeydecoder.a in Frameworks */,
225BCDD71122F043009EE0C0 /* libaxkeydec.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -700,14 +691,7 @@
2292419110F2020E008A8A37 /* libssl.a in Frameworks */,
2292419210F2020E008A8A37 /* libcrypto.a in Frameworks */,
229242C010F229AD008A8A37 /* SystemConfiguration.framework in Frameworks */,
22FAD393110E06D800E2BA6A /* libkeydecoder.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
22FAD36E110E05FC00E2BA6A /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
225BCDD61122F043009EE0C0 /* libaxkeydec.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -717,11 +701,6 @@
080E96DDFE201D6D7F000001 /* Classes */ = {
isa = PBXGroup;
children = (
22B44F8A10F4E519005A07E6 /* decodetable.cc */,
22B44F8C10F4E519005A07E6 /* codechecker.hh */,
22B44F8D10F4E519005A07E6 /* codechecker.cc */,
22B44F8E10F4E519005A07E6 /* bitlib.hh */,
22B44F8F10F4E519005A07E6 /* bitlib.cc */,
1D3623240D0F684500981E51 /* linphoneAppDelegate.h */,
1D3623250D0F684500981E51 /* linphoneAppDelegate.m */,
22F2508B107141E100AC9B3F /* PhoneViewController.h */,
@ -764,7 +743,6 @@
children = (
1D6058910D05DD3D006BFB54 /* axphone.app */,
2292419710F2020E008A8A37 /* axphone.app */,
22FAD370110E05FC00E2BA6A /* libkeydecoder.a */,
);
name = Products;
sourceTree = "<group>";
@ -888,6 +866,7 @@
220FAC77107654FC0068D98F /* include */ = {
isa = PBXGroup;
children = (
225BCDE71122F094009EE0C0 /* axkeydec */,
228B040310DB95BD0061FE68 /* axtunnel */,
220FAC78107654FC0068D98F /* eXosip2 */,
220FAC82107654FC0068D98F /* gsm */,
@ -1073,6 +1052,14 @@
path = speex;
sourceTree = "<group>";
};
225BCDE71122F094009EE0C0 /* axkeydec */ = {
isa = PBXGroup;
children = (
225BCDE81122F094009EE0C0 /* codechecker.hh */,
);
path = axkeydec;
sourceTree = "<group>";
};
228B040310DB95BD0061FE68 /* axtunnel */ = {
isa = PBXGroup;
children = (
@ -1184,6 +1171,7 @@
220FACFD107657EC0068D98F /* libosipparser2.a */,
220FACFE107657EC0068D98F /* libspeex.a */,
220FACFF107657EC0068D98F /* libspeexdsp.a */,
225BCDD51122F043009EE0C0 /* libaxkeydec.a */,
220FAC77107654FC0068D98F /* include */,
080E96DDFE201D6D7F000001 /* Classes */,
29B97315FDCFA39411CA2CEA /* Other Sources */,
@ -1255,18 +1243,6 @@
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
22FAD36C110E05FC00E2BA6A /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
22FAD37A110E065100E2BA6A /* codechecker.hh in Headers */,
22FAD37C110E065100E2BA6A /* bitlib.hh in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
1D6058900D05DD3D006BFB54 /* axphone */ = {
isa = PBXNativeTarget;
@ -1302,23 +1278,6 @@
productReference = 2292419710F2020E008A8A37 /* axphone.app */;
productType = "com.apple.product-type.application";
};
22FAD36F110E05FC00E2BA6A /* keydecoder */ = {
isa = PBXNativeTarget;
buildConfigurationList = 22FAD37F110E068F00E2BA6A /* Build configuration list for PBXNativeTarget "keydecoder" */;
buildPhases = (
22FAD36C110E05FC00E2BA6A /* Headers */,
22FAD36D110E05FC00E2BA6A /* Sources */,
22FAD36E110E05FC00E2BA6A /* Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = keydecoder;
productName = keydecoder;
productReference = 22FAD370110E05FC00E2BA6A /* libkeydecoder.a */;
productType = "com.apple.product-type.library.static";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
@ -1342,7 +1301,6 @@
targets = (
1D6058900D05DD3D006BFB54 /* axphone */,
229240F810F2020E008A8A37 /* axphone-advanced */,
22FAD36F110E05FC00E2BA6A /* keydecoder */,
);
};
/* End PBXProject section */
@ -1653,16 +1611,6 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
22FAD36D110E05FC00E2BA6A /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
22FAD379110E065100E2BA6A /* decodetable.cc in Sources */,
22FAD37B110E065100E2BA6A /* codechecker.cc in Sources */,
22FAD37D110E065100E2BA6A /* bitlib.cc in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
@ -1692,7 +1640,10 @@
"HEADER_SEARCH_PATHS[sdk=iphoneos*][arch=*]" = "\"$(SRCROOT)/../liblinphone-sdk/armv6-apple-darwin/include\"";
"HEADER_SEARCH_PATHS[sdk=iphonesimulator*]" = "\"$(SRCROOT)/../liblinphone-sdk/i386-apple-darwin/include\"";
INFOPLIST_FILE = "linphone-Info.plist";
LIBRARY_SEARCH_PATHS = "";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/../liblinphone-sdk/armv6-apple-darwin/lib\"",
);
"LIBRARY_SEARCH_PATHS[sdk=iphoneos*][arch=*]" = "\"$(SRCROOT)/../liblinphone-sdk/armv6-apple-darwin/lib\"/**";
"LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*][arch=*]" = "\"$(SRCROOT)/../liblinphone-sdk/i386-apple-darwin/lib\"/**";
PRODUCT_NAME = axphone;
@ -1712,7 +1663,10 @@
"HEADER_SEARCH_PATHS[sdk=iphoneos*][arch=*]" = "\"$(SRCROOT)/../liblinphone-sdk/armv6-apple-darwin/include\"";
"HEADER_SEARCH_PATHS[sdk=iphonesimulator*]" = "\"$(SRCROOT)/../liblinphone-sdk/i386-apple-darwin/include\"";
INFOPLIST_FILE = "linphone-Info.plist";
LIBRARY_SEARCH_PATHS = "";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/../liblinphone-sdk/armv6-apple-darwin/lib\"",
);
"LIBRARY_SEARCH_PATHS[sdk=iphoneos*][arch=*]" = "\"$(SRCROOT)/../liblinphone-sdk/armv6-apple-darwin/lib\"/**";
"LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*][arch=*]" = "\"$(SRCROOT)/../liblinphone-sdk/i386-apple-darwin/lib\"/**";
PRODUCT_NAME = axphone;
@ -1733,7 +1687,10 @@
"HEADER_SEARCH_PATHS[sdk=iphoneos*][arch=*]" = "\"$(SRCROOT)/../liblinphone-sdk/armv6-apple-darwin/include\"";
"HEADER_SEARCH_PATHS[sdk=iphonesimulator*]" = "\"$(SRCROOT)/../liblinphone-sdk/i386-apple-darwin/include\"";
INFOPLIST_FILE = "linphone-advanced-Info.plist";
LIBRARY_SEARCH_PATHS = "";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/../liblinphone-sdk/armv6-apple-darwin/lib\"",
);
"LIBRARY_SEARCH_PATHS[sdk=iphoneos*][arch=*]" = "\"$(SRCROOT)/../liblinphone-sdk/armv6-apple-darwin/lib\"/**";
"LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*][arch=*]" = (
"\"$(SRCROOT)/../liblinphone-sdk/i386-apple-darwin/lib/mediastreamer2/plugins\"",
@ -1761,7 +1718,10 @@
"HEADER_SEARCH_PATHS[sdk=iphoneos*][arch=*]" = "\"$(SRCROOT)/../liblinphone-sdk/armv6-apple-darwin/include\"";
"HEADER_SEARCH_PATHS[sdk=iphonesimulator*]" = "\"$(SRCROOT)/../liblinphone-sdk/i386-apple-darwin/include\"";
INFOPLIST_FILE = "linphone-advanced-Info.plist";
LIBRARY_SEARCH_PATHS = "";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/../liblinphone-sdk/armv6-apple-darwin/lib\"",
);
"LIBRARY_SEARCH_PATHS[sdk=iphoneos*][arch=*]" = "\"$(SRCROOT)/../liblinphone-sdk/armv6-apple-darwin/lib\"/**";
"LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*][arch=*]" = (
"\"$(SRCROOT)/../liblinphone-sdk/i386-apple-darwin/lib/mediastreamer2/plugins\"",
@ -1785,7 +1745,10 @@
"HEADER_SEARCH_PATHS[sdk=iphoneos*][arch=*]" = "\"$(SRCROOT)/../liblinphone-sdk/armv6-apple-darwin/include\"";
"HEADER_SEARCH_PATHS[sdk=iphonesimulator*]" = "\"$(SRCROOT)/../liblinphone-sdk/i386-apple-darwin/include\"";
INFOPLIST_FILE = "linphone-advanced-Info.plist";
LIBRARY_SEARCH_PATHS = "";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/../liblinphone-sdk/armv6-apple-darwin/lib\"",
);
"LIBRARY_SEARCH_PATHS[sdk=iphoneos*][arch=*]" = "\"$(SRCROOT)/../liblinphone-sdk/armv6-apple-darwin/lib\"/**";
"LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*][arch=*]" = (
"\"$(SRCROOT)/../liblinphone-sdk/i386-apple-darwin/lib/mediastreamer2/plugins\"",
@ -1830,7 +1793,10 @@
"HEADER_SEARCH_PATHS[sdk=iphoneos*][arch=*]" = "\"$(SRCROOT)/../liblinphone-sdk/armv6-apple-darwin/include\"";
"HEADER_SEARCH_PATHS[sdk=iphonesimulator*]" = "\"$(SRCROOT)/../liblinphone-sdk/i386-apple-darwin/include\"";
INFOPLIST_FILE = "linphone-Info.plist";
LIBRARY_SEARCH_PATHS = "";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/../liblinphone-sdk/armv6-apple-darwin/lib\"",
);
"LIBRARY_SEARCH_PATHS[sdk=iphoneos*][arch=*]" = "\"$(SRCROOT)/../liblinphone-sdk/armv6-apple-darwin/lib\"/**";
"LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*][arch=*]" = "\"$(SRCROOT)/../liblinphone-sdk/i386-apple-darwin/lib\"/**";
PRODUCT_NAME = axphone;
@ -1840,40 +1806,6 @@
};
name = Distribution;
};
22FAD371110E05FD00E2BA6A /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
COPY_PHASE_STRIP = NO;
GCC_DYNAMIC_NO_PIC = NO;
GCC_OPTIMIZATION_LEVEL = 0;
PREBINDING = NO;
PRODUCT_NAME = keydecoder;
};
name = Debug;
};
22FAD372110E05FD00E2BA6A /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
PREBINDING = NO;
PRODUCT_NAME = keydecoder;
};
name = Distribution;
};
22FAD373110E05FD00E2BA6A /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
COPY_PHASE_STRIP = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
GCC_ENABLE_FIX_AND_CONTINUE = NO;
PREBINDING = NO;
PRODUCT_NAME = keydecoder;
ZERO_LINK = NO;
};
name = Release;
};
C01FCF4F08A954540054247B /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
@ -1926,16 +1858,6 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
22FAD37F110E068F00E2BA6A /* Build configuration list for PBXNativeTarget "keydecoder" */ = {
isa = XCConfigurationList;
buildConfigurations = (
22FAD371110E05FD00E2BA6A /* Debug */,
22FAD372110E05FD00E2BA6A /* Distribution */,
22FAD373110E05FD00E2BA6A /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
C01FCF4E08A954540054247B /* Build configuration list for PBXProject "linphone" */ = {
isa = XCConfigurationList;
buildConfigurations = (