Добрый день! В продолжении http://asterisk-support.ru/question/67163/dve-zapisi-v-cdr-dlia-odnogo-zvonka/
Подскажите, пожалуйста, в каких случаях лучше использовать Dial (Local/...), а в каких Goto()
Если в коде:
[incoming_dahdi]
exten => 0402,1,Goto(ivr-main,s,1)
[ivr-main]
exten => s,1,Answer()
same => n,Set(TIMEOUT(digit)=2)
same => n,Background(/var/lib/asterisk/sounds/ivr/first)
same => n(err),WaitExten(5)
exten => _XXXX,1,Dial(Local/${EXTEN}@common)
same => n,Hangup()
[common]
include => internal
include => trunk-M13-AST-01
...
[internal]
exten => _2[01]XX,1,GoSub(sub-black-list,${EXTEN},1)
...
...
same => n,Dial(SIP/${EXTEN},${RING_TIME},${DIAL_OPTIONS})
...
...
поменять
exten => _XXXX,1,Dial(Local/${EXTEN}@common)
на
exten => _XXXX,1,Goto(common,${EXTEN},1)
какие могут быть последствия? Сейчас поменял, с виду всё работает так же как и раньше, и при этом в CDR отображается уже одна запись о звонке, а не две (как при Local)
В случаях, когда вам надо опции команды dial или вторая cdr - изпользуйте Dial
Во всех остальных случаях - Goto
При использовании Dial создается второй канал, что в большинстве случаев излишне сложно. К тому же надо предпринимать дополнительные действия по передачи переменных в новый канал. Да и много cdr тоже не нужно обычно.
Local сильно ударяет по быстродействию, в высоконагруженных системах не особо рекомендуем.
Goto вполне допустим, перебрасываем на нужные контексты по целевому назначению и далее маршрутизируем уже стандартно..
Я тебе больше скажу, они еще и в обзвоне(максимально сложный для * вариант), в исходящем. Сказка или не сказка - но работает на современных компах(E3-1270 v6 @ 3.80GHz, VULTR dedicated). 1400 с диапланом типа А(сложным) и 2000 с диалпланом типа B. load average 15-16, cpu use 400-425%, asterisk 13.24.0. На той же машине еще mysql, cassandra, и скрипты организуеющие обзвон(30%cpu гдето). Показывают CPS около 60 и прекрасное качество звука.
meral (Jan 15 '19)edithttps://snag.gy/OxIptR.jpghttps://snag.gy/r3AGqM.jpg в данный момент 85% от максимальной нагрузки. реальное количество каналов ниже, показывает также каналы в состоянии записи cdr.
meral (Jan 22 '19)editЗадан: Jan 10 '19
Просмотрен: 5,605 раз
Обновлен: Jan 14 '19
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.