full featured delivery for corusquante

This commit is contained in:
Jehan Monnier 2010-01-26 10:17:51 +01:00
parent 8b3946ce38
commit 2f61bb4ee1
174 changed files with 14134 additions and 911 deletions

View file

@ -0,0 +1,20 @@
/*
* AboutViewController.h
*
* Description:
*
*
* Belledonne Communications (C) 2010
*
* Copyright: See COPYING file that comes with this distribution
*
*/
#import <UIKit/UIKit.h>
@interface AboutViewController : UIViewController {
}
@end

View file

@ -0,0 +1,61 @@
/*
* AboutViewController.m
*
* Description:
*
*
* Belledonne Communications (C) 2010
*
* Copyright: See COPYING file that comes with this distribution
*
*/
#import "AboutViewController.h"
@implementation AboutViewController
/*
// The designated initializer. Override if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad.
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
// Custom initialization
}
return self;
}
*/
/*
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
[super viewDidLoad];
}
*/
/*
// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
*/
- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
- (void)viewDidUnload {
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- (void)dealloc {
[super dealloc];
}
@end

View file

@ -0,0 +1,175 @@
<?xml version="1.0" encoding="UTF-8"?>
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.03">
<data>
<int key="IBDocument.SystemTarget">784</int>
<string key="IBDocument.SystemVersion">9L31a</string>
<string key="IBDocument.InterfaceBuilderVersion">680</string>
<string key="IBDocument.AppKitVersion">949.54</string>
<string key="IBDocument.HIToolboxVersion">353.00</string>
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
<bool key="EncodedWithXMLCoder">YES</bool>
<integer value="1"/>
</object>
<object class="NSArray" key="IBDocument.PluginDependencies">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
</object>
<object class="NSMutableDictionary" key="IBDocument.Metadata">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBProxyObject" id="372490531">
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
</object>
<object class="IBProxyObject" id="975951072">
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
</object>
<object class="IBUIView" id="191373211">
<reference key="NSNextResponder"/>
<int key="NSvFlags">292</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBUIImageView" id="181548468">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">292</int>
<string key="NSFrameSize">{320, 460}</string>
<reference key="NSSuperview" ref="191373211"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUIContentMode">5</int>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<object class="NSCustomResource" key="IBUIImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">about.jpg</string>
</object>
</object>
</object>
<string key="NSFrameSize">{320, 460}</string>
<reference key="NSSuperview"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
<object class="NSColorSpace" key="NSCustomColorSpace">
<int key="NSID">2</int>
</object>
</object>
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
</object>
</object>
<object class="IBObjectContainer" key="IBDocument.Objects">
<object class="NSMutableArray" key="connectionRecords">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">view</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="191373211"/>
</object>
<int key="connectionID">3</int>
</object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
<object class="NSArray" key="orderedObjects">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBObjectRecord">
<int key="objectID">0</int>
<object class="NSArray" key="object" id="793469276">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<reference key="children" ref="1000"/>
<nil key="parent"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">1</int>
<reference key="object" ref="191373211"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="181548468"/>
</object>
<reference key="parent" ref="793469276"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">-1</int>
<reference key="object" ref="372490531"/>
<reference key="parent" ref="793469276"/>
<string type="base64-UTF8" key="objectName">RmlsZSdzIE93bmVyA</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">-2</int>
<reference key="object" ref="975951072"/>
<reference key="parent" ref="793469276"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4</int>
<reference key="object" ref="181548468"/>
<reference key="parent" ref="191373211"/>
</object>
</object>
</object>
<object class="NSMutableDictionary" key="flattenedProperties">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSMutableArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>-1.CustomClassName</string>
<string>-2.CustomClassName</string>
<string>1.IBEditorWindowLastContentRect</string>
<string>1.IBPluginDependency</string>
<string>4.IBPluginDependency</string>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>AboutViewController</string>
<string>UIResponder</string>
<string>{{449, 412}, {320, 480}}</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
</object>
</object>
<object class="NSMutableDictionary" key="unlocalizedProperties">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<nil key="activeLocalization"/>
<object class="NSMutableDictionary" key="localizations">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<nil key="sourceID"/>
<int key="maxID">9</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBPartialClassDescription">
<string key="className">AboutViewController</string>
<string key="superclassName">UIViewController</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">Classes/AboutViewController.h</string>
</object>
</object>
</object>
</object>
<int key="IBDocument.localizationMode">0</int>
<string key="IBDocument.LastKnownRelativeProjectPath">../linphone.xcodeproj</string>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
<string key="IBCocoaTouchPluginVersion">3.1</string>
</data>
</archive>

View file

@ -21,7 +21,9 @@
@interface CallHistoryTableViewController : GenericTabViewController {
UIButton* clear;
}
-(void) doAction:(id) sender;
@property (nonatomic, retain) IBOutlet UIButton* clear;
@end

View file

@ -22,7 +22,7 @@
@implementation CallHistoryTableViewController
@synthesize clear;
/*
- (id)initWithStyle:(UITableViewStyle)style {
@ -86,6 +86,12 @@
}
-(void) doAction:(id)sender {
if (sender==clear) {
linphone_core_clear_call_logs(myLinphoneCore);
[self.tableView reloadData];
}
}
#pragma mark Table view methods
@ -108,29 +114,40 @@
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
}
// Set up the cell...
LinphoneCallLog* callLogs = ms_list_nth_data(linphone_core_get_call_logs(myLinphoneCore), indexPath.row) ;
const char* username = linphone_address_get_username(callLogs->to)!=0?linphone_address_get_username(callLogs->to):"";
[cell.textLabel setText:[[NSString alloc] initWithCString:username encoding:[NSString defaultCStringEncoding]]];
LinphoneAddress* partyToDisplay;
const MSList * logs = linphone_core_get_call_logs(myLinphoneCore);
LinphoneCallLog* callLogs = ms_list_nth_data(logs, ms_list_size(logs)-indexPath.row-1) ;
NSString *path;
if (callLogs->dir == LinphoneCallIncoming) {
path = [[NSBundle mainBundle] pathForResource:@"in_call" ofType:@"png"];
partyToDisplay=callLogs->from;
} else {
path = [[NSBundle mainBundle] pathForResource:@"out_call" ofType:@"png"];
partyToDisplay=callLogs->to;
}
UIImage *image = [UIImage imageWithContentsOfFile:path];
cell.imageView.image = image;
cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
const char* username = linphone_address_get_username(partyToDisplay)!=0?linphone_address_get_username(partyToDisplay):"";
const char* displayName = linphone_address_get_display_name(partyToDisplay);
if (displayName) {
[cell.textLabel setText:[[NSString alloc] initWithCString:displayName encoding:[NSString defaultCStringEncoding]]];
[cell.detailTextLabel setText:[NSString stringWithFormat:@"%s"/* [%s]"*/,username/*,callLogs->start_date*/]];
} else {
[cell.textLabel setText:[[NSString alloc] initWithCString:username encoding:[NSString defaultCStringEncoding]]];
}
return cell;
}
@ -142,9 +159,22 @@
// [anotherViewController release];
[tableView deselectRowAtIndexPath:indexPath animated:NO];
LinphoneCallLog* callLogs = ms_list_nth_data(linphone_core_get_call_logs(myLinphoneCore), indexPath.row) ;
const char* username = linphone_address_get_username(callLogs->to)!=0?linphone_address_get_username(callLogs->to):"";
[self.phoneControllerDelegate setPhoneNumber:[[NSString alloc] initWithCString:username encoding:[NSString defaultCStringEncoding]]];
const MSList * logs = linphone_core_get_call_logs(myLinphoneCore);
LinphoneCallLog* callLogs = ms_list_nth_data(logs, ms_list_size(logs)-indexPath.row-1) ;
LinphoneAddress* partyToCall;
if (callLogs->dir == LinphoneCallIncoming) {
partyToCall=callLogs->from;
} else {
partyToCall=callLogs->to;
}
const char* username = linphone_address_get_username(partyToCall)!=0?linphone_address_get_username(partyToCall):"";
const char* displayName = linphone_address_get_display_name(partyToCall)!=0?linphone_address_get_display_name(partyToCall):"";
[self.phoneControllerDelegate
setPhoneNumber:[[NSString alloc] initWithCString:username encoding:[NSString defaultCStringEncoding]]
withDisplayName:[[NSString alloc] initWithCString:displayName encoding:[NSString defaultCStringEncoding]]];
[self.linphoneDelegate selectDialerTab];
}

View file

@ -58,6 +58,20 @@
<int key="NSvFlags">292</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBUIImageView" id="576638752">
<reference key="NSNextResponder" ref="646889387"/>
<int key="NSvFlags">292</int>
<string key="NSFrameSize">{320, 44}</string>
<reference key="NSSuperview" ref="646889387"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUIContentMode">4</int>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<object class="NSCustomResource" key="IBUIImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">pleca_gris.png</string>
</object>
</object>
<object class="IBUILabel" id="194030556">
<reference key="NSNextResponder" ref="646889387"/>
<int key="NSvFlags">292</int>
@ -66,7 +80,7 @@
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClipsSubviews">YES</bool>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="IBUIText">Rencent Calls</string>
<string key="IBUIText">Llamadas Recentes</string>
<object class="NSColor" key="IBUITextColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MCAwIDAAA</bytes>
@ -79,8 +93,12 @@
<object class="IBUIButton" id="292237329">
<reference key="NSNextResponder" ref="646889387"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{238, 0}, {72, 37}}</string>
<string key="NSFrame">{{255, 3}, {51, 37}}</string>
<reference key="NSSuperview" ref="646889387"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MSAxIDEgMAA</bytes>
</object>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUIContentHorizontalAlignment">0</int>
@ -90,8 +108,6 @@
<double key="NSSize">1.500000e+01</double>
<int key="NSfFlags">16</int>
</object>
<int key="IBUIButtonType">1</int>
<string key="IBUINormalTitle">Clear</string>
<reference key="IBUIHighlightedTitleColor" ref="993965549"/>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
@ -101,6 +117,14 @@
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC41AA</bytes>
</object>
<object class="NSCustomResource" key="IBUIHighlightedImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">bot_borrar2.png</string>
</object>
<object class="NSCustomResource" key="IBUINormalImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">bot_borrar1.png</string>
</object>
</object>
</object>
<string key="NSFrameSize">{320, 44}</string>
@ -147,6 +171,23 @@
</object>
<int key="connectionID">11</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">clear</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="292237329"/>
</object>
<int key="connectionID">13</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchEventConnection" key="connection">
<string key="label">doAction:</string>
<reference key="source" ref="292237329"/>
<reference key="destination" ref="372490531"/>
<int key="IBEventType">7</int>
</object>
<int key="connectionID">14</int>
</object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
<object class="NSArray" key="orderedObjects">
@ -181,6 +222,7 @@
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="194030556"/>
<reference ref="576638752"/>
<reference ref="292237329"/>
</object>
<reference key="parent" ref="829125109"/>
@ -195,6 +237,12 @@
<int key="objectID">10</int>
<reference key="object" ref="292237329"/>
<reference key="parent" ref="646889387"/>
<string key="objectName">clear</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">12</int>
<reference key="object" ref="576638752"/>
<reference key="parent" ref="646889387"/>
</object>
</object>
</object>
@ -205,6 +253,7 @@
<string>-1.CustomClassName</string>
<string>-2.CustomClassName</string>
<string>10.IBPluginDependency</string>
<string>12.IBPluginDependency</string>
<string>4.IBEditorWindowLastContentRect</string>
<string>4.IBPluginDependency</string>
<string>8.IBEditorWindowLastContentRect</string>
@ -216,9 +265,10 @@
<string>CallHistoryTableViewController</string>
<string>UIResponder</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>{{393, 486}, {320, 480}}</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>{{520, 620}, {320, 44}}</string>
<string>{{432, 315}, {320, 44}}</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
</object>
@ -243,7 +293,7 @@
</object>
</object>
<nil key="sourceID"/>
<int key="maxID">11</int>
<int key="maxID">14</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
@ -251,6 +301,14 @@
<object class="IBPartialClassDescription">
<string key="className">CallHistoryTableViewController</string>
<string key="superclassName">GenericTabViewController</string>
<object class="NSMutableDictionary" key="actions">
<string key="NS.key.0">doAction:</string>
<string key="NS.object.0">id</string>
</object>
<object class="NSMutableDictionary" key="outlets">
<string key="NS.key.0">clear</string>
<string key="NS.object.0">UIButton</string>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">Classes/CallHistoryTableViewController.h</string>

View file

@ -0,0 +1,33 @@
/*
* ConsoleViewController.h
*
* Description:
*
*
* Belledonne Communications (C) 2010
*
* Copyright: See COPYING file that comes with this distribution
*
*/
#import <UIKit/UIKit.h>
@protocol LogView
+(void) addLog:(NSString*) log;
@end
@interface ConsoleViewController : UIViewController <LogView> {
UITextView* logs;
UIView* logsView;
}
-(void) doAction;
@property (nonatomic, retain) IBOutlet UITextView* logs;
@property (nonatomic, retain) IBOutlet UIButton* clear;
@property (nonatomic, retain) IBOutlet UIView* logsView;
@end

View file

@ -0,0 +1,97 @@
/*
* ConsoleViewController.h
*
* Description:
*
*
* Belledonne Communications (C) 2010
*
* Copyright: See COPYING file that comes with this distribution
*
*/
#import "ConsoleViewController.h"
@implementation ConsoleViewController
NSMutableString* MoreViewController_logs;
@synthesize logs;
@synthesize logsView;
/*
// The designated initializer. Override if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad.
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
// Custom initialization
}
return self;
}
*/
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
[super viewDidLoad];
UIBarButtonItem* clear = [[UIBarButtonItem alloc] initWithCustomView: [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bot_borrar1.png"]]];
[clear setTarget:self];
[clear setAction:@selector(doAction)];
[self.navigationItem setRightBarButtonItem:clear];
}
/*
// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
*/
-(void) viewWillAppear:(BOOL)animated {
[logs setText:MoreViewController_logs];
}
- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
- (void)viewDidUnload {
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
+(void) addLog:(NSString*) log {
@synchronized(self) {
if (!MoreViewController_logs) {
MoreViewController_logs = [[NSMutableString alloc] init];
}
[MoreViewController_logs appendString:log];
if (MoreViewController_logs.length > 50000) {
NSRange range = {0,log.length};
[MoreViewController_logs deleteCharactersInRange:range];
}
}
}
-(void) doAction{
@synchronized(self) {
NSMutableString* oldString = MoreViewController_logs;
MoreViewController_logs = [[NSMutableString alloc] init];
[oldString release];
[logs setText:@""];
}
}
- (void)dealloc {
[super dealloc];
}
@end

View file

@ -0,0 +1,232 @@
<?xml version="1.0" encoding="UTF-8"?>
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.03">
<data>
<int key="IBDocument.SystemTarget">784</int>
<string key="IBDocument.SystemVersion">9L31a</string>
<string key="IBDocument.InterfaceBuilderVersion">680</string>
<string key="IBDocument.AppKitVersion">949.54</string>
<string key="IBDocument.HIToolboxVersion">353.00</string>
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
<bool key="EncodedWithXMLCoder">YES</bool>
<integer value="1"/>
</object>
<object class="NSArray" key="IBDocument.PluginDependencies">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
</object>
<object class="NSMutableDictionary" key="IBDocument.Metadata">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBProxyObject" id="372490531">
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
</object>
<object class="IBProxyObject" id="975951072">
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
</object>
<object class="IBUIView" id="191373211">
<reference key="NSNextResponder"/>
<int key="NSvFlags">292</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBUIView" id="679133499">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">292</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBUITextView" id="249557632">
<reference key="NSNextResponder" ref="679133499"/>
<int key="NSvFlags">274</int>
<string key="NSFrame">{{0, 50}, {320, 450}}</string>
<reference key="NSSuperview" ref="679133499"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MSAxIDEAA</bytes>
</object>
<bool key="IBUIClipsSubviews">YES</bool>
<bool key="IBUIMultipleTouchEnabled">YES</bool>
<bool key="IBUIShowsHorizontalScrollIndicator">NO</bool>
<bool key="IBUIDelaysContentTouches">NO</bool>
<bool key="IBUICanCancelContentTouches">NO</bool>
<bool key="IBUIBouncesZoom">NO</bool>
<bool key="IBUIEditable">NO</bool>
<string key="IBUIText"/>
<object class="IBUITextInputTraits" key="IBUITextInputTraits">
<int key="IBUIAutocapitalizationType">2</int>
</object>
</object>
</object>
<string key="NSFrameSize">{320, 460}</string>
<reference key="NSSuperview" ref="191373211"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
<object class="NSColorSpace" key="NSCustomColorSpace" id="853965922">
<int key="NSID">2</int>
</object>
</object>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
</object>
</object>
<string key="NSFrameSize">{320, 460}</string>
<reference key="NSSuperview"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
<reference key="NSCustomColorSpace" ref="853965922"/>
</object>
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
</object>
</object>
<object class="IBObjectContainer" key="IBDocument.Objects">
<object class="NSMutableArray" key="connectionRecords">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">view</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="191373211"/>
</object>
<int key="connectionID">3</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">logs</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="249557632"/>
</object>
<int key="connectionID">9</int>
</object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
<object class="NSArray" key="orderedObjects">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBObjectRecord">
<int key="objectID">0</int>
<object class="NSArray" key="object" id="732835941">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<reference key="children" ref="1000"/>
<nil key="parent"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">1</int>
<reference key="object" ref="191373211"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="679133499"/>
</object>
<reference key="parent" ref="732835941"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">-1</int>
<reference key="object" ref="372490531"/>
<reference key="parent" ref="732835941"/>
<string type="base64-UTF8" key="objectName">RmlsZSdzIE93bmVyA</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">-2</int>
<reference key="object" ref="975951072"/>
<reference key="parent" ref="732835941"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4</int>
<reference key="object" ref="679133499"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="249557632"/>
</object>
<reference key="parent" ref="191373211"/>
<string key="objectName">logView</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">7</int>
<reference key="object" ref="249557632"/>
<reference key="parent" ref="679133499"/>
</object>
</object>
</object>
<object class="NSMutableDictionary" key="flattenedProperties">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSMutableArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>-1.CustomClassName</string>
<string>-2.CustomClassName</string>
<string>1.IBEditorWindowLastContentRect</string>
<string>1.IBPluginDependency</string>
<string>4.IBPluginDependency</string>
<string>7.IBPluginDependency</string>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>ConsoleViewController</string>
<string>UIResponder</string>
<string>{{556, 412}, {320, 480}}</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
</object>
</object>
<object class="NSMutableDictionary" key="unlocalizedProperties">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<nil key="activeLocalization"/>
<object class="NSMutableDictionary" key="localizations">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<nil key="sourceID"/>
<int key="maxID">9</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBPartialClassDescription">
<string key="className">ConsoleViewController</string>
<string key="superclassName">UIViewController</string>
<object class="NSMutableDictionary" key="outlets">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSMutableArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>clear</string>
<string>logs</string>
<string>logsView</string>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>UIButton</string>
<string>UITextView</string>
<string>UIView</string>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">Classes/ConsoleViewController.h</string>
</object>
</object>
</object>
</object>
<int key="IBDocument.localizationMode">0</int>
<string key="IBDocument.LastKnownRelativeProjectPath">../linphone.xcodeproj</string>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
<string key="IBCocoaTouchPluginVersion">3.1</string>
</data>
</archive>

View file

@ -24,10 +24,10 @@
@interface ContactPickerDelegate : NSObject<ABPeoplePickerNavigationControllerDelegate> {
id<PhoneViewControllerDelegate> phoneControllerDelegate;
id<LinphoneTabManagerDelegate> linphoneDelegate;
id<LinphoneManagerDelegate> linphoneDelegate;
}
@property (nonatomic, retain) id<PhoneViewControllerDelegate> phoneControllerDelegate;
@property (nonatomic, retain) id<LinphoneTabManagerDelegate> linphoneDelegate;
@property (nonatomic, retain) id<LinphoneManagerDelegate> linphoneDelegate;
@end

View file

@ -38,7 +38,7 @@
CFTypeRef multiValue = ABRecordCopyValue(person, property);
CFIndex valueIdx = ABMultiValueGetIndexForIdentifier(multiValue,identifier);
NSString *phoneNumber = (NSString *)ABMultiValueCopyValueAtIndex(multiValue, valueIdx);
[phoneControllerDelegate setPhoneNumber:phoneNumber];
[phoneControllerDelegate setPhoneNumber:phoneNumber withDisplayName:ABRecordCopyCompositeName(person)];
[linphoneDelegate selectDialerTab];
return false;

View file

@ -0,0 +1,39 @@
/*
* FavoriteEditViewController.h
*
* Description:
*
*
* Belledonne Communications (C) 2010
*
* Copyright: See COPYING file that comes with this distribution
*
*/
#import <UIKit/UIKit.h>
#include "linphonecore.h"
@interface FavoriteEditViewController : UIViewController {
UIButton* ok;
UITextField* number;
UILabel* name;
NSString* initialPhoneNumber;
NSString* initialName;
int favoriteIndex;
LinphoneCore* myLinphoneCore;
}
- (IBAction)doOk:(id)sender;
-(void) setLinphoneCore:(LinphoneCore*) lc;
@property (nonatomic, retain) IBOutlet UIButton* ok;
@property (nonatomic, retain) IBOutlet UITextField* number;
@property (nonatomic, retain) IBOutlet UILabel* name;
@property (nonatomic, retain) NSString* initialPhoneNumber;
@property (nonatomic, retain) NSString* initialName;
@property int favoriteIndex;
@end

View file

@ -0,0 +1,91 @@
/* FavoriteEditViewController.h
*
* Copyright (C) 2010 Belledonne Comunications, Grenoble, France
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Library General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#import "FavoriteEditViewController.h"
@implementation FavoriteEditViewController
@synthesize ok;
@synthesize number;
@synthesize initialPhoneNumber;
@synthesize favoriteIndex;
@synthesize name;
@synthesize initialName;
/*
// The designated initializer. Override if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad.
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
// Custom initialization
}
return self;
}
*/
/*
// Implement loadView to create a view hierarchy programmatically, without using a nib.
- (void)loadView {
}
*/
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
[super viewDidLoad];
[number setText:initialPhoneNumber];
[name setText:initialName];
[number becomeFirstResponder];
}
/*
// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
*/
- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
- (void)viewDidUnload {
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- (void)dealloc {
[super dealloc];
}
-(void) setLinphoneCore:(LinphoneCore*) lc {
myLinphoneCore = lc;
}
- (IBAction)doOk:(id)sender {
LinphoneFriend* friend = ms_list_nth_data(linphone_core_get_friend_list(myLinphoneCore), favoriteIndex);
linphone_address_set_username(linphone_friend_get_uri(friend), [number.text cStringUsingEncoding:[NSString defaultCStringEncoding]]);
[self dismissModalViewControllerAnimated:true];
}
@end

View file

@ -0,0 +1,316 @@
<?xml version="1.0" encoding="UTF-8"?>
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.03">
<data>
<int key="IBDocument.SystemTarget">784</int>
<string key="IBDocument.SystemVersion">9L31a</string>
<string key="IBDocument.InterfaceBuilderVersion">680</string>
<string key="IBDocument.AppKitVersion">949.54</string>
<string key="IBDocument.HIToolboxVersion">353.00</string>
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
<bool key="EncodedWithXMLCoder">YES</bool>
<integer value="2"/>
</object>
<object class="NSArray" key="IBDocument.PluginDependencies">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
</object>
<object class="NSMutableDictionary" key="IBDocument.Metadata">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBProxyObject" id="841351856">
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
</object>
<object class="IBProxyObject" id="371349661">
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
</object>
<object class="IBUIView" id="165671856">
<reference key="NSNextResponder"/>
<int key="NSvFlags">292</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBUITextField" id="7146980">
<reference key="NSNextResponder" ref="165671856"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{23, 49}, {198, 31}}</string>
<reference key="NSSuperview" ref="165671856"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<bool key="IBUIHighlighted">YES</bool>
<bool key="IBUISelected">YES</bool>
<int key="IBUIContentVerticalAlignment">0</int>
<string key="IBUIText"/>
<int key="IBUIBorderStyle">3</int>
<object class="NSColor" key="IBUITextColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MAA</bytes>
<object class="NSColorSpace" key="NSCustomColorSpace">
<int key="NSID">2</int>
</object>
</object>
<bool key="IBUIAdjustsFontSizeToFit">YES</bool>
<float key="IBUIMinimumFontSize">1.700000e+01</float>
<object class="IBUITextInputTraits" key="IBUITextInputTraits">
<int key="IBUIKeyboardType">5</int>
</object>
</object>
<object class="IBUIButton" id="599196649">
<reference key="NSNextResponder" ref="165671856"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{227, 46}, {72, 37}}</string>
<reference key="NSSuperview" ref="165671856"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<object class="NSFont" key="IBUIFont">
<string key="NSName">Helvetica-Bold</string>
<double key="NSSize">1.500000e+01</double>
<int key="NSfFlags">16</int>
</object>
<string key="IBUINormalTitle">ok</string>
<object class="NSColor" key="IBUIHighlightedTitleColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
</object>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
</object>
<object class="NSColor" key="IBUINormalTitleShadowColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC41AA</bytes>
</object>
<object class="NSCustomResource" key="IBUIHighlightedImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">bot_ok2.png</string>
</object>
<object class="NSCustomResource" key="IBUINormalImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">bot_ok1.png</string>
</object>
</object>
<object class="IBUILabel" id="229766180">
<reference key="NSNextResponder" ref="165671856"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{0, 10}, {320, 21}}</string>
<reference key="NSSuperview" ref="165671856"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClipsSubviews">YES</bool>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="IBUIText"/>
<object class="NSColor" key="IBUITextColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MCAwIDAAA</bytes>
</object>
<nil key="IBUIHighlightedColor"/>
<int key="IBUIBaselineAdjustment">1</int>
<float key="IBUIMinimumFontSize">1.000000e+01</float>
<int key="IBUITextAlignment">1</int>
</object>
</object>
<string key="NSFrameSize">{320, 106}</string>
<reference key="NSSuperview"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC42MDAwMDAwMiAwLjYwMDAwMDAyIDAuNjAwMDAwMDIAA</bytes>
</object>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUIContentMode">4</int>
</object>
</object>
<object class="IBObjectContainer" key="IBDocument.Objects">
<object class="NSMutableArray" key="connectionRecords">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">delegate</string>
<reference key="source" ref="7146980"/>
<reference key="destination" ref="841351856"/>
</object>
<int key="connectionID">6</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">view</string>
<reference key="source" ref="841351856"/>
<reference key="destination" ref="165671856"/>
</object>
<int key="connectionID">9</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">ok</string>
<reference key="source" ref="841351856"/>
<reference key="destination" ref="599196649"/>
</object>
<int key="connectionID">11</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchEventConnection" key="connection">
<string key="label">doOk:</string>
<reference key="source" ref="599196649"/>
<reference key="destination" ref="841351856"/>
<int key="IBEventType">7</int>
</object>
<int key="connectionID">12</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">number</string>
<reference key="source" ref="841351856"/>
<reference key="destination" ref="7146980"/>
</object>
<int key="connectionID">13</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">name</string>
<reference key="source" ref="841351856"/>
<reference key="destination" ref="229766180"/>
</object>
<int key="connectionID">15</int>
</object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
<object class="NSArray" key="orderedObjects">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBObjectRecord">
<int key="objectID">0</int>
<object class="NSArray" key="object" id="234162925">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<reference key="children" ref="1000"/>
<nil key="parent"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">-1</int>
<reference key="object" ref="841351856"/>
<reference key="parent" ref="234162925"/>
<string type="base64-UTF8" key="objectName">RmlsZSdzIE93bmVyA</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">-2</int>
<reference key="object" ref="371349661"/>
<reference key="parent" ref="234162925"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">2</int>
<reference key="object" ref="165671856"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="7146980"/>
<reference ref="599196649"/>
<reference ref="229766180"/>
</object>
<reference key="parent" ref="234162925"/>
<string key="objectName">editing</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">3</int>
<reference key="object" ref="7146980"/>
<reference key="parent" ref="165671856"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4</int>
<reference key="object" ref="599196649"/>
<reference key="parent" ref="165671856"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">14</int>
<reference key="object" ref="229766180"/>
<reference key="parent" ref="165671856"/>
</object>
</object>
</object>
<object class="NSMutableDictionary" key="flattenedProperties">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSMutableArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>-1.CustomClassName</string>
<string>-2.CustomClassName</string>
<string>14.IBPluginDependency</string>
<string>2.IBEditorWindowLastContentRect</string>
<string>2.IBPluginDependency</string>
<string>3.IBPluginDependency</string>
<string>4.IBPluginDependency</string>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>FavoriteEditViewController</string>
<string>UIResponder</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>{{183, 851}, {320, 106}}</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
</object>
</object>
<object class="NSMutableDictionary" key="unlocalizedProperties">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<nil key="activeLocalization"/>
<object class="NSMutableDictionary" key="localizations">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<nil key="sourceID"/>
<int key="maxID">15</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBPartialClassDescription">
<string key="className">FavoriteEditViewController</string>
<string key="superclassName">UIViewController</string>
<object class="NSMutableDictionary" key="actions">
<string key="NS.key.0">doOk:</string>
<string key="NS.object.0">id</string>
</object>
<object class="NSMutableDictionary" key="outlets">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSMutableArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>name</string>
<string>number</string>
<string>ok</string>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>UILabel</string>
<string>UITextField</string>
<string>UIButton</string>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">Classes/FavoriteEditViewController.h</string>
</object>
</object>
</object>
</object>
<int key="IBDocument.localizationMode">0</int>
<string key="IBDocument.LastKnownRelativeProjectPath">../linphone.xcodeproj</string>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
<string key="IBCocoaTouchPluginVersion">3.1</string>
</data>
</archive>

View file

@ -20,6 +20,7 @@
#import <UIKit/UIKit.h>
#import "GenericTabViewController.h"
#import "FavoriteEditViewController.h"
@interface FavoriteTableViewController : GenericTabViewController<ABPeoplePickerNavigationControllerDelegate> {
UIButton* add;
@ -32,5 +33,6 @@
@property (nonatomic, retain) IBOutlet UIButton* add;
@property (nonatomic, retain) IBOutlet UIButton* edit;
@end

View file

@ -18,7 +18,7 @@
*/
#import "FavoriteTableViewController.h"
#import "AddressBook/AddressBook.h"
@implementation FavoriteTableViewController
@ -33,14 +33,15 @@
}
*/
/*
- (void)viewDidLoad {
[super viewDidLoad];
// Uncomment the following line to display an Edit button in the navigation bar for this view controller.
[self.tableView setAllowsSelectionDuringEditing:true];
// Uncomment the following line to display an Edit button in the navigation bar for this view controller.
// self.navigationItem.rightBarButtonItem = self.editButtonItem;
}
*/
/*
- (void)viewWillAppear:(BOOL)animated {
@ -87,7 +88,7 @@
- (IBAction)doAddFavorite:(id)sender {
ABPeoplePickerNavigationController* peoplePickerController = [[[ABPeoplePickerNavigationController alloc] init] autorelease];
[peoplePickerController setPeoplePickerDelegate:self];
[peoplePickerController setDisplayedProperties:[NSArray arrayWithObject:[NSNumber numberWithInt:kABPersonPhoneProperty]]];
[self presentModalViewController: peoplePickerController animated:true];
}
- (IBAction)doEditFavorite:(id)sender {
@ -96,14 +97,18 @@
}
if (self.tableView.editing) {
[self.tableView setEditing:false animated:true];
[self.edit setTitle:@"Edit" forState: UIControlStateNormal];
[self.edit setImage:[UIImage imageNamed:@"boton_editar_1.png"] forState:UIControlStateNormal];
[self.edit setImage:[UIImage imageNamed:@"boton_editar_2.png"] forState:UIControlStateHighlighted];
} else {
[self.tableView setEditing:true animated:true];
[self.edit setTitle:@"Ok" forState: UIControlStateNormal];
[self.edit setImage:[UIImage imageNamed:@"bot_ok1.png"] forState:UIControlStateNormal];
[self.edit setImage:[UIImage imageNamed:@"bot_ok2.png"] forState:UIControlStateHighlighted];
}
}
#pragma mark Table view methods
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
@ -123,12 +128,18 @@
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
}
LinphoneFriend* friend = ms_list_nth_data(linphone_core_get_friend_list(myLinphoneCore), indexPath.row);
const char* name = linphone_address_get_username(linphone_friend_get_uri(friend));
const char* displayName = linphone_address_get_display_name(linphone_friend_get_uri(friend));
[cell.textLabel setText:[[NSString alloc] initWithCString:name encoding:[NSString defaultCStringEncoding]]];
if (displayName) {
[cell.textLabel setText:[[NSString alloc] initWithCString:displayName encoding:[NSString defaultCStringEncoding]]];
[cell.detailTextLabel setText:[NSString stringWithFormat:@"%s",name]];
} else {
[cell.textLabel setText:[NSString stringWithFormat:@"%s",name]];
}
cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
return cell;
@ -147,11 +158,29 @@
// AnotherViewController *anotherViewController = [[AnotherViewController alloc] initWithNibName:@"AnotherView" bundle:nil];
// [self.navigationController pushViewController:anotherViewController];
// [anotherViewController release];
LinphoneFriend* friend = ms_list_nth_data(linphone_core_get_friend_list(myLinphoneCore), indexPath.row);
LinphoneFriend* friend = ms_list_nth_data(linphone_core_get_friend_list(myLinphoneCore), indexPath.row);
const char* name = linphone_address_get_username(linphone_friend_get_uri(friend));
[phoneControllerDelegate setPhoneNumber:[[NSString alloc] initWithCString:name encoding:[NSString defaultCStringEncoding]]];
[linphoneDelegate selectDialerTab];
const char* displayName = linphone_address_get_display_name(linphone_friend_get_uri(friend))!=0
?linphone_address_get_display_name(linphone_friend_get_uri(friend))
:"";
NSString* phoneNumer = [[NSString alloc] initWithCString:name encoding:[NSString defaultCStringEncoding]];
NSString* displayNameAsString = [[NSString alloc] initWithCString:displayName encoding:[NSString defaultCStringEncoding]];
if (self.tableView.editing) {
// editing mode
FavoriteEditViewController* editController = [[[FavoriteEditViewController alloc] initWithNibName:@"FavoriteEditViewController" bundle:nil] autorelease];
[editController setInitialPhoneNumber:phoneNumer];
[editController setLinphoneCore:myLinphoneCore];
[editController setFavoriteIndex:indexPath.row];
[editController setInitialName:displayNameAsString];
[self presentModalViewController:editController animated:true];
} else {
[phoneControllerDelegate
setPhoneNumber:phoneNumer
withDisplayName:displayNameAsString];
[linphoneDelegate selectDialerTab];
}
}
@ -221,9 +250,8 @@
LinphoneFriend * newFriend = linphone_friend_new_with_addr([phoneUri cStringUsingEncoding:[NSString defaultCStringEncoding]]);
linphone_friend_set_name(newFriend,[compositeName cStringUsingEncoding:[NSString defaultCStringEncoding]]);
linphone_address_set_display_name(linphone_friend_get_uri(newFriend),[compositeName cStringUsingEncoding:[NSString defaultCStringEncoding]]);
linphone_friend_send_subscribe(newFriend, false);
//linphone_friend_set_sip_addr(newFriend, const char *uri);
linphone_core_add_friend(myLinphoneCore, newFriend);
[self dismissModalViewControllerAnimated:true];
return false;

View file

@ -8,8 +8,8 @@
<string key="IBDocument.HIToolboxVersion">353.00</string>
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
<bool key="EncodedWithXMLCoder">YES</bool>
<integer value="8"/>
<integer value="4"/>
<integer value="9"/>
</object>
<object class="NSArray" key="IBDocument.PluginDependencies">
<bool key="EncodedWithXMLCoder">YES</bool>
@ -58,6 +58,20 @@
<int key="NSvFlags">292</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBUIImageView" id="923008198">
<reference key="NSNextResponder" ref="789622983"/>
<int key="NSvFlags">292</int>
<string key="NSFrameSize">{320, 44}</string>
<reference key="NSSuperview" ref="789622983"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUIContentMode">4</int>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<object class="NSCustomResource" key="IBUIImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">pleca_gris.png</string>
</object>
</object>
<object class="IBUILabel" id="265048111">
<reference key="NSNextResponder" ref="789622983"/>
<int key="NSvFlags">292</int>
@ -66,7 +80,7 @@
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClipsSubviews">YES</bool>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="IBUIText">Favorites</string>
<string key="IBUIText">Favoritos</string>
<object class="NSColor" key="IBUITextColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MCAwIDAAA</bytes>
@ -83,7 +97,7 @@
<object class="IBUIButton" id="904182832">
<reference key="NSNextResponder" ref="789622983"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{264, 3}, {44, 37}}</string>
<string key="NSFrame">{{264, 5}, {37, 34}}</string>
<reference key="NSSuperview" ref="789622983"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -94,8 +108,6 @@
<double key="NSSize">1.500000e+01</double>
<int key="NSfFlags">16</int>
</object>
<int key="IBUIButtonType">1</int>
<string key="IBUINormalTitle">+</string>
<reference key="IBUIHighlightedTitleColor" ref="855852336"/>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
@ -105,25 +117,39 @@
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC41AA</bytes>
</object>
<object class="NSCustomResource" key="IBUIHighlightedImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">boton_agregar_2.png</string>
</object>
<object class="NSCustomResource" key="IBUINormalImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">boton_agregar_1.png</string>
</object>
</object>
<object class="IBUIButton" id="162202316">
<reference key="NSNextResponder" ref="789622983"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{6, 3}, {61, 37}}</string>
<string key="NSFrame">{{6, 3}, {57, 37}}</string>
<reference key="NSSuperview" ref="789622983"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<reference key="IBUIFont" ref="303503024"/>
<int key="IBUIButtonType">1</int>
<string key="IBUINormalTitle">Edit</string>
<reference key="IBUIHighlightedTitleColor" ref="855852336"/>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
</object>
<reference key="IBUINormalTitleShadowColor" ref="186894792"/>
<object class="NSCustomResource" key="IBUIHighlightedImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">boton_editar_2.png</string>
</object>
<object class="NSCustomResource" key="IBUINormalImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">boton_editar_1.png</string>
</object>
</object>
</object>
<string key="NSFrameSize">{320, 44}</string>
@ -239,6 +265,7 @@
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="265048111"/>
<reference ref="904182832"/>
<reference ref="923008198"/>
<reference ref="162202316"/>
</object>
<reference key="parent" ref="766671930"/>
@ -261,6 +288,11 @@
<reference key="parent" ref="789622983"/>
<string key="objectName">edit</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">17</int>
<reference key="object" ref="923008198"/>
<reference key="parent" ref="789622983"/>
</object>
</object>
</object>
<object class="NSMutableDictionary" key="flattenedProperties">
@ -271,6 +303,7 @@
<string>-2.CustomClassName</string>
<string>10.IBPluginDependency</string>
<string>11.IBPluginDependency</string>
<string>17.IBPluginDependency</string>
<string>4.IBEditorWindowLastContentRect</string>
<string>4.IBPluginDependency</string>
<string>8.IBEditorWindowLastContentRect</string>
@ -283,9 +316,10 @@
<string>UIResponder</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>{{441, 269}, {320, 480}}</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>{{312, 742}, {320, 44}}</string>
<string>{{81, 523}, {320, 480}}</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>{{289, 832}, {320, 44}}</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
</object>
@ -310,7 +344,7 @@
</object>
</object>
<nil key="sourceID"/>
<int key="maxID">16</int>
<int key="maxID">23</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">

View file

@ -0,0 +1,41 @@
/*
* FirstLoginViewController.h
*
* Description:
*
*
* Belledonne Communications (C) 2009
*
* Copyright: See COPYING file that comes with this distribution
*
*/
#import <UIKit/UIKit.h>
#include "linphoneAppDelegate.h"
@interface FirstLoginViewController : UIViewController <UITextFieldDelegate>{
UIButton* ok;
UIButton* site;
UITextField* identity;
UITextField* passwd;
UITextField* domain;
UITextField* axtelPin;
UIView* activityIndicator;
id<LinphoneManagerDelegate> mainDelegate;
}
-(void) doOk:(id)sender;
-(void) callStateChange:(LinphoneGeneralState*) state;
-(void) authInfoRequested;
@property (nonatomic, retain) IBOutlet UIButton* ok;
@property (nonatomic, retain) IBOutlet UIButton* site;
@property (nonatomic, retain) IBOutlet UITextField* identity;
@property (nonatomic, retain) IBOutlet UITextField* passwd;
@property (nonatomic, retain) IBOutlet UITextField* domain;
@property (nonatomic, retain) IBOutlet UITextField* axtelPin;
@property (nonatomic, retain) IBOutlet UIView* activityIndicator;
@property (nonatomic, retain) id<LinphoneManagerDelegate> mainDelegate;
@end

View file

@ -0,0 +1,204 @@
/*
* FirstLoginViewController.m
*
* Description:
*
*
* Belledonne Communications (C) 2009
*
* Copyright: See COPYING file that comes with this distribution
*
*/
#import "FirstLoginViewController.h"
@implementation FirstLoginViewController
@synthesize ok;
@synthesize identity;
@synthesize passwd;
@synthesize domain;
@synthesize mainDelegate;
@synthesize axtelPin;
@synthesize activityIndicator;
@synthesize site;
/*
// The designated initializer. Override if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad.
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
// Custom initialization
}
return self;
}
*/
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
[super viewDidLoad];
[identity setText:[[NSUserDefaults standardUserDefaults] stringForKey:@"username_preference"]];
[passwd setText:[[NSUserDefaults standardUserDefaults] stringForKey:@"password_preference"]];
[domain setText:[[NSUserDefaults standardUserDefaults] stringForKey:@"domain_preference"]];
[axtelPin setText:[[NSUserDefaults standardUserDefaults] stringForKey:@"axtelpin_preference"]];
}
/*
// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
*/
- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
- (void)viewDidUnload {
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- (void)dealloc {
[super dealloc];
}
-(void) doOk:(id)sender {
if (sender == site) {
NSURL *url = [NSURL URLWithString:@"http://dialer.axtellabs.net"];
[[UIApplication sharedApplication] openURL:url];
return;
}
UIAlertView* error=nil;
// mandotory parameters
if ([identity.text length]==0 ) {
error = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Alert",nil)
message:NSLocalizedString(@"Enter your username",nil)
delegate:nil
cancelButtonTitle:NSLocalizedString(@"Continue",nil)
otherButtonTitles:nil];
goto end;
} else {
[[NSUserDefaults standardUserDefaults] setObject:identity.text forKey:@"username_preference"];
}
if ([passwd.text length]==0 ) {
error = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Alert",nil)
message:NSLocalizedString(@"Enter your password",nil)
delegate:nil
cancelButtonTitle:NSLocalizedString(@"Continue",nil)
otherButtonTitles:nil];
goto end;
} else {
[[NSUserDefaults standardUserDefaults] setObject:passwd.text forKey:@"password_preference"];
}
if ([domain.text length]==0) {
error = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Alert",nil)
message:NSLocalizedString(@"Enter your domain",nil)
delegate:nil
cancelButtonTitle:NSLocalizedString(@"Continue",nil)
otherButtonTitles:nil];
goto end;
} else {
[[NSUserDefaults standardUserDefaults] setObject:domain.text forKey:@"domain_preference"];
}
//optionnal parameters
if ([axtelPin.text length] >0) {
[[NSUserDefaults standardUserDefaults] setObject:axtelPin.text forKey:@"axtelpin_preference"];
}
if ([axtelPin.text length] >0) {
[[NSUserDefaults standardUserDefaults] setBool:true forKey:@"tunnelenable_preference"];
}
end:
if (error != nil) {
[error show];
} else {
//[self.view removeFromSuperview:self];
if ([mainDelegate initProxySettings]) {
[self.activityIndicator setHidden:false];
} else {
error = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Error",nil)
message:NSLocalizedString(@"Wrong domain or network unreachable",nil)
delegate:nil
cancelButtonTitle:NSLocalizedString(@"Continue",nil)
otherButtonTitles:nil];
[error show];
}
};
}
-(void) authInfoRequested {
[self.activityIndicator setHidden:true];
}
-(void) callStateChange:(LinphoneGeneralState*) state {
if (self.view.hidden) {
//nothing to do, viev is no longer active
return;
}
// /* states for GSTATE_GROUP_POWER */
// GSTATE_POWER_OFF = 0, /* initial state */
// GSTATE_POWER_STARTUP,
// GSTATE_POWER_ON,
// GSTATE_POWER_SHUTDOWN,
// /* states for GSTATE_GROUP_REG */
// GSTATE_REG_NONE = 10, /* initial state */
// GSTATE_REG_OK,
// GSTATE_REG_FAILED,
// /* states for GSTATE_GROUP_CALL */
// GSTATE_CALL_IDLE = 20, /* initial state */
// GSTATE_CALL_OUT_INVITE,
// GSTATE_CALL_OUT_CONNECTED,
// GSTATE_CALL_IN_INVITE,
// GSTATE_CALL_IN_CONNECTED,
// GSTATE_CALL_END,
// GSTATE_CALL_ERROR,
// GSTATE_INVALID
switch (state->new_state) {
case GSTATE_REG_FAILED: {
UIAlertView* error = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Error",nil)
message:NSLocalizedString(@"Wrong domain or username",nil)
delegate:nil
cancelButtonTitle:NSLocalizedString(@"Continue",nil)
otherButtonTitles:nil];
[error show];
[self.activityIndicator setHidden:true];
break;
}
case GSTATE_REG_OK: {
[[NSUserDefaults standardUserDefaults] setBool:true forKey:@"firstlogindone_preference"];
//[self.view removeFromSuperview];
[self.view setHidden:true];
[self.activityIndicator setHidden:true];
break;
}
default:
break;
}
}
- (BOOL)textFieldShouldReturn:(UITextField *)theTextField {
// When the user presses return, take focus away from the text field so that the keyboard is dismissed.
[theTextField resignFirstResponder];
return YES;
}
@end

View file

@ -0,0 +1,667 @@
<?xml version="1.0" encoding="UTF-8"?>
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.03">
<data>
<int key="IBDocument.SystemTarget">784</int>
<string key="IBDocument.SystemVersion">9L31a</string>
<string key="IBDocument.InterfaceBuilderVersion">680</string>
<string key="IBDocument.AppKitVersion">949.54</string>
<string key="IBDocument.HIToolboxVersion">353.00</string>
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
<bool key="EncodedWithXMLCoder">YES</bool>
<integer value="1"/>
</object>
<object class="NSArray" key="IBDocument.PluginDependencies">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
</object>
<object class="NSMutableDictionary" key="IBDocument.Metadata">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBProxyObject" id="372490531">
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
</object>
<object class="IBProxyObject" id="975951072">
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
</object>
<object class="IBUIViewController" id="284579969">
<object class="IBUIView" key="IBUIView" id="191373211">
<reference key="NSNextResponder"/>
<int key="NSvFlags">292</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBUIImageView" id="427931982">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{0, -20}, {360, 480}}</string>
<reference key="NSSuperview" ref="191373211"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUIContentMode">9</int>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<object class="NSCustomResource" key="IBUIImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">faded Screen.jpg</string>
</object>
</object>
<object class="IBUIButton" id="731646357">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{25, 319}, {184, 37}}</string>
<reference key="NSSuperview" ref="191373211"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<object class="NSFont" key="IBUIFont" id="301967745">
<string key="NSName">Helvetica-Bold</string>
<double key="NSSize">1.500000e+01</double>
<int key="NSfFlags">16</int>
</object>
<string key="IBUINormalTitle">http://dialer.axtellabs.net</string>
<object class="NSColor" key="IBUIHighlightedTitleColor" id="992101396">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
</object>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
</object>
<object class="NSColor" key="IBUINormalTitleShadowColor" id="64173324">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC41AA</bytes>
</object>
</object>
<object class="IBUITextField" id="415396672">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{105, 75}, {197, 31}}</string>
<reference key="NSSuperview" ref="191373211"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUIContentVerticalAlignment">0</int>
<string key="IBUIText"/>
<int key="IBUIBorderStyle">3</int>
<object class="NSColor" key="IBUITextColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MAA</bytes>
<object class="NSColorSpace" key="NSCustomColorSpace" id="925734638">
<int key="NSID">2</int>
</object>
</object>
<bool key="IBUIClearsOnBeginEditing">YES</bool>
<bool key="IBUIAdjustsFontSizeToFit">YES</bool>
<float key="IBUIMinimumFontSize">1.700000e+01</float>
<object class="IBUITextInputTraits" key="IBUITextInputTraits">
<int key="IBUIAutocorrectionType">1</int>
<bool key="IBUISecureTextEntry">YES</bool>
</object>
</object>
<object class="IBUILabel" id="782383412">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{9, 80}, {96, 21}}</string>
<reference key="NSSuperview" ref="191373211"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClipsSubviews">YES</bool>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string type="base64-UTF8" key="IBUIText">Q29udHJhc2XDsWEqA</string>
<object class="NSColor" key="IBUITextColor" id="250738492">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MCAwIDAAA</bytes>
</object>
<nil key="IBUIHighlightedColor"/>
<int key="IBUIBaselineAdjustment">1</int>
<bool key="IBUIAdjustsFontSizeToFit">NO</bool>
<float key="IBUIMinimumFontSize">1.000000e+01</float>
</object>
<object class="IBUITextField" id="30237063">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{105, 115}, {197, 31}}</string>
<reference key="NSSuperview" ref="191373211"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUIContentVerticalAlignment">0</int>
<string key="IBUIText"/>
<int key="IBUIBorderStyle">3</int>
<object class="NSColor" key="IBUITextColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MAA</bytes>
<reference key="NSCustomColorSpace" ref="925734638"/>
</object>
<bool key="IBUIAdjustsFontSizeToFit">YES</bool>
<float key="IBUIMinimumFontSize">1.700000e+01</float>
<object class="IBUITextInputTraits" key="IBUITextInputTraits">
<int key="IBUIAutocorrectionType">1</int>
</object>
</object>
<object class="IBUITextField" id="165888267">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{105, 205}, {197, 31}}</string>
<reference key="NSSuperview" ref="191373211"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUIContentVerticalAlignment">0</int>
<string key="IBUIText"/>
<int key="IBUIBorderStyle">3</int>
<object class="NSColor" key="IBUITextColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MAA</bytes>
<reference key="NSCustomColorSpace" ref="925734638"/>
</object>
<bool key="IBUIAdjustsFontSizeToFit">YES</bool>
<float key="IBUIMinimumFontSize">1.700000e+01</float>
<object class="IBUITextInputTraits" key="IBUITextInputTraits">
<int key="IBUIAutocorrectionType">1</int>
</object>
</object>
<object class="IBUILabel" id="954944355">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{9, 120}, {69, 21}}</string>
<reference key="NSSuperview" ref="191373211"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClipsSubviews">YES</bool>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="IBUIText">Dominio*</string>
<reference key="IBUITextColor" ref="250738492"/>
<nil key="IBUIHighlightedColor"/>
<int key="IBUIBaselineAdjustment">1</int>
<bool key="IBUIAdjustsFontSizeToFit">NO</bool>
<float key="IBUIMinimumFontSize">1.000000e+01</float>
</object>
<object class="IBUILabel" id="822003723">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{9, 210}, {77, 21}}</string>
<reference key="NSSuperview" ref="191373211"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClipsSubviews">YES</bool>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="IBUIText">Axtel Key</string>
<reference key="IBUITextColor" ref="250738492"/>
<nil key="IBUIHighlightedColor"/>
<int key="IBUIBaselineAdjustment">1</int>
<bool key="IBUIAdjustsFontSizeToFit">NO</bool>
<float key="IBUIMinimumFontSize">1.000000e+01</float>
</object>
<object class="IBUITextField" id="300056741">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{105, 34}, {197, 31}}</string>
<reference key="NSSuperview" ref="191373211"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUIContentVerticalAlignment">0</int>
<string key="IBUIText"/>
<int key="IBUIBorderStyle">3</int>
<object class="NSColor" key="IBUITextColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MAA</bytes>
<reference key="NSCustomColorSpace" ref="925734638"/>
</object>
<bool key="IBUIAdjustsFontSizeToFit">YES</bool>
<float key="IBUIMinimumFontSize">1.700000e+01</float>
<object class="IBUITextInputTraits" key="IBUITextInputTraits">
<int key="IBUIAutocorrectionType">1</int>
</object>
</object>
<object class="IBUILabel" id="590298991">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{9, 40}, {77, 21}}</string>
<reference key="NSSuperview" ref="191373211"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MCAwAA</bytes>
</object>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClipsSubviews">YES</bool>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="IBUIText">Usuario*</string>
<reference key="IBUITextColor" ref="250738492"/>
<nil key="IBUIHighlightedColor"/>
<int key="IBUIBaselineAdjustment">1</int>
<bool key="IBUIAdjustsFontSizeToFit">NO</bool>
<float key="IBUIMinimumFontSize">1.000000e+01</float>
</object>
<object class="IBUIButton" id="157624641">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{210, 319}, {72, 37}}</string>
<reference key="NSSuperview" ref="191373211"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<reference key="IBUIFont" ref="301967745"/>
<reference key="IBUIHighlightedTitleColor" ref="992101396"/>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
</object>
<reference key="IBUINormalTitleShadowColor" ref="64173324"/>
<object class="NSCustomResource" key="IBUIHighlightedImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">bot_ok2.png</string>
</object>
<object class="NSCustomResource" key="IBUINormalImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">bot_ok1.png</string>
</object>
</object>
<object class="IBUIView" id="210410556">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">-2147483356</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBUIActivityIndicatorView" id="871218378">
<reference key="NSNextResponder" ref="210410556"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{142, 211}, {37, 37}}</string>
<reference key="NSSuperview" ref="210410556"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<bool key="IBUIHidesWhenStopped">NO</bool>
<bool key="IBUIAnimating">YES</bool>
<int key="IBUIStyle">0</int>
</object>
</object>
<string key="NSFrameSize">{320, 460}</string>
<reference key="NSSuperview" ref="191373211"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
<reference key="NSCustomColorSpace" ref="925734638"/>
</object>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
</object>
</object>
<string key="NSFrameSize">{320, 460}</string>
<reference key="NSSuperview"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
<reference key="NSCustomColorSpace" ref="925734638"/>
</object>
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
</object>
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
</object>
</object>
<object class="IBObjectContainer" key="IBDocument.Objects">
<object class="NSMutableArray" key="connectionRecords">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">view</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="191373211"/>
</object>
<int key="connectionID">3</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">domain</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="30237063"/>
</object>
<int key="connectionID">13</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">passwd</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="415396672"/>
</object>
<int key="connectionID">15</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">delegate</string>
<reference key="source" ref="300056741"/>
<reference key="destination" ref="372490531"/>
</object>
<int key="connectionID">16</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">delegate</string>
<reference key="source" ref="415396672"/>
<reference key="destination" ref="372490531"/>
</object>
<int key="connectionID">17</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">delegate</string>
<reference key="source" ref="30237063"/>
<reference key="destination" ref="372490531"/>
</object>
<int key="connectionID">18</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">identity</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="300056741"/>
</object>
<int key="connectionID">19</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchEventConnection" key="connection">
<string key="label">doOk:</string>
<reference key="source" ref="157624641"/>
<reference key="destination" ref="372490531"/>
<int key="IBEventType">7</int>
</object>
<int key="connectionID">20</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">delegate</string>
<reference key="source" ref="165888267"/>
<reference key="destination" ref="372490531"/>
</object>
<int key="connectionID">29</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">axtelPin</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="165888267"/>
</object>
<int key="connectionID">30</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">activityIndicator</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="210410556"/>
</object>
<int key="connectionID">33</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">site</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="731646357"/>
</object>
<int key="connectionID">36</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchEventConnection" key="connection">
<string key="label">doOk:</string>
<reference key="source" ref="731646357"/>
<reference key="destination" ref="372490531"/>
<int key="IBEventType">7</int>
</object>
<int key="connectionID">37</int>
</object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
<object class="NSArray" key="orderedObjects">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBObjectRecord">
<int key="objectID">0</int>
<object class="NSArray" key="object" id="996187092">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<reference key="children" ref="1000"/>
<nil key="parent"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">-1</int>
<reference key="object" ref="372490531"/>
<reference key="parent" ref="996187092"/>
<string type="base64-UTF8" key="objectName">RmlsZSdzIE93bmVyA</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">-2</int>
<reference key="object" ref="975951072"/>
<reference key="parent" ref="996187092"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4</int>
<reference key="object" ref="284579969"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="191373211"/>
</object>
<reference key="parent" ref="996187092"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">1</int>
<reference key="object" ref="191373211"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="157624641"/>
<reference ref="427931982"/>
<reference ref="590298991"/>
<reference ref="300056741"/>
<reference ref="782383412"/>
<reference ref="415396672"/>
<reference ref="954944355"/>
<reference ref="30237063"/>
<reference ref="822003723"/>
<reference ref="165888267"/>
<reference ref="210410556"/>
<reference ref="731646357"/>
</object>
<reference key="parent" ref="284579969"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">10</int>
<reference key="object" ref="30237063"/>
<reference key="parent" ref="191373211"/>
<string key="objectName">domain</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">12</int>
<reference key="object" ref="157624641"/>
<reference key="parent" ref="191373211"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">11</int>
<reference key="object" ref="954944355"/>
<reference key="parent" ref="191373211"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">9</int>
<reference key="object" ref="782383412"/>
<reference key="parent" ref="191373211"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">8</int>
<reference key="object" ref="415396672"/>
<reference key="parent" ref="191373211"/>
<string key="objectName">passwd</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">7</int>
<reference key="object" ref="590298991"/>
<reference key="parent" ref="191373211"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">6</int>
<reference key="object" ref="300056741"/>
<reference key="parent" ref="191373211"/>
<string key="objectName">id</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">5</int>
<reference key="object" ref="427931982"/>
<reference key="parent" ref="191373211"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">25</int>
<reference key="object" ref="822003723"/>
<reference key="parent" ref="191373211"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">26</int>
<reference key="object" ref="165888267"/>
<reference key="parent" ref="191373211"/>
<string key="objectName">axtelPin</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">31</int>
<reference key="object" ref="210410556"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="871218378"/>
</object>
<reference key="parent" ref="191373211"/>
<string key="objectName">wait</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">32</int>
<reference key="object" ref="871218378"/>
<reference key="parent" ref="210410556"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">35</int>
<reference key="object" ref="731646357"/>
<reference key="parent" ref="191373211"/>
<string key="objectName">site</string>
</object>
</object>
</object>
<object class="NSMutableDictionary" key="flattenedProperties">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSMutableArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>-1.CustomClassName</string>
<string>-2.CustomClassName</string>
<string>1.IBEditorWindowLastContentRect</string>
<string>1.IBPluginDependency</string>
<string>1.IBUserGuides</string>
<string>10.IBPluginDependency</string>
<string>11.IBPluginDependency</string>
<string>12.IBPluginDependency</string>
<string>25.IBPluginDependency</string>
<string>26.IBPluginDependency</string>
<string>31.IBPluginDependency</string>
<string>32.IBPluginDependency</string>
<string>35.IBPluginDependency</string>
<string>4.IBEditorWindowLastContentRect</string>
<string>4.IBPluginDependency</string>
<string>4.IBViewEditorWindowController.showingBoundsRectangles</string>
<string>5.IBPluginDependency</string>
<string>6.IBPluginDependency</string>
<string>7.IBPluginDependency</string>
<string>8.IBPluginDependency</string>
<string>9.IBPluginDependency</string>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>FirstLoginViewController</string>
<string>UIResponder</string>
<string>{{444, 412}, {320, 480}}</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<object class="NSMutableArray">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBUserGuide">
<reference key="view" ref="191373211"/>
<float key="location">1.050000e+02</float>
<int key="affinity">0</int>
</object>
</object>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>{{64, 277}, {320, 480}}</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<boolean value="NO"/>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
</object>
</object>
<object class="NSMutableDictionary" key="unlocalizedProperties">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<nil key="activeLocalization"/>
<object class="NSMutableDictionary" key="localizations">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<nil key="sourceID"/>
<int key="maxID">37</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBPartialClassDescription">
<string key="className">FirstLoginViewController</string>
<string key="superclassName">UIViewController</string>
<object class="NSMutableDictionary" key="actions">
<string key="NS.key.0">doOk:</string>
<string key="NS.object.0">id</string>
</object>
<object class="NSMutableDictionary" key="outlets">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSMutableArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>activityIndicator</string>
<string>axtelPin</string>
<string>domain</string>
<string>identity</string>
<string>mainDelegate</string>
<string>ok</string>
<string>passwd</string>
<string>site</string>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>UIView</string>
<string>UITextField</string>
<string>UITextField</string>
<string>UITextField</string>
<string>id</string>
<string>UIButton</string>
<string>UITextField</string>
<string>UIButton</string>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">Classes/FirstLoginViewController.h</string>
</object>
</object>
</object>
</object>
<int key="IBDocument.localizationMode">0</int>
<string key="IBDocument.LastKnownRelativeProjectPath">../linphone.xcodeproj</string>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
<string key="IBCocoaTouchPluginVersion">3.1</string>
</data>
</archive>

View file

@ -25,12 +25,12 @@
@interface GenericTabViewController : UITableViewController {
LinphoneCore* myLinphoneCore;
id<PhoneViewControllerDelegate> phoneControllerDelegate;
id<LinphoneTabManagerDelegate> linphoneDelegate;
id<LinphoneManagerDelegate> linphoneDelegate;
IBOutlet UIView* header;
}
-(void) setLinphoneCore:(LinphoneCore*) lc;
@property (nonatomic, retain) id<PhoneViewControllerDelegate> phoneControllerDelegate;
@property (nonatomic, retain) id<LinphoneTabManagerDelegate> linphoneDelegate;
@property (nonatomic, retain) id<LinphoneManagerDelegate> linphoneDelegate;
@property (nonatomic, retain) IBOutlet UIView* header;
@end

View file

@ -27,7 +27,7 @@
id<PhoneViewControllerDelegate> phoneviewDelegate;
NSTimer *durationRefreasher;
UIView* dimmer;
UIView* controlSubView;
UIView* padSubView;
@ -35,7 +35,8 @@
UILabel* peerNumber;
UILabel* callDuration;
UILabel* status;
UIButton* end;
UIButton* endCtrl;
UIButton* endPad;
UIButton* dialer;
UIButton* mute;
UIButton* speaker;
@ -65,19 +66,26 @@
-(void) setLinphoneCore:(LinphoneCore*) lc;
-(void) startCall;
-(void) resetView;
-(void) mute:(bool) value;
-(void) speaker:(bool) value;
-(void)displayStatus:(NSString*) message;
- (IBAction)doAction:(id)sender;
- (void)proximityStatusChange:(NSNotification *) notification;
@property (nonatomic, retain) IBOutlet UIView* controlSubView;
@property (nonatomic, retain) IBOutlet UIView* padSubView;
@property (nonatomic, retain) IBOutlet UIView* dimmer;
@property (nonatomic, retain) IBOutlet UILabel* peerName;
@property (nonatomic, retain) IBOutlet UILabel* peerNumber;
@property (nonatomic, retain) IBOutlet UILabel* callDuration;
@property (nonatomic, retain) IBOutlet UILabel* status;
@property (nonatomic, retain) IBOutlet UIButton* end;
@property (nonatomic, retain) IBOutlet UIButton* endCtrl;
@property (nonatomic, retain) IBOutlet UIButton* endPad;
@property (nonatomic, retain) IBOutlet UIButton* dialer;
@property (nonatomic, retain) IBOutlet UIButton* mute;
@property (nonatomic, retain) IBOutlet UIButton* speaker;

View file

@ -27,12 +27,14 @@
@synthesize controlSubView;
@synthesize padSubView;
@synthesize dimmer;
@synthesize peerName;
@synthesize peerNumber;
@synthesize callDuration;
@synthesize status;
@synthesize end;
@synthesize endCtrl;
@synthesize endPad;
@synthesize close;
@synthesize mute;
@synthesize dialer;
@ -68,8 +70,16 @@
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
[super viewDidLoad];
isMuted = false;
isSpeaker = false;
UIDevice *device = [UIDevice currentDevice];
[device setProximityMonitoringEnabled:true];
if(device.proximityMonitoringEnabled == YES) {
[[NSNotificationCenter defaultCenter]
addObserver:self selector:@selector(proximityStatusChange:) name:@"UIDeviceProximityStateDidChangeNotification" object:device];
}
else{
NSLog(@"No proximity sensors on your device");
}
}
@ -82,6 +92,13 @@
}
*/
- (void)viewDidAppear:(BOOL)animated {
[[UIApplication sharedApplication] setIdleTimerDisabled:true];
}
- (void)viewDidDisappear:(BOOL)animated {
[[UIApplication sharedApplication] setIdleTimerDisabled:false];
}
- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
@ -89,14 +106,88 @@
// Release any cached data, images, etc that aren't in use.
}
- (void)proximityStatusChange:(NSNotification *) notification {
UIDevice *device = [notification object];
if (device.proximityState) {
[dimmer setHidden:true];
} else {
[dimmer setHidden:false];
}
}
-(void) resetView {
[self mute:false];
[self speaker:false];
if (durationRefreasher != nil) {
[ durationRefreasher invalidate];
durationRefreasher=nil;
}
[peerNumber setText:@""];
[callDuration setText:@""];
}
- (void)viewWillAppear:(BOOL)animated {
const LinphoneAddress* address = linphone_core_get_remote_uri(myLinphoneCore);
const char* displayName = linphone_address_get_display_name(address)?linphone_address_get_display_name(address):"";
[peerName setText:[NSString stringWithCString:displayName length:strlen(displayName)]];
const char* username = linphone_address_get_username(address)!=0?linphone_address_get_username(address):"";
[peerNumber setText:[NSString stringWithCString:username length:strlen(username)]];
[ [UIDevice currentDevice] setProximityMonitoringEnabled:true];
}
- (void)viewWillDisappear:(BOOL)animated {
[ [UIDevice currentDevice] setProximityMonitoringEnabled:false];
}
/*
- (void)viewDidUnload {
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
if (durationRefreasher != nil) {
[ durationRefreasher invalidate];
}
}
*/
-(void) mute:(bool) value {
linphone_core_mute_mic(myLinphoneCore,value);
if (value) {
[mute setImage:[UIImage imageNamed:@"icono_silencio_2.png"] forState:UIControlStateNormal];
} else {
[mute setImage:[UIImage imageNamed:@"icono_silencio_1.png"] forState:UIControlStateNormal];
}
isMuted=value;
// swithc buttun state
};
-(void) speaker:(bool) value {
if (value) {
//redirect audio to speaker
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute
, sizeof (audioRouteOverride)
, &audioRouteOverride);
[speaker setImage:[UIImage imageNamed:@"icono_altavoz_2.png"] forState:UIControlStateNormal];
} else {
//Cancel audio route redirection
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_None;
AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute
, sizeof (audioRouteOverride)
, &audioRouteOverride);
[speaker setImage:[UIImage imageNamed:@"icono_altavoz_1.png"] forState:UIControlStateNormal];
}
isSpeaker=value;
};
-(void) setLinphoneCore:(LinphoneCore*) lc {
myLinphoneCore = lc;
@ -107,12 +198,7 @@
}
-(void) startCall {
const LinphoneAddress* address = linphone_core_get_remote_uri(myLinphoneCore);
const char* displayName = linphone_address_get_display_name(address)?linphone_address_get_display_name(address):"";
[peerName setText:[NSString stringWithCString:displayName length:strlen(displayName)]];
const char* username = linphone_address_get_username(address)!=0?linphone_address_get_username(address):"";
[peerNumber setText:[NSString stringWithCString:username length:strlen(username)]];
[status setText:@""];
// start scheduler
durationRefreasher = [NSTimer scheduledTimerWithTimeInterval:1
target:self
@ -125,9 +211,9 @@
-(void)updateCallDuration {
int lDuration = linphone_core_get_current_call_duration(myLinphoneCore);
if (lDuration < 60) {
[callDuration setText:[NSString stringWithFormat: @"%i s", lDuration]];
[callDuration setText:[NSString stringWithFormat: @"%02i s", lDuration]];
} else {
[callDuration setText:[NSString stringWithFormat: @"%i:%i", lDuration/60,lDuration - 60 *(lDuration/60)]];
[callDuration setText:[NSString stringWithFormat: @"%02i:%02i", lDuration/60,lDuration - 60 *(lDuration/60)]];
}
}
@ -163,7 +249,7 @@
}
if (sender == end) {
if (sender == endCtrl || sender == endPad) {
linphone_core_terminate_call(myLinphoneCore,NULL);
} else if (sender == dialer) {
[controlSubView setHidden:true];
@ -179,33 +265,10 @@
[controlSubView setHidden:false];
[padSubView setHidden:true];
} else if (sender == mute) {
isMuted = isMuted?false:true;
linphone_core_mute_mic(myLinphoneCore,isMuted);
// swithc buttun state
UIImage * tmpImage = [mute backgroundImageForState: UIControlStateNormal];
[mute setBackgroundImage:[mute backgroundImageForState: UIControlStateHighlighted] forState:UIControlStateNormal];
[mute setBackgroundImage:tmpImage forState:UIControlStateHighlighted];
[self mute:!isMuted];
} else if (sender == speaker) {
isSpeaker = isSpeaker?false:true;
if (isSpeaker) {
//redirect audio to speaker
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute
, sizeof (audioRouteOverride)
, &audioRouteOverride);
} else {
//Cancel audio route redirection
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_None;
AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute
, sizeof (audioRouteOverride)
, &audioRouteOverride);
}
// switch button state
UIImage * tmpImage = [speaker backgroundImageForState: UIControlStateNormal];
[speaker setBackgroundImage:[speaker backgroundImageForState: UIControlStateHighlighted] forState:UIControlStateNormal];
[speaker setBackgroundImage:tmpImage forState:UIControlStateHighlighted];
[self speaker:!isSpeaker];
}else {
NSLog(@"unknown event from incall view");
}

View file

@ -37,26 +37,40 @@
<int key="NSvFlags">274</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBUIActivityIndicatorView" id="275734970">
<object class="IBUIImageView" id="930728502">
<reference key="NSNextResponder" ref="858247959"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{150, 220}, {20, 20}}</string>
<string key="NSFrameSize">{320, 46}</string>
<reference key="NSSuperview" ref="858247959"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUIContentMode">4</int>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<bool key="IBUIHidesWhenStopped">NO</bool>
<int key="IBUIStyle">2</int>
<object class="NSCustomResource" key="IBUIImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">pleca_gris.png</string>
</object>
</object>
<object class="IBUIView" id="347027006">
<reference key="NSNextResponder" ref="858247959"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{0, 360}, {320, 100}}</string>
<reference key="NSSuperview" ref="858247959"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4yIDAuMiAwLjIAA</bytes>
</object>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
</object>
<object class="IBUILabel" id="357639611">
<reference key="NSNextResponder" ref="858247959"/>
<int key="NSvFlags">292</int>
<string key="NSFrameSize">{320, 55}</string>
<string key="NSFrameSize">{320, 46}</string>
<reference key="NSSuperview" ref="858247959"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClipsSubviews">YES</bool>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="IBUIText">Caller</string>
<string key="IBUIText"/>
<object class="NSColor" key="IBUITextColor" id="207218184">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MCAwIDAAA</bytes>
@ -69,13 +83,16 @@
<object class="IBUILabel" id="671407802">
<reference key="NSNextResponder" ref="858247959"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{31, 63}, {61, 21}}</string>
<string key="NSFrame">{{20, 63}, {140, 21}}</string>
<reference key="NSSuperview" ref="858247959"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClipsSubviews">YES</bool>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="IBUIText">Number</string>
<reference key="IBUITextColor" ref="207218184"/>
<string key="IBUIText"/>
<object class="NSColor" key="IBUITextColor" id="394844034">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MSAxIDEAA</bytes>
</object>
<nil key="IBUIHighlightedColor"/>
<int key="IBUIBaselineAdjustment">1</int>
<float key="IBUIMinimumFontSize">1.000000e+01</float>
@ -88,8 +105,8 @@
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClipsSubviews">YES</bool>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="IBUIText">Duration</string>
<reference key="IBUITextColor" ref="207218184"/>
<string key="IBUIText"/>
<reference key="IBUITextColor" ref="394844034"/>
<nil key="IBUIHighlightedColor"/>
<int key="IBUIBaselineAdjustment">1</int>
<float key="IBUIMinimumFontSize">1.000000e+01</float>
@ -97,26 +114,55 @@
<object class="IBUILabel" id="620882994">
<reference key="NSNextResponder" ref="858247959"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{31, 347}, {258, 21}}</string>
<string key="NSFrame">{{161, 63}, {132, 21}}</string>
<reference key="NSSuperview" ref="858247959"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClipsSubviews">YES</bool>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="IBUIText">status</string>
<reference key="IBUITextColor" ref="207218184"/>
<string key="IBUIText"/>
<reference key="IBUITextColor" ref="394844034"/>
<nil key="IBUIHighlightedColor"/>
<int key="IBUIBaselineAdjustment">1</int>
<float key="IBUIMinimumFontSize">1.000000e+01</float>
<int key="IBUITextAlignment">1</int>
</object>
<object class="IBUIView" id="585669622">
<reference key="NSNextResponder" ref="858247959"/>
<int key="NSvFlags">292</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBUIImageView" id="329989021">
<reference key="NSNextResponder" ref="585669622"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{22, 100}, {91, 128}}</string>
<reference key="NSSuperview" ref="585669622"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUIContentMode">4</int>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<object class="NSCustomResource" key="IBUIImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">corner_izq.png</string>
</object>
</object>
<object class="IBUIImageView" id="854766106">
<reference key="NSNextResponder" ref="585669622"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{202, 110}, {92, 108}}</string>
<reference key="NSSuperview" ref="585669622"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUIContentMode">4</int>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<object class="NSCustomResource" key="IBUIImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">corner_der.png</string>
</object>
</object>
<object class="IBUIButton" id="861550739">
<reference key="NSNextResponder" ref="585669622"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{0, 61}, {82, 52}}</string>
<string key="NSFrame">{{21, -1}, {93, 112}}</string>
<reference key="NSSuperview" ref="585669622"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -139,98 +185,121 @@
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC41AA</bytes>
</object>
<object class="NSCustomResource" key="IBUIDisabledImage" id="436895690">
<object class="NSCustomResource" key="IBUIHighlightedImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">icono_silencio_2.png</string>
</object>
<object class="NSCustomResource" key="IBUIDisabledImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">mic_active.png</string>
</object>
<object class="NSCustomResource" key="IBUIHighlightedBackgroundImage" id="132679557">
<object class="NSCustomResource" key="IBUINormalImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">icono_silencio_1.png</string>
</object>
<object class="NSCustomResource" key="IBUISelectedBackgroundImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">mic_muted.png</string>
</object>
<reference key="IBUISelectedBackgroundImage" ref="132679557"/>
<reference key="IBUINormalBackgroundImage" ref="436895690"/>
</object>
<object class="IBUIButton" id="953411930">
<reference key="NSNextResponder" ref="585669622"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{6, 261}, {258, 52}}</string>
<string key="NSFrame">{{12, 277}, {296, 52}}</string>
<reference key="NSSuperview" ref="585669622"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<reference key="IBUIFont" ref="755582794"/>
<int key="IBUIButtonType">1</int>
<reference key="IBUIHighlightedTitleColor" ref="816037173"/>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
</object>
<reference key="IBUINormalTitleShadowColor" ref="785445938"/>
<object class="NSCustomResource" key="IBUINormalImage" id="435496913">
<object class="NSCustomResource" key="IBUINormalImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">red.png</string>
<string key="NSResourceName">boton_colgar.png</string>
</object>
</object>
<object class="IBUIButton" id="478667533">
<reference key="NSNextResponder" ref="585669622"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{92, 121}, {82, 52}}</string>
<string key="NSFrame">{{113, 110}, {90, 110}}</string>
<reference key="NSSuperview" ref="585669622"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<reference key="IBUIFont" ref="755582794"/>
<int key="IBUIButtonType">1</int>
<string key="IBUINormalTitle">Contacts</string>
<reference key="IBUIHighlightedTitleColor" ref="816037173"/>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
</object>
<reference key="IBUINormalTitleShadowColor" ref="785445938"/>
<object class="NSCustomResource" key="IBUIHighlightedImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">icono_contactos_2.png</string>
</object>
<object class="NSCustomResource" key="IBUINormalImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">icono_contactos_1.png</string>
</object>
</object>
<object class="IBUIButton" id="752456321">
<reference key="NSNextResponder" ref="585669622"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{93, 61}, {82, 52}}</string>
<string key="NSFrame">{{112, -1}, {93, 112}}</string>
<reference key="NSSuperview" ref="585669622"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<reference key="IBUIFont" ref="755582794"/>
<int key="IBUIButtonType">1</int>
<string key="IBUINormalTitle">Dialer</string>
<reference key="IBUIHighlightedTitleColor" ref="816037173"/>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
</object>
<reference key="IBUINormalTitleShadowColor" ref="785445938"/>
<object class="NSCustomResource" key="IBUIHighlightedImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">icono_teclado_2.png</string>
</object>
<object class="NSCustomResource" key="IBUINormalImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">icono_teclado_1.png</string>
</object>
</object>
<object class="IBUIButton" id="406189871">
<reference key="NSNextResponder" ref="585669622"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{181, 61}, {82, 52}}</string>
<string key="NSFrame">{{202, 0}, {93, 111}}</string>
<reference key="NSSuperview" ref="585669622"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<reference key="IBUIFont" ref="755582794"/>
<int key="IBUIButtonType">1</int>
<string key="IBUINormalTitle">Spk</string>
<reference key="IBUIHighlightedTitleColor" ref="816037173"/>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
</object>
<reference key="IBUINormalTitleShadowColor" ref="785445938"/>
<object class="NSCustomResource" key="IBUIHighlightedImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">icono_altavoz_2.png</string>
</object>
<object class="NSCustomResource" key="IBUINormalImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">icono_altavoz_1.png</string>
</object>
</object>
</object>
<string key="NSFrame">{{25, 110}, {270, 317}}</string>
<string key="NSFrame">{{0, 110}, {320, 349}}</string>
<reference key="NSSuperview" ref="858247959"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
@ -250,7 +319,7 @@
<object class="IBUIButton" id="846404401">
<reference key="NSNextResponder" ref="759087764"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{30, 258}, {80, 65}}</string>
<string key="NSFrame">{{21, 279}, {132, 49}}</string>
<reference key="NSSuperview" ref="759087764"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -263,69 +332,90 @@
<bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
</object>
<reference key="IBUINormalTitleShadowColor" ref="785445938"/>
<reference key="IBUINormalImage" ref="435496913"/>
<object class="NSCustomResource" key="IBUIHighlightedImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">boton_colgar2.png</string>
</object>
<object class="NSCustomResource" key="IBUINormalImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">boton_colgar1.png</string>
</object>
</object>
<object class="IBUIButton" id="759251781">
<reference key="NSNextResponder" ref="759087764"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{170, 266}, {72, 37}}</string>
<string key="NSFrame">{{168, 279}, {131, 49}}</string>
<reference key="NSSuperview" ref="759087764"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<reference key="IBUIFont" ref="755582794"/>
<int key="IBUIButtonType">1</int>
<string key="IBUINormalTitle">close</string>
<reference key="IBUIHighlightedTitleColor" ref="816037173"/>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
</object>
<reference key="IBUINormalTitleShadowColor" ref="785445938"/>
<object class="NSCustomResource" key="IBUINormalImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">boton_regresar1.png</string>
</object>
</object>
<object class="IBUIButton" id="583355032">
<reference key="NSNextResponder" ref="759087764"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{90, 184}, {82, 52}}</string>
<string key="NSFrame">{{111, 177}, {90, 60}}</string>
<reference key="NSSuperview" ref="759087764"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<reference key="IBUIFont" ref="755582794"/>
<int key="IBUIButtonType">1</int>
<string key="IBUINormalTitle">0</string>
<reference key="IBUIHighlightedTitleColor" ref="816037173"/>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
</object>
<reference key="IBUINormalTitleShadowColor" ref="785445938"/>
<object class="NSCustomResource" key="IBUIHighlightedImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">boton_0-2.png</string>
</object>
<object class="NSCustomResource" key="IBUINormalImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">boton_0-1.png</string>
</object>
</object>
<object class="IBUIButton" id="540604734">
<reference key="NSNextResponder" ref="759087764"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{0, 9}, {82, 52}}</string>
<string key="NSFrame">{{20, 0}, {91, 58}}</string>
<reference key="NSSuperview" ref="759087764"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<reference key="IBUIFont" ref="755582794"/>
<int key="IBUIButtonType">1</int>
<string key="IBUINormalTitle">1</string>
<reference key="IBUIHighlightedTitleColor" ref="816037173"/>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
</object>
<reference key="IBUINormalTitleShadowColor" ref="785445938"/>
<object class="NSCustomResource" key="IBUIHighlightedImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">boton_1-2.png</string>
</object>
<object class="NSCustomResource" key="IBUINormalImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">boton_1-1.png</string>
</object>
</object>
<object class="IBUIButton" id="848096264">
<reference key="NSNextResponder" ref="759087764"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{90, 9}, {82, 52}}</string>
<string key="NSFrame">{{111, 0}, {90, 58}}</string>
<reference key="NSSuperview" ref="759087764"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -333,37 +423,50 @@
<int key="IBUIContentVerticalAlignment">0</int>
<reference key="IBUIFont" ref="755582794"/>
<int key="IBUIButtonType">1</int>
<string key="IBUINormalTitle">2</string>
<reference key="IBUIHighlightedTitleColor" ref="816037173"/>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
</object>
<reference key="IBUINormalTitleShadowColor" ref="785445938"/>
<object class="NSCustomResource" key="IBUIHighlightedImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">boton_2-2.png</string>
</object>
<object class="NSCustomResource" key="IBUINormalImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">boton_2-1.png</string>
</object>
</object>
<object class="IBUIButton" id="1037442441">
<reference key="NSNextResponder" ref="759087764"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{180, 9}, {82, 52}}</string>
<string key="NSFrame">{{201, 0}, {91, 58}}</string>
<reference key="NSSuperview" ref="759087764"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<reference key="IBUIFont" ref="755582794"/>
<int key="IBUIButtonType">1</int>
<string key="IBUINormalTitle">3</string>
<reference key="IBUIHighlightedTitleColor" ref="816037173"/>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
</object>
<reference key="IBUINormalTitleShadowColor" ref="785445938"/>
<object class="NSCustomResource" key="IBUIHighlightedImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">boton_3-2.png</string>
</object>
<object class="NSCustomResource" key="IBUINormalImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">boton_3-1.png</string>
</object>
</object>
<object class="IBUIButton" id="652269854">
<reference key="NSNextResponder" ref="759087764"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{0, 69}, {82, 52}}</string>
<string key="NSFrame">{{20, 58}, {91, 60}}</string>
<reference key="NSSuperview" ref="759087764"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -371,149 +474,198 @@
<int key="IBUIContentVerticalAlignment">0</int>
<reference key="IBUIFont" ref="755582794"/>
<int key="IBUIButtonType">1</int>
<string key="IBUINormalTitle">4</string>
<reference key="IBUIHighlightedTitleColor" ref="816037173"/>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
</object>
<reference key="IBUINormalTitleShadowColor" ref="785445938"/>
<object class="NSCustomResource" key="IBUIHighlightedImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">boton_4-2.png</string>
</object>
<object class="NSCustomResource" key="IBUINormalImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">boton_4-1.png</string>
</object>
</object>
<object class="IBUIButton" id="373062361">
<reference key="NSNextResponder" ref="759087764"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{90, 69}, {82, 52}}</string>
<string key="NSFrame">{{111, 58}, {90, 60}}</string>
<reference key="NSSuperview" ref="759087764"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<reference key="IBUIFont" ref="755582794"/>
<int key="IBUIButtonType">1</int>
<string key="IBUINormalTitle">5</string>
<reference key="IBUIHighlightedTitleColor" ref="816037173"/>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
</object>
<reference key="IBUINormalTitleShadowColor" ref="785445938"/>
<object class="NSCustomResource" key="IBUIHighlightedImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">boton_5-2.png</string>
</object>
<object class="NSCustomResource" key="IBUINormalImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">boton_5-1.png</string>
</object>
</object>
<object class="IBUIButton" id="673101328">
<reference key="NSNextResponder" ref="759087764"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{180, 69}, {82, 52}}</string>
<string key="NSFrame">{{201, 58}, {91, 60}}</string>
<reference key="NSSuperview" ref="759087764"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<reference key="IBUIFont" ref="755582794"/>
<int key="IBUIButtonType">1</int>
<string key="IBUINormalTitle">6</string>
<reference key="IBUIHighlightedTitleColor" ref="816037173"/>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
</object>
<reference key="IBUINormalTitleShadowColor" ref="785445938"/>
<object class="NSCustomResource" key="IBUIHighlightedImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">boton_6-2.png</string>
</object>
<object class="NSCustomResource" key="IBUINormalImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">boton_6-1.png</string>
</object>
</object>
<object class="IBUIButton" id="313356310">
<reference key="NSNextResponder" ref="759087764"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{0, 124}, {82, 52}}</string>
<string key="NSFrame">{{20, 118}, {91, 59}}</string>
<reference key="NSSuperview" ref="759087764"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<reference key="IBUIFont" ref="755582794"/>
<int key="IBUIButtonType">1</int>
<string key="IBUINormalTitle">7</string>
<reference key="IBUIHighlightedTitleColor" ref="816037173"/>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
</object>
<reference key="IBUINormalTitleShadowColor" ref="785445938"/>
<object class="NSCustomResource" key="IBUIHighlightedImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">boton_7-2.png</string>
</object>
<object class="NSCustomResource" key="IBUINormalImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">boton_7-1.png</string>
</object>
</object>
<object class="IBUIButton" id="175014683">
<reference key="NSNextResponder" ref="759087764"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{90, 124}, {82, 52}}</string>
<string key="NSFrame">{{111, 118}, {90, 59}}</string>
<reference key="NSSuperview" ref="759087764"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<reference key="IBUIFont" ref="755582794"/>
<int key="IBUIButtonType">1</int>
<string key="IBUINormalTitle">8</string>
<reference key="IBUIHighlightedTitleColor" ref="816037173"/>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
</object>
<reference key="IBUINormalTitleShadowColor" ref="785445938"/>
<object class="NSCustomResource" key="IBUIHighlightedImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">boton_8-2.png</string>
</object>
<object class="NSCustomResource" key="IBUINormalImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">boton_8-1.png</string>
</object>
</object>
<object class="IBUIButton" id="723131369">
<reference key="NSNextResponder" ref="759087764"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{180, 124}, {82, 52}}</string>
<string key="NSFrame">{{201, 118}, {91, 59}}</string>
<reference key="NSSuperview" ref="759087764"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<reference key="IBUIFont" ref="755582794"/>
<int key="IBUIButtonType">1</int>
<string key="IBUINormalTitle">9</string>
<reference key="IBUIHighlightedTitleColor" ref="816037173"/>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
</object>
<reference key="IBUINormalTitleShadowColor" ref="785445938"/>
<object class="NSCustomResource" key="IBUIHighlightedImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">boton_9-2.png</string>
</object>
<object class="NSCustomResource" key="IBUINormalImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">boton_9-1.png</string>
</object>
</object>
<object class="IBUIButton" id="256512846">
<reference key="NSNextResponder" ref="759087764"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{0, 184}, {82, 52}}</string>
<string key="NSFrame">{{20, 177}, {91, 60}}</string>
<reference key="NSSuperview" ref="759087764"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<reference key="IBUIFont" ref="755582794"/>
<int key="IBUIButtonType">1</int>
<string key="IBUINormalTitle">*</string>
<reference key="IBUIHighlightedTitleColor" ref="816037173"/>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
</object>
<reference key="IBUINormalTitleShadowColor" ref="785445938"/>
<object class="NSCustomResource" key="IBUIHighlightedImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">boton_asterisco-2.png</string>
</object>
<object class="NSCustomResource" key="IBUINormalImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">boton_asterisco-1.png</string>
</object>
</object>
<object class="IBUIButton" id="323385706">
<reference key="NSNextResponder" ref="759087764"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{180, 184}, {82, 52}}</string>
<string key="NSFrame">{{201, 177}, {91, 60}}</string>
<reference key="NSSuperview" ref="759087764"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<reference key="IBUIFont" ref="755582794"/>
<int key="IBUIButtonType">1</int>
<string key="IBUINormalTitle">#</string>
<reference key="IBUIHighlightedTitleColor" ref="816037173"/>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
</object>
<reference key="IBUINormalTitleShadowColor" ref="785445938"/>
<object class="NSCustomResource" key="IBUIHighlightedImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">boton_num-2.png</string>
</object>
<object class="NSCustomResource" key="IBUINormalImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">boton_num-1.png</string>
</object>
</object>
</object>
<string key="NSFrame">{{25, 110}, {270, 317}}</string>
<string key="NSFrame">{{0, 110}, {320, 350}}</string>
<reference key="NSSuperview" ref="858247959"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
@ -526,14 +678,18 @@
</object>
<string key="NSFrameSize">{320, 460}</string>
<reference key="NSSuperview"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MCAwLjUwMTk2MDgxIDEAA</bytes>
</object>
<reference key="IBUIBackgroundColor" ref="207218184"/>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
</object>
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
</object>
<object class="IBUIView" id="1038614113">
<nil key="NSNextResponder"/>
<int key="NSvFlags">-2147483356</int>
<string key="NSFrameSize">{320, 460}</string>
<reference key="IBUIBackgroundColor" ref="207218184"/>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
</object>
</object>
<object class="IBObjectContainer" key="IBDocument.Objects">
<object class="NSMutableArray" key="connectionRecords">
@ -614,14 +770,6 @@
</object>
<int key="connectionID">51</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">end</string>
<reference key="source" ref="841351856"/>
<reference key="destination" ref="953411930"/>
</object>
<int key="connectionID">53</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">one</string>
@ -909,6 +1057,30 @@
</object>
<int key="connectionID">94</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">endCtrl</string>
<reference key="source" ref="841351856"/>
<reference key="destination" ref="953411930"/>
</object>
<int key="connectionID">100</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">endPad</string>
<reference key="source" ref="841351856"/>
<reference key="destination" ref="846404401"/>
</object>
<int key="connectionID">101</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">dimmer</string>
<reference key="source" ref="841351856"/>
<reference key="destination" ref="1038614113"/>
</object>
<int key="connectionID">104</int>
</object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
<object class="NSArray" key="orderedObjects">
@ -947,11 +1119,12 @@
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="585669622"/>
<reference ref="759087764"/>
<reference ref="357639611"/>
<reference ref="671407802"/>
<reference ref="983423469"/>
<reference ref="275734970"/>
<reference ref="759087764"/>
<reference ref="347027006"/>
<reference ref="930728502"/>
<reference ref="620882994"/>
</object>
<reference key="parent" ref="981679694"/>
@ -982,8 +1155,10 @@
<reference ref="752456321"/>
<reference ref="953411930"/>
<reference ref="406189871"/>
<reference ref="478667533"/>
<reference ref="861550739"/>
<reference ref="329989021"/>
<reference ref="478667533"/>
<reference ref="854766106"/>
</object>
<reference key="parent" ref="858247959"/>
<string key="objectName">controls</string>
@ -1026,17 +1201,17 @@
<reference ref="846404401"/>
<reference ref="759251781"/>
<reference ref="256512846"/>
<reference ref="323385706"/>
<reference ref="848096264"/>
<reference ref="583355032"/>
<reference ref="540604734"/>
<reference ref="1037442441"/>
<reference ref="652269854"/>
<reference ref="373062361"/>
<reference ref="673101328"/>
<reference ref="313356310"/>
<reference ref="175014683"/>
<reference ref="723131369"/>
<reference ref="323385706"/>
<reference ref="652269854"/>
</object>
<reference key="parent" ref="858247959"/>
<string key="objectName">pad</string>
@ -1053,12 +1228,6 @@
<reference key="parent" ref="759087764"/>
<string key="objectName">close</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">30</int>
<reference key="object" ref="540604734"/>
<reference key="parent" ref="759087764"/>
<string key="objectName">1</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">31</int>
<reference key="object" ref="256512846"/>
@ -1066,22 +1235,34 @@
<string key="objectName">start</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">32</int>
<reference key="object" ref="723131369"/>
<int key="objectID">40</int>
<reference key="object" ref="323385706"/>
<reference key="parent" ref="759087764"/>
<string key="objectName">9</string>
<string key="objectName">hash</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">33</int>
<reference key="object" ref="175014683"/>
<int key="objectID">39</int>
<reference key="object" ref="848096264"/>
<reference key="parent" ref="759087764"/>
<string key="objectName">8</string>
<string key="objectName">2</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">34</int>
<reference key="object" ref="313356310"/>
<int key="objectID">41</int>
<reference key="object" ref="583355032"/>
<reference key="parent" ref="759087764"/>
<string key="objectName">7</string>
<string key="objectName">0</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">30</int>
<reference key="object" ref="540604734"/>
<reference key="parent" ref="759087764"/>
<string key="objectName">1</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">38</int>
<reference key="object" ref="1037442441"/>
<reference key="parent" ref="759087764"/>
<string key="objectName">3</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">35</int>
@ -1102,40 +1283,55 @@
<string key="objectName">6</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">38</int>
<reference key="object" ref="1037442441"/>
<int key="objectID">34</int>
<reference key="object" ref="313356310"/>
<reference key="parent" ref="759087764"/>
<string key="objectName">3</string>
<string key="objectName">7</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">39</int>
<reference key="object" ref="848096264"/>
<int key="objectID">33</int>
<reference key="object" ref="175014683"/>
<reference key="parent" ref="759087764"/>
<string key="objectName">2</string>
<string key="objectName">8</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">40</int>
<reference key="object" ref="323385706"/>
<int key="objectID">32</int>
<reference key="object" ref="723131369"/>
<reference key="parent" ref="759087764"/>
<string key="objectName">hash</string>
<string key="objectName">9</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">41</int>
<reference key="object" ref="583355032"/>
<reference key="parent" ref="759087764"/>
<string key="objectName">0</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">92</int>
<reference key="object" ref="275734970"/>
<int key="objectID">95</int>
<reference key="object" ref="347027006"/>
<reference key="parent" ref="858247959"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">96</int>
<reference key="object" ref="930728502"/>
<reference key="parent" ref="858247959"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">97</int>
<reference key="object" ref="854766106"/>
<reference key="parent" ref="585669622"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">93</int>
<reference key="object" ref="620882994"/>
<reference key="parent" ref="858247959"/>
<string key="objectName">status</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">102</int>
<reference key="object" ref="329989021"/>
<reference key="parent" ref="585669622"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">103</int>
<reference key="object" ref="1038614113"/>
<reference key="parent" ref="1027416756"/>
<string key="objectName">dimmer</string>
</object>
</object>
</object>
<object class="NSMutableDictionary" key="flattenedProperties">
@ -1145,6 +1341,8 @@
<string>-1.CustomClassName</string>
<string>-2.CustomClassName</string>
<string>10.IBPluginDependency</string>
<string>102.IBPluginDependency</string>
<string>103.IBPluginDependency</string>
<string>11.IBPluginDependency</string>
<string>12.IBPluginDependency</string>
<string>13.IBPluginDependency</string>
@ -1171,8 +1369,10 @@
<string>40.IBPluginDependency</string>
<string>41.IBPluginDependency</string>
<string>9.IBPluginDependency</string>
<string>92.IBPluginDependency</string>
<string>93.IBPluginDependency</string>
<string>95.IBPluginDependency</string>
<string>96.IBPluginDependency</string>
<string>97.IBPluginDependency</string>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
@ -1186,7 +1386,11 @@
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>{{528, 218}, {320, 480}}</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>{{126, 112}, {320, 480}}</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
@ -1229,7 +1433,7 @@
</object>
</object>
<nil key="sourceID"/>
<int key="maxID">94</int>
<int key="maxID">104</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
@ -1250,8 +1454,10 @@
<string>contacts</string>
<string>controlSubView</string>
<string>dialer</string>
<string>dimmer</string>
<string>eight</string>
<string>end</string>
<string>endCtrl</string>
<string>endPad</string>
<string>five</string>
<string>four</string>
<string>hash</string>
@ -1278,6 +1484,8 @@
<string>UIButton</string>
<string>UIView</string>
<string>UIButton</string>
<string>UIView</string>
<string>UIButton</string>
<string>UIButton</string>
<string>UIButton</string>
<string>UIButton</string>

View file

@ -0,0 +1,50 @@
/* MoreViewController.h
*
* Copyright (C) 2009 Belledonne Comunications, Grenoble, France
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Library General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#import <UIKit/UIKit.h>
#include "linphoneAppDelegate.h"
@class AboutViewController;
@class ConsoleViewController;
@interface MoreViewController : UITableViewController<UIAlertViewDelegate> {
UILabel* about;
bool isLogViewEnabled;
UITableViewCell *web;
UITableViewCell *help;
UITableViewCell *reset;
UITableViewCell *credit;
UITableViewCell *console;
AboutViewController *aboutViewController;
ConsoleViewController *consoleViewController;
id<LinphoneManagerDelegate> linphoneDelegate;
}
-(void) enableLogView;
@property (nonatomic, retain) IBOutlet UITableViewCell* web;
@property (nonatomic, retain) IBOutlet UITableViewCell* help;
@property (nonatomic, retain) IBOutlet UITableViewCell* reset;
@property (nonatomic, retain) IBOutlet UITableViewCell* credit;
@property (nonatomic, retain) IBOutlet UITableViewCell* console;
@property (nonatomic, retain) id<LinphoneManagerDelegate> linphoneDelegate;
@end

View file

@ -0,0 +1,165 @@
/* MoreViewController.m
*
* Copyright (C) 2009 Belledonne Comunications, Grenoble, France
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Library General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#import "MoreViewController.h"
#import "AboutViewController.h"
#include "ConsoleViewController.h"
@implementation MoreViewController
@synthesize web;
@synthesize help;
@synthesize reset;
@synthesize credit;
@synthesize console;
@synthesize linphoneDelegate;
// The designated initializer. Override if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad.
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
// Custom initialization
isLogViewEnabled = false;
}
return self;
}
//Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
[super viewDidLoad];
aboutViewController = [[AboutViewController alloc] initWithNibName:@"AboutViewController" bundle:[NSBundle mainBundle]];
consoleViewController = [[ConsoleViewController alloc] initWithNibName:@"ConsoleViewController" bundle:[NSBundle mainBundle]];
}
/*
// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
*/
- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
- (void)viewDidUnload {
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- (void)dealloc {
[super dealloc];
}
-(void) enableLogView {
isLogViewEnabled = true;
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
// Customize the number of rows in the table view.
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
if (isLogViewEnabled) {
return 5;
} else {
return 4;
}
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
switch (indexPath.row) {
case 0: return web;
case 1: return help;
case 2: return reset;
case 3: return credit;
case 4: return console;
}
return nil;
}
- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath {
[self tableView:tableView didSelectRowAtIndexPath:indexPath];
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[tableView deselectRowAtIndexPath:indexPath animated:NO];
switch (indexPath.row) {
case 0: {
NSString *stringURL = @"http://dialer.axtellabs.net";
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];
break;
};
case 1:{
NSString *stringURL = @"http://help.dialer.axtellabs.net/help.html?version=1.1";
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];
break;
};
case 2: {
UIAlertView* ckecking = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Alert",nil)
message:NSLocalizedString(@"Esto borrara sus configuraciones actuales, seguro que desea continuar?",nil)
delegate:self
cancelButtonTitle:NSLocalizedString(@"Si",nil)
otherButtonTitles:nil];
[ckecking addButtonWithTitle:NSLocalizedString(@"No",nil)];
[ckecking show];
break;
}
case 3: {
[self.navigationController pushViewController:aboutViewController animated:true];
break;
}
case 4: {
[self.navigationController pushViewController:consoleViewController animated:true];
break;
}
}
}
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
if (buttonIndex == 0) {
[linphoneDelegate resetConfig];
}
}
@end

View file

@ -0,0 +1,582 @@
<?xml version="1.0" encoding="UTF-8"?>
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.03">
<data>
<int key="IBDocument.SystemTarget">784</int>
<string key="IBDocument.SystemVersion">9L31a</string>
<string key="IBDocument.InterfaceBuilderVersion">680</string>
<string key="IBDocument.AppKitVersion">949.54</string>
<string key="IBDocument.HIToolboxVersion">353.00</string>
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
<bool key="EncodedWithXMLCoder">YES</bool>
<integer value="38"/>
<integer value="25"/>
<integer value="26"/>
<integer value="27"/>
<integer value="1"/>
</object>
<object class="NSArray" key="IBDocument.PluginDependencies">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
</object>
<object class="NSMutableDictionary" key="IBDocument.Metadata">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBProxyObject" id="372490531">
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
</object>
<object class="IBProxyObject" id="975951072">
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
</object>
<object class="IBUIViewController" id="404009698">
<object class="IBUIView" key="IBUIView" id="191373211">
<reference key="NSNextResponder"/>
<int key="NSvFlags">292</int>
<string key="NSFrameSize">{320, 460}</string>
<reference key="NSSuperview"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
<object class="NSColorSpace" key="NSCustomColorSpace">
<int key="NSID">2</int>
</object>
</object>
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
</object>
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
</object>
<object class="IBUITableView" id="1023241257">
<nil key="NSNextResponder"/>
<int key="NSvFlags">274</int>
<string key="NSFrame">{{554, 98}, {320, 247}}</string>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
</object>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClipsSubviews">YES</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<bool key="IBUIBouncesZoom">NO</bool>
<int key="IBUISeparatorStyle">1</int>
<int key="IBUISectionIndexMinimumDisplayRowCount">0</int>
<bool key="IBUIShowsSelectionImmediatelyOnTouchBegin">YES</bool>
<float key="IBUIRowHeight">4.400000e+01</float>
<float key="IBUISectionHeaderHeight">2.200000e+01</float>
<float key="IBUISectionFooterHeight">2.200000e+01</float>
</object>
<object class="IBUITableViewCell" id="616126654">
<reference key="NSNextResponder"/>
<int key="NSvFlags">292</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBUIView" id="958135278">
<reference key="NSNextResponder" ref="616126654"/>
<int key="NSvFlags">256</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBUILabel" id="409894174">
<reference key="NSNextResponder" ref="958135278"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{20, 0}, {300, 44}}</string>
<reference key="NSSuperview" ref="958135278"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClipsSubviews">YES</bool>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="IBUIText">Sitio Web</string>
<object class="NSColor" key="IBUITextColor" id="165435042">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MCAwIDAAA</bytes>
</object>
<nil key="IBUIHighlightedColor"/>
<int key="IBUIBaselineAdjustment">1</int>
<float key="IBUIMinimumFontSize">1.000000e+01</float>
</object>
</object>
<string key="NSFrameSize">{300, 43}</string>
<reference key="NSSuperview" ref="616126654"/>
<object class="NSColor" key="IBUIBackgroundColor" id="852365409">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MCAwAA</bytes>
</object>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClipsSubviews">YES</bool>
<int key="IBUIContentMode">4</int>
<bool key="IBUIMultipleTouchEnabled">YES</bool>
</object>
</object>
<string key="NSFrameSize">{320, 44}</string>
<reference key="NSSuperview"/>
<object class="NSColor" key="IBUIBackgroundColor" id="505875399">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MSAxIDEAA</bytes>
</object>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUISeparatorStyle">1</int>
<int key="IBUIAccessoryType">1</int>
<reference key="IBUIContentView" ref="958135278"/>
</object>
<object class="IBUITableViewCell" id="571935457">
<reference key="NSNextResponder"/>
<int key="NSvFlags">292</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBUIView" id="239798702">
<reference key="NSNextResponder" ref="571935457"/>
<int key="NSvFlags">256</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBUILabel" id="183082590">
<reference key="NSNextResponder" ref="239798702"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{20, 0}, {300, 44}}</string>
<reference key="NSSuperview" ref="239798702"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClipsSubviews">YES</bool>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="IBUIText">Ayuda</string>
<reference key="IBUITextColor" ref="165435042"/>
<nil key="IBUIHighlightedColor"/>
<int key="IBUIBaselineAdjustment">1</int>
<float key="IBUIMinimumFontSize">1.000000e+01</float>
</object>
</object>
<string key="NSFrameSize">{300, 43}</string>
<reference key="NSSuperview" ref="571935457"/>
<reference key="IBUIBackgroundColor" ref="852365409"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClipsSubviews">YES</bool>
<int key="IBUIContentMode">4</int>
<bool key="IBUIMultipleTouchEnabled">YES</bool>
</object>
</object>
<string key="NSFrameSize">{320, 44}</string>
<reference key="NSSuperview"/>
<reference key="IBUIBackgroundColor" ref="505875399"/>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUISeparatorStyle">1</int>
<int key="IBUIAccessoryType">1</int>
<reference key="IBUIContentView" ref="239798702"/>
</object>
<object class="IBUITableViewCell" id="470803251">
<reference key="NSNextResponder"/>
<int key="NSvFlags">292</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBUIView" id="678311353">
<reference key="NSNextResponder" ref="470803251"/>
<int key="NSvFlags">256</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBUILabel" id="191980417">
<reference key="NSNextResponder" ref="678311353"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{20, 0}, {300, 44}}</string>
<reference key="NSSuperview" ref="678311353"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClipsSubviews">YES</bool>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="IBUIText">Restaurar valores predeterminados</string>
<reference key="IBUITextColor" ref="165435042"/>
<nil key="IBUIHighlightedColor"/>
<int key="IBUIBaselineAdjustment">1</int>
<float key="IBUIMinimumFontSize">1.000000e+01</float>
</object>
</object>
<string key="NSFrameSize">{300, 43}</string>
<reference key="NSSuperview" ref="470803251"/>
<reference key="IBUIBackgroundColor" ref="852365409"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClipsSubviews">YES</bool>
<int key="IBUIContentMode">4</int>
<bool key="IBUIMultipleTouchEnabled">YES</bool>
</object>
</object>
<string key="NSFrameSize">{320, 44}</string>
<reference key="NSSuperview"/>
<reference key="IBUIBackgroundColor" ref="505875399"/>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUISeparatorStyle">1</int>
<int key="IBUIAccessoryType">1</int>
<reference key="IBUIContentView" ref="678311353"/>
</object>
<object class="IBUITableViewCell" id="577577539">
<reference key="NSNextResponder"/>
<int key="NSvFlags">292</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBUIView" id="358317556">
<reference key="NSNextResponder" ref="577577539"/>
<int key="NSvFlags">256</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBUILabel" id="659450806">
<reference key="NSNextResponder" ref="358317556"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{20, 0}, {300, 44}}</string>
<reference key="NSSuperview" ref="358317556"/>
<reference key="NSWindow"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClipsSubviews">YES</bool>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="IBUIText">Acerca De</string>
<reference key="IBUITextColor" ref="165435042"/>
<nil key="IBUIHighlightedColor"/>
<int key="IBUIBaselineAdjustment">1</int>
<float key="IBUIMinimumFontSize">1.000000e+01</float>
</object>
</object>
<string key="NSFrameSize">{300, 43}</string>
<reference key="NSSuperview" ref="577577539"/>
<reference key="NSWindow"/>
<reference key="IBUIBackgroundColor" ref="852365409"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClipsSubviews">YES</bool>
<int key="IBUIContentMode">4</int>
<bool key="IBUIMultipleTouchEnabled">YES</bool>
</object>
</object>
<string key="NSFrameSize">{320, 44}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="IBUIBackgroundColor" ref="505875399"/>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUISeparatorStyle">1</int>
<int key="IBUIAccessoryType">1</int>
<reference key="IBUIContentView" ref="358317556"/>
</object>
<object class="IBUITableViewCell" id="135715970">
<reference key="NSNextResponder"/>
<int key="NSvFlags">292</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBUIView" id="804504498">
<reference key="NSNextResponder" ref="135715970"/>
<int key="NSvFlags">256</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBUILabel" id="915917531">
<reference key="NSNextResponder" ref="804504498"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{20, 0}, {300, 44}}</string>
<reference key="NSSuperview" ref="804504498"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClipsSubviews">YES</bool>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="IBUIText">Console</string>
<reference key="IBUITextColor" ref="165435042"/>
<nil key="IBUIHighlightedColor"/>
<int key="IBUIBaselineAdjustment">1</int>
<float key="IBUIMinimumFontSize">1.000000e+01</float>
</object>
</object>
<string key="NSFrameSize">{300, 43}</string>
<reference key="NSSuperview" ref="135715970"/>
<reference key="IBUIBackgroundColor" ref="852365409"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClipsSubviews">YES</bool>
<int key="IBUIContentMode">4</int>
<bool key="IBUIMultipleTouchEnabled">YES</bool>
</object>
</object>
<string key="NSFrameSize">{320, 44}</string>
<reference key="NSSuperview"/>
<reference key="IBUIBackgroundColor" ref="505875399"/>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUISeparatorStyle">1</int>
<int key="IBUIAccessoryType">1</int>
<reference key="IBUIContentView" ref="804504498"/>
</object>
</object>
<object class="IBObjectContainer" key="IBDocument.Objects">
<object class="NSMutableArray" key="connectionRecords">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">view</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="1023241257"/>
</object>
<int key="connectionID">19</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">credit</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="577577539"/>
</object>
<int key="connectionID">29</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">help</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="571935457"/>
</object>
<int key="connectionID">30</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">reset</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="470803251"/>
</object>
<int key="connectionID">31</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">web</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="616126654"/>
</object>
<int key="connectionID">32</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">console</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="135715970"/>
</object>
<int key="connectionID">40</int>
</object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
<object class="NSArray" key="orderedObjects">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBObjectRecord">
<int key="objectID">0</int>
<object class="NSArray" key="object" id="941338986">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<reference key="children" ref="1000"/>
<nil key="parent"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">-1</int>
<reference key="object" ref="372490531"/>
<reference key="parent" ref="941338986"/>
<string type="base64-UTF8" key="objectName">RmlsZSdzIE93bmVyA</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">-2</int>
<reference key="object" ref="975951072"/>
<reference key="parent" ref="941338986"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4</int>
<reference key="object" ref="404009698"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="191373211"/>
</object>
<reference key="parent" ref="941338986"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">1</int>
<reference key="object" ref="191373211"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<reference key="parent" ref="404009698"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">18</int>
<reference key="object" ref="1023241257"/>
<reference key="parent" ref="941338986"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">25</int>
<reference key="object" ref="616126654"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="409894174"/>
</object>
<reference key="parent" ref="941338986"/>
<string key="objectName">web</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">26</int>
<reference key="object" ref="571935457"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="183082590"/>
</object>
<reference key="parent" ref="941338986"/>
<string key="objectName">help</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">27</int>
<reference key="object" ref="470803251"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="191980417"/>
</object>
<reference key="parent" ref="941338986"/>
<string key="objectName">reset config</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">28</int>
<reference key="object" ref="577577539"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="659450806"/>
</object>
<reference key="parent" ref="941338986"/>
<string key="objectName">about</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">34</int>
<reference key="object" ref="409894174"/>
<reference key="parent" ref="616126654"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">35</int>
<reference key="object" ref="183082590"/>
<reference key="parent" ref="571935457"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">36</int>
<reference key="object" ref="191980417"/>
<reference key="parent" ref="470803251"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">37</int>
<reference key="object" ref="659450806"/>
<reference key="parent" ref="577577539"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">38</int>
<reference key="object" ref="135715970"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="915917531"/>
</object>
<reference key="parent" ref="941338986"/>
<string key="objectName">console</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">39</int>
<reference key="object" ref="915917531"/>
<reference key="parent" ref="135715970"/>
</object>
</object>
</object>
<object class="NSMutableDictionary" key="flattenedProperties">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSMutableArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>-1.CustomClassName</string>
<string>-2.CustomClassName</string>
<string>1.IBEditorWindowLastContentRect</string>
<string>1.IBPluginDependency</string>
<string>18.IBPluginDependency</string>
<string>25.IBEditorWindowLastContentRect</string>
<string>25.IBPluginDependency</string>
<string>26.IBEditorWindowLastContentRect</string>
<string>26.IBPluginDependency</string>
<string>27.IBEditorWindowLastContentRect</string>
<string>27.IBPluginDependency</string>
<string>28.IBEditorWindowLastContentRect</string>
<string>28.IBPluginDependency</string>
<string>34.IBPluginDependency</string>
<string>35.IBPluginDependency</string>
<string>36.IBPluginDependency</string>
<string>37.IBPluginDependency</string>
<string>38.IBEditorWindowLastContentRect</string>
<string>38.IBPluginDependency</string>
<string>39.IBPluginDependency</string>
<string>4.IBEditorWindowLastContentRect</string>
<string>4.IBPluginDependency</string>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>MoreViewController</string>
<string>UIResponder</string>
<string>{{437, 192}, {320, 480}}</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>{{395, 688}, {320, 44}}</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>{{412, 436}, {320, 44}}</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>{{42, 1022}, {320, 44}}</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>{{63, 999}, {320, 44}}</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>{{84, 976}, {320, 44}}</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>{{80, 105}, {320, 480}}</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
</object>
</object>
<object class="NSMutableDictionary" key="unlocalizedProperties">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<nil key="activeLocalization"/>
<object class="NSMutableDictionary" key="localizations">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<nil key="sourceID"/>
<int key="maxID">41</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBPartialClassDescription">
<string key="className">MoreViewController</string>
<string key="superclassName">UITableViewController</string>
<object class="NSMutableDictionary" key="outlets">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSMutableArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>console</string>
<string>credit</string>
<string>help</string>
<string>reset</string>
<string>web</string>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>UITableViewCell</string>
<string>UITableViewCell</string>
<string>UITableViewCell</string>
<string>UITableViewCell</string>
<string>UITableViewCell</string>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">Classes/MoreViewController.h</string>
</object>
</object>
</object>
</object>
<int key="IBDocument.localizationMode">0</int>
<string key="IBDocument.LastKnownRelativeProjectPath">../linphone.xcodeproj</string>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
<string key="IBCocoaTouchPluginVersion">3.1</string>
</data>
</archive>

View file

@ -19,25 +19,31 @@
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#import "linphonecore.h"
#import "linphoneAppDelegate.h"
@protocol PhoneViewControllerDelegate
-(void)setPhoneNumber:(NSString*)number;
-(void)setPhoneNumber:(NSString*)number withDisplayName:(NSString*) name;
-(void)dismissIncallView;
-(void)displayStatus:(NSString*) message;
-(void)setTunnelState:(bool) state;
@end
@class IncallViewController;
@interface PhoneViewController : UIViewController <UITextFieldDelegate,PhoneViewControllerDelegate> {
@private
//UI definition
UITextField* address;
UIButton* call;
UIButton* gsmCall;
UIButton* endPhoneNumEditing;
UILabel* status;
//key pad
UIView* pad;
UIButton* one;
UIButton* two;
UIButton* three;
@ -50,19 +56,28 @@
UIButton* star;
UIButton* zero;
UIButton* hash;
UIButton* tun;
UIButton* back;
/*
* lib linphone main context
*/
LinphoneCore* mCore;
// to params, might be put in a separated object
UITextField* address;
NSString* displayName;
id<LinphoneManagerDelegate> linphoneDelegate;
IncallViewController *myIncallViewController;
}
@property (nonatomic, retain) IBOutlet UITextField* address;
@property (nonatomic, retain) IBOutlet UIButton* call;
@property (nonatomic, retain) IBOutlet UILabel* status;
@property (nonatomic, retain) IBOutlet UIButton* gsmCall;
@property (nonatomic, retain) IBOutlet UIView* pad;
@property (nonatomic, retain) IBOutlet UIButton* endPhoneNumEditing;
@property (nonatomic, retain) IBOutlet UIButton* one;
@property (nonatomic, retain) IBOutlet UIButton* two;
@property (nonatomic, retain) IBOutlet UIButton* three;
@ -75,17 +90,23 @@
@property (nonatomic, retain) IBOutlet UIButton* star;
@property (nonatomic, retain) IBOutlet UIButton* zero;
@property (nonatomic, retain) IBOutlet UIButton* hash;
@property (nonatomic, retain) IBOutlet UIButton* tun;
@property (nonatomic, retain) IBOutlet UIButton* back;
@property (nonatomic, retain) id<LinphoneManagerDelegate> linphoneDelegate;
/*
* Handle call state change from linphone
*/
-(void) callStateChange:(LinphoneGeneralState*) state;
-(void) callLogUpdated:(LinphoneCallLog*) log;
//-(void) setLinphoneCore:(LinphoneCore*) lc;
-(void) enableCall:(bool) value;
-(void) keyboardWasShown:(NSNotification*)aNotification;
-(void) keyboardWillHide:(NSNotification*)aNotification;
-(void) setLinphoneCore:(LinphoneCore*) lc;
/********************
* UI method handlers
@ -100,7 +121,9 @@
- (IBAction)doKeyPadUp:(id)sender;
-(void) dismissAlertDialog:(UIAlertView*)alertView;
-(void) displayNetworkErrorAlert;
@end

View file

@ -28,8 +28,10 @@
@implementation PhoneViewController
@synthesize address ;
@synthesize call;
@synthesize status;
@synthesize gsmCall;
@synthesize pad;
@synthesize endPhoneNumEditing;
@synthesize one;
@synthesize two;
@synthesize three;
@ -42,11 +44,24 @@
@synthesize star;
@synthesize zero;
@synthesize hash;
@synthesize tun;
@synthesize back;
@synthesize linphoneDelegate;
-(void)setPhoneNumber:(NSString*)number {
[address setText:number];
if (displayName) {
[displayName release];
displayName=nil;
}
}
-(void)setPhoneNumber:(NSString*)number withDisplayName:(NSString*) name {
[self setPhoneNumber:number];
displayName = name;
}
-(void) callLogUpdated:(LinphoneCallLog*) log {
//nop
}
-(void)dismissIncallView {
@ -55,25 +70,65 @@
//implements call/cancel button behavior
-(IBAction) doAction:(id)sender {
//1 normalize phone number
if (sender == call) {
if (!linphone_core_in_call(mCore)) {
const char* lCallee = [[address text] cStringUsingEncoding:[NSString defaultCStringEncoding]];
linphone_core_invite(mCore,lCallee) ;
if (sender == gsmCall || sender == call) {
char normalizedUserName[256];
LinphoneProxyConfig* proxyCfg;
//get default proxy
linphone_core_get_default_proxy(mCore,&proxyCfg);
NSString* toUserName = [NSString stringWithString:[address text]];
linphone_proxy_config_normalize_number(proxyCfg,[toUserName cStringUsingEncoding:[NSString defaultCStringEncoding]],normalizedUserName,sizeof(normalizedUserName));
if (sender == call) {
// check if ready to place a call
if (!linphone_proxy_config_is_registered(proxyCfg)) {
#ifdef LINPHONE_WIFI_ONLY
if (!linphone_proxy_config_register_enabled(proxyCfg)) {
UIAlertView* error = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Connection interumpida",nil)
message:NSLocalizedString(@"Favor de conectarse a una red inalambrica",nil)
delegate:nil
cancelButtonTitle:NSLocalizedString(@"Ok",nil)
otherButtonTitles:nil];
[error show];
} else {
[self displayNetworkErrorAlert];
}
#else
[self displayNetworkErrorAlert];
#endif /*LINPHONE_WIFI_ONLY*/
return;
}
if (!linphone_core_in_call(mCore)) {
LinphoneAddress* tmpAddress = linphone_address_new(linphone_core_get_identity(mCore));
linphone_address_set_username(tmpAddress,normalizedUserName);
linphone_address_set_display_name(tmpAddress,displayName?[displayName cStringUsingEncoding:[NSString defaultCStringEncoding]]:nil);
linphone_core_invite(mCore,linphone_address_as_string(tmpAddress)) ;
linphone_address_destroy(tmpAddress);
}
if (linphone_core_inc_invite_pending(mCore)) {
linphone_core_accept_call(mCore,NULL);
}
//Cancel audio route redirection
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_None;
AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute
, sizeof (audioRouteOverride)
, &audioRouteOverride);
} else if (sender == gsmCall) {
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"tel:%s", normalizedUserName]];
[[UIApplication sharedApplication] openURL:url];
}
if (linphone_core_inc_invite_pending(mCore)) {
linphone_core_accept_call(mCore,NULL);
}
//Cancel audio route redirection
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_None;
AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute
, sizeof (audioRouteOverride)
, &audioRouteOverride);
} else if (sender == endPhoneNumEditing) {
[address resignFirstResponder];
} else if (sender == tun) {
[self setTunnelState: [linphoneDelegate toggleTunnel]];
}
}
}
//implements keypad behavior
@ -114,6 +169,10 @@
} else if (sender == back) {
if ([address.text length] >0) {
newAddress = [address.text substringToIndex: [address.text length]-1];
//start timer for back
[self performSelector:@selector(doBackspaceLongPress) withObject:nil afterDelay:0.5];
//erase displayname is case of number correction
displayName=@"";
}
} else {
NSLog(@"unknown event from diad pad");
@ -132,7 +191,13 @@
[NSObject cancelPreviousPerformRequestsWithTarget:self
selector:@selector(doKeyZeroLongPress)
object:nil];
} else {
} if (sender == back) {
//cancel timer for back
[NSObject cancelPreviousPerformRequestsWithTarget:self
selector:@selector(doBackspaceLongPress)
object:nil];
}else {
NSLog(@"unknown up event from dial pad");
}
}
@ -143,17 +208,37 @@
}
-(void)doBackspaceLongPress {
[address setText:@""];
}
-(void) setLinphoneCore:(LinphoneCore*) lc {
mCore = lc;
[myIncallViewController setLinphoneCore:mCore];
}
-(void)displayStatus:(NSString*) message {
[status setText:message];
if (myIncallViewController != nil) {
[myIncallViewController displayStatus:message];
}
}
-(void) enableCall:(bool) enable{
if (enable) {
[call setImage:[UIImage imageNamed:@"boton_AXTEL_2.png"] forState:UIControlStateNormal];
[call setImage:[UIImage imageNamed:@"boton_AXTEL_1.png"] forState:UIControlStateHighlighted];
} else {
[call setImage:[UIImage imageNamed:@"boton_AXTEL_1.png"] forState:UIControlStateNormal];
[call setImage:[UIImage imageNamed:@"boton_AXTEL_2.png"] forState:UIControlStateHighlighted];
}
}
-(void) displayNetworkErrorAlert {
UIAlertView* error = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Connection interumpida",nil)
message:NSLocalizedString(@"Your phone is no longuer connected, check your connection settings",nil)
delegate:nil
cancelButtonTitle:NSLocalizedString(@"Ok",nil)
otherButtonTitles:nil];
[error show];
}
/*
// The designated initializer. Override if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad.
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
@ -164,7 +249,6 @@
}
*/
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
[super viewDidLoad];
@ -173,11 +257,26 @@
[myIncallViewController setPhoneviewDelegate:self];
}
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWasShown:)
name:UIKeyboardDidShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillHide:)
name:UIKeyboardWillHideNotification object:nil];
}
-(void) keyboardWasShown:(NSNotification*)aNotification {
[pad setHidden:true];
[back setHidden:true];
}
-(void) keyboardWillHide:(NSNotification*)aNotification {
[pad setHidden:false];
[back setHidden:false];
}
/*
// Override to allow orientations other than the default portrait orientation.
@ -200,15 +299,6 @@
}
- (BOOL)textFieldShouldReturn:(UITextField *)theTextField {
if (theTextField == address) {
[address resignFirstResponder];
}
return YES;
}
-(void) dismissAlertDialog:(UIAlertView*) alertView{
[alertView dismissWithClickedButtonIndex:0 animated:TRUE];
}
@ -216,10 +306,17 @@
- (void)dealloc {
[address dealloc];
[call dealloc];
[status dealloc];
[super dealloc];
}
-(void)setTunnelState:(bool) state {
if (state) {
[tun setImage:[UIImage imageNamed:@"auroc-On.png"] forState:UIControlStateNormal];
} else {
[tun setImage:[UIImage imageNamed:@"auroc-Off.png"] forState:UIControlStateNormal];
}
}
-(void) callStateChange:(LinphoneGeneralState*) state {
// /* states for GSTATE_GROUP_POWER */
// GSTATE_POWER_OFF = 0, /* initial state */
@ -240,16 +337,33 @@
// GSTATE_CALL_ERROR,
// GSTATE_INVALID
switch (state->new_state) {
case GSTATE_REG_FAILED: {
[self enableCall:false];
break;
}
case GSTATE_REG_OK: {
LinphoneProxyConfig* proxyCfg;
//get default proxy
if ((linphone_core_get_default_proxy(mCore,&proxyCfg)==0) && linphone_proxy_config_is_registered(proxyCfg)) {
[self enableCall:true];
} else {
[self enableCall:false];
}
break;
}
case GSTATE_CALL_IN_INVITE:
case GSTATE_CALL_OUT_INVITE: {
//[myIncallViewController startCall];
[myIncallViewController resetView];
[self presentModalViewController: myIncallViewController animated:true];
[myIncallViewController displayStatus:NSLocalizedString(@"Llamando...",nil)];
break;
}
case GSTATE_CALL_ERROR: {
NSString* lTitle= state->message!=nil?[NSString stringWithCString:state->message length:strlen(state->message)]: @"Error";
NSString* lMessage=lTitle;
NSString* lTitle= @"Error";
NSString* lMessage=state->message!=nil?[NSString stringWithCString:state->message length:strlen(state->message)]: @"";
UIAlertView* error = [[UIAlertView alloc] initWithTitle:lTitle
@ -272,6 +386,7 @@
case GSTATE_CALL_END: {
//end off call, just dismiss Incall view
[self dismissIncallView];
displayName=@"";
break;
}
default:

File diff suppressed because it is too large Load diff

216
Classes/bitlib.cc Normal file
View file

@ -0,0 +1,216 @@
#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;
}
}

26
Classes/bitlib.hh Normal file
View file

@ -0,0 +1,26 @@
#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);
};
}

98
Classes/codechecker.cc Normal file
View file

@ -0,0 +1,98 @@
#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;
}
}

25
Classes/codechecker.hh Normal file
View file

@ -0,0 +1,25 @@
#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

23
Classes/codetest.cc Normal file
View file

@ -0,0 +1,23 @@
#include "codechecker.hh"
using namespace axcodechecker;
int main(int argc, char *argv[]){
if (argc<3){
printf("codetest [key] [phone number]\n");
return -1;
}
CodeChecker *cc=CodeChecker::get();
cc->setCode(argv[1]);
cc->setPhoneNumber(argv[2]);
CodeChecker::Result r=cc->validate();
if (r==CodeChecker::Ok){
printf("Key and number are valid; ip address is %s\n",cc->getIpAddress());
}else if (r==CodeChecker::WrongPhoneNumber){
printf("Phone number verification failed\n");
}else if (r==CodeChecker::WrongCode){
printf("Key verification failed.\n");
}
return 0;
}

7177
Classes/decodetable.cc Normal file

File diff suppressed because it is too large Load diff

View file

@ -20,12 +20,26 @@
#import <UIKit/UIKit.h>
#import <AddressBookUI/ABPeoplePickerNavigationController.h>
#include"linphonecore.h"
#import <SystemConfiguration/SCNetworkReachability.h>
#import "linphonecore.h"
@protocol LinphoneTabManagerDelegate
@protocol LinphoneManagerDelegate
-(void)selectDialerTab;
-(void)launchMainUi;
/*
* return true if register is activated
*/
-(bool)initProxySettings;
/* return new tunnel state*/
-(bool) toggleTunnel;
-(bool) isTunnel;
-(void) resetConfig;
-(LinphoneCore*) getLinphoneCore;
@end
@ -34,8 +48,9 @@
@class PhoneViewController;
@class CallHistoryTableViewController;
@class FavoriteTableViewController;
@class FirstLoginViewController;
@interface linphoneAppDelegate : NSObject <UIApplicationDelegate,LinphoneTabManagerDelegate,UIActionSheetDelegate> {
@interface linphoneAppDelegate : NSObject <UIApplicationDelegate,LinphoneManagerDelegate,UIActionSheetDelegate> {
UIWindow *window;
IBOutlet UITabBarController* myTabBarController;
IBOutlet ABPeoplePickerNavigationController* myPeoplePickerController;
@ -44,9 +59,14 @@
FavoriteTableViewController* myFavoriteTableViewController;
ContactPickerDelegate* myContactPickerDelegate;
FirstLoginViewController* myFirstLoginViewController;
int traceLevel;
bool isTunnelConfigured;
bool isTunnel;
bool isDebug;
LinphoneCore* myLinphoneCore;
SCNetworkReachabilityContext proxyReachabilityContext;
SCNetworkReachabilityRef proxyReachability;
}
@ -54,6 +74,10 @@
* liblinphone initialization method
**********************************/
-(void) startlibLinphone;
/**
* return true if register is activated
*/
bool networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReachabilityFlags flags, void * info);
/*
* liblinphone scheduling method;
@ -62,6 +86,10 @@
-(void) newIncomingCall:(NSString*) from;
-(void) enableTunnel;
-(void) disableTunnel;
-(void) doRegister;
-(void) doUnRegister;
-(PayloadType*) findPayload:(NSString*)type withRate:(int)rate from:(const MSList*)list;
@ -70,7 +98,7 @@
@property (nonatomic, retain) IBOutlet UITabBarController* myTabBarController;
@property (nonatomic, retain) ABPeoplePickerNavigationController* myPeoplePickerController;
@property (nonatomic, retain) IBOutlet PhoneViewController* myPhoneViewController;
@property (nonatomic, readonly) FirstLoginViewController* myFirstLoginViewController;
@end

View file

@ -26,17 +26,33 @@
#import <AudioToolbox/AudioToolbox.h>
#import "osip2/osip.h"
#import "FavoriteTableViewController.h"
#import "MoreViewController.h"
#import "ConsoleViewController.h"
#import "FirstLoginViewController.h"
extern void ms_au_register_card();
extern void linphone_iphone_tunneling_init(const char* ip,unsigned int port,bool isDebug);
extern void linphone_iphone_enable_tunneling(LinphoneCore* lc);
extern void linphone_iphone_disable_tunneling(LinphoneCore* lc);
extern int linphone_iphone_tunneling_isready();
//generic log handler for debug version
void linphone_iphone_log_handler(OrtpLogLevel lev, const char *fmt, va_list args){
void linphone_iphone_log_handler(int lev, const char *fmt, va_list args){
NSString* format = [[NSString alloc] initWithCString:fmt encoding:[NSString defaultCStringEncoding]];
NSLogv(format,args);
NSString* formatedString = [[NSString alloc] initWithFormat:format arguments:args];
[ConsoleViewController addLog:formatedString];
[format release];
[formatedString release];
}
//Error/warning log handler
void linphone_iphone_log(struct _LinphoneCore * lc, const char * message) {
NSLog([NSString stringWithCString:message length:strlen(message)]);
NSString* log = [NSString stringWithCString:message length:strlen(message)];
NSLog(log);
[ConsoleViewController addLog:log];
}
//status
void linphone_iphone_display_status(struct _LinphoneCore * lc, const char * message) {
@ -48,22 +64,47 @@ void linphone_iphone_show(struct _LinphoneCore * lc) {
//nop
}
void linphone_iphone_call_received(LinphoneCore *lc, const char *from){
[((linphoneAppDelegate*) linphone_core_get_user_data(lc)) newIncomingCall:[[NSString alloc] initWithCString:from encoding:[NSString defaultCStringEncoding]]];
LinphoneAddress* fromAddr = linphone_address_new(from);
[((linphoneAppDelegate*) linphone_core_get_user_data(lc)) newIncomingCall:[[NSString alloc] initWithCString:linphone_address_get_username(fromAddr) encoding:[NSString defaultCStringEncoding]]];
};
void linphone_iphone_general_state(LinphoneCore *lc, LinphoneGeneralState *gstate) {
//handle first register case
FirstLoginViewController* loginView = ((linphoneAppDelegate*) linphone_core_get_user_data(lc)).myFirstLoginViewController;
if (loginView) {
[loginView callStateChange:gstate];
}
PhoneViewController* lPhone = ((linphoneAppDelegate*) linphone_core_get_user_data(lc)).myPhoneViewController;
[lPhone callStateChange:gstate];
}
void linphone_iphone_calllog_updated(LinphoneCore *lc, LinphoneCallLog *newcl) {
PhoneViewController* lPhone = ((linphoneAppDelegate*) linphone_core_get_user_data(lc)).myPhoneViewController;
[lPhone callLogUpdated:newcl];
LinphoneCoreVTable linphonec_vtable = {
}
void linphone_iphone_auth_info_requested(LinphoneCore *lc, const char *realm, const char *username) {
UIAlertView* alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Error",nil)
message:NSLocalizedString(@"Wrong user name or password",nil)
delegate:nil
cancelButtonTitle:NSLocalizedString(@"Continue",nil)
otherButtonTitles:nil];
[alert show];
FirstLoginViewController* loginView = ((linphoneAppDelegate*) linphone_core_get_user_data(lc)).myFirstLoginViewController;
if (loginView) {
[loginView authInfoRequested];
}
};
LinphoneCoreVTable linphone_iphone_vtable = {
.show =(ShowInterfaceCb) linphone_iphone_show,
.inv_recv = linphone_iphone_call_received,
.bye_recv = NULL,
.notify_recv = NULL,
.new_unknown_subscriber = NULL,
.auth_info_requested = NULL,
.auth_info_requested = linphone_iphone_auth_info_requested,
.display_status = linphone_iphone_display_status,
.display_message=linphone_iphone_log,
.display_warning=linphone_iphone_log,
@ -83,20 +124,43 @@ LinphoneCoreVTable linphonec_vtable = {
@synthesize myTabBarController;
@synthesize myPeoplePickerController;
@synthesize myPhoneViewController;
@synthesize myFirstLoginViewController;
- (void)applicationDidFinishLaunching:(UIApplication *)application {
//1 start main UI
[self launchMainUi];
//2 add first login view if required
bool isFirstLoginDone = [[NSUserDefaults standardUserDefaults] boolForKey:@"firstlogindone_preference"];
if (!isFirstLoginDone) {
myFirstLoginViewController = [[FirstLoginViewController alloc]
initWithNibName:@"FirstLoginViewController"
bundle:nil];
[window addSubview:myFirstLoginViewController.view];
[myFirstLoginViewController setMainDelegate:self];
}
[window makeKeyAndVisible];
}
-(void) launchMainUi {
isDebug = [[NSUserDefaults standardUserDefaults] boolForKey:@"debugenable_preference"];
//as defined in PhoneMainView.xib
#define DIALER_TAB_INDEX 2
#define CONTACTS_TAB_INDEX 3
#define HISTORY_TAB_INDEX 1
#define FAVORITE_TAB_INDEX 0
#define MORE_TAB_INDEX 4
#define DIALER_TAB_INDEX 2
#define CONTACTS_TAB_INDEX 3
#define HISTORY_TAB_INDEX 1
#define FAVORITE_TAB_INDEX 0
#define MORE_TAB_INDEX 4
myPhoneViewController = (PhoneViewController*) [myTabBarController.viewControllers objectAtIndex: DIALER_TAB_INDEX];
[myPhoneViewController setLinphoneDelegate:self];
myCallHistoryTableViewController = (CallHistoryTableViewController*)[myTabBarController.viewControllers objectAtIndex: HISTORY_TAB_INDEX];
[myCallHistoryTableViewController setPhoneControllerDelegate:myPhoneViewController];
@ -105,7 +169,7 @@ LinphoneCoreVTable linphonec_vtable = {
myFavoriteTableViewController = (FavoriteTableViewController*)[myTabBarController.viewControllers objectAtIndex: FAVORITE_TAB_INDEX];
[myFavoriteTableViewController setPhoneControllerDelegate:myPhoneViewController];
[myFavoriteTableViewController setLinphoneDelegate:self];
//people picker delegates
myContactPickerDelegate = [[ContactPickerDelegate alloc] init];
myContactPickerDelegate.phoneControllerDelegate=myPhoneViewController;
@ -116,31 +180,49 @@ LinphoneCoreVTable linphonec_vtable = {
[myPeoplePickerController setPeoplePickerDelegate:myContactPickerDelegate];
//copy tab bar item
myPeoplePickerController.tabBarItem = [(UIViewController*)[myTabBarController.viewControllers objectAtIndex:CONTACTS_TAB_INDEX] tabBarItem];
//insert contact controller
//more tab
MoreViewController *moreViewController = [[MoreViewController alloc] initWithNibName:@"MoreViewController" bundle:[NSBundle mainBundle]];
if (isDebug) {
[moreViewController enableLogView];
}
[moreViewController setLinphoneDelegate:self];
UINavigationController *aNavigationController = [[UINavigationController alloc] initWithRootViewController:moreViewController];
[aNavigationController.navigationBar setTintColor:[UIColor lightGrayColor]];
//copy tab bar item
aNavigationController.tabBarItem = [(UIViewController*)[myTabBarController.viewControllers objectAtIndex:MORE_TAB_INDEX] tabBarItem];
//insert contact controller and more tab controller
NSMutableArray* newArray = [NSMutableArray arrayWithArray:self.myTabBarController.viewControllers];
[newArray replaceObjectAtIndex:CONTACTS_TAB_INDEX withObject:myPeoplePickerController];
[newArray replaceObjectAtIndex:MORE_TAB_INDEX withObject:aNavigationController];
[myTabBarController setSelectedIndex:DIALER_TAB_INDEX];
[myTabBarController setViewControllers:newArray animated:NO];
[window addSubview:myTabBarController.view];
[window makeKeyAndVisible];
//if (window.keyWindow == NO) [window makeKeyAndVisible];
[self startlibLinphone];
[myCallHistoryTableViewController setLinphoneCore: myLinphoneCore];
[myFavoriteTableViewController setLinphoneCore: myLinphoneCore];
[myPhoneViewController setLinphoneCore: myLinphoneCore];
[myPhoneViewController setTunnelState:isTunnel];
}
-(void)selectDialerTab {
[myTabBarController setSelectedIndex:DIALER_TAB_INDEX];
}
- (void)applicationWillTerminate:(UIApplication *)application {
linphone_core_destroy(myLinphoneCore);
if (myLinphoneCore) {
linphone_core_clear_proxy_config(myLinphoneCore);
linphone_core_destroy(myLinphoneCore);
}
}
- (void)dealloc {
@ -153,21 +235,19 @@ LinphoneCoreVTable linphonec_vtable = {
*lib linphone init method
*/
-(void)startlibLinphone {
isTunnel=false;
//init audio session
NSError *setError = nil;
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayAndRecord error: &setError]; //must be call before linphone_core_init
//get default config from bundle
NSBundle* myBundle = [NSBundle mainBundle];
NSString* defaultConfigFile = [myBundle pathForResource:@"linphonerc"ofType:nil] ;
#if TARGET_IPHONE_SIMULATOR
NSDictionary *dictionary = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:YES] forKey:NSFileImmutable];
[[NSFileManager defaultManager] setAttributes:dictionary ofItemAtPath:defaultConfigFile error:nil];
#endif
NSString* factoryConfigFile = [myBundle pathForResource:@"linphonerc"ofType:nil] ;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *confiFileName = [[paths objectAtIndex:0] stringByAppendingString:@"/.linphonerc"];
//log management
traceLevel = 9;
if (traceLevel > 0) {
if (isDebug) {
//redirect all traces to the iphone log framework
linphone_core_enable_logs_with_cb(linphone_iphone_log_handler);
}
@ -182,7 +262,38 @@ LinphoneCoreVTable linphonec_vtable = {
* Initialize linphone core
*/
myLinphoneCore = linphone_core_new (&linphonec_vtable, [defaultConfigFile cStringUsingEncoding:[NSString defaultCStringEncoding]],nil,self);
myLinphoneCore = linphone_core_new (&linphone_iphone_vtable,
[confiFileName cStringUsingEncoding:[NSString defaultCStringEncoding]],
[factoryConfigFile cStringUsingEncoding:[NSString defaultCStringEncoding]],
self);
//tunneling config
isTunnelConfigured = [[NSUserDefaults standardUserDefaults] boolForKey:@"tunnelenable_preference"];
NSString* username = [[NSUserDefaults standardUserDefaults] stringForKey:@"username_preference"];
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) {
UIAlertView* alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Alert",nil)
message:NSLocalizedString(@"Wrong axtel number or pin, disabling tunnel",nil)
delegate:nil
cancelButtonTitle:NSLocalizedString(@"Continue",nil)
otherButtonTitles:nil];
[alert show];
isTunnelConfigured=false;
isTunnel=false;
} else {
linphone_iphone_tunneling_init(tunnelIp,443,isDebug);
isTunnel=true;
}
}
if (isTunnel) {
linphone_iphone_enable_tunneling(myLinphoneCore);
}
// Set audio assets
const char* lRing = [[myBundle pathForResource:@"oldphone-mono"ofType:@"wav"] cStringUsingEncoding:[NSString defaultCStringEncoding]];
@ -190,64 +301,11 @@ LinphoneCoreVTable linphonec_vtable = {
const char* lRingBack = [[myBundle pathForResource:@"ringback"ofType:@"wav"] cStringUsingEncoding:[NSString defaultCStringEncoding]];
linphone_core_set_ringback(myLinphoneCore, lRingBack);
//configure sip account
//get data from Settings bundle
NSString* accountNameUri = [[NSUserDefaults standardUserDefaults] stringForKey:@"account_preference"];
const char* identity = [accountNameUri cStringUsingEncoding:[NSString defaultCStringEncoding]];
NSString* accountPassword = [[NSUserDefaults standardUserDefaults] stringForKey:@"password_preference"];
const char* password = [accountPassword cStringUsingEncoding:[NSString defaultCStringEncoding]];
NSString* proxyUri = [[NSUserDefaults standardUserDefaults] stringForKey:@"proxy_preference"];
const char* proxy = [proxyUri cStringUsingEncoding:[NSString defaultCStringEncoding]];
NSString* routeUri = [[NSUserDefaults standardUserDefaults] stringForKey:@"route_preference"];
const char* route = [routeUri cStringUsingEncoding:[NSString defaultCStringEncoding]];
if (([accountNameUri length] + [proxyUri length]) >8 ) {
//possible valid config detected
LinphoneProxyConfig* proxyCfg;
//clear auth info list
linphone_core_clear_all_auth_info(myLinphoneCore);
//get default proxy
linphone_core_get_default_proxy(myLinphoneCore,&proxyCfg);
boolean_t addProxy=false;
if (proxyCfg == NULL) {
//create new proxy
proxyCfg = linphone_proxy_config_new();
addProxy = true;
} else {
linphone_proxy_config_edit(proxyCfg);
}
// add username password
osip_from_t *from;
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);
linphone_core_add_auth_info(myLinphoneCore,info);
}
osip_from_free(from);
// configure proxy entries
linphone_proxy_config_set_identity(proxyCfg,identity);
linphone_proxy_config_set_server_addr(proxyCfg,proxy);
if ([routeUri length] > 4) {
linphone_proxy_config_set_route(proxyCfg,route);
}
linphone_proxy_config_enable_register(proxyCfg,TRUE);
if (addProxy) {
linphone_core_add_proxy_config(myLinphoneCore,proxyCfg);
//set to default proxy
linphone_core_set_default_proxy(myLinphoneCore,proxyCfg);
} else {
linphone_proxy_config_done(proxyCfg);
}
//init proxy config if not first login
bool isFirstLoginDone = [[NSUserDefaults standardUserDefaults] boolForKey:@"firstlogindone_preference"];
if (isFirstLoginDone) {
[self initProxySettings];
}
//Configure Codecs
PayloadType *pt;
@ -305,6 +363,78 @@ LinphoneCoreVTable linphonec_vtable = {
repeats:YES];
}
-(bool)initProxySettings {
//configure sip account
//get data from Settings bundle
NSString* accountNameUri = [[NSUserDefaults standardUserDefaults] stringForKey:@"account_preference"];
NSString* username = [[NSUserDefaults standardUserDefaults] stringForKey:@"username_preference"];
NSString* domain = [[NSUserDefaults standardUserDefaults] stringForKey:@"domain_preference"];
if (!accountNameUri) {
accountNameUri = [NSString stringWithFormat:@"sip:%@@%@",username,domain];
}
const char* identity = [accountNameUri cStringUsingEncoding:[NSString defaultCStringEncoding]];
NSString* accountPassword = [[NSUserDefaults standardUserDefaults] stringForKey:@"password_preference"];
const char* password = [accountPassword cStringUsingEncoding:[NSString defaultCStringEncoding]];
NSString* proxyAddress = [[NSUserDefaults standardUserDefaults] stringForKey:@"proxy_preference"];
if ((!proxyAddress | [proxyAddress length] <1 ) && domain) {
proxyAddress = [NSString stringWithFormat:@"sip:%@",domain] ;
} else {
proxyAddress = [NSString stringWithFormat:@"sip:%@",proxyAddress] ;
}
const char* proxy = [proxyAddress cStringUsingEncoding:[NSString defaultCStringEncoding]];
NSString* routeUri = [[NSUserDefaults standardUserDefaults] stringForKey:@"route_preference"];
const char* route = [routeUri cStringUsingEncoding:[NSString defaultCStringEncoding]];
NSString* prefix = [[NSUserDefaults standardUserDefaults] stringForKey:@"prefix_preference"];
if (([accountNameUri length] + [proxyAddress length]) >8 ) {
//possible valid config detected
LinphoneProxyConfig* proxyCfg;
//clear auth info list
linphone_core_clear_all_auth_info(myLinphoneCore);
//clear existing proxy config
linphone_core_clear_proxy_config(myLinphoneCore);
proxyCfg = linphone_proxy_config_new();
// add username password
osip_from_t *from;
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);
linphone_core_add_auth_info(myLinphoneCore,info);
}
osip_from_free(from);
// configure proxy entries
linphone_proxy_config_set_identity(proxyCfg,identity);
linphone_proxy_config_set_server_addr(proxyCfg,proxy);
if ([routeUri length] > 4) {
linphone_proxy_config_set_route(proxyCfg,route);
}
LinphoneAddress* addr=linphone_address_new(linphone_proxy_config_get_addr(proxyCfg));
proxyReachability=SCNetworkReachabilityCreateWithName(nil, linphone_address_get_domain(addr));
proxyReachabilityContext.info=myLinphoneCore;
bool result=SCNetworkReachabilitySetCallback(proxyReachability, networkReachabilityCallBack,&proxyReachabilityContext);
SCNetworkReachabilityFlags reachabilityFlags;
result=SCNetworkReachabilityGetFlags (proxyReachability,&reachabilityFlags);
SCNetworkReachabilityScheduleWithRunLoop(proxyReachability, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode);
if ([prefix length]>0) {
linphone_proxy_config_set_dial_prefix(proxyCfg, [prefix cStringUsingEncoding:[NSString defaultCStringEncoding]]);
}
linphone_proxy_config_set_dial_escape_plus(proxyCfg,TRUE);
linphone_core_add_proxy_config(myLinphoneCore,proxyCfg);
//set to default proxy
linphone_core_set_default_proxy(myLinphoneCore,proxyCfg);
networkReachabilityCallBack(proxyReachability,reachabilityFlags,myLinphoneCore);
}
}
-(void) newIncomingCall:(NSString*) from {
//redirect audio to speaker
@ -314,8 +444,9 @@ LinphoneCoreVTable linphonec_vtable = {
, sizeof (audioRouteOverride)
, &audioRouteOverride);
UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:[NSString stringWithFormat:@" %@ is calling you",from]
delegate:self cancelButtonTitle:@"Decline" destructiveButtonTitle:@"Answer" otherButtonTitles:nil];
UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:[NSString stringWithFormat:NSLocalizedString(@"%@ está llamando",nil),from]
delegate:self cancelButtonTitle:NSLocalizedString(@"Rechazar",nil)
destructiveButtonTitle:NSLocalizedString(@"Aceptar",nil) otherButtonTitles:nil];
actionSheet.actionSheetStyle = UIActionSheetStyleDefault;
[actionSheet showFromTabBar:myTabBarController.tabBar];
[actionSheet release];
@ -323,6 +454,12 @@ LinphoneCoreVTable linphonec_vtable = {
}
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
UInt32 audioRouteNone = kAudioSessionOverrideAudioRoute_None;
AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute
, sizeof (audioRouteNone)
, &audioRouteNone);
if (buttonIndex == 0 ) {
linphone_core_accept_call(myLinphoneCore,NULL);
} else {
@ -331,7 +468,13 @@ LinphoneCoreVTable linphonec_vtable = {
}
//scheduling loop
-(void) iterate {
linphone_core_iterate(myLinphoneCore);
if (isTunnel==true) {
if (linphone_iphone_tunneling_isready() ) {
linphone_core_iterate(myLinphoneCore);
}
}else {
linphone_core_iterate(myLinphoneCore);
}
}
@ -346,6 +489,94 @@ LinphoneCoreVTable linphonec_vtable = {
return nil;
}
bool networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReachabilityFlags flags, void * info) {
LinphoneProxyConfig* proxyCfg;
linphone_core_get_default_proxy((LinphoneCore*)info,&proxyCfg);
linphone_proxy_config_edit(proxyCfg);
bool result = false;
#ifdef LINPHONE_WIFI_ONLY
if ((flags & kSCNetworkReachabilityFlagsIsWWAN) == 0) {
linphone_proxy_config_enable_register(proxyCfg,TRUE);
result=true;
} else {
linphone_proxy_config_enable_register(proxyCfg,FALSE);
result = false;
}
#else
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;
}
#endif
linphone_proxy_config_done(proxyCfg);
return result;
}
-(bool) toggleTunnel {
if (isTunnelConfigured) {
if (isTunnel) {
[self disableTunnel];
} else {
[self enableTunnel];
}
isTunnel=!isTunnel;
} else {
UIAlertView* alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Alert",nil)
message:NSLocalizedString(@"Auroc cannot be activated, go to the settings to configure",nil)
delegate:nil
cancelButtonTitle:NSLocalizedString(@"Continue",nil)
otherButtonTitles:nil];
[alert show];
}
return isTunnel;
}
-(void) enableTunnel {
linphone_iphone_enable_tunneling(myLinphoneCore);
[self doRegister];
}
-(void) disableTunnel {
linphone_iphone_disable_tunneling(myLinphoneCore);
[self doRegister];
}
-(void) doRegister {
SCNetworkReachabilityFlags reachabilityFlags;
networkReachabilityCallBack(proxyReachability,reachabilityFlags,myLinphoneCore);
}
-(LinphoneCore*) getLinphoneCore {
return myLinphoneCore;
}
-(bool) isTunnel {
return isTunnel;
}
-(void) resetConfig {
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"username_preference"];
[[NSUserDefaults standardUserDefaults]removeObjectForKey:@"password_preference"];
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"domain_preference"];
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"proxy_preference"];
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"axtelpin_preference"];
[[NSUserDefaults standardUserDefaults] setBool:false forKey:@"tunnelenable_preference"];
[[NSUserDefaults standardUserDefaults] setBool:false forKey:@"gsm_22k_preference"];
[[NSUserDefaults standardUserDefaults] setBool:false forKey:@"gsm_11k_preference"];
[[NSUserDefaults standardUserDefaults] setBool:true forKey:@"gsm_8k_preference"];
[[NSUserDefaults standardUserDefaults] setBool:false forKey:@"pcmu_preference"];
[[NSUserDefaults standardUserDefaults] setBool:false forKey:@"pcma_preference"];
[[NSUserDefaults standardUserDefaults] setBool:false forKey:@"debugenable_preference"];
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"prefix_preference"];
[[NSUserDefaults standardUserDefaults] setBool:false forKey:@"firstlogindone_preference"];
}
@end

133
Classes/tunnel.cc Normal file
View file

@ -0,0 +1,133 @@
/*
* C Implementation: tunnel
*
* Description:
*
*
* Author: Simon Morlat <simon.morlat@linphone.org>, (C) 2009
*
* Copyright: See COPYING file that comes with this distribution
*
*/
#include "axtunnel/client.hh"
#include <ortp/rtpsession.h>
#include "linphonecore.h"
/*
remember to build eXosip with:
make DEFS="-DHAVE_CONFIG_H -Drecvfrom=eXosip_recvfrom -Dsendto=eXosip_sendto -Dselect=eXosip_select"
*/
using namespace axtel;
static TunnelSocket *sip_socket;
static TunnelSocket *rtp_socket=0;
static TunnelClient* linphone_iphone_tun=0;
static bool linphone_iphone_tun_enable=false;
extern "C" void linphone_iphone_log_handler(int lev, const char *fmt, va_list args);
extern "C" int eXosip_sendto(int fd,const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen){
if(linphone_iphone_tun == 0 || !linphone_iphone_tun_enable) {
return sendto(fd, buf, len, flags, to, tolen);
} else {
if (sip_socket==NULL) sip_socket=linphone_iphone_tun->createSocket(5060);
return sip_socket->sendto(buf,len,to,tolen);
}
}
extern "C" int eXosip_recvfrom(int fd, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlen){
if(linphone_iphone_tun == 0 || !linphone_iphone_tun_enable ) {
return recvfrom(fd,buf,len,flags,from,fromlen);
} else {
if (sip_socket==NULL) sip_socket=linphone_iphone_tun->createSocket(5060);
return sip_socket->recvfrom(buf,len,from,*fromlen);
}
}
extern "C" int eXosip_select(int nfds, fd_set *s1, fd_set *s2, fd_set *s3, struct timeval *tv){
if(linphone_iphone_tun == 0 || !linphone_iphone_tun_enable) {
return select(nfds,s1,s2,s3,tv);
} else {
struct timeval begin,cur;
if (sip_socket==NULL) sip_socket=linphone_iphone_tun->createSocket(5060);
if (tv!=0 && tv->tv_sec){
unsigned int i;
fd_set tmp;
for(i=0;i<sizeof(*s1)*8;++i){
/*hack for the wakeup fd of eXosip: we don't know its number but the important
is that it does not block*/
if (FD_ISSET(i,s1)){
fcntl(i,F_SETFL,O_NONBLOCK);
}
}
/*this is the select from udp.c, the one that is interesting to us*/
gettimeofday(&begin,NULL);
do{
struct timeval abit;
abit.tv_sec=0;
abit.tv_usec=20000;
if (sip_socket->hasData()) return 1;
gettimeofday(&cur,NULL);
if (cur.tv_sec-begin.tv_sec>tv->tv_sec) return 0;
memcpy(&tmp,s1,sizeof(tmp));
if (select(nfds,&tmp,s2,s3,&abit)==1) return 2;
}while(1);
}else{
return select(nfds,s1,s2,s3,tv);
}
}
}
static int audio_sendto(struct _RtpTransport *t, mblk_t *msg , int flags, const struct sockaddr *to, socklen_t tolen){
int size;
msgpullup(msg,-1);
size=msgdsize(msg);
rtp_socket->sendto(msg->b_rptr,size,to,tolen);
return size;
}
static int audio_recvfrom(struct _RtpTransport *t, mblk_t *msg, int flags, struct sockaddr *from, socklen_t *fromlen){
int err=rtp_socket->recvfrom(msg->b_wptr,msg->b_datap->db_lim-msg->b_datap->db_base,from,*fromlen);
if (err>0) return err;
return 0;
}
static RtpTransport audio_transport={
NULL,
NULL,
audio_sendto,
audio_recvfrom
};
extern "C" void linphone_iphone_tunneling_init(const char* ip,unsigned int port,bool isDebug){
if (isDebug) {
SetLogHandler(&linphone_iphone_log_handler);
SetLogLevel(AXTUNNEL_ERROR|AXTUNNEL_WARN);
} else {
SetLogLevel(0);
}
linphone_iphone_tun = new TunnelClient(ip,port);
}
extern "C" void linphone_iphone_enable_tunneling(LinphoneCore* lc){
if (rtp_socket==0) rtp_socket=linphone_iphone_tun->createSocket(7078);
linphone_core_set_audio_transports(lc,&audio_transport,NULL);
linphone_iphone_tun_enable = true;
}
extern "C" void linphone_iphone_disable_tunneling(LinphoneCore* lc){
linphone_iphone_tun_enable = false;
linphone_core_set_audio_transports(lc,NULL,NULL);
}
extern "C" int linphone_iphone_tunneling_isready(){
return (linphone_iphone_tun!=0) && linphone_iphone_tun->isReady();
}

View file

@ -48,24 +48,27 @@
<object class="IBUITabBarController" id="952473143">
<object class="IBUISimulatedTabBarMetrics" key="IBUISimulatedBottomBarMetrics"/>
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
<object class="IBUIViewController" key="IBUISelectedViewController" id="258574391">
<object class="IBUITabBarItem" key="IBUITabBarItem" id="64474689">
<string key="IBUITitle">Dialer</string>
<object class="IBUIViewController" key="IBUISelectedViewController" id="555899988">
<object class="IBUITabBarItem" key="IBUITabBarItem" id="534357631">
<string key="IBUITitle">Mas</string>
<object class="NSCustomResource" key="IBUIImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">linphone2.png</string>
<string key="NSResourceName">boton_mas_1.png</string>
</object>
<reference key="IBUITabBar"/>
</object>
<reference key="IBUIParentViewController" ref="952473143"/>
<string key="IBUINibName">PhoneViewController</string>
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
</object>
<object class="NSMutableArray" key="IBUIViewControllers">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBUIViewController" id="947197904">
<object class="IBUITabBarItem" key="IBUITabBarItem" id="654208500">
<string key="IBUITitle">Favorites</string>
<string key="IBUITitle">Favoritos</string>
<object class="NSCustomResource" key="IBUIImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">boton_estrella_1.png</string>
</object>
<reference key="IBUITabBar"/>
</object>
<reference key="IBUIParentViewController" ref="952473143"/>
@ -75,29 +78,42 @@
<object class="IBUIViewController" id="156830991">
<string key="IBUITitle">History</string>
<object class="IBUITabBarItem" key="IBUITabBarItem" id="1041279701">
<string key="IBUITitle">history</string>
<string key="IBUITitle">Recientes</string>
<object class="NSCustomResource" key="IBUIImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">boton_recientes_1.png</string>
</object>
<reference key="IBUITabBar"/>
</object>
<reference key="IBUIParentViewController" ref="952473143"/>
<string key="IBUINibName">CallHistoryTableViewController</string>
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
</object>
<reference ref="258574391"/>
<object class="IBUIViewController" id="383050823">
<object class="IBUITabBarItem" key="IBUITabBarItem" id="672878446">
<object class="IBUIViewController" id="258574391">
<object class="IBUITabBarItem" key="IBUITabBarItem" id="64474689">
<string key="IBUITitle">Teclado</string>
<object class="NSCustomResource" key="IBUIImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">boton_teclado_1.png</string>
</object>
<reference key="IBUITabBar"/>
<int key="IBUISystemItemIdentifier">5</int>
</object>
<reference key="IBUIParentViewController" ref="952473143"/>
</object>
<object class="IBUIViewController" id="555899988">
<object class="IBUITabBarItem" key="IBUITabBarItem" id="534357631">
<reference key="IBUITabBar"/>
<int key="IBUISystemItemIdentifier">0</int>
</object>
<reference key="IBUIParentViewController" ref="952473143"/>
<string key="IBUINibName">PhoneViewController</string>
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
</object>
<object class="IBUIViewController" id="383050823">
<object class="IBUITabBarItem" key="IBUITabBarItem" id="672878446">
<string key="IBUITitle">Contactos</string>
<object class="NSCustomResource" key="IBUIImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">boton_contactos_1.png</string>
</object>
<reference key="IBUITabBar"/>
</object>
<reference key="IBUIParentViewController" ref="952473143"/>
</object>
<reference ref="555899988"/>
</object>
<object class="IBUITabBar" key="IBUITabBar" id="995238651">
<nil key="NSNextResponder"/>
@ -321,7 +337,7 @@
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>FavoriteTableViewController</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>{{11, 205}, {320, 480}}</string>
<string>{{11, 449}, {320, 480}}</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
</object>
@ -354,6 +370,14 @@
<object class="IBPartialClassDescription">
<string key="className">CallHistoryTableViewController</string>
<string key="superclassName">GenericTabViewController</string>
<object class="NSMutableDictionary" key="actions">
<string key="NS.key.0">doAction:</string>
<string key="NS.object.0">id</string>
</object>
<object class="NSMutableDictionary" key="outlets">
<string key="NS.key.0">clear</string>
<string key="NS.object.0">UIButton</string>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">Classes/CallHistoryTableViewController.h</string>
@ -376,8 +400,17 @@
</object>
</object>
<object class="NSMutableDictionary" key="outlets">
<string key="NS.key.0">add</string>
<string key="NS.object.0">UIButton</string>
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSMutableArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>add</string>
<string>edit</string>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>UIButton</string>
<string>UIButton</string>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
@ -432,18 +465,21 @@
<string>address</string>
<string>back</string>
<string>call</string>
<string>cancel</string>
<string>eight</string>
<string>endPhoneNumEditing</string>
<string>five</string>
<string>four</string>
<string>gsmCall</string>
<string>hash</string>
<string>linphoneDelegate</string>
<string>nine</string>
<string>one</string>
<string>pad</string>
<string>seven</string>
<string>six</string>
<string>star</string>
<string>status</string>
<string>three</string>
<string>tun</string>
<string>two</string>
<string>zero</string>
</object>
@ -458,11 +494,14 @@
<string>UIButton</string>
<string>UIButton</string>
<string>UIButton</string>
<string>id</string>
<string>UIButton</string>
<string>UIButton</string>
<string>UIView</string>
<string>UIButton</string>
<string>UIButton</string>
<string>UIButton</string>
<string>UIButton</string>
<string>UILabel</string>
<string>UIButton</string>
<string>UIButton</string>
<string>UIButton</string>

BIN
Resources/Default.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View file

@ -0,0 +1,75 @@
/*
Localizable.strings
linphone
Created by jehan on 25/01/10.
Copyright 2010 __MyCompanyName__. All rights reserved.
*/
/* No comment provided by engineer. */
"%@ está llamando" = "%@ is calling";
/* No comment provided by engineer. */
"Aceptar" = "Accept";
/* No comment provided by engineer. */
"Auroc cannot be activated, go to the settings to configure" = "Error en la activación de AXTEL Key, revisa tu configuración.";
/* No comment provided by engineer. */
"Aviso" = "Alert";
/* No comment provided by engineer. */
"Connection interumpida" = "Conexión interrumpida";
/* No comment provided by engineer. */
"Continue" = "Continue";
/* No comment provided by engineer. */
"Enter your domain" = "Enter your domain";
/* No comment provided by engineer. */
"Enter your password" = "Enter your password";
/* No comment provided by engineer. */
"Enter your username" = "Enter your username";
/* No comment provided by engineer. */
"Error" = "Error";
/* No comment provided by engineer. */
"Esto borrara sus configuraciones actuales, seguro que desea continuar?" = "Configuration reset, are you sure ?";
/* No comment provided by engineer. */
"Favor de conectarse a una red inalambrica" = "try to connect to wifi first";
/* No comment provided by engineer. */
"Llamando..." = "Calling...";
/* No comment provided by engineer. */
"No" = "No";
/* No comment provided by engineer. */
"Ok" = "Ok";
/* No comment provided by engineer. */
"Rechazar" = "reject";
/* No comment provided by engineer. */
"Si" = "Yes";
/* No comment provided by engineer. */
"Wrong axtel number or pin, disabling tunnel" = "Wrong axtel number or pin, disabling tunnel";
/* No comment provided by engineer. */
"Wrong domain or network unreachable" = "Wrong domain or network unreachable";
/* No comment provided by engineer. */
"Wrong user name or password, go to the settings menu" = "Wrong user name or password, go to the settings menu";
/* No comment provided by engineer. */
"Your phone is no longuer connected, check your connection settings" = "Error en el registro, revisa tu configuración";
/* No comment provided by engineer. */
"Alert" = "Alert";

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Some files were not shown because too many files have changed in this diff Show more