Пример #1
0
 public static function set($autoattendant)
 {
     $xml = FreeSwitch::setSection('autoattendant', $autoattendant['auto_attendant_id']);
     media::generateConfig($autoattendant, $xml);
     if (!empty($autoattendant['extension_context_id'])) {
         $xml->setAttributeValue('', 'digit-len', $autoattendant['extension_digits']);
     }
     $xml->setAttributeValue('', 'timeout', $autoattendant['timeout'] * 1000);
     $xml->setAttributeValue('', 'inter-digit-timeout', $autoattendant['digit_timeout'] * 1000);
     if (!empty($autoattendant['registry']['max-failures'])) {
         $xml->setAttributeValue('', 'max-failures', $autoattendant['registry']['max-failures']);
     } else {
         $xml->setAttributeValue('', 'max-failures', '3');
     }
     $xml->deleteChildren();
     if (!empty($autoattendant['extension_context_id'])) {
         $xml->update(sprintf('/entry[@action="menu-exec-app"][@name="catch_all"][@digits="\\/^([0-9]{%s})$\\/"][@param="execute_extension $1 XML context_%s"]', $autoattendant['extension_digits'], $autoattendant['extension_context_id']));
     }
     foreach ($autoattendant['keys'] as $key) {
         if (!isset($key['digits'])) {
             continue;
         }
         if (!($transferString = fs::getTransferToNumber($key['number_id']))) {
             continue;
         }
         $xml->update(sprintf('/entry[@action="menu-exec-app"][@digits="%s"][@param="transfer %s"]', $key['digits'], $transferString));
     }
 }