Konferenciahívás, csillag, snussi s otthon a tárhely

Azok számára, akik a tartályban, a konferenciahívás - képes beszélni egyidejűleg több résztvevő.

A dokumentáció az Asterisk leírt KonfHíd alkalmazás (ami kezeli a konferencia), és olyan módon kell megszervezni egy „statikus csarnokok” - azaz, írunk előre száma, a csarnok és a jelszót, majd a felhasználók csatlakoznak hozzá.

Ennek hátránya, véleményem szerint, az alábbiak szerint: például én konferenciát szervezett a konferenciateremben 1-es számmal, és beszélgetett a szállítónak. Kollégám is úgy döntött, hogy beszéljen a konferenciahívás és konferenciát szervez. Már a kezdet kezdetén azt kell valahogy kideríteni - akár a szoba 1 ingyenes, és akkor fog egy szoba 2. a harmadik félnek poll két ...

Általában azt látni, hogy jobb a másik irányba:

  1. Azt konferenciát szervez hívja meg a csatorna számát, például: * 9 *.
  2. Tárcsáztam a számát, aki szeretne csatlakozni (0).
  3. Személy csatlakozik. Ha ez belső felhasználók, akkor is meghív egy új tag.

/etc/asterisk/meetme.conf létre a fájlt, és a rajta:

[Általános]
; Engedélyezi az realtime
ütemezés = yes
; táblázatot frissítjük a bejáratnál / kijáratnál a résztvevők
logmembercount = yes

Akárcsak az előző esetben, konferenciák adatok tárolására MySQL. Hozzon létre egy táblázatot a számukra:

CREATE TABLE tbl_meetme (
confno char (80) NOT NULL default '0',
A kezdési datetime NOT NULL default '0000-00-00 00:00:00',
Befejezési datetime NOT NULL default '2099/12/31 23:59:59'
pin char (20) alapértelmezett NULL,
dönt char (100) alapértelmezett NULL,
adminpin char (20) alapértelmezett NULL,
adminopts char (100) alapértelmezett NULL,
NOT NULL default '0' tag int (11)
NOT NULL default '0' maxusers int (11)
created_at datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (confno, kezdési)
);

És egy helyet a /etc/asterisk/extconfig.conf

konferenciahíd => odbc, csillaggal, tbl_meetme

Csak vissza a backup fájlt /etc/asterisk/indications.conf az [általános] szakaszban beállított ország = ru.

Ne felejtsd el újraindítani a csillagot.

Kezdeni - hitel létrehozása eljárás a konferencia. A kihívás ez: tárcsázásával * 9 * szükséges beszúrni egy sort a táblázatban, és visszatér a konferenciaterem, majd zadialitsya őt.

Hozzon létre egy hranimku MySQL, amely létrehoz egy új konferencia és visszaadja a számot. Ugyanakkor, azt megtisztítja a konferencia több mint egy napja.

DELIMITER $$
CREATE DEFINER = `root` @`% `PROCEDURE` create_meetme_conference` ()
BEGIN
DELETE FROM tbl_meetme, ahol a tagok = 0 ÉS DATE_ADD (created_at, intervallum 1 nap) SELECT @NewConfNo: = IFNULL (CAST (MAX (confno), mint előjel nélküli), 0) +1
FROM tbl_meetme;
INSERT INTO tbl_meetme (confno, created_at) SELECT @ NewConfNo, NOW ();
SELECT @NewConfNo;
VÉGE

A func_odbc.conf fájl hozzá egy hívást, hogy ezt hranimki

[CREATE_NEW_CONFERENCE]
; létrejön egy új konferencia KonfHíd
DSN = csillaggal
readsql = hívás asterisk.create_meetme_conference

A dialplan add (még - tesztelési célból) létrehozása a konferencia

kiterjedésû => * 9 * 1, NOOP (Start Konferencia)
EXTEN => * 9 *, n, Goto (conference_main, s, 1)
EXTEN => * 9 *, n, Vissza

[Conference_main]
; keretében a konferencia
EXTEN => s, 1, NOOP (conference_main)
; hozott tilalmat a dinamikus chipek
eXten => s, n, Set (__ DYNAMIC_FEATURES =)
; Kapunk a konferenciaterem eljárás alkalmazásával (ha nem)
EXTEN => s, n, Set (__ CONFNO = $ "=" „] $ :? $)>)
; Mi a kontextust, melyek lesznek kiállítva (a mi esetünkben - az extra sorozatot.)
eXten => s, n, Set (MEETME_EXIT_CONTEXT = conference_invite_user)
; vesztes üdvözlő
eXten => s, n, lejátszás (Rittal / meetme_welcome)
; ha ez egy belső felhasználó - elmondta, hogyan kell meghívni
EXTEN => s, n, GotoIf ($ [ "$, dinamikus)>" = "Igen"]?: create_conf)
EXTEN => s, n, lejátszás (Rittal / meetme_add_possible)
; és elindítása konferencia
EXTEN => s, n (create_conf), konferenciahíd ($, X1)

A felhasználó már a konferencia, képesnek kell lennie arra, hogy bárkit meghívhat. Az ötlet venni innen.

Megfogalmazzuk a problémát az alábbiak szerint:

  1. Míg egy konferencián, a felhasználó megnyomja 0.
  2. Felhasználói kiugrik a konferencia hívás.
  3. Miután egy sor számát és beszélgetés a tárcsázott számot, ha a felhasználó megnyomja **. összeköti a hívott személy a konferencia, ha * # - nem csatlakozik.
  4. Ezután a felhasználó visszakerül vissza a konferencián.

A kezdéshez hozzon létre egy /etc/asterisk/features.conf fájlt, és csatoljuk fel két kombináció - ** és * #.

[Applicationmap]
conference_invite_user => * 0, a hívó fél, Macro, conference_invite_user
conference_invite_cancel => * #, a hívó fél, Makró, conference_invite_cancel
conference_invite_ok => **, a hívó fél, Macro, conference_invite_ok

Most dialplan meghívók és makrók válasz kombináció

[Conference_invite_user]
; összefüggésben az, hogy meghívja a felhasználók egy konferencián
kiterjedésû => 0,1, NOOP (. conference_invite_user ConfNo: $)

; ellenőrizze, hogy a mellék számát - akkor csak meg új tagokat

EXTEN => 0, n, GotoIf ($ [ "$, dinamikus)>" = "Igen"]?: return_to_conference)
EXTEN => 0, n, lejátszás (Rittal / meetme_add_instruction)

; olvasni a felhasználó által tárcsázott szám mellesleg így a hang
EXTEN => 0, n, Read (NEWDIAL, tárcsázza ,, i)
; dolgozzon ki engedélyt hívás átviteli függvények
EXTEN => 0, n, Set (__ DYNAMIC_FEATURES = conference_invite_ok # conference_invite_cancel)
; és tárcsázza a számot, amelyben a zászló „hogy továbbra után hengapa”
EXTEN => 0, n, GOSUB (internal_phones_outgoing_dial, $, 1)
; visszatérünk a konferencia
EXTEN => 0, n (return_to_conference), Goto (conference_main, s, 1)

[Macro-conference_invite_ok]
; Ha válaszol, **
EXTEN => s, 1, NOOP (makro-conference_invite_ok)
; a hívó át a konferencia,
EXTEN => s, n, ChannelRedirect ($, conference_main, s, 1)
; és maguk vissza.

[Macro-conference_invite_cancel]
; ha válaszol * #, majd tegye le, és visszatér a konferencia
EXTEN => s, 1, NOOP (makro-conference_invite_cancel)
eXten => s, n, SoftHangup ($)