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

Перевод текущего разговора в новую конференцию с добавлением участников.

Newbies/FAQ Forum 7 сообщений 11.11.2010 18:00 - 19.11.2010 12:00
#1 11.11.2010 18:00

Перевод текущего разговора в новую конференцию с добавлением участников.


Задача: два абонента общаются др. с другом и тут один из них понимает что необходимо создать конференцию и пригласить в нее собеседника и еще парочку типов. Вопрос как?
я посидел подумал ничего умнее, как с channelRedirect и localchannel на ум не идет. Может кто реализовывал данную задачу? Подскажите куда копать?
#2 12.11.2010 16:43

Если нужна конференция на 3-4 участников, то такое могут почти все ip-телефоны и некоторые шлюзы(например, Linksys). Имеется ввиду, собирать конференция не средствами астериска, а средствами самого телефонного аппарата.
#3 12.11.2010 16:49

Как насчет cisco 7911


там отдельной кнопки нет "создание конференции" (cisco 7911/7906)
ну а если подумать как сделать при помощи Asterisk?
#4 12.11.2010 18:07

Quote:
Задача: два абонента общаются др. с другом и тут один из них понимает что необходимо создать конференцию и пригласить в нее собеседника и еще парочку типов. Вопрос как?
Я сходу таких людей в одну конференцию сажу. Том, кто будет приглашать даю в руки дополнительный руль, который через AMI originate-ид звонок дополнительным абонентам который сразу ложится в нужную конференцию.
_________________
Slackware 13.1 - Asterisk 1.8
#5 13.11.2010 00:16

мндя


я наверное тупой вхлам.
чет я Вас не понял ни разу.
#6 13.11.2010 10:23

я на триксбоксе 2.6 делал так, хотя думаю можно и лучше сделать:
meetme_custom.conf
Code:
conf => 1
conf => 2

features_aplicationmap_custom.conf
Code:
meetme => #,self,Macro,me


globals_custom.conf
Code:
MEETME_EXIT_CONTEXT=ctMeetmeJoining
DYNAMIC_FEATURES=meetme


extensions_custom.conf
Code:

[ctMeetme]

exten => 351,1,Answer()
exten => 351,n,GotoIf($["${DB(MyMeetme/1/CID)}" = "${CALLERID(num)}"]?meetme_1)
exten => 351,n,GotoIf($["${DB(MyMeetme/2/CID)}" = "${CALLERID(num)}"]?meetme_2)
exten => 351,n,GotoIf($["${DB(MyMeetme/1)}" = "busy"]?meetme_2)
exten => 351,n(meetme_1),Set(DB(MyMeetme/1/CID)=${CALLERID(num)})
exten => 351,n,Set(DB(MyMeetme/1)=busy)
exten => 351,n,Set(__CONFNO=1)
exten => 351,n(cn_marked_1),Meetme(1,AoX,)
exten => 351,n(meetme_2),GotoIf($["${DB(MyMeetme/2)}" = "busy"]?meetme_busy)
exten => 351,n(meetme_2),Set(DB(MyMeetme/2/CID)=${CALLERID(num)})
exten => 351,n,Set(DB(MyMeetme/2)=busy)
exten => 351,n,Set(__CONFNO=2)
exten => 351,n(cn_marked_2),Meetme(2,AoX,)
exten => 351,n(meetme_busy),Playback(af_MeetmeBusy)
exten => 351,n,Hangup()

exten => h,1,GotoIF($["${DB(MyMeetme/1/CID)}" = "${CALLERID(num)}"]?:h_2)
exten => h,n,Set(DB(MyMeetme/1)=free)
exten => h,n,Set(DB(MyMeetme/1/CID)=0)
exten => h,n(h_2),GotoIF($["${DB(MyMeetme/2/CID)}" = "${CALLERID(num)}"]?:h_3)
exten => h,n,Set(DB(MyMeetme/2)=free)
exten => h,n,Set(DB(MyMeetme/2/CID)=0)
exten => h,n(h_3),MeetmeAdmin(${CONFNO},K,)
exten => h,n,Hangup()

[ctMeetmeJoining]
exten => 1,1,Answer()
exten => 1,n,Playback(custom/af_MeetmeInNum)
;exten => 1,n,Playback(beep)
exten => 1,n,WaitExten(20)
exten => 1,n,Hangup()

;exten => _X.,1,Dial(SIP/${EXTEN})
;exten => _X.,n,Goto(ctMeetme,351,cn_marked_${CONFNO})
;exten => _X.,n(meetme),Goto(ctMeetme,351,cn_marked_${CONFNO})
;exten => _X.,n,Goto(ctMeetmeUsers,${CONFNO},1)
include => from-internal

[ctMeetmeUsers]
exten => 1,1,Meetme(1,oMw,)
exten => 2,1,Meetme(2,oMw,)
exten => h,1,Hangup()

[macro-me]
exten => s,1,Noop(===========bridgetpeer-${BRIDGEPEER}===blindtransfer-${BLINDTRANSFER})
exten => s,n,GotoIF($["${DB(MyMeetme/1/CID)}" = "${CALLERID(num)}"]?room_1:b_check_room_1)
exten => s,n(b_check_room_1),GotoIf($["${DB(MyMeetme/1)}" = "busy"]?meetme_2)
exten => s,n,Set(DB(MyMeetme/1/CID)=${CALLERID(num)})
exten => s,n,Set(DB(MyMeetme/1)=busy)
exten => s,n(room_1),Set(__CONFNO=1)
exten => s,n,ChannelRedirect(${BRIDGEPEER}|ctMeetmeUsers|${CONFNO}|1)
exten => s,n,ChannelRedirect(${CHANNEL}|ctMeetme|351|cn_marked_1)
exten => s,n(meetme_2),GotoIF($["${DB(MyMeetme/2/CID)}" = "${CALLERID(num)}"]?room_2:meetme_busy))
exten => s,n,GotoIf($["${DB(MyMeetme/2)}" = "busy"]?meetme_busy)
exten => s,n,Set(DB(MyMeetme/2/CID)=${CALLERID(num)})
exten => s,n,Set(DB(MyMeetme/2)=busy)
exten => s,n(room_2),Set(__CONFNO=2)
exten => s,n,ChannelRedirect(${BRIDGEPEER}|ctMeetmeUsers|${CONFNO}|1)
exten => s,n,ChannelRedirect(${CHANNEL}|ctMeetme|351|cn_marked_2)
exten => s,n(meetme_busy),ChannelRedirect(${BRIDGEPEER}|playback)
exten => s,n(playback),Playback(af_MeetmeBusy)
exten => s,n,Hangup()



Как пользоваться:
Для того, чтобы собрать конференцию во время разговора нужно нажать «#». Вы и собеседник будете переключены в конференцию. Для ввода в конференцию нового участника нажмите «1», затем введите номер абонента, нажмите «#» во время разговора. Если ваш собеседник недоступен, или не может присоединиться к конференции – положите трубку, затем наберите номер «351».
Также вы можете собрать конференцию – набрав номер «351», затем нажмите «1» и введите номер подключаемого абонента.
Для того чтобы прекратить конференцию, достаточно положить трубку, находясь в конференции, в этом случае все присоединенные участники будут отключены.
NB! Ели вы зашли в конференцию, набрали «1», номер абонента, но во время разговора передумали собирать конференцию, обязательно после завершения разговора освободите комнату. (Достаточно набрать «351» и положить трубку после соединения.) В противном случае, комната конференций останется зарезервирована за вашим аппаратом, и никто другой не сможет ей воспользоваться.
#7 19.11.2010 12:00

есть пару вопросов


1. у меня стоит Астериск 1.4 в апликации MeetMe нет опции "о"
2. Анализирую Ваш скрипт я не нашел упоминаний о том как в конференцию пригласить еще участников.

др. словами, редиректом мы загоням двух пользователей в конференцию, какой командой пригласить третьего?

я вижу решение этой задачи установкой некой фичи, т.е. один нажимает на ## и вводит номер абонента, запускается скрпит, который создает колл файл и он в свою очередь дозванивается до абонента и перебрасывает его в нашу конференцию.