dtmf: add toggle in account settings

Choose between RTP or SIP dtmf. THis is the first step before presenting
a software dialpad during calls, and be able to respond to automated
systems

Change-Id: Ia09cf6a2c4bc2abcf2ca766ab7c760f7cdedd8da
Tuleap: #154
diff --git a/src/AccGeneralVC.mm b/src/AccGeneralVC.mm
index d9d1472..d8df65a 100644
--- a/src/AccGeneralVC.mm
+++ b/src/AccGeneralVC.mm
@@ -31,6 +31,8 @@
     __unsafe_unretained IBOutlet NSSecureTextField *passwordTextField;
     NSTextField *clearTextField;
 
+    __unsafe_unretained IBOutlet NSButton *dtmfRTPButton;
+    __unsafe_unretained IBOutlet NSButton *dtmfSIPButton;
     __unsafe_unretained IBOutlet NSButton *upnpButton;
     __unsafe_unretained IBOutlet NSButton *autoAnswerButton;
     __unsafe_unretained IBOutlet NSButton *userAgentButton;
@@ -47,6 +49,8 @@
     USERNAME    = 2,
     PASSWORD    = 3,
     USERAGENT   = 4,
+    DTMF_SIP    = 5,
+    DTMF_RTP    = 6,
 };
 
 - (void)awakeFromNib
@@ -57,6 +61,8 @@
     [usernameTextField setTag:TagViews::USERNAME];
     [passwordTextField setTag:TagViews::PASSWORD];
     [userAgentTextField setTag:TagViews::USERAGENT];
+    [dtmfRTPButton setTag:DTMF_RTP];
+    [dtmfSIPButton setTag:DTMF_SIP];
 
     QObject::connect(AccountModel::instance().selectionModel(),
                      &QItemSelectionModel::currentChanged,
@@ -100,6 +106,8 @@
     [userAgentTextField setEnabled:AccountModel::instance().selectedAccount()->hasCustomUserAgent()];
     [autoAnswerButton setState:AccountModel::instance().selectedAccount()->isAutoAnswer()];
     [userAgentTextField setStringValue:account->userAgent().toNSString()];
+
+    (account->DTMFType() == DtmfType::OverRtp) ? [dtmfRTPButton setState:NSOnState] : [dtmfSIPButton setState:NSOnState];
 }
 
 - (IBAction)tryRegistration:(id)sender {
@@ -164,4 +172,17 @@
             break;
     }
 }
+
+- (IBAction)toggleDTMFType:(id)sender
+{
+    switch ([sender tag]) {
+        case TagViews::DTMF_RTP:
+            AccountModel::instance().selectedAccount()->setDTMFType(DtmfType::OverRtp);
+            break;
+        case TagViews::DTMF_SIP:
+            AccountModel::instance().selectedAccount()->setDTMFType(DtmfType::OverSip);
+            break;
+    }
+}
+
 @end