pondělí 26. prosince 2016

T-Mobile VoIP a Asterisk za NATem 2

Zklamáním je přístup společnosti T-Mobile (TM) k zákazníkům používající hlasovou službu VoIP, kteří neprovolají stovky až tisíce minut. To co provedl TM nemá obdoby. Jednoho krásného dne se rozhodl, že službu, kterou nabízí přemigruje na svou nově zřízenou VoIP ústřednu. Ale zapomněl o tom spraviti koncového zákazníka. Kdyby jen změnil IP adresu serveru schovanou pod doménovým jménem starší hlasové služby, asi by se nic vážného nestalo. Samozřejmě, došlo k nejhoršímu a změn bylo víc než dost. Služba nefungovala cca 3 týdny, nekonečně mnoho telefonátů než se podařilo službu nějakým způsobem oživit zpět, protože na dohledu TM je asi jen jeden jediný člověk, který pravděpodobně ví jak VoIP u TM funguje! 
Vzhledem k mnoha dotazů ke službě TM, přináším poznatky a poznámky jak snad službu zprovozniti.
V první řadě je tedy potřeba změnit doménu VoIP ústředny TM na "ims.t-mobile.cz". DNS servery prostě neumí rozumně nasměrovat původní "sip.tmip.cz", nebo umí, ale stará služba je prostě odpojena a nic nedělá. Druhou věcí ke změně je "extension" na konci registračního řetězce. Dle TM používají ověřování ještě v SIP Header? a to už ne v národním formátu, ale v mezinárodním formátu čísla. To obstará funkce register na konci stringu za lomítkem. Pozor, tato hodnota označovaná v Asterisku jako extension přechází při příchozím volání do dialplánu a je na to potřeba myslet.
register => 420123456789:321654987852@ims.t-mobile.cz:5060/420123456789
V dalším kroku je nutno v general parametrech sip.conf změnit externip, pokud máte Asterisk za NATem. Doporučuji ověřit danou adresu pingem na doménu ústředny TM. Bude li zde adresa chybná buď nebude ústředna za NATem fungovat správně, nebo bude expiry time - Refresh (sip show registry) ve velkých nebo nesmyslných hodnotách. (registrace VoIP u TM probíhá nejdříve přes SBC, pak přes nějakou databázi a pak k samotné VoIP ústředně???, proto je správné nastavení důležité až kritické!)
[general]
port = 5060
;tcpenable=yes                   ;v případě TCP odkomentovat
;tcpbindaddr=0.0.0.0
bindaddr = 0.0.0.0
externip = 89.24.84.22           ;dulezite pro prichozi hovory - IP ims.t-mobile.cz
localnet = 10.0.0.1/255.255.255.0 
nat=force_rport
Neuvěřitelná byla, ale informace o zvětšení délky paketu a jeho fragmentaci na straně zákazníka a proto bylo doporučeno přejít na TCP z důvodu potvrzování paketů a tudíž doručení kompletního datagramu. Nějak to nefungovalo, tak jsme zpět u UDP. V případě potřeby, je nutné nastavit Asterisk tak, aby používal TCP. Kontext konkrétní linky se moc nezměnil, až na doménu.
[420123456789]
type = friend
host = ims.t-mobile.cz
fromdomain = ims.t-mobile.cz  
context = from_VOIP_ISP
dtmfmode = rfc2833
insecure=invite,port
defaultuser = 420123456789
fromuser = 420123456789
secret = 321654987852
canreinvite = no  ;drzi spojeni pres RTP
qualify=yes       ;zasilani SIP OPTIONS - udrzuje spojeni - musi podporovat obe strany   
;defaultexpiry=300
;transport=tcp
V routeru se musí vypnout funkce SIP AGL!
V dialplánu v souboru extension.conf je potřeba použít jako extension na příchozí hovor celé národní číslo, tak jak bylo řečeno u položky register.
[from_VOIP_ISP]
exten => 420123456789,1,NoOp(number=${CALLERID(number)})
 same => n,NoOp(all=${CALLERID(all)})
 same => n,Goto(internal,${EXTEN:3},1)  ;skoci na kontext internal a odreze prefix 420
Služba se po mnoha telefonátech, čekání na správného člověka z dohledu TM povedla rozjet. Stále vykazuje nějaké muchy, které se snad podaří odstranit, ale pokud se v TM nezamyslí a nezlepší komunikaci ze zákazníkem jsme připraveni k návratu ke "kyslíku" a jejich "bezproblémových ISDN".
Budu rád za vaše připomínky, popřípadě zkušenosti se službou.

středa 14. prosince 2016

Install Asterisk 11 on CentOS from source

Asterisk 11 boasts many great new features including WebSocket transport for SIP, chan_motif, SIP NAT traversal via ICE, Named ACLs and more! For a full list of new features visit the Asterisk wikiFor this install I am using Asterisk 11.0.0 and will be compiling from source on CentOS 6.3. This tutorial should also work on Fedora and RHEL (Red Hat Enterprise Linux) systems with little or no modification. First, you will want to be sure that your server OS is up to date.
yum update -y
Disable SELinux by changing “enforcing” to “disabled” in /etc/selinux/config. Use a text editor or copy and paste this command.
sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config
After you update and disable SELinux, you’ll need to reboot.
reboot
Next, you will want to resolve basic dependencies. (More information on Asterisk dependencies.)
yum install -y make wget openssl-devel ncurses-devel  newt-devel libxml2-devel kernel-devel gcc gcc-c++ sqlite-devel libuuid-devel
Change into the /usr/src/ directory to store your source code.
cd /usr/src/
Download the source tarballs. These commands will get the current release of DAHDI 2.6, libpri 1.4 and Asterisk 11.
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-11-current.tar.gz
Extract the files from the tarballs.
tar zxvf asterisk*
For the next set of commands it is important to follow the proper order: DAHDI first, then libpri, then Asterisk. Change to the Asterisk directory.
cd /usr/src/asterisk*
In the next step, running the “configure” script will vary depending on whether your system is 32-bit or 64-bit.(Watch the video for more details.) When the menuselect command runs, select your options, then choose “Save and Exit” and the install will continue. Use this command if you are installing Asterisk on 32bit CentOS.
./configure && make menuselect && make && make install
Use this command if you are installing Asterisk on 64bit CentOS.
./configure --libdir=/usr/lib64 && make menuselect && make && make install
Optional: If you ran into errors you will want to clean the install directory before recompiling.
make clean && make distclean
Once you have an error-free install, copy the sample files from the configs subdirectory into /etc/asterisk.
make samples
Then add the Asterisk start script to the /etc/init.d/ directory
make config
Start Asterisk.
service asterisk start
Connect to the Asterisk CLI.
asterisk -rvvv
And now you have Asterisk 11 running on CentOS 6! If you’d like to continue configuring Asterisk you can check out this guide to setting up basic pbx functionality or leave a comment to share your thoughts below! You can also check out some of our training and certification options.

pondělí 12. prosince 2016

No “setup” command found in CentOS

In Minimum Install this will not get install. If we get below Error, we need to install some packages to get work with setup:
  • command[root@masterdns ~] setup 
  • -bash: setup: command not found 
Here we can see how to install in minimal install:
  • yum install setuptool -y 
  • yum install system-config-network* -y 
  • yum install system-config-firewall* -y 
  • yum install system-config-securitylevel-tui -y 
  • yum install system-config-keyboard -y 
  • yum install ntsysv -y 
Now we can use the setup utility, That's it.