Saturday, February 28, 2015

MySql Query to find longest matching prefix

SELECT num_prefix FROM nums
  WHERE '12684041234' LIKE CONCAT(num_prefix,'%')
  ORDER BY num_prefix DESC
  LIMIT 1
;

Friday, February 6, 2015

Set ulimit To Increase Concurrent Call On Asterisk.

Increase the number of file descriptors (FDs) ie. “Max number of open files” using ulimit command to allow asterisk to handle more than 200 concurrent calls

To increase FDs permanently, go to /etc/security/limits.conf
root             soft   nofile          20000
root             hard   nofile          25000

Reboot your system and check the limits
#ulimit –n    It returns SOFT limit
#ulimit –n –H   It return HARD limit

You also have to use ‘ulimit –n <number of FDs>’ in asterisk startup script

#vi /etc/init.d/asterisk

                -------

                ---------

                                                ulimit –n 20000

                                                /usr/sbin/asterisk

It is always a good idea to check if your asterisk process is really using the ulimit specified by you or not. You can check that by looking into the process itself.  Check the field ‘Max Open Files’.

                #cat /proc/`pidof asterisk`/limits

Note:  `pidof asterisk` returns PID(Process ID) of asterisk



Two SIP listening ports for single Asterisk

There is no way to make a single instance of Asterisk listen on multiple ports. However, you can use an iptables REDIRECT to achieve the same functionality.
To redirect a single port with iptables:

 iptables -t nat -A PREROUTING -i eth0 -p udp --dport 5062 -j REDIRECT --to-ports 5060
 
 
This example redirects UPD port 5062 to port 5060, which effectively allows Asterisk to listen on both of them.
Remember to save the rule so that it would survive a reboot:


/etc/init.d/iptables save

 

Asterisk Patch To Stop Calling externnotify On VoicemailMain

Go to asterisk source code apps folder then

Patch On app_voicemail.c module:-

Comment run_externnotify(vmu->context, vmu->mailbox, NULL); on vm_execmain() function

Then make and make install your asterisk source.