Не получится, для надежности пулы номеров куплены у разных сип-провайдеров.
gramadzjanin (Oct 22 '12)editПривет, Есть несколько номеров от разных сип. провайдеров, например:
[sip.conf]
register => number@domain:secret:auth_name@ip_host
register => number@domain:secret:auth_name@ip_host
[prov]
secret = secret
username = username
host = ip_host
context = default
insecure = port,invite
fromuser = fromuser
fromdomain = domain
type = peer
disallow = all
allow = alaw
nat = yes
canreinvite = no
dtmfmode = inband
qualify = yes
[prov2]
secret = secret
username = username
host = ip_host
context = default
insecure = port,invite
fromuser = fromuser
fromdomain = domain
type = peer
disallow = all
allow = alaw
nat = yes
canreinvite = no
dtmfmode = inband
qualify = yes
Таких номеров больше 30. Можно ли объединить в группу (groupall) все номера, что б в диалплане использовать Dial(SIP/groupall/${EXTEN})? Пните куда смотреть.
Договоритесь с провайдером, чтобы он дал вам один транк, в транке необходимое количество каналов, а номера все DIDами. В той схеме что у вас вы не сможете определить с какого именно транка пришел вызов, для астериска они все одинаковы будут, так как IP/port будет один для всего провайдера.
После объединения сможете делать так: DIAL(SIP/prov1&SIP/prov2...)
Только смысл этого мне не понятен...
Не получится, для надежности пулы номеров куплены у разных сип-провайдеров.
gramadzjanin (Oct 22 '12)edit[custom_group]
exten => _X.,1,Set(trunks=trunk1-trunk2-); сюда транк
exten => _X.,2,Set(trunk_count=2); сюда количество
exten => _X.,n(loop),Set(n=${RAND(1,${trunk_count})})
exten => _X.,n,Set(trunk=${CUT(trunks,-,${n})})
exten => _X.,n,Set(trunks=${CUT(trunks,-,1-$[ ${n} - 1 ]&$[ ${n} + 1 ]-)})
exten => _X.,n,Set(trunk_count=$[ ${trunk_count} - 1 ])
; следущие две строчки нужны только если колчисвто звонков на тарнк =1, иначе удалить
exten => _X.,n,Set(GROUP(trunks_active)=${trunk})
exten => _X.,n,GotoIF($[ ${GROUP_COUNT(${trunk}@trunks_active)} > 1 ]?skip); if already calls on that trunk,skip
exten => _X.,n,Dial(SIP/${trunk}/+${EXTEN},,g)
exten => _X.,n,Noop(status ${DIALSTATUS} time ${ANSWEREDTIME} );show time
exten => _X.,n,GotoIf($[ "${DIALSTATUS}" == "ANSWER" ]?end)
exten => _X.,n,GotoIf($[ "${DIALSTATUS}" == "BUSY" ]?end)
exten => _X.,n,GotoIf($[ ${LEN(${trunks})} <= 1 ]?end)
exten => _X.,n(skip),Goto(loop)
exten => _X.,n(end),Hangup
звониь вот так
Exten => _X.,1,Dial(Local/${EXTEN}@custom_group/n,,)
Задан: Oct 22 '12
Просмотрен: 1,238 раз
Обновлен: Oct 22 '12
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.