anchor.diff:            Additional command line arguments to pass to Asterisk.
           '';
         };
  +      package = mkOption {
  +        type = types.package;
  +        default = pkgs.asterisk;
  +        defaultText = "pkgs.asterisk";
  +        description = "The Asterisk package to use.";
  +      };
       };
     };
   
     config = mkIf cfg.enable {
  -    environment.systemPackages = [ pkgs.asterisk ];
  +    environment.systemPackages = [ cfg.package ];
   
       environment.etc.asterisk.source = asteriskEtc;
   
  
positive.code:   allConfFiles =
      cfg.confFiles //
      builtins.listToAttrs (map (x: { name = x;
                                      value = builtins.readFile (pkgs.asterisk + "/etc/asterisk/" + x); })
                                defaultConfFiles);
  
    asteriskEtc = pkgs.stdenv.mkDerivation
  
negative.code:             # FIXME: This doesn't account for arguments with spaces
              argString = concatStringsSep " " cfg.extraArguments;
            in
            "${cfg.package}/bin/asterisk -U ${asteriskUser} -C /etc/asterisk/asterisk.conf ${argString} -F";
          ExecReload = ''${cfg.package}/bin/asterisk -x "core reload"
            '';
          Type = "forking";
          PIDFile = "/var/run/asterisk/asterisk.pid";
  