AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

exten _. и Hangup()

Newbies/FAQ Forum 5 сообщений -
#1

Други, привет!

Подскажите, как избавиться от следующего поведения:

есть контекст:
Код:

exten => _.,1,NoOp(-- to ${EXTEN} -- -- ${CALLERID(num)} --)
same => n,GoSub(sub_black_list,s,1(${EXTEN}))
same => n,GoSub(sub_port_num,s,1(${EXTEN}))
same => n,Playback(hello-world)
same => n,Hangup()


после выполнения Hangup() код выполняется еще раз с EXTEN = h

Если контент заменить на:
Код:

exten => 444,1,NoOp(-- to ${EXTEN} -- -- ${CALLERID(num)} --)
same => n,GoSub(sub_black_list,s,1(${EXTEN}))
same => n,GoSub(sub_port_num,s,1(${EXTEN}))
same => n,Playback(hello-world)
same => n,Hangup()


и позвонить на 444, в таком случае повтора вызова контента экстеном "h" я в логах не вижу.

Я прочитал что это нужно если хочется при завершении например воспроизвести что-то в линию. Но если я не хочу, зачем он его еще раз выполняет? Как избавится от этого при "exten => _."[/code]
#2

exten => _X.,1
_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
#3

Wapo @ Пт Сен 23, 2016 14:14 писал(а):
exten => _X.,1


Огромное спасибо!

А можете пояснить почему так происходит с _. а с _X. такого нет?
#4

Прочтите в http://asteriskforum.ru/viewtopic.php?t=3690 что есть X в шаблоне диалплана
_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
#5

Wapo @ Пт Сен 23, 2016 15:16 писал(а):
Прочтите в http://asteriskforum.ru/viewtopic.php?t=3690 что есть X в шаблоне диалплана


Спасибо, я прочитал:

Если не быть осторожным, сопоставления с групповым симво-
лом могут привести к тому, что диалплан будет делать совсем
не то, что предполагается (например, сопоставление с встроен-
ными добавочными номерами, такими как i или h). Универ-
сальное соответствие должно использоваться в шаблоне толь-
ко после того, как сопоставлено максимально возможное ко-
личество цифр. Например, следующий шаблон, наверное, не
должен применяться никогда:

_.
На самом деле Asterisk предупредит в случае попытки его при-
менения. Лучше по возможности используйте такой шаблон:

_X.

Но почему так работает? Почему он выполняет контент заного в случае "."? Какая логика?