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
+
+
+
+ onOption2Click:
+
+
+ 7
+
+ 155
+
+
+
+ onOption3Click:
+
+
+ 7
+
+ 156
+
@@ -2355,7 +2382,7 @@
- 153
+ 156