示例#1
0
文件: configure.php 项目: swk/bluebox
 public function postInstall()
 {
     parent::postInstall();
     $featurecodes = array(array('IVR Return', '', '<condition field="${ivr_path}" expression="(.*)-(.*)-.*+$" break="never">\\n\\t<action application="set" data="ivr_path=$1"/>\\n\\t<action application="transfer" data="$2"/>\\n\\t<anti-action application="set" data="ivr_path="/>\\t<anti-action application="transfer" data="${vm-operator-extension}"/>\\n</condition>'), array('Redial', 'Call the person you most recently called', '<action application="transfer" data="\\${hash(select/\\${domain_name}-last_dial/\\${caller_id_number})}"/>'), array('Call Return', '', '<action application="transfer" data="\\${hash(select/\\${domain_name}-call_return/\\${caller_id_number})}"/>'), array('Voicemail', 'Listen to voicemail for any extension (requires pin)', '<action application="answer"/>\\n<action application="sleep" data="1000"/>\\n<action application="voicemail" data="check default voicemail_%ACCOUNT_ID%"/>'), array('Voicemail Quickauth', 'Listen to voicemail for your extension (requires pin)', '<condition field="${user_data(${sip_from_user}@${sip_from_host} param mwi-account)}" expression="^(.+)@(.+)$">\\n\\t<action application="answer"/>\\n\\t<action application="sleep" data="1000"/>\\n\\t<action application="voicemail" data="check default \\$2 \\$1"/>\\n\\t<action application="hangup"/>\\n\\t<anti-action application="answer"/>\\n\\t<anti-action application="sleep" data="1000"/>\\n\\t<anti-action application="voicemail" data="check default voicemail_%ACCOUNT_ID%"/>\\n\\t<anti-action application="hangup"/>\\n</condition>'), array('Voicemail NoAuth', 'Listen to voicemail for your extension (does not require pin)', '<condition field="${user_data(${sip_from_user}@${sip_from_host} param mwi-account)}" expression="^(.+)@(.+)$">\\n\\t<action application="answer"/>\\n\\t<action application="sleep" data="1000"/>\\n\\t<action application="set" data="voicemail_authorized=\\${sip_authorized}"/>\\n\\t<action application="voicemail" data="check default \\$2 \\$1"/>\\n\\t<action application="hangup"/>\\n\\t<anti-action application="answer"/>\\n\\t<anti-action application="sleep" data="1000"/>\\n\\t<anti-action application="voicemail" data="check default voicemail_%ACCOUNT_ID%"/>\\n\\t<anti-action application="hangup"/>\\n</condition>'), array('Park Call', '', '<action application="answer"/>\\n<action application="sleep" data="1000"/>\\n<action application="valet_park" data="account_%ACCOUNT_ID% auto in 1 10"/>'), array('Unpark', '', '<action application="answer"/>\\n<action application="sleep" data="1000"/>\\n<action application="valet_park" data="account_%ACCOUNT_ID% ask 1 10 10000 ivr/ivr-enter_ext_pound.wav"/>\\n<action application="hangup"/>'), array('Echo test', '', '<action application="answer"/>\\n<action application="echo"/>'), array('Delayed Echo Test', '', '<action application="answer"/>\\n<action application="delay_echo" data="1000"/>'), array('Tone Test', 'Play a 2600hz Tone until the caller hangs up', '<action application="answer"/>\\n<action application="playback" data="tone_stream://%(1000,0,2600);loops=-1"/>'), array('Hold Music', 'Play Music-on-hold until the caller hangs up', '<action application="answer"/>\\n<action application="playback" data="\\$\\${hold_music}"/>'));
     foreach ($featurecodes as $fc) {
         $cfc = new CustomFeatureCode();
         $cfc['name'] = $fc[0];
         $cfc['description'] = $fc[1];
         $cfc['dialplan_code'] = $fc[2];
         $cfc->save();
     }
 }
示例#2
0
    public function postUp()
    {
        // This array contains:
        // 1. The original name, pre-featurecode-1.2
        // 2. The display name (used in drop-down)
        // 3. Description (not used, I think?)
        // 4. The dialplan.
        $featurecodes = array(array('ivr_return', 'IVR Return', '', '
<condition field="${ivr_path}" expression="(.*)-(.*)-.*+$" break="never">
	<action application="set" data="ivr_path=$1"/>
	<action application="transfer" data="$2"/>
	<anti-action application="set" data="ivr_path="/>
	<anti-action application="transfer" data="${vm-operator-extension}"/>
</condition>'), array('redial', 'Redial', 'Call the person you most recently called', '<action application="transfer" data="${hash(select/${domain_name}-last_dial/${caller_id_number})}"/>'), array('call_return', 'Call Return', '', '<action application="transfer" data="${hash(select/${domain_name}-call_return/${caller_id_number})}"/>'), array('voicemail', 'Voicemail', 'Listen to voicemail for any extension (requires pin)', '
<action application="answer"/>
<action application="sleep" data="1000"/>
<action application="voicemail" data="check default voicemail_%ACCOUNT_ID%"/>'), array('voicemail_quickauth', 'Voicemail for calling extension', 'Listen to voicemail for your extension (requires pin)', '
<condition field="${user_data(${sip_from_user}@${sip_from_host} param mwi-account)}" expression="^(.+)@(.+)$">
	<action application="answer"/>
	<action application="sleep" data="1000"/>
	<action application="voicemail" data="check default $2 $1"/>
	<action application="hangup"/>
	<anti-action application="answer"/>
	<anti-action application="sleep" data="1000"/>
	<anti-action application="voicemail" data="check default voicemail_%ACCOUNT_ID%"/>
	<anti-action application="hangup"/>
</condition>'), array('voicemail_noauth', 'Voicemail Preauthenticated', 'Listen to voicemail for your extension (does not require pin)', '
<condition field="${user_data(${sip_from_user}@${sip_from_host} param mwi-account)}" expression="^(.+)@(.+)$">
	<action application="answer"/>
	<action application="sleep" data="1000"/>
	<action application="set" data="voicemail_authorized=${sip_authorized}"/>
	<action application="voicemail" data="check default $2 $1"/>
	<action application="hangup"/>
	<anti-action application="answer"/>
	<anti-action application="sleep" data="1000"/>
	<anti-action application="voicemail" data="check default voicemail_%ACCOUNT_ID%"/>
	<anti-action application="hangup"/>
</condition>'), array('park', 'Park Call', '', '
<action application="answer"/>
<action application="sleep" data="1000"/>
<action application="valet_park" data="account_%ACCOUNT_ID% auto in 1 10"/>'), array('unpark', 'Unpark', '', '
<action application="answer"/>
<action application="sleep" data="1000"/>
<action application="valet_park" data="account_%ACCOUNT_ID% ask 1 10 10000 ivr/ivr-enter_ext_pound.wav"/>
<action application="hangup"/>'), array('echo', 'Echo test', 'Echos back anything said by caller immediately', '
<action application="answer"/>
<action application="echo"/>'), array('delay_echo', 'Delayed Echo Test', 'Echos back anything said by caller, with 1 second delay', '
<action application="answer"/>
<action application="delay_echo" data="1000"/>'), array('tone_test', 'Tone Test', 'Play a 2600hz Tone until the caller hangs up', '
<action application="answer"/>
<action application="playback" data="tone_stream://%(1000,0,2600);loops=-1"/>'), array('hold_music', 'Hold Music', 'Play Music-on-hold until the caller hangs up', '
<action application="answer"/>
<action application="playback" data="$${hold_music}"/>'), array('eavesdrop', 'Eavesdrop', 'Listen in on a currently running call', '
<action application="answer"/>
<action application="eavesdrop" data="${hash(select/spymap/$1)}"/>'), array('uuid_standby', 'UUID Standby', '', '
<condition field="destination_number" expression="(.*)">
	<action application="set" data="res=${callcenter_config(agent set uuid agent_${agent_id} \'${uuid}\')}" />
	<action application="set" data="res=${callcenter_config(agent set type agent_${agent_id} \'uuid-standby\')}" />
	<action application="set" data="res=${callcenter_config(agent set status agent_${agent_id} \'Available (On Demand)\')}" />
	<action application="set" data="res=${callcenter_config(agent set state agent_${agent_id} \'Waiting\')}" />
	<action application="set" data="cc_warning_tone=tone_stream://%(200,0,500,600,700)"/>
	<action application="answer" />
	<action application="playback" data="$${hold_music}"/>
	<action application="transfer" data="$num"/>
</condition>'), array('agent_login', 'Agent Login', 'Mark caller as available for calls', '
<action application="set" data="res=${callcenter_config(agent set status agent_${agent_id} \'Available\')}" />
<action application="answer" data=""/>
<action application="sleep" data="500"/>
<action application="playback" data="ivr/ivr-you_are_now_logged_in.wav"/>'), array('agent_logout', 'Agent Logout', 'Mark caller as unavailable for calls', '
<action application="set" data="res=${callcenter_config(agent set status agent_${agent_id} \'Logged Out\')}" />
<action application="answer" data=""/>
<action application="sleep" data="500"/>
<action application="playback" data="ivr/ivr-you_are_now_logged_out.wav"/>'));
        foreach ($featurecodes as &$fc) {
            $cfc = new CustomFeatureCode();
            $cfc['name'] = $fc[1];
            $cfc['description'] = $fc[2];
            $cfc['dialplan_code'] = $fc[3];
            $cfc->save();
            $map[$fc[0]] = $cfc['custom_feature_code_id'];
        }
        foreach (Doctrine::getTable('FeatureCode')->findAll() as $fc) {
            if (array_key_exists($fc['registry']['feature'], $map)) {
                $fc['custom_feature_code_id'] = $map[$fc['registry']['feature']];
                $fc->save();
            }
        }
    }