Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Asterisk 1.8 package

    Scheduled Pinned Locked Moved pfSense Packages
    281 Posts 59 Posters 252.8k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • F
      Fesoj
      last edited by

      There's only asterisk.sh, and this script gets called twice.

      1 Reply Last reply Reply Quote 0
      • D
        doktornotor Banned
        last edited by

        Yeah, so get it fixed in pfSense core. Every damn package out there uses what I already explained.

        1 Reply Last reply Reply Quote 0
        • F
          Fesoj
          last edited by

          Hoops! There was an "asterisk" script withoug the .sh extension…

          1 Reply Last reply Reply Quote 0
          • D
            doktornotor Banned
            last edited by

            Incredible. Won't explain for the fifth time. Pretty much every package out there uses <something>.sh with no problem. If you have issue with something called twice, then fix the code that's calling something twice.

            And - while here… that pfSense core code show grow itself some brain and produce an API for disabling packages. Instead of people hacking code that creates the script on enabling the package and remove it on disabling. rc.conf.local ain't usable for this, perhaps/etc/rc.conf.d/ could.</something>

            1 Reply Last reply Reply Quote 0
            • F
              Fesoj
              last edited by

              I just started a fresh 2.2.5 install (virtual machine) and the default installation starts Asterisk twice as described here:
              https://forum.pfsense.org/index.php?topic=102591.0
              asterisk.sh gets called twice and there are no old installations and there is no single asterisk script in the rc.d dir. A couple of days ago I added a logger() statement in asterisk.sh and the script was indeed called twice, which explains the two instances.

              Tomorrow I'll setup a new machine and then I'll report again. I have about half a dozen 2.2.4 boxes with older installations, so I cannot exclude that there are still asterisk scripts or whatever, like the one I checked about an hour ago.

              1 Reply Last reply Reply Quote 0
              • F
                Fesoj
                last edited by

                Initially asterisk.sh gets called in the background and the .sh loop calls it directly, so a short sleep may or may not solve the problem.

                I am too tired now, but my basic idea is that anything that gets called in the background with start_service(), will not get called subsequently. Should be easy to implement.

                1 Reply Last reply Reply Quote 0
                • D
                  doktornotor Banned
                  last edited by

                  @Fesoj:

                  I am too tired now, but my basic idea is that anything that gets called in the background with start_service(), will not get called subsequently. Should be easy to implement.

                  Kindly post the output of the following (paste to Diagnostics - Command Prompt - PHP execute)

                  
                  require_once("/etc/inc/pkg-utils.inc");
                  $rcfiles = glob(RCFILEPREFIX . "*.sh");
                  if (!$rcfiles)
                          $rcfiles = array();
                  else {
                          $rcfiles = array_flip($rcfiles);
                          if (!$rcfiles)
                                  $rcfiles = array();
                  }
                  if (is_array($config['installedpackages']['package'])) {
                          foreach($config['installedpackages']['package'] as $pkgid => $package) {
                  
                                  $internal_name = get_pkg_internal_name($package);
                                  unset($rcfiles[RCFILEPREFIX . strtolower($internal_name) . ".sh"]);
                          }
                  }
                  
                  var_dump($rcfiles);
                  
                  

                  since whatever you are describing simply doesn't happen with sane configuration. The .sh script just won't run from the $shell = @popen("/bin/sh", "w"); part because it's unset with the

                  
                   unset($rcfiles[RCFILEPREFIX . strtolower($internal_name) . ".sh"]);
                  
                  

                  line.

                  1 Reply Last reply Reply Quote 0
                  • D
                    doktornotor Banned
                    last edited by

                    https://github.com/pfsense/pfsense-packages/pull/1191 should fix whatever is fixable in the package regarding service (re)starts.

                    1 Reply Last reply Reply Quote 0
                    • F
                      Fesoj
                      last edited by

                      Kindly post the output of the following (paste to Diagnostics - Command Prompt - PHP execute)

                      I see this only briefly flashing on the console. Are these messages also written into some file?

                      1 Reply Last reply Reply Quote 0
                      • D
                        doktornotor Banned
                        last edited by

                        Console?! Diagnostics - Command Prompt - PHP execute is not briefly flashing anywhere. Regardless, the PR has been merged.

                        1 Reply Last reply Reply Quote 0
                        • F
                          Fesoj
                          last edited by

                          One can call log_error() to show things on the console, which I used for my tests. I also saw a couple of echos in rc.start_packages, but I did not check where the output is going (probably nowhere, without a web interface). The same would apply to your var_dump() call.

                          I could explicitly call rc.start_packages and rc.stop_packages, but I don't know whether this is equivalent to what happens at boot time. It will take some time before I've studied all the php stuff….

                          1 Reply Last reply Reply Quote 0
                          • D
                            doktornotor Banned
                            last edited by

                            I would suggest installing 0.3.4 before wasting more time here.

                            1 Reply Last reply Reply Quote 0
                            • F
                              Fesoj
                              last edited by

                              Can the Asterisk package meanwhile work as an endpoint for T.38 faxes? No? My custom package does. There's nothing in the GUI that depends on the specific Asterisk version, so why is 1.8 used? No hangup handlers, no named ACLs, no AMI security events, no RESTful interface, but a lot of useless modules. Maybe it is you who should not waste time with Asterisk. Have you figured out meanwhile why a B2BUA makes sense in a firewall?

                              1 Reply Last reply Reply Quote 0
                              • D
                                doktornotor Banned
                                last edited by

                                Dude, I have no clue why are you aiming your rants at me. You can test with 0.3.4 to see whether your "started twice on boot" issue is fixed.

                                1 Reply Last reply Reply Quote 0
                                • F
                                  Fesoj
                                  last edited by

                                  I'd like to suggest a small patch for /usr/local/etc/rc.d/asterisk.sh, actually for the sync_package_asterisk function in /usr/local/pkg/asterisk.inc.

                                  In line 396 in asterisk.inc add

                                  if [ ! -e /var/db/asterisk/astdb ] && [ -e /cf/conf/asterisk/astdb.backup ]; then
                                  	cp /cf/conf/asterisk/astdb.backup /var/db/asterisk/astdb
                                  	chown asterisk:asterisk /var/db/asterisk/astdb
                                  	chmod 0775 /var/db/asterisk/astdb
                                  fi
                                  

                                  Then add after line 408:

                                  	$stop .= "\n\tif [ -e /var/db/asterisk/astdb ]; then\n\t";
                                  	$stop .= "\tcp -f /var/db/asterisk/astdb /cf/conf/asterisk/astdb.backup\n\tfi;"
                                  

                                  The associated patch would be:

                                  396a397,402
                                  > if [ ! -e /var/db/asterisk/astdb ] && [ -e /cf/conf/asterisk/astdb.backup ]; then
                                  > 	cp /cf/conf/asterisk/astdb.backup /var/db/asterisk/astdb
                                  > 	chown asterisk:asterisk /var/db/asterisk/astdb
                                  > 	chmod 0775 /var/db/asterisk/astdb
                                  > fi
                                  > 
                                  402a409,410
                                  > 	$stop .= "\n\tif [ -e /var/db/asterisk/astdb ]; then\n\t";
                                  > 	$stop .= "\tcp -f /var/db/asterisk/astdb /cf/conf/asterisk/astdb.backup\n\tfi;"
                                  
                                  

                                  The additions save and restore the astdb file when Asterisk gets stopped or restarted. For convenience, I selected the /cf/conf/asterisk directory, such that it gets saved with the configuration backup command.

                                  The background of this patch is to make Asterisk work properly when RAM disks are used (Advanced->Miscellaneous). Asterisk itself always tries to use astdb, regardless of whether app_db, or func_db are loaded, and tries to keep track of current registrations across program invocations. Otherwise, phones have to register again before they can be used. Typical registry expiry times are 1h, so this could be a problem in larger installations. At home one would simply restart the phones, I guess.

                                  1 Reply Last reply Reply Quote 0
                                  • C
                                    carlm
                                    last edited by

                                    Asterisk 0.3.4 does not start from GUI

                                    New install of pfSense nanoBSD 2.2.5
                                    Restore last config from 2.2.4, which had Asterisk 0.3.1 installed
                                    Asterisk 0.3.4 gets installed automatically
                                    Asterisk does not start
                                    Asterisk can't be started manually from  Status->Services
                                    Asterisk can be started manually via ssh:
                                      /usr/local/etc/rc.d/asterisk.sh start

                                    Long story short
                                    –-------------------

                                    v0.3.1 asterisk.xml service definition defined rcfile as "asterisk"
                                    v0.3.4 asterisk.xml service definition defines rcfile as "asterisk.sh" : correct
                                    After restoring config where rcfile was "asterisk" and installing v0.3.4 (in that order), config.xml service definition still defines rcfile as "asterisk", i.e., the old service definition isn't updated when v0.3.4 is installed.

                                    Workaround: Edit config.xml manually, changing asterisk rcfile definition from "asterisk" to "asterisk.sh". Then delete /tmp/config.cache.
                                    This workaround shouldn't need to be repeated in the future.

                                    I don't know why config.xml isn't being updated when v0.3.4 is installed.

                                    1 Reply Last reply Reply Quote 0
                                    • D
                                      doktornotor Banned
                                      last edited by

                                      @carlm:

                                      I don't know why config.xml isn't being updated when v0.3.4 is installed.

                                      Because the install code is cached in various broken ways… General hint: Do not upgrade packages on pfSense <2.3; uninstall + reinstall the new version.

                                      1 Reply Last reply Reply Quote 0
                                      • N
                                        norbi771
                                        last edited by

                                        Hi,
                                        Is there any HOWTO for newbie telling how to start using the asterisk on pfsense?
                                        I installed the package and started it, but there are a lot of config files …

                                        I am complete newbie in the ASTERISK, I am just a user of PFSense. All VoIP phones I use connect to external VoIP provider, which is not very optimal.
                                        I would like to test asterisk and maybe in the feature instead of configure my phones to use external provider I would go for having VoIP PBX in my LAN.
                                        But have no idea where to start.

                                        Please give me some advice.

                                        Thanks

                                        1 Reply Last reply Reply Quote 0
                                        • F
                                          Fesoj
                                          last edited by

                                          You'll have to deal mostly with sip.conf and extensions.conf, only. Maybe you want to play a bit with modules.conf.

                                          I'd recommend
                                          http://www.asteriskdocs.org/en/2nd_Edition/asterisk-book-html-chunk/index.html
                                          to start with and I'd set up a virtual machine for initial explorations and not use the pfSense package.

                                          The Asterisk package for pfSense does not really have a GUI, you need to edit the configuration files manually, but the benefit is that this is much more flexible.

                                          1 Reply Last reply Reply Quote 0
                                          • R
                                            routerfreak
                                            last edited by

                                            Hi Marcello!
                                            First of all I want to thank you for this nice pfSense package. I installed it on the latest release of nanoBSD based 64Bit pfSense (embedded on a 4GB USB flash drive).

                                            Currently 2 sip trunks were configured, asterisk is using the also installed siproxd (package version 1.0.9).

                                            Although everything is working fine, there are warning messages in the asterisk log:

                                            [2.2.6-RELEASE][admin@pfsense.sm.art]/root: asterisk -r
                                            Asterisk 1.8.32.1, Copyright (C) 1999 - 2013 Digium, Inc. and others.
                                            Created by Mark Spencer <markster@digium.com>
                                            Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
                                            This is free software, with components licensed under the GNU General Public
                                            License version 2 and other licenses; you are welcome to redistribute it under
                                            certain conditions. Type 'core show license' for details.
                                            =========================================================================
                                            Connected to Asterisk 1.8.32.1 currently running on pfsense (pid = 97717)
                                            [Jan 29 17:18:36] WARNING[-1]: acl.c:719 ast_ouraddrfor: Cannot connect
                                            [Jan 29 17:18:36] WARNING[-1]: acl.c:719 ast_ouraddrfor: Cannot connect
                                            [Jan 29 17:26:21] WARNING[-1]: acl.c:719 ast_ouraddrfor: Cannot connect
                                            [Jan 29 17:26:21] WARNING[-1]: acl.c:719 ast_ouraddrfor: Cannot connect
                                            [Jan 29 17:34:07] WARNING[-1]: acl.c:719 ast_ouraddrfor: Cannot connect
                                            [Jan 29 17:34:07] WARNING[-1]: acl.c:719 ast_ouraddrfor: Cannot connect
                                            [Jan 29 17:41:52] WARNING[-1]: acl.c:719 ast_ouraddrfor: Cannot connect
                                            [Jan 29 17:41:52] WARNING[-1]: acl.c:719 ast_ouraddrfor: Cannot connect
                                            [Jan 29 17:49:37] WARNING[-1]: acl.c:719 ast_ouraddrfor: Cannot connect
                                            [Jan 29 17:49:37] WARNING[-1]: acl.c:719 ast_ouraddrfor: Cannot connect
                                            [Jan 29 17:57:22] WARNING[-1]: acl.c:719 ast_ouraddrfor: Cannot connect
                                            [Jan 29 17:57:22] WARNING[-1]: acl.c:719 ast_ouraddrfor: Cannot connect
                                            [Jan 29 18:05:07] WARNING[-1]: acl.c:719 ast_ouraddrfor: Cannot connect
                                            [Jan 29 18:05:07] WARNING[-1]: acl.c:719 ast_ouraddrfor: Cannot connect
                                            [Jan 29 18:12:52] WARNING[-1]: acl.c:719 ast_ouraddrfor: Cannot connect
                                            [Jan 29 18:12:52] WARNING[-1]: acl.c:719 ast_ouraddrfor: Cannot connect
                                            [Jan 29 18:20:37] WARNING[-1]: acl.c:719 ast_ouraddrfor: Cannot connect
                                            [Jan 29 18:20:37] WARNING[-1]: acl.c:719 ast_ouraddrfor: Cannot connect
                                            [Jan 29 18:28:22] WARNING[-1]: acl.c:719 ast_ouraddrfor: Cannot connect
                                            [Jan 29 18:28:22] WARNING[-1]: acl.c:719 ast_ouraddrfor: Cannot connect
                                            pfsense*CLI></markster@digium.com>
                                            

                                            Issue summary:

                                            • Annoying warning message: WARNING[-1]: acl.c:719 ast_ouraddrfor: Cannot connect

                                            • Exactly one message every 585 seconds for every configured sip trunk! Very mysterious fact.

                                            • No IP traffic to & from asterisk during this time! (checked with wireshark and pfsense packet capturing)

                                            • Is spamming the logfile over the time.

                                            • Everything else is working perfect: incoming and outgoing calls are ok.

                                            Does anybody also have this annoying message? Or any hints for me for further debugging? The 585 seconds must be hardcoded anywhere.

                                            Thanks in advance.

                                            Router Hardware: Supermicro A1SRi-2758F, 2x Kingston KVR16LSE11-4KF (4GB DDR3L SODIMM-1600 ECC),
                                            Router OS: pfSense-2.4.3-RELEASE, Packages: Cron 0.3.7_2, Open-VM-Tools 10.1.0, siproxd 1.1.3_3

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.