Progress()
, затем Ringing()
или PlayTones(ring)
. Я видел нескольких провайдеров, где нам нужно было указать звонок с помощью ранних средств массовой информации , например:
exten => 500,1,Progress()
exten => 500,n,Wait(1)
exten => 500,n,Dial(PJSIP/121)
exten => 500,n,Hangup()
и или
exten => 500,1,Progress()
exten => 500,n,PlayTones(ring) <-- OR USE MAYBE Ringing() HERE INSTEAD?
exten => 500,n,Dial(PJSIP/121)
exten => 500,n,Hangup()
и и т. Д.
[1125 ] https://wiki.asterisk.org/wiki/display/AST/Asterisk+16+Dialplan+Applications :
iPhone будет набирать номер, используя любой из форматов, перечисленных ниже. Но это ничего не даст, если вы находитесь в симуляторе. Мне потребовалось 30 минут, чтобы понять это.
[[UIApplication sharedApplication]
openURL:[NSURL URLWithString:@"tel://15415551234"]];
[[UIApplication sharedApplication]
openURL:[NSURL URLWithString:@"tel:15415551234"]];
[[UIApplication sharedApplication]
openURL:[NSURL URLWithString:@"tel:1-541-555-1234"]];
URL должен быть тел: // 3035551212, а не тел: 3035551212 ... Добавьте это //, и оно должно работать.
I just ran into this when trying to add a "Call" button to a UIAlertView
. I had the following code to handle the call:
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex != 0)
{
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel:1-602-555-1212"]];
}
}
It wouldn't open anything, just like you. I even tried a regular http
URL. It turned out I had forgotten to set the delegate
to self
. That's probably your problem also.
Haven't had any problems with it using tel:{phone-number}
and invoking it the same way you are. Only works on the iPhone device, though.
One thing I did have to do was strip out extraneous characters (like all parentheses, spaces, dashes and dots) out of the phone string. Some of the examples above (but not the original post) have dashes. That might be the problem.
Как сказал @bentford, у человека может случиться выкидыш, потому что симулятор показывает предупреждение, когда вы пытаетесь нажать на телефон в приложении контактов, это просто предупреждение, которое генерируется, потому что приложение проверяет, поддерживается ли на устройстве протокол tel:
.
В дополнение к тому, что он пишет, вы можете также добавить поддержку для экранирования любых специальных символов или пробелов, например:
NSString *phoneStr = [NSString stringWithFormat:@"tel:%@",[self.contactDetails objectForKey:@"phone"]];
NSString *escaped = [phoneStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:escaped]];
Надеюсь, это поможет.
Ура.