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

Организация групповой конференции.

Newbies/FAQ Forum 3 сообщений -
#1

Организация групповой конференции.


Здравствуйте, подскажите как реализовать следующий функционал:
Абонент звонит на один групповой номер, происходит инициация группового звонка(звонят несколько трубок, включенных в группу, в моем случае номер 500), затем каждый кто снял трубку, попадает в конференцию, при этом если кто-то из группы первым снял трубку и попал в конференцию, групповой вызов не прекращается, а звонит у остальных абонентов группы.
У меня реализована конференция(номер 900 и 990) и групповой вызов(инициация вызова группы абонентов - кто первый снял трубку, тот и говорит с инициатором звонка,номер 500)

Cодержание файла extensions.conf

...
[default]
exten => 101,1,Dial(SIP/101)
exten => 102,1,Dial(SIP/102)
exten => 103,1,Dial(SIP/103)
exten => 104,1,Dial(SIP/104)
exten => 105,1,Dial(SIP/105)
exten => 106,1,Dial(SIP/106)
...

; Групповой номер, кто первый снял трубку, тот и говорит с инициатором звонка
; Group Call
exten => 500,1,Dial(SIP/101&SIP/102&SIP/103&SIP/104&SIP/105&SIP/106)

; Conference
exten => 990,1,Answer()
exten => 990,n,MeetMe(${EXTEN})
exten => 990,n,Hangup()

exten => 900,1,Answer()
exten => 900,n,MeetMe(${EXTEN})
exten => 900,n,Hangup()
--------------------------------------------------------------------------------------------------------
Cодержание файла sip.conf

[101]
type=friend
host=dynamic
username=101
secret=123456
context=default
disallow=all
allow=g722


[102]
type=friend
host=dynamic
username=102
secret=123456
context=default
disallow=all
allow=g722


[103]
type=friend
host=dynamic
username=103
secret=123456
context=default
disallow=all

[104]
type=friend
host=dynamic
username=104
secret=123456
context=default
disallow=all

allow=g722


[105]
type=friend
host=dynamic
username=105
secret=123456
context=default
disallow=all

[106]
type=friend
host=dynamic
username=106
secret=123456
context=default
disallow=all
;
----------------------------------------------------------------------
Содержание файла meetme.conf
[general]
audiobuffers=32
[rooms]
conf => 990
conf => 900
-----------------------------------------------------------------------
Версия Asterisk 11
#2

Самое просто это звонить через call file, т.е вызывать скрипт, который будет генерировать callfile для каждого из участников конференции, используя Local channel.
Пример call file тут:
http://www.voip-info.org/wiki/view/Asterisk+auto-dial+out
#3

Нашел решение данной проблемы, воспользовавшись статьей: http://asterisk-pbx.ru/wiki/artikle/conf_most - создал в extensions.conf контексты [conference] и [invite], а также прописал в meetme.conf строку "conf => 990,"
Все казалось бы просто, но Астериск выдавал ошибку типа "call rejected because extension not found." при попытке позвонить с любого номера на номер 990, тогда немного подумав, я добавил в контексте [default] директивы include => conference и include => invite, так как у меня все экстеншны были прописаны в [default], это исправило проблему отказа вызовов, но получалось так, что при попытке вызова 990, вызывающий номер сразу попадал в конференцию, без обзвона номеров, описанных в файле "/var/spool/asterisk/list.txt", тогда я выполнил в командной строке следующее: #chmod 777 /var/spool/asterisk/call_list.sh и после этого все заработало как надо. Спасибо большое за нужное направление!