Today I figured out how to add things to /etc/asterisk/extensions.conf on a Yeastar MyPBX SoHo.  This also works on their standard, pro and U100 models.  The problem – if you just modify anything in /etc/asterisk/*.conf it will just be overwritten the first time you do anything in the web GUI or if the system reboots.

The solution:

In the directory /persistent/custom-cfg, you can create files with $filename_custom.conf – so in this example, I wanted to add some things to extensions.conf.  So, I created /persistent/custom-cfg/extensions_custom.conf.  In that file, I added my contexts, saved the file, then went and made a meaningless change in the GUI.  Yippee!  I see my changes reflected now in /etc/asterisk/extensions.conf.

 

Problem #2 – I wanted to make the system make some routine calls twice a day.  This requires one of either:

  1. Someone making those calls manually
  2. A scheduled script running (cron)
  3. A remote scheduled script logging in via SSH somehow and invoking those commands

The reason #3 above might have been necessary is because I noticed this MyPBX SoHo doesn’t have crond running.  (The Linux scheduler)

 

I didn’t find very much information — actually, I didn’t find ANY information — while searching online for how to enable this.  So, I started digging through /etc/rc.local — this file is executed upon bootup any time the system starts.  Unfortunately, you cannot modify /etc/rc.local.  Fortunately, I found that part of /etc/rc.local will execute anything you put in to the file /persistent/add.sh  — yippee!  So, I created that script, and in it, I put:

#!/bin/sh
echo ‘0 8 * * Mon-Fri /persistent/calltest.sh’ >/var/spool/cron/crontabs/root
echo ‘0 17 * * Mon-Fri /persistent/calltest.sh’ >>/var/spool/cron/crontabs/root
/bin/crond

The contents of calltest.sh are outside the scope of this document.  IMPORTANT – the last line in add.sh starts the cron daemon.

 

I don’t know why Yeastar doesn’t enable cron on these servers, but whatever.  This will get it going.  I’m happy, and so is my customer.