Пример #1
0
 /**
  * Forms PDU.
  * @access public
  * @param int $cmd Command id
  * @param array $pars Parameters
  * @return string PDU
  */
 public function form_pdu($cmd, $pars = array())
 {
     $pdu = null;
     switch ($cmd) {
         case BIND_TX:
         case BIND_RX:
             $pdu = pack('a' . (strlen($this->login) + 1) . 'a' . (strlen($this->pass) + 1) . 'a' . (strlen($this->system_type) + 1) . 'CCCa' . (strlen($this->address_range) + 1), $this->login, $this->pass, $this->system_type, 0x34, $this->addr_ton, $this->addr_npi, $this->address_range);
             $this->sqn++;
             break;
         case SUBMIT_SM:
             $pdu = pack('a' . (strlen($pars['stype']) + 1) . 'CCa' . (strlen($pars['src']) + 1) . 'CCa' . (strlen($pars['dst']) + 1) . 'CCCa' . (strlen($pars['sdt']) + 1) . 'a' . (strlen($pars['valid']) + 1) . 'CCCCC', $pars['stype'], $pars['st'], $pars['sn'], $pars['src'], $pars['dt'], $pars['dn'], $pars['dst'], $pars['esm'], $pars['proto'], $pars['prior'], $pars['sdt'], $pars['valid'], $pars['deliv'], $pars['repl'], $pars['dc'], $pars['msgid'], strlen($pars['text'])) . $pars['text'];
             break;
         case ENQUIRELINK:
         case UNBIND:
             $this->sqn++;
             break;
         case DELIVER_SM | ACK:
             $pdu = pack('a2', '0');
             break;
     }
     if (isset($pars['sqn'])) {
         $sqn = $pars['sqn'];
     } else {
         $sqn = $this->sqn;
     }
     return NIMF_esme::form_pdu_header($cmd, strlen($pdu), $sqn) . $pdu;
 }