piątek, 14 listopada 2014

Połączenia na numery stacjonarne - dialplan pattern matching

Zrobiłem dialplan dla asteriska, który pozwala na połączenia tylko do numerów stacjonarnych w Polsce według rozpiski z http://pl.wikisource.org/wiki/Telefoniczne_numery_kierunkowe_w_Polsce. Dialplan bardzo prosty, aczkolwiek na tyle pracochłonny, że postanowiłem tutaj wrzucić, może komuś się przyda.  Sam dialplan wykorzystuje macro, aby można było w prostszy sposób zmieniać jego konfigurację.

Może ktoś z Was, wie jak napisać taki dialplan zgrabniej? Jeśli tak to proszę zostawić pomysł w komentarzach pod postem ;)

extensions.conf


[macro-stacjonarka]
exten => s,1,NoOp(DZWONIE DO ${ARG1})
exten => s,n,Dial(SIP/trunk_wychodzacy/${ARG1})
exten => s,n,Hangup



[wychodzace]

exten => _1XXXXXXXX,1,NoOP(stacjonarka)
exten => _1XXXXXXXX,n,Macro(stacjonarka,${EXTEN},1)
exten => _1XXXXXXXX,n,Hangup()


środa, 5 listopada 2014

python - porównywanie czy pliki PHP nie zostały zmienione względem siebie

W ramach ćwiczeń z pythonem mały skrypt, który porównuje checksum plików PHP z katalogu /var/www pomiędzy dniem dzisiejszym, a wczorajszym. Jeśli skrypt wykryje nowe pliki lub niezgodność checksum (czyli plik został zmieniony) to wysyła maila.

Skrypt może się przydać, jeśli macie jakieś strony na serwerze, które nie są bezpieczne - teraz jak ktoś wrzuci PHP shella lub dopisze coś do waszych plików, będziecie o tym wiedzieli.

czwartek, 2 października 2014

Prosty load balancer oparty na round-robin dla połączeń wychodzących - Asterisk


Dzisiaj szybki i prosty round-robin w Asterisku, który losuje pomiędzy trunkA i trunkB, gdzie pójdzie połączenie wychodzące:

extensions.conf

[macro-stacjonarne]
exten => s,1,NoOp(DZWONIE DO ${ARG1})
exten => s,n,GotoIf($[${RAND(1,2)} > 1]?trunkA:trunkB)
exten => s,n(trunkA),Dial(SIP/trunkA/${ARG1})
exten => s,n,Hangup
exten => s,n(trunkB),Dial(SIP/trunkB/${ARG1})
exten => s,n,Hangup


Rozwiązanie można nawet wykorzystać w ostateczności jako failover, jeśli ma się tylko 2 trunki (ale nie polecał bym, lepiej jednak zrobić failover, który będzie badał status ewentualnie stan trunka)

piątek, 26 września 2014

Business Livebox MicroPBX - Asterisk trunk

Podłączenie Business Livebox MicroPBX  do Asteriska (konfiguracja peera)

sip.conf


[global]
directmedia=no


register => shortnumber:password@10.0.0.1/shortnumber


[shortnumber]
type=friend
nat=yes
defaultuser=shortnumber
fromuser=shortnumber
secret=password
host=10.0.0.1
qualify=yes
context=tpsa
callerid=048XXXXXXXXX
disallow=all
allow=ulaw
allow=alaw

Postfix Vacation - auto-odpowiedź z wykluczeniem jednego nadawcy

Na szybko, bo jak zawsze było potrzebne na wczoraj. Pracownik poszedł na urlop i jego autoresponder odpowiadał na komunikaty techniczne wysyłane od klienta, co powodowało otwarcie kolejnych ticketów, w systemie klienta.

W /var/spool/vacation/vacation.pl poniżej linii 548 dodałem prostego IFa, który ma ignorować wysyłanie automatycznych odpowiedzi jeśli nadawcą jest XXX@XXX.com


if($smtp_sender eq 'XXX@XXX.com'){
        $logger->info($smtp_sender);
        exit(0);
}



Szybko, mało elegancko ale działa :)

poniedziałek, 30 czerwca 2014

Narzędzia administratora

Znalazłem w sieci ciekawy spis narzędzi, które wykorzystujemy w pracy jako sysadmini. Pewnie większość z nich jest Wam doskonale znana, ale może ktoś sobie dobierze coś nowego  - awesome-sysadmin.

I dodatkowo First Aid Kit.

piątek, 21 marca 2014

MongoDB + SSL + Elasticsearch + River


Standardowo MongoDB nie wspiera SSL-a, więc musimy go w kompilować. Dystrybucja Linuxa z jakiej korzystałem to Debian 7. To co się na pewno przyda to dokumentacja MongoDB, z której korzystałem http://docs.mongodb.org/manual/tutorial/configure-ssl/

1) Kompilacja mongo z SSL-em

apt-get install git-core build-essential scons libssl-dev
git clone git://github.com/mongodb/mongo.git
cd mongo
git tag -l
git checkout r2.4.9
scons --ssl --prefix=/opt/mongo install


poniedziałek, 13 stycznia 2014

Fabrykawpisow - test systemu zdobywania linków

Marcin Kosedowski, właściciel Fabrykiwpisów przypisał mi na start 60 płatnych linków do konta w jego systemie. Cel jest jeden - sprawdzić jak na prawdę działa system Marcina. Bo w to, że zdobędę linki o których pisze to nie wątpię, ale czy te linki pozwolą mi odnieść sukces w Google to tego nie wiem. Aby to sprawdzić założyłem nowego bloga, znalazłem dość łatwą niszę i poprosiłem znajomego o pisanie tekstów tematycznych na nowym blogu. Blog powstał 12 grudnia 2013 roku, na ta chwilę miał 0 jakichkolwiek linków przychodzących.