public function soapServer($request, $response)
 {/*{{{*/
     $postdata = file_get_contents("php://input");
     $function = 'soapServer';
     $this->ioLogRecorder->addLog(XDateTime::now()->toString()." service [{$function}] ".$this->ioLogRecorder->format2SimpleLog($postdata));
     $configs = ProviderConfigFactory::getProviderAppConfigs(PhoneConference::SPTYPE_HUAWEI, TeleConfProvider::APPTYPE_CONF);
     $callbackUrl = $configs['callbackUrl'];
     $server = new SoapServer(null, array('uri' => 'HuaweiConfCallback','location'=>$callbackUrl));
     $server->setClass('HuaweiTeleConfApi');
     try
     {
         $lockName = $this->getLockerName($postdata);
         $cacher= DAL::get()->getCache(Cacher::CACHETYPE_LOCKER);
         $locker  = LockUtil::factory(LockUtil::LOCK_TYPE_MEMCACHE, array('memcache' => $cacher));
         $locker->getLock($lockName);
         $server->handle();
         $locker->releaseLock($lockName);
     }
     catch(Exception $ex)
     {
         $locker->releaseLock($lockName);
     }
     header("HTTP/1.1 202 Accepted");
     header("Content-Type: text/xml;charset=UTF-8");
     return parent::DIRECT_OUTPUT;
 }/*}}}*/
 public function setProviderConfigs($request, $response)
 {
     if (!$this->curOperator->isOperatorAdmin()) {
         throw new TelConfException('抱歉,此座席无权限查看!');
     }
     $spType = $request->spType;
     $appType = $request->appType;
     DBC::requireNotEmptyString($spType, 'spType不能为空');
     DBC::requireNotEmptyString($appType, 'appType不能为空');
     $response->callcenterProvider = DAL::get()->find_by_sptype('teleconfprovider', $spType);
     $providerConfig = ProviderConfigFactory::createProviderConfig($spType, $appType);
     $response->appUrlList = $providerConfig->returnAppUrlList();
 }
 /**
  * splitRecordUrl 加密录音url 
  * 
  * @access private
  * @return void
  */
 private function splitRecordUrl($url)
 {/*{{{*/
     $configs = ProviderConfigFactory::getProviderAppConfigs(CallCenterApiFaculty::SPTYPE_TINET, TeleConfProvider::APPTYPE_CALLCENTER);
     $enterpriseId = $configs['enterpriseId'];
     $userName = $configs['username'];
     $pwd = $configs['pwd'];
     $seed = rand(0, 10000);
     $pwd = md5(md5($pwd).$seed);
     return $url."?enterpriseId=".$enterpriseId."&userName="******"&pwd=".$pwd."&seed=".$seed;
 }/*}}}*/
 public function setProviderConfigs($request, $response)
 {/*{{{*/
     DBC::requireTrue(in_array($this->curUser->name,array('byteh','miaoqing1983','zhb110good')),'没有权限,亲!');
     $spType = $request->spType;
     $appType = $request->appType;
     DBC::requireNotEmptyString($spType, "spType不能为空");
     DBC::requireNotEmptyString($appType, "appType不能为空");
     $response->teleProvider = DAL::get()->find_by_sptype_and_apptype('teleconfprovider', $spType, $appType);
     $providerConfig = ProviderConfigFactory::createProviderConfig($spType, $appType);
     $response->appUrlList = $providerConfig->returnAppUrlList();
 }/*}}}*/