Ultimo accesso: Oggi è sabato 4 settembre 2010, 20:13


Tutti gli orari sono UTC + 1 ora




Apri un nuovo argomento Rispondi all’argomento  [ 5 messaggi ] 
Autore Messaggio
 Oggetto del messaggio: BLF: utilizzare inuse/call-limit
MessaggioInviato: lunedì 31 maggio 2010, 17:45 
Utente

Iscritto il: lunedì 31 maggio 2010, 17:28
Messaggi: 3
Ciao a tutti,

sono un "novizio" di asterisk ma ho una discreta esperienza sia come sviluppatore che come utente Linux. Vado subito al punto

Sono discretamente soddisfatto del mio Asterisk 1.4 ma ho una lamentela da parte dei miei utenti (cioe' dei miei colleghi d'ufficio che utilizzano il centralino :) ): come trunk d'uscita abbiamo un Patton con un BRI (e quindi la possibilita' di fare due chiamate contemporanee). Il problema e' che molte volte ci si trova nella situazione in cui entrambe le linee sono occupate e una terza persona vuole chiamare all'esterno. Quest'ultima riceve (solo dopo aver composto il numero) una notifica vocale dal centralino che "la chiamata non puo' essere inoltrata". Al povero utente non resta che provare e riprovare a fare il numero finche' la linea non si libera.
Ovviamente un bel BLF sul trunk risolverebbe il tutto, e quasi ci sono arrivato da solo ;)
Ho infatti abilitato un hint su un interno "fittizio" che pero' punta al patton:

exten => isdn,hint,SIP/patton

In questo modo mettendo un BLF sull'interno "isdn" ho "la luce verde" quando non c'e' neanche una chiamata e quella "rossa" quando c'e' almeno una linea occupata..
Questo e' ovviamente subottimo, in quanto dal mio punto di vista l'interno isdn non e' "busy" quando ha almeno una linea libera..

Ho visto che l'informazione di quante chiamate sono disponibili e' in realta' presente in Asterisk, il comando sip show inuse infatti mi fa' esattamente vedere quante chiamate sono in corso sul patton:

asterisk*CLI> sip show inuse
* User name In use Limit
[snip]
1000 0 99
* Peer name In use Limit
patton 0/0 2
1020 0/0 99
[snip]
1016 0/0 99

La mia idea sarebbe quindi di usare questa informazione per impostare lo stato del patton, ma non so' come fare..
Mi verrebbe da fare uno script bash che estrae il campo inuse periodicamente (anche un paio di volte al minuto), ad es cosi':

asterisk -rx 'sip show inuse' | grep patton | awk '{ if ($2=="2/0") print "INUSE"; else print "READY"}'

Il problema e' ora impostare lo stato del BLF di SIP/patton.. e qui la mia ignoranza di Asterisk si fa' sentire..

forse c'e' anche un metodo migliore ma sinceramente non lo conosco :(

Grazie anticipatamente a tutti,

Andrea


Top
Non connesso Profilo E-mail  
 
 Oggetto del messaggio: Re: BLF: utilizzare inuse/call-limit
MessaggioInviato: giovedì 3 giugno 2010, 9:20 
Utente

Iscritto il: lunedì 31 maggio 2010, 17:28
Messaggi: 3
mi rispondo da solo ;)

con un po' di smanettamenti su Asterisk sono riuscito a installare una versione piu' recente di func_devstate che permettesse anche di impostare, da command line, lo stato di un device. In questo modo, con il mio script shell riesco a fare il check di quanti canali del patton siano 'inuse' e quindi impostare il custom device state del patton stesso.. aggiunto un hint e fatto!

immagino si possa fare la stessa cosa anche togliendo lo script bash che gira in background e integrare tutto in asterisk, ma le mie conoscenze del PBX sono troppo scarse per permettermi di fare questo :(

Nel caso a qualcuno dovesse servire ecco cosa ho fatto:

1) aggiunto un hint:

exten => isdn,hint,Custom:patton

2) in background mi gira questo script bash/awk (anche qui si puo' integrare tutto in awk o usare un altro linguaggio.. io ho preso il primo che mi e' venuto in mente ;) )

while [ 1 ]; do asterisk -rx 'sip show inuse' | grep patton | awk -f change_patton_state.awk ; for i in $(seq 1 1 10); do echo -n . ; sleep 1; done; done


change_patton_state.awk:

//{
if ($2=="2/0")
system("asterisk -rx 'funcdevstate change custom:patton INUSE'");
else
system("asterisk -rx 'funcdevstate change custom:patton NOT_INUSE'");
}


Top
Non connesso Profilo E-mail  
 
 Oggetto del messaggio: Re: BLF: utilizzare inuse/call-limit
MessaggioInviato: venerdì 4 giugno 2010, 7:52 
Utente

Iscritto il: giovedì 2 marzo 2006, 10:28
Messaggi: 562
Località: torino
La strada adottata è giusta. Puoi fare tutto da dialplan usando la funzione GROUP e GROUPCOUNT, se il valore è =2 allora puoi accendere il tuo blf

_________________
Certificato Digium-Certified Asterisk Professional (dCAP)
Certificato Inalp Patton
Snom Certified Enginiering


Top
Non connesso Profilo E-mail  
 
 Oggetto del messaggio: Re: BLF: utilizzare inuse/call-limit
MessaggioInviato: venerdì 11 giugno 2010, 15:55 
Utente

Iscritto il: lunedì 31 maggio 2010, 17:28
Messaggi: 3
starlab ha scritto :
> La strada adottata è giusta. Puoi fare tutto da dialplan usando la funzione
> GROUP e GROUPCOUNT, se il valore è =2 allora puoi accendere il tuo blf

Ah grazie per l'indizio!
purtroppo non conosco il dialplan di asterisk molto bene (o sarebbe meglio dire che non lo conosco per niente.. :lol: ) quindi non sono in grado di aggiungere quei comandi

ho comunque acquistato un paio di libri sull'argomento e conto di riuscirci presto.. se ce la faccio completo il post con la soluzione completa

grazie


Top
Non connesso Profilo E-mail  
 
 Oggetto del messaggio: Re: BLF: utilizzare inuse/call-limit
MessaggioInviato: mercoledì 14 luglio 2010, 12:27 
Utente

Iscritto il: giovedì 20 agosto 2009, 17:37
Messaggi: 4
Scusate ma per utilizzare queste funzioni il patton deve essere obbligatoriamente registrato oppure è possibile utilizzare l'IP?


Top
Non connesso Profilo E-mail  
 
Visualizza ultimi messaggi:  Ordina per  
Apri un nuovo argomento Rispondi all’argomento  [ 5 messaggi ]  Moderatori: simbol76ss, Obelix, paolo

Tutti gli orari sono UTC + 1 ora


Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite


Non puoi aprire nuovi argomenti
Non puoi rispondere negli argomenti
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi inviare allegati

Cerca per:
Vai a:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Theme created StylerBB.net & kodeki
Traduzione Italiana phpBB.it