diff --git a/RingWindowController.mm b/RingWindowController.mm index f7a08c4272bf6bed4963a92f30dacd10ccd28b95..59eb8873c805affcb2625d80817e7e9b321d405e 100644 --- a/RingWindowController.mm +++ b/RingWindowController.mm @@ -201,7 +201,17 @@ static NSString* const kCallButtonIdentifer = @"CallButtonIdentifier"; - (IBAction)placeCall:(id)sender { Call* c = CallModel::instance()->dialingCall(); - c->setDialNumber(QString::fromNSString([callField stringValue])); + + // check for a valid ring hash + NSCharacterSet *hexSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789abcdefABCDEF"]; + BOOL valid = [[[callField stringValue] stringByTrimmingCharactersInSet:hexSet] isEqualToString:@""]; + + if(valid && callField.stringValue.length == 40) { + c->setDialNumber(QString::fromNSString([NSString stringWithFormat:@"ring:%@",[callField stringValue]])); + } else { + c->setDialNumber(QString::fromNSString([callField stringValue])); + } + c << Call::Action::ACCEPT; }