Asterisk - napojeni do hovoru

Odeslat odpověď


Odpoveď na tuto otázku je nutná pro rozlišení automatizovaných pokusů o registraci.
Smajlíci
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :arrow: :| :mrgreen: :geek: :ugeek: :yes: :no:
BBCode je zapnutý
[img] je zapnutý
[flash] je vypnutý
[url] je zapnuté
Smajlíci jsou zapnutí
Přehled tématu
   

Rozšířit náhled Přehled tématu: Asterisk - napojeni do hovoru

Re: Asterisk - napojeni do hovoru

Příspěvek od stepos » 18 bře 2013 13:11

Díky moc, vyzkouším.

Re: Asterisk - napojeni do hovoru

Příspěvek od milan.benicek » 18 bře 2013 11:43

Začnu od konce.
A ještě poslední otázka, když už podáváte prst;) Je možné používat v GotoIf dvě podmínky? (Jestli je callerID=1 a jestli je obsazeno, pak ....)
Něco ve smyslu:
exten => _Z,n,GotoIf($[${CALLERID(num)} = 1] & $["${EXTENSION_STATE(${EXTEN}@internal)}" = "INUSE"] ?sef:dial_phone)

Nějak mi to nefungovalo, tak jsem to rozepsal do dvou podmínek.


Ano jde to, ale musí to být uzavřeno jen jednou hranatou závorkou:
Kód: Vybrat vše
exten => _Z,n,GotoIf($[${CALLERID(num)} = 1 & "${EXTENSION_STATE(${EXTEN}@internal)}" = "INUSE"] ?sef:dial_phone)


Ohledně Vaší aplikace. Problém vidím v tom, že se externě nedostanete k hodnotám ${BRIDGEPEER} a ${CHANNEL} bez toho, abyste byl v tom hovoru. Za normálních okolností jsou tyto údaje dostupné pouze volajícímu a volanému. Proto by neměl být problém podle přiložené WIKI udělat funkcionalitu, kdy kolegyně hovor přepojí do konference a pak už se s tím dá dělat to co potřebujete. Teoreticky může mít takové "záchranné" tlačítko, které použije když zavolá naštvaný zákazník.

Pokud to ale chcete ovládat zvenčí, pak bude potřeba při sestavování hovoru si někam odložit hodnoty ${BRIDGEPEER} a ${CHANNEL} a pak při použití Chanspy použít ${BRIDGEPEER}, případně pomocí ChannelRedirect zvenčí provést přepojení kanálů třeba do konference nebo dokonce volajícího na sebe.

Při implementaci bude hodně záležet, jestli to napíšete jako "quick hack", který nebude řešit např. více paralelních hovorů nebo to budete chtít mít čisté a obecně bezpečné. Někdy stačí "quick hack", který ve Vaší situaci řeší problém, udělá svou práci a rizikový stav nastane třeba v jen 0,1% případů. Jindy to musí být promyšlené řešení, funkční za každé situace.

"Quick hack" může být třeba globálně dostupná proměnná, kterou příchozí hovor nastaví. Každý další jí ale přepíše ... Můžete použít AGI aplikaci atd. Možností je více.

Re: Asterisk - napojeni do hovoru

Příspěvek od stepos » 13 bře 2013 09:04

Děkuji za odpověď,
všechna ta řešení jsou zajímavá, jen moc tlačítková :).
Rád bych to měl automatické a blbuvzdorné, aby i roztržitá kolegyně nemohla udělat chybu.
Jedná se mi třeba o konkrétní hypotetický případ, kdy bude zákazník kolegyni nadávat, já ji budu chtít zachránit, tak do hovoru s naštvaným zákazníkem vstoupím a převezmu jeho problém a kolegyně tiše vyšumí. Abychom nemuseli naštvaného člověka přepojovat a parkovat atd.

Stále s Asteriskem začínám, proto ještě pořádně nechápu ty principy.
Ale je možné zařídit toto?

Kolegyně hovoří se zákazníkem.
Já zvenčí vytvořím konferenci, do které se připojím a současně přepojím i oba účastníky, aniž by o tom věděli? Hovor bude probíhat ve třech a když kolegyně vystoupí, položí telefon, já bez problému pokračuji.

Anebo jak píšete na začátku - jak se napojit chanspy na konec hovoru, který nezavěsí? Mám to skutečně napojeno na pobočku.
Nastavil jsem si to tak, abych na gxp2124 blf tlačítkem na kolegyni mohl buď volat, když není obsazeno, a když je, tak se stejným tlačítkem napojit. A ještě ochránit, aby se do hovoru nemohl napojit nikdo jiný než já.
Ale jak se napojit na toho druhého?

exten => _Z,1,Verbose(2,The channel name is ${CHANNEL})
exten => _Z,n,Verbose(2,The unique id is ${UNIQUEID})
exten => _Z,n,Verbose(2,The callerid is ${CALLERID(num)})
exten => _Z,n,GotoIf($[${CALLERID(num)} = 1]?sef:dial_phone)
exten => _Z,n(sef),Verbose(2,The EXTENSION_STATE is ${EXTENSION_STATE(${EXTEN}@internal)})
exten => _Z,n,GotoIf($["${EXTENSION_STATE(${EXTEN}@internal)}" = "INUSE"]?spy_phone:dial_phone)
exten => _Z,n(spy_phone),Chanspy(SIP/${EXTEN},Bq)
exten => _Z,n,Hangup()
exten => _Z,n(dial_phone),Dial(SIP/${EXTEN})
exten => _Z,n,Hangup()



A ještě poslední otázka, když už podáváte prst;) Je možné používat v GotoIf dvě podmínky? (Jestli je callerID=1 a jestli je obsazeno, pak ....)
Něco ve smyslu:
exten => _Z,n,GotoIf($[${CALLERID(num)} = 1] & $["${EXTENSION_STATE(${EXTEN}@internal)}" = "INUSE"] ?sef:dial_phone)

Nějak mi to nefungovalo, tak jsem to rozepsal do dvou podmínek.

Děkuji za pomoc, opravdu si ji vážím, jste mimořádný svou trpělivostí.
ŠP+

Re: Asterisk - napojeni do hovoru

Příspěvek od milan.benicek » 12 bře 2013 19:25

Už asi trochu rozumím o co se snažíte ...
Myslím, že by to mohlo jít zařídit i s ChanSpy, ale musel byste se napojit na ten konec hovoru, který nezavěsí. Pak by E option asi fungovala. Pověsíte-li ChanSpy na SIP pobočku kolegyně, tak po jejím zavěšení to asi nevyhnutelně exitne. Je tu ale moc asi, protože jsem to takto nezkoušel a není to úplně tak, jak to vývojáři zamýšleli.

Ta další varianta se mi líbí, jen bych do toho netahal konferenci, pokud jí nezbytně nepotřebujete. Je ale otázkou, jestli půjde z ChanSpy spustit feature kód? Já si myslím, že nepůjde. Pak se můžete pomocí ChanSpy účastnit hovoru až do okamžiku, kdy se bude chtít kolegyně odpojit a bude na ní, aby volajícího přepojila. V takovém případě ho ale může buď popsaným způsobem přepojit do konference a Vy se tam pak samostatně připojíte už mimo ChanSpy (nový hovor) nebo ho obyčejně zaparkuje pomocí feature parkcall a Vy si hovor pak jen vyzvednete. To ho ale už rovnou může pomocí další feature blindxfer nebo atxfer přepojit na Vás.
Vidím tu ale příležitost pro automatizaci v malé úpravě návodu ve zmíněné wiki. Využil bych totiž ChannelRedirect ne k přepojení do konference, ale na toho, kdo v konverzaci bude pokračovat. V podstatě stačí mít kontext, ve kterém se vytočí správná pobočka (staticky nebo dynamicky podle Vašich požadavků) a na tu volajícího přepojit a zároveň kanál směrem ke kolegyni automaticky zavěsit. Jedinou podmínkou bude zřejmě více-linkový IP telefon, protože pokud budete v tu chvíli ještě zároveň v aplikaci ChanSpy, tak Vám to hovor pošle na druhou linku, to ale asi nebude problém.

No a pak je tu ještě jedna možnost - konference na úrovni IP telefonů. Pokud vím, tak celkem dost telefonů (Grandstream určitě) umí 3 a více-cestnou konferenci. Tohle je ale mimo kontrolu asterisku a nemusí Vám to úplně vyhovovat. Na druhou stranu to má výhodu ve snadném ovládání - kolegyně si nemusí pamatovat kódy a funkci ovládá tlačítkem na telefonu.

Pravda je, že pokud si s tím pohrajete, tak i custom/feature kódy lze schovat pod programovatelná tlačítka telefonu (pokud to umí).

Re: Asterisk - napojeni do hovoru

Příspěvek od stepos » 12 bře 2013 17:51

Děkuji moc, hezky to funguje, pokud použiji parametry Bq, tak se tiše napojím bez tónu a můžu mluvit, aby mě slyšeli oba, jen bych ještě chtěl, aby se hovor při napojení neukončil, když ho ukončí pobočka u nás, ale v podstatě se přepojil na mě.

I když nepoužiji parametr E, tak se hovor prostě rozpojí, což může být trochu problém, když převezmu zákazníka a kolegyně hovor automaticky položí...

V tomto případě to asi není možné takto řešit, že?
Zřejmě by bylo potřeba vytvořit konferenci a do ní se pozvat, aby hovor zůstal u mě i v případě ukončení kolegyní.

Napadlo mě něco takového jako zde:
http://wiki.4smart.cz/doku.php?id=aster ... ehu-hovoru

Jen s tím, že bych tu konferenci vytvořil já -mimo hovor. Je to možné? Nebo to jde řešit tou ChanSpy?

Děkuji moc.

ŠP

Asterisk - napojeni do hovoru

Příspěvek od milan.benicek » 12 bře 2013 12:19

V reakci na dotaz zde
Hezký den všem, potřeboval bych poradit, jak vstoupit do probíhajícího hovoru.
Analogové ústředny to uměly stisknutím příslušného tlačítka na systémovém telefonu.

Děkuji za pomoc


Na asterisku se tato záležitost řeší pomocí ChanSpy, kdy je možné nakonfigurovat buď jen příposlech nebo i možnost do monitorovaného spojení vstupovat (mluvit).
V praxi toto používáme v callcentrech pro koučování operátorů. Variantu s obousměrným vstupem do hovoru jsem zatím nikdy nepoužil, ale nečekám žádné komplikace.

Jednoduché příklady:
Kód: Vybrat vše
exten => _2XX,1,Set(SPYGROUP=TEST)
exten => _2XX,n,Dial(SIP/${EXTEN})
exten => *68,1,Chanspy(SIP,bg(TEST}))
exten => *68,n,Hangup()

pro skupinu kanálů nebo pro konkrétní pobočku
Kód: Vybrat vše
exten => _*69XXXX,1,Chanspy(SIP/${EXTEN:3},bE)
exten => _*69XXXX,n,Hangup()

Nahoru

cron