diff --git a/Classes/LinphoneManager.m b/Classes/LinphoneManager.m index d9f2083e3..642857618 100644 --- a/Classes/LinphoneManager.m +++ b/Classes/LinphoneManager.m @@ -351,7 +351,7 @@ static void linphone_iphone_registration_state(LinphoneCore *lc, LinphoneProxyCo castelCommands = nil; } if(commands != nil && [commands count]) { - OrderedDictionary *tempDict = [OrderedDictionary dictionaryWithCapacity:[commands count]]; + OrderedDictionary *tempDict = [[OrderedDictionary alloc ] initWithCapacity:[commands count]]; castelCommands = tempDict; for(GDataXMLElement *element in commands) { GDataXMLNode *code = [element attributeForName:@"Code"]; diff --git a/Classes/LinphoneUI/UICallBar.m b/Classes/LinphoneUI/UICallBar.m index 2f1239737..f400ca853 100644 --- a/Classes/LinphoneUI/UICallBar.m +++ b/Classes/LinphoneUI/UICallBar.m @@ -423,7 +423,7 @@ } } -- (void)hideOptions{ +- (void)hideOptions { [optionsButton setOff]; if(![optionsView isHidden]) { CGRect frame = [optionsView frame]; @@ -451,6 +451,12 @@ } } +- (void)sendCastelCommand:(NSString *)command { + static const NSString *CASTEL_COMMAND_PREFIX = @"MediaCommand"; + if(command && [command hasPrefix:@"MediaCommand"] && [command length] > [CASTEL_COMMAND_PREFIX length]) { + linphone_core_send_dtmf([LinphoneManager getLc], [command characterAtIndex:[CASTEL_COMMAND_PREFIX length]]); + } +} #pragma mark - Action Functions @@ -493,15 +499,27 @@ } - (IBAction)onOption1Click:(id)sender { - + NSDictionary *dict = [[LinphoneManager instance] castelCommands]; + if(dict) { + NSString *command = [dict objectForKey:[option1Button titleForState:UIControlStateNormal]]; + [self sendCastelCommand:command]; + } } - (IBAction)onOption2Click:(id)sender { - + NSDictionary *dict = [[LinphoneManager instance] castelCommands]; + if(dict) { + NSString *command = [dict objectForKey:[option2Button titleForState:UIControlStateNormal]]; + [self sendCastelCommand:command]; + } } - (IBAction)onOption3Click:(id)sender { - + NSDictionary *dict = [[LinphoneManager instance] castelCommands]; + if(dict) { + NSString *command = [dict objectForKey:[option3Button titleForState:UIControlStateNormal]]; + [self sendCastelCommand:command]; + } } - (IBAction)onConferenceClick:(id)sender { diff --git a/Classes/LinphoneUI/UICallBar.xib b/Classes/LinphoneUI/UICallBar.xib index f782dbed8..0a710d03f 100644 --- a/Classes/LinphoneUI/UICallBar.xib +++ b/Classes/LinphoneUI/UICallBar.xib @@ -1758,6 +1758,33 @@ 136 + + + onOption1Click: + + + 7 + + 154 + + + + onOption2Click: + + + 7 + + 155 + + + + onOption3Click: + + + 7 + + 156 + @@ -2355,7 +2382,7 @@ - 153 + 156