telefonujeme.cz - Obsah fóra telefonujeme.cz
telefonování přes internet s VoIP
 
 FAQFAQ   HledatHledat   RegistraceRegistrace   RSSRSS  WikiWiki   PřihlášeníPřihlášení 
 


Odchozí hovory na 4xFXO

 
odeslat nové téma   Odpovědět na téma       telefonujeme.cz - Obsah fóra -> VoIP Asterisk
Autor Zpráva
tomasjurman




Založen: 21. 04. 2012
Příspěvky: 6

PříspěvekZaslal: ne duben 22, 2012 7:17 am    Předmět: Odchozí hovory na 4xFXO Odpovědět s citátem

Ahoj

řeším odchozí hovory. K veřejné telefonní síti je Asterisk připojen čtyřmi FXO kanály. Do venkovní sítě se místní telefony dostávají prefixem "9".

Po vytočení veřejného čísla s prefixem "9" by se měl telefon připojit na první volný FXO kanál.
Je možné tento task zapsat pomocí "&" takto:

--------------
[outgoing]
exten => s,1,Verbose(2, Call to ${EXTEN})
same => n,Dial(DAHDI/1/${EXTEN:1}&DAHDI/2/${EXTEN:1}&DAHDI/3/${EXTEN:1}&DAHDI/4/${EXTEN:1})
-----------------------
Představuji si, že to vyzvání na všech volných kanálech, v okamžiku, kdy veřejná PSTN odpoví na nějakém kanálu, volání na ostatních kanálech se stopne. Co se stane, když budou volat dva a více místních telefonů v jeden okamžik?

Děkuji za nakopnutí správným směrem
Tom Jurman
Návrat nahoru
tomasjurman




Založen: 21. 04. 2012
Příspěvky: 6

PříspěvekZaslal: so duben 28, 2012 10:03 am    Předmět: Re: Odchozí hovory na 4xFXO - vyřešeno Odpovědět s citátem

Ahoj

problém jsem vyřešil následovně:

[outbound]
exten => _9NXXXXXXXX,1,Dial(${TRUNK}/${EXTEN:1})
exten => 150,1,Dial(${TRUNK}/150)
exten => 155,1,Dial(${TRUNK}/155)
exten => 158,1,Dial(${TRUNK}/158)
exten => 112,1,Dial(${TRUNK}/112)


Zdraví Tom
Návrat nahoru
milan.benicek




Založen: 19. 03. 2009
Příspěvky: 92

PříspěvekZaslal: ne duben 29, 2012 1:21 pm    Předmět: Re: Odchozí hovory na 4xFXO Odpovědět s citátem

Dobrý den,
použití analogového svazku (trunku) pro tento účel je výrazně komplikovanější než například s technologií VoIP (SIP, IAX), případně ISDN (PRI, BRI).
Analogová linka (FXO/FXS) je jednoduše jednokanálová s velmi primitivní signalizací a i když je složíte do trunku tvořeného více jednokanálovými analogovými linkami, pořád budete mít jen shluk kanálů bez společného řízení/signalizace. Navíc každý kanál bude mít své vlastní číslo (DID i CLIP).
Na ISDN truncích je to jiné, tam se nemusíte starat který kanál použít, technologie to za Vás zařídí sama a CLIP i DID mohou mít společný nebo si ho dle potřeby nastavíte.

Chcete-li ale analogové linky použít k něčemu, k čemu nebyly navrženy, musíte si chybějící řízení napsat sám.

tomasjurman napsal:

[outgoing]
exten => s,1,Verbose(2, Call to ${EXTEN})
same => n,Dial(DAHDI/1/${EXTEN:1}&DAHDI/2/${EXTEN:1}&DAHDI/3/${EXTEN:1}&DAHDI/4/${EXTEN:1})


Tohle není nejšťastnější varianta. Tato technika vytáčí všechny hovory najednou a propojuje to volání, které se jako první spojí. Analogová linka sice umí signalizovat, že je obsazená, ale už nevíte jestli je obsazen kanál Vašeho analogového trunku nebo jestli je obsazený volaný. Pokud volaný např. telefonuje na mobilu, je obsazený a Vy mu tímto způsobem vygenerujete hned 4 zmeškané hovory naráz ze 4 různých čísel. Asi Vás za takové bombardování nebude mít rád.

tomasjurman napsal:

[outbound]
exten => _9NXXXXXXXX,1,Dial(${TRUNK}/${EXTEN:1})
exten => 150,1,Dial(${TRUNK}/150)
exten => 155,1,Dial(${TRUNK}/155)
exten => 158,1,Dial(${TRUNK}/158)
exten => 112,1,Dial(${TRUNK}/112)

Tohle sice neukazuje Vaše řešení, ale naznačuje, že jste se zamyslel právě nad řízením obsazování kanálů. Vlastní logika pro vyhledání volného kanálu sice chybí, ale pokud nějak vyberete volný kanál a ten uložíte do proměnné ${TRUNK}, pak prezentovaným způsobem určitě hovor vytočíte. Jen malá poznámka k zápisu:

kód:

    exten => _9NXXXXXXXX,1,Dial(${TRUNK}/${EXTEN:1})
    exten => _15[058],1,Dial(${TRUNK}/${EXTEN})
    exten => 112,1,Dial(${TRUNK}/${EXTEN})

Nemyslíte, že takto to vypadá přece jen o trochu lépe?

Jinak ke způsobu jak vybrat vhodný kanál - jedním z možných a relativně jednoduchým způsobem je si prostě počítat počty příchozích/odchozích hovorů na jednotlivých kanálech a podle toho je pak obsazovat (pokud je počet 0 mohu obsadit, pokud 1 musím vybrat jiný). Zde je to poměrně hezky popsáno:
http://www.voip-info.org/wiki/view/Asterisk+func+group
http://www.voip-info.org/wiki/view/Asterisk+func+group_count
http://www.voip-info.org/wiki/view/Asterisk+func+group_match_count

Dalším způsobem může být třeba AGI skript nebo spuštění nějakého externího kódu, kterým zjistíte volný kanál resp. volnou analogovou linku.

_________________
Milan Benicek
http://www.siphone.cz/
Návrat nahoru
tomasjurman




Založen: 21. 04. 2012
Příspěvky: 6

PříspěvekZaslal: ne duben 29, 2012 3:10 pm    Předmět: Re: Odchozí hovory na 4xFXO Odpovědět s citátem

Dobrý den

prosím neberte mou odpověd osobně.

Moc rád bych Vám poděkoval, ale nemůžu. Pomoc jsem nutně potřeboval před zhruba deseti dny. Stačilo zhruba napsat:

Toto je kravina:
kód:
[outgoing]
exten => s,1,Verbose(2, Call to ${EXTEN})
same => n,Dial(DAHDI/1/${EXTEN:1}&DAHDI/2/${EXTEN:1}&DAHDI/3/${EXTEN:1}&DAHDI/4/${EXTEN:1})


Analogová karta TDM400p, kterou používáte si sama najde voný kanál. Řešením je třeba:
kód:
exten => _9NXXXXXXXX,1,Dial(DANDI/g1/${EXTEN:1})


S tím, že jste mohl vysvětlit, že kanály si mohu grupovat.

To co píšete o analogových linkách dávno vím, jinak bych nevymyslel funkční řešení.

citace:
Jinak ke způsobu jak vybrat vhodný kanál

Analogová karta TDM400p si první volný kanál najde sama. Není potřeba nic ukládat a nic počítat. Vše je jednoduché a průzračné.

Zápis:
kód:
exten => _15[058],1,Dial(${TRUNK}/${EXTEN})

je možná kratčí, ale na prdel z něj nepadnu.


Chytří páni by si měli uvědomit, že pomoc člověk potřebuje, když o ni požádá.

Zdraví
Tom Jurman
Návrat nahoru
milan.benicek




Založen: 19. 03. 2009
Příspěvky: 92

PříspěvekZaslal: ne duben 29, 2012 4:19 pm    Předmět: Re: Odchozí hovory na 4xFXO Odpovědět s citátem

1) Aby Vám někdo mohl pomoci, musíte svůj požadavek formulovat co nejpřesněji. V žádném z Vašich příspěvků totiž nezmiňujete zásadní informaci o použití karty Digium TDM400p. Ano mohl jsem to uhodnout a dovodit si to z označení použitého technologie (DAHDI), ale i tak není jednoznačné co přesně používáte. Analogové linky můžete mít klidně připojené např. přes ATA brány ...

2) Když už sem napíšete řešení, bylo by asi fajn ho popsat. To zásadní jste zase neuvedl a to že na úrovni konfigurace driveru Vaší karty jste použil grupování kanálů. Proč ne, ale umím si představit i několik důvodů proč to tak nedělat nebo situace kdy to tak nepůjde.

3) Ano, mrzí mne, že jste z tohoto fóra nedostal odpověď obratem. Možná by správce měl záležitost prošetřit a zjistit proč nikdo z nás, kdo tu ve-dne-v-noci čekáme v pozoru až nám zadáte nějaký úkol, nezareagoval rychleji.

Přeji příjemný zbytek neděle.

_________________
Milan Benicek
http://www.siphone.cz/
Návrat nahoru
AdSense
Reklama






Zaslal: Reklama    Předmět: Reklamy Google

Návrat nahoru
tomasjurman




Založen: 21. 04. 2012
Příspěvky: 6

PříspěvekZaslal: ne duben 29, 2012 5:49 pm    Předmět: Re: Odchozí hovory na 4xFXO - vyřešeno Odpovědět s citátem

Problém:
Nevěděl jsem jak napsat odchozí pravidla z místní pobočky postavené na Asterisku 1.8. S veřejnou PSTN je Asterisk spojen 4x FXO ( PCI Digium TDM 400p)

Řešení:
chan_dahdi.conf
kód:
context = pstn1     
    signalling = fxs_ks     
    usecallerid = no      ;=yes - caused incomming ringing delay
    echocancel = yes
    transfer = yes
    immediate = no
    group = 1
    channel => 1
   
    context = pstn2     
    signalling = fxs_ks     
    usecallerid = no
    echocancel = yes
    transfer = yes
    immediate = no
    group = 1
    channel => 2
   
    context = pstn3     
    signalling = fxs_ks     
    usecallerid = no
    echocancel = yes
    transfer = yes
    immediate = no
    group = 1
    channel => 3
   
    context = pstn4
    signalling = fxs_ks     
    usecallerid = no
    echocancel = yes
    transfer = yes
    immediate = no
    group = 1
    channel => 4


Každý kanál je v samostatném kontextu. Všechny kanály pak ve stejné skupině. Na tuto skupinu (DAHDI/g1) potom směřuji odchozí hovory. Karta TDM400p si sama najde první volný kanál.

extension.conf
kód:
[globals]
    TRUNK=DAHDI/g1

[pstn1]
    exten => s,1,Dial(SIP/phone1,30,t)
   same => n, Hangup()

[pstn2]
    exten => s,1,Dial(SIP/phone2,30,t)
   same => n, Hangup()

[pstn3]
    exten => s,1,Dial(SIP/phone3,30,t)
   same => n, Hangup()   

[pstn4]
    exten => s,1,Dial(SIP/phone4,30,t)
   same => n, Hangup()   

[local-user]
    include => outbound

    exten => 18,1,Dial(SIP/phone1,,t)
    exten => 19,1,Dial(SIP/phone2,,t)
    exten => 20,1,Dial(SIP/phone3,,t)
    exten => 21,1,Dial(SIP/phone4,,t)
   
[outbound]       
    exten => _9NXXXXXXXX,1,Dial(${TRUNK}/${EXTEN:1})
    exten => _15[058],1,Dial(${TRUNK}/${EXTEN})
    exten => 112,1,Dial(${TRUNK}/${EXTEN})



Nyní se místní uživatelé dostanou do veřejné telefonní zadámín veřejného telefonního čísla s prefixem 9.


S pozdravem
Tom Jurman
Návrat nahoru
Přidej do: linkuj.cz! | jagg.cz! | del.icio.us! | digg it! | reddit! | Googlize! | MyWeb it! | Spurl it! | live it! | email it!
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma       telefonujeme.cz - Obsah fóra -> VoIP Asterisk Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 


Powered by phpBB © 2001, 2005 phpBB Group