Freesco, NND, CDN, EOS
http://forum.freesco.pl/

Skrypt
http://forum.freesco.pl/viewtopic.php?f=28&t=17111
Strona 1 z 1

Autor:  marcin w [ czwartek, 7 sierpnia 2008, 15:08 ]
Tytuł:  Skrypt

Witam. Czy mógłby mi ktoś pomów w wykonaniu skryptu generującego dialplan dla potrzeb asteriska ?
Ma to działać na tej zasadzie:
podaję plik tekstowy z wykazem mumeracji danego operatora, na przykład:
Cytuj:
022310
032311
041312
.
.
.

po uruchomieniu skryptu wygenerowany zostanie plik z dialplanem dla asteriska w postaci:
Cytuj:
exten => _022310X.,1,Dial(SIP/${EXTEN}@out-oper1)
exten => _022310X.,2,Hangup

exten => _032311X.,1,Dial(SIP/${EXTEN}@out-oper1)
exten => _032311X.,2,Hangup

exten => _041312X.,1,Dial(SIP/${EXTEN}@out-oper1)
exten => _041312X.,2,Hangup
.
.
.

Autor:  Mis' [ czwartek, 7 sierpnia 2008, 15:41 ]
Tytuł: 

: [/] [] ()
# !/bin/sh

if [ $# -lt 2 ]; then
   echo "Nieprawidłowa liczba argumentów."
   echo "Sposób użycia: "
   echo "$0 /sciezka/plik_z_numeracją /sciezka/dialplan"
   echo "Kończę."
   exit 1
fi

[ -f $1 ] || echo "Plik $1 nie istnieje. Kończę" && exit 1

[ -f $2 ] && mv $2 $2.old

while read line; do

echo "exten => _${line}X.,1,Dial(SIP/\${EXTEN}@out-oper1)" >> /sciezka/dialplan
echo "exten => _${line}X.,2,Hangup" >> /sciezka/dialplan

done < $1


Nie testowane!
Zwróć uwagę na ${EXTEN} - znak dolara musi być poprzedzony backslashem aby zapobiec interpretowaniu tego wyrażenia jako zmiennej. Może być konieczne (choć nie sądzę), że inne znaki trzeba będzie poprzedzić backslashem.
Script wymaga dwóch parametrów w określonej kolejności - ścieżka do pliku z numeracją i ścieżka do pliku dialplanu. Jesli plik dialplanu istnieje jego nazwa zostaje zmieniona na dialplan.old i nowy plik dialplan jest generowany.
W pliku z numeracją niedopuszczalne są komentarze, a każdy numer musi być w osobnej linii, bez spacji/tabulatorów na początku i końcu numeru. Plik ten powinien kończyć się pustą linią.

Autor:  marcin w [ czwartek, 7 sierpnia 2008, 16:10 ]
Tytuł: 

Dzięki Mis' za szybką reakcję.

Uruchomiłem skrypt poleceniem
./generator /home/kat_dom/numeracja /home/kat_dom/dialplan

generator - plik ze skryptem
numeracja - wykaz numeracji
dialplan - wynikowy plik z dialplanem

Nic nie tworzy w pliku o nazwie dialplan, plik jest czysty.

Możesz pomóc mi ??

Edit.

Troszeczkę czasu poświęciłem i udało mi się coś wymyśleć.

Dzięki za wsparcie kodem skryptu.

Pozdrwiam
Marcin

Autor:  Mis' [ czwartek, 7 sierpnia 2008, 21:13 ]
Tytuł: 

marcin w pisze:
Uruchomiłem skrypt poleceniem
./generator /home/kat_dom/numeracja /home/kat_dom/dialplan

Nic nie tworzy w pliku o nazwie dialplan, plik jest czysty.


Jesli sobie poradziłeś to napisz gdzie był błąd. Jak mówię, nie testowałem tego...

Autor:  Mis' [ czwartek, 7 sierpnia 2008, 21:26 ]
Tytuł: 

Zmień linię:

[ -f $1 ] || echo "Plik $1 nie istnieje. Kończę" && exit 1

na

if [ ! -f $1 ]; then
echo "Plik $1 nie istnieje. Kończę"
exit 1
fi

i powinno być dobrze. Przynajmniej na Twoich przykładach działa.

Autor:  marcin w [ czwartek, 7 sierpnia 2008, 22:13 ]
Tytuł: 

Pozostawiłem tylko

Cytuj:
# !/bin/sh

while read line; do

echo "exten => _${line}X.,1,Dial(SIP/\${EXTEN}@out-oper1)" >> /sciezka/dialplan
echo "exten => _${line}X.,2,Hangup" >> /sciezka/dialplan

done < $1


Dzięki za wsparcie. Skrypt zaoszczędził mi około 2 dni pracy. Wygenerowanie dialplanu dla kilku operatorów VOIP (łącznie około 400 linii kodu) zajęło mi tylko 1 godzinę.

Autor:  pectosol [ czwartek, 7 sierpnia 2008, 23:33 ]
Tytuł: 

ciekawe rozwiązanie w/w problemu.
Ja najczęściej takie konwersje realizowałem przy pomocy excela i makr.
Muszę to zacząć stosować

Strona 1 z 1 Strefa czasowa UTC+2godz.
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/