 |
telefonujeme.cz telefonování přes internet s VoIP
|
|
|
| Autor |
Zpráva |
tomasjurman
Založen: 21. 04. 2012 Příspěvky: 6
|
Zaslal: ne duben 22, 2012 7:17 am Předmět: Odchozí hovory na 4xFXO |
|
|
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
|
Zaslal: so duben 28, 2012 10:03 am Předmět: Re: Odchozí hovory na 4xFXO - vyřešeno |
|
|
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
|
Zaslal: ne duben 29, 2012 1:21 pm Předmět: Re: Odchozí hovory na 4xFXO |
|
|
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
|
Zaslal: ne duben 29, 2012 3:10 pm Předmět: Re: Odchozí hovory na 4xFXO |
|
|
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
|
Zaslal: ne duben 29, 2012 4:19 pm Předmět: Re: Odchozí hovory na 4xFXO |
|
|
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
|
Zaslal: ne duben 29, 2012 5:49 pm Předmět: Re: Odchozí hovory na 4xFXO - vyřešeno |
|
|
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 |
|
 |
|
Powered by phpBB © 2001, 2005 phpBB Group
|