Добрый день! В продолжении 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 вполне допустим, перебрасываем на нужные контексты по целевому назначению и далее маршрутизируем уже стандартно..
У меня есть система, в которой 2000звонков с локал. Без local та же нагрузка - ничего особо не меняется. Тачто не все так очевидно.
meral ( 2019-01-14 23:44:24 +0400 )редактировать2000 звонков одновременных chan_sip? Сказка. Насчет chan_local даже Мэтью недавно высказывался. насчет того что нагрузка не меняется - зависит от того что там в этом контексте напихали. Если у Вас лишь Dial сидит там то проще, у большинства там еще что-то есть.
Zavr2008 ( 2019-01-15 20:58:46 +0400 )редактироватьЯ тебе больше скажу, они еще и в обзвоне(максимально сложный для * вариант), в исходящем. Сказка или не сказка - но работает на современных компах(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 ( 2019-01-15 21:55:12 +0400 )редактироватьchan_pjsip у меня в тех же диалпланах намертво повисает в течении дня. такчто да, chan_sip+res_rtp. в 13й версии они там чтото переписали малость.
meral ( 2019-01-21 23:44:31 +0400 )редактироватьhttps://snag.gy/OxIptR.jpghttps://snag.gy/r3AGqM.jpg в данный момент 85% от максимальной нагрузки. реальное количество каналов ниже, показывает также каналы в состоянии записи cdr.
meral ( 2019-01-22 21:02:41 +0400 )редактироватьЗадан: 2019-01-10 15:45:20 +0400
Просмотрен: 5,595 раз
Обновлен: Jan 14 '19
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.