Newsgroup: it.tlc.telefonia.voip
Titolo: strano comportamente applicazione dial

ho due numeri eutelia voip
uno finisce in 288 e risponde un ivr
uno finisce in 130 e risponde un interno specifico, il 300
appartengono a contesti diversi, in quanto numeri non validi, hangup e
altre cose vengono gestire in modo assolutamente diverso tra i due
numeri. sono proprio due cose diverse, immaginatevi che siano due
aziende diverse in un unico centralino
il 130 ha come context 'from-trunk' e nel dialplan ho inserito come
prima riga
[from-trunk]
exten => _blablabla130,1,Dial(SIP/300,30)
poi più giu c'è il context dell'ivr
[ivr]
exten => _blablabla288,n,Answer
mi succede sta cosa: se chiamo il 288 l'ivr risponde senza problemi
se chiamo il 130 la tim, dal cellulare, mi dice che il numero non è
disponibile
ho avviato la console 'verbosa' e vedo questo messaggio strano
Call from 'blablabla288' to extension 'blablabla130' rejected because
extension not found.
perchè ?!?! io chiamo il 130, non il 288 .... perchè asterisk dirotta
la chiamata al 288, su un altro contesto oltretutto?  sembra quasi che
il 288 prevalga sull'altro... mumble...
chiaramente nel context ivr non c'è nessuna esxtension che punti al
130, allora ho fatto questa prova, ho inserito questa estensione nel
contesto ivr
exten => _blablabla130,1,Goto(from-trunk|_blablabla130|1)
a questo punto chiamando il 130 l'interno corretto, il 300, suona
il modo in cui ciò avviene è però per me ancora più bizzarro. notate
il log seguente:
    -- Executing [blablabla130@ivr:1] Goto("SIP/
blablabla288-006083c8", "from-trunk|_blablabla130|1") in new stack
    -- Goto (from-trunk,_blablabla130,1)
    -- Executing [_blablabla130@from-trunk:1] Dial("SIP/
blablabla288-006083c8", "SIP/300|30") in new stack
    -- Called 300
    -- SIP/300-005d6c98 is ringing
la chiamata al 130, che in sip.conf ha  'context=from-trunk' viene in
realtà vista arrivare nel contesto 'ivr', Perchè?
da qui poi asterisk esegue giustamente il mio goto andando nel
contesto giusto ad eseguire la ricezione della chiamata sul 130
squillando l'interno 300.
un'altra cosa da notare è che il comando dial contiene ora una
sequenza di DUE numeri da chiamare, il 288 e poi l'interno 300. E di
fatti il 300 suona.
ma nel mio dialplan, come vedete sopra, nel comando dial c'è un SOLO
interno... cosa combina asterisk !?
sono nelle vostre mani
io non ho capito come e perchè si usano i contesti, probabilmente
ma mi chiedo come mai se il 130 ha contesto 'from-trunk' e il 288 ha
contesto 'ivr' asterisk cerca il 130 nel contesto ivr? Non è un errore
nel dialplan, credo, perchè se non faccio registrare il 288, e chiamo
poi il 130, questi suona tranquillamente dal suo contesto from-trunk.
Ci sto perdendo la testa
vi prego forse qualche nozione teorica mi manca od ho davvero un
concetto del tutto errato di come si usano i contesti

 concetto del tutto errato di come si usano i contesti
Non si pu� sparare sul pianista senza avere prima sottomano il dialplan 
completo... quindi non lo faro ;-)
Quello che invece potrebbe mancare � comprendere come vengono appaiati i 
peers quando arriva la chiamata. Comportamento peraltro non del tutto 
consistente tra varie versioni della bestia.
Di fatto quando si hanno numeri/account diversi sullo stesso provider 
non sempre � facile inoltrare le numerazioni in modo accurato.
Io per aggirare l'ostacolo uso raccogliere tutto in un'unico context 
dove in base all'header sip mi inoltro poi le chiamate dove voglio; un 
esempio stralciato da un'installazione reale con vari numeri e altri in 
selezione passante:
; incoming voip routing context, landing place for all incoming calls
[sip-incoming]
exten => s,1,NoOp(SIP incoming call to ${EXTEN}, matched in s, set DID 
from SIP TO header)
exten => s,n,Set(DID_INFO=${SIP_HEADER(To)})
exten => s,n,Set(DID_INFO=${CUT(DID_INFO,@,1)})
exten => s,n,Set(DID_INFO=${CUT(DID_INFO,:,2)})
exten => s,n,Goto(sip-routing,${DID_INFO},1)
exten => _X!,1,NoOp(SIP incoming call to ${EXTEN}, matched in _X!, set 
DID from SIP TO header, Exten:${EXTEN})
exten => _X!,n,Set(DID_INFO=${SIP_HEADER(To)})
exten => _X!,n,Set(DID_INFO=${CUT(DID_INFO,@,1)})
exten => _X!,n,Set(DID_INFO=${CUT(DID_INFO,:,2)})
exten => _X!,n,GoTo(sip-routing,${DID_INFO},1)
[sip-routing]
;route A (DID)
exten => _02123!,1,GoTo(ddi-a-incoming,${EXTEN},1)
;route B (Operator)
exten => 021231,1,GoTo(operators-queque,${EXTEN},1)
;route C
exten => 0223234567,1,GoTo(ivrmenu-sales-it,s,1)
;route D
exten => 0298765432,1,GoTo(ivrmenu-main-it,s,1)
;route E
exten => 440843210123,1,GoTo(ivrmenu-sales-en,s,1)
-- 
Design for the future, because it will be here sooner than you think.
(C) Eric S. Raymond, from "The Art of Unix Programming"

 wrote in message 
news:d782c949-1e0a-461d...@o3g2000yqb.googlegroups.com...
