Страница 1 из 1

Конференция только при помощи AMI

Добавлено: 11 сен 2015, 15:04
sasha2
Здравствуйте,
Не могу понять почему в AMI нет ряда полезных команд? Или я не там ищу?
Например, я хочу создать конференцию и присоединить к ней участников. Как это сделать ТОЛЬКО при помощи AMI?
Для MeetMe есть только комманды:
MeetmeList: List participants in a conference. (Priv: reporting,all)
MeetmeListRooms: List active conferences. (Priv: reporting,all)
MeetmeMute: Mute a Meetme user. (Priv: call,all)
MeetmeUnmute: Unmute a Meetme user. (Priv: call,all)
А для Confbridge:
ConfbridgeKick: Kick a Confbridge user. (Priv: call,all)
ConfbridgeList: List participants in a conference. (Priv: reporting,all)
ConfbridgeListRooms: List active conferences. (Priv: reporting,all)
ConfbridgeLock: Lock a Confbridge conference. (Priv: call,all)
ConfbridgeMute: Mute a Confbridge user. (Priv: call,all)
ConfbridgeSetSingleVideoSrc: Set a conference user as the single video source distributed to all other participants. (Priv: call,all)
ConfbridgeStartRecord: Start recording a Confbridge conference. (Priv: call,all)
ConfbridgeStopRecord: Stop recording a Confbridge conference. (Priv: call,all)
ConfbridgeUnlock: Unlock a Confbridge conference. (Priv: call,all)
ConfbridgeUnmute: Unmute a Confbridge user. (Priv: call,all)
Т.е. я могу получать список, включать/отключать микрофон, могу даже выбросить участника из конференции (если я правильно понял команду ConfbridgeKick), но ни создать, ни кого-нибудь добавить не могу.

Re: Конференция только при помощи AMI

Добавлено: 12 сен 2015, 07:39
virus_net
sasha2 писал(а):почему в AMI нет ряда полезных команд?
В AMI есть команда:
Command: Execute Command (privilege: command,all)
позволяющая выполнить любую команду в CLI
в том числе и:

Код: Выделить всё

CLI> dialplan add extension
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:
Usage: dialplan add extension <exten>,<priority>,<app> into <context> [replace]

app can be either:
app-name
app-name(app-data)
app-name,<app-data>

This command will add the new extension into <context>. If
an extension with the same priority already exists and the
'replace' option is given we will replace the extension.

Example: dialplan add extension 6123,1,Dial,IAX/216.207.245.56/6123 into local
Now, you can dial 6123 and talk to Markster :)

litnimax

Добавлено: 12 сен 2015, 18:09
litnimax
sasha2 писал(а): Например, я хочу создать конференцию и присоединить к ней участников.
Для этого надо существующий канал направить в приложение ConfBridge.
А если канала еще нет, его надо создать.
Смотрите AMI Originate.
https://wiki.asterisk.org/wiki/display/AST/AMI+Examples
Originate может либо в контекст направить вызов, либо напрямую на application.
См там же на вики все про Originate.

Re: Конференция только при помощи AMI

Добавлено: 14 сен 2015, 20:54
sasha2
litnimax писал(а):А если канала еще нет, его надо создать.Смотрите AMI Originate.
Это у меня получилось.

Код: Выделить всё

Action: Originate
Channel:SIP/007
Timeout: 30000
CallerID: Asterisk <7000>
Application: ConfBridge
Async: true
Data: 1234
А вот
litnimax писал(а):существующий канал направить в приложение ConfBridge
не получилось
Для этого попытался использовать в AMI AGI команду:

Код: Выделить всё

Action: AGI
Channel: SIP/005-00000cab
Command: ConfBridge( '1234' )
Но врзвращается ошибка
Failed to add AGI command to channel SIP/005-00000cab queue
а в cli-консоли выводится:
WARNING[17158]: res_agi.c:1203 add_agi_cmd: Channel SIP/005-00000cab is not setup for Async AGI.
Поиски в интернете пока приводят к тому, что нужно в диалплане запускать AGI(agi:async) после создания канала. Но об этом я прочёл только на англоязычных форумах, поэтому слабо понял смысл. Как я понял смысл в том, что строчка в диалплане AGI(agi:async) запускает для канала приложение, которое потом ловит AGI-команды по AMI и выполняет их? Правильно ли я понял? Можно ли обойтись без этой строчки в диалплане? Где можно об этом почитать подробнее? Или, может быть, есть другие способы
litnimax писал(а):существующий канал направить в приложение ConfBridge
?

Re: Конференция только при помощи AMI

Добавлено: 15 сен 2015, 07:57
virus_net
sasha2 писал(а):Для этого попытался использовать в AMI AGI команду
Скажите пожалуйста, а вы прочти что такое AGI перед тем как это пытаться использовать ?
sasha2 писал(а):может быть, есть другие способы
Asterisk Manager API Action Redirect =>

Код: Выделить всё

Exten: myConf
Context: mySuperGiperContext
Priority: 1
или
Asterisk Manager API Action Command =>

Код: Выделить всё

dialplan add extension myConf,1,ConfBridge(1234) myDynamicContext
Asterisk Manager API Action Redirect =>

Код: Выделить всё

Exten: myConf
Context: myDynamicContext
Priority: 1

Re: Конференция только при помощи AMI

Добавлено: 15 сен 2015, 10:13
Wapo
Почитайте про насильственные методы тут: http://wapo-spb.livejournal.com/7753.html