VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

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

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модераторы: april22, Zavr2008

Ответить
sasha2
Сообщения: 11
Зарегистрирован: 21 июл 2015, 16:52

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

Сообщение 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), но ни создать, ни кого-нибудь добавить не могу.
virus_net
Сообщения: 2337
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

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

Сообщение 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 :)
мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
Аватара пользователя
litnimax
Сообщения: 111
Зарегистрирован: 01 июн 2011, 22:13

litnimax

Сообщение litnimax »

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

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

Сообщение 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
?
virus_net
Сообщения: 2337
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

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

Сообщение 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
мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
Аватара пользователя
Wapo
Сообщения: 795
Зарегистрирован: 02 мар 2011, 17:53

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

Сообщение Wapo »

Почитайте про насильственные методы тут: http://wapo-spb.livejournal.com/7753.html
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH