Francyz
@Francyz
Photographer & SysAdmin

Как в Asterisk пробросить конференцию наружу?

Камрады!
Есть номер внутренний на котором висит простенькая конференция созданная в confbridge. Т.е. я набираю к примеру номер 900 и захожу в конфу, другие также могут набрать номер и зайти общаться. Человек звонит на секретаря и секретарь может перевести его в конф.комнату так же без проблем.
Но как сделать так чтобы человек мог сам с внешки на нее зайти?
IVR меню не работает с ней. У меня есть работающее, переводит на любые внутренние номера, кроме номера на котором висит конференция.
Пробовал в диалплане на внешний номер ставить сразу внутренний без IVR, но так же не работает.
Хочется понять, как реализовать конференцию, как у всех: "Ты даешь внешний номер и потом даешь номер комнаты, человек звонит на номер и потом через # набирает комнату и попадает в конференцию."

UPD1: Информация по диалплану и Конфе
ConfBridge
[confer]
type=bridge
max_members=20
video_mode=none
mixing_interval=10
internal_sample_rate=auto
record_conference=no
ДиалПлан
[general]
static=yes
writeprotect=no

[globals]
TRANSFER_CONTEXT=local

[default]

[phones]
include => local
include => outgoing

[local]
exten => 900,1,Answer()
exten => 900,n,ConfBridge(1,confer)
exten => _XXX,1,Dial(SIP/${EXTEN},60,tT)
exten => _XXX,n,Hangup()

[outgoing]
exten => _XXX.,1,Gosub(trunk_check,s,1(${EXTEN}))

;Dial plan "Incoming"
[incoming]
exten => *****35,1,Dial(SIP/150,,t)
exten => *****36,1,Goto(ivr-main-1,s,1)
exten => *****37,1,Dial(SIP/125,,t)
exten => *****53,1,Goto(ivr-main-1,s,1)
exten => *****57,1,Goto(ivr-main-1,s,1)
exten => *****58,1,Dial(SIP/122,,t)
exten => *****59,1,Dial(SIP/145,,t)
exten => *****62,1,Goto(ivr-main-1,s,1)

[trunk_check]
exten => s,1,Dial(SIP/${ARG1}@*****53,45,T)
same => n,Dial(SIP/${ARG1}@*****35,45,T)
same => n,Dial(SIP/${ARG1}@*****36,45,T)
same => n,Dial(SIP/${ARG1}@*****57,45,T)
same => n,Dial(SIP/${ARG1}@*****58,45,T)
same => n,Dial(SIP/${ARG1}@*****59,45,T)
same => n,Dial(SIP/${ARG1}@*****62,45,T)
same => n,Hangup()

[ivr-main-1]
exten => s,1,Answer()
exten => s,2,Background(/etc/asterisk/ivr/ivr-welcome-02)
exten => s,3,WaitExten(5)
exten => _XXX,1,Dial(SIP/${EXTEN},15)
;Check status peer: exists or not
exten => _XXX,n,GotoIf($["${SIPPEER(${EXTEN},status)}" = ""]?num-not-exist,1)
;Check status peer: enable or not
exten => _XXX,n,GotoIf($["${SIPPEER(${EXTEN},status):0:2}" = "UN"]?num-not-connected,1)
;Check channel
exten => _XXX,n,ChanIsAvail(SIP/${EXTEN},s)
;If 2 or 3 - Busy
exten => _XXX,n,GoToIf($[${AVAILSTATUS} = 2]?num-BUSY,1)
exten => _XXX,n,GoToIf($[${AVAILSTATUS} = 3]?num-BUSY,1)
;other statuses
exten => _XXX,n,Goto(num-${DIALSTATUS},1)
;Say - Try again
exten => num-not-exist,1,Wait(2)
exten => num-not-exist,n,Playback(invalid)
;Say - check number
exten => num-not-connected,1,Wait(2)
exten => num-not-connected,n,Playback(ss-noservice)
;Say - Busy
exten => num-BUSY,1,Wait(2)
exten => num-BUSY,n,Playback(vm-isonphone)
;Say - not available
exten => num-NOANSWER,1,Wait(2)
exten => num-NOANSWER,n,Playback(vm-isunavail)
;status CHANUNAVAIL,say - disabled
exten => num-CHANUNAVAIL,1,Wait(2)
exten => num-CHANUNAVAIL,n,Playback(vm-isunavail)
;return Secretariat
exten => t,1,Dial(SIP/101,15)

  • Вопрос задан
  • 217 просмотров
Решения вопроса 1
@Drill
Для вашего диалплана:

[ivr-main-1]
....
exten => s,3,WaitExten(5))
....
exten => #900,1,....
exten => #900,n,Goto(local,${EXTEN:1},1)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы