⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 h323pdu.cxx

📁 mgcp协议源代码。支持多种编码:g711
💻 CXX
📖 第 1 页 / 共 3 页
字号:
  return cap;}H245_OpenLogicalChannel &      H323ControlPDU::BuildOpenLogicalChannel(unsigned forwardLogicalChannelNumber){  H245_OpenLogicalChannel & open = Build(H245_RequestMessage::e_openLogicalChannel);  open.m_forwardLogicalChannelNumber = forwardLogicalChannelNumber;  return open;}H245_RequestChannelClose &      H323ControlPDU::BuildRequestChannelClose(unsigned channelNumber,                                               unsigned reason){  H245_RequestChannelClose & rcc = Build(H245_RequestMessage::e_requestChannelClose);  rcc.m_forwardLogicalChannelNumber = channelNumber;  rcc.IncludeOptionalField(H245_RequestChannelClose::e_reason);  rcc.m_reason.SetTag(reason);  return rcc;}H245_CloseLogicalChannel &      H323ControlPDU::BuildCloseLogicalChannel(unsigned channelNumber){  H245_CloseLogicalChannel & clc = Build(H245_RequestMessage::e_closeLogicalChannel);  clc.m_forwardLogicalChannelNumber = channelNumber;  clc.m_source.SetTag(H245_CloseLogicalChannel_source::e_lcse);  return clc;}H245_OpenLogicalChannelAck &      H323ControlPDU::BuildOpenLogicalChannelAck(unsigned channelNumber){  H245_OpenLogicalChannelAck & ack = Build(H245_ResponseMessage::e_openLogicalChannelAck);  ack.m_forwardLogicalChannelNumber = channelNumber;  return ack;}H245_OpenLogicalChannelReject &      H323ControlPDU::BuildOpenLogicalChannelReject(unsigned channelNumber,                                                    unsigned cause){  H245_OpenLogicalChannelReject & reject = Build(H245_ResponseMessage::e_openLogicalChannelReject);  reject.m_forwardLogicalChannelNumber = channelNumber;  reject.m_cause.SetTag(cause);  return reject;}H245_OpenLogicalChannelConfirm &      H323ControlPDU::BuildOpenLogicalChannelConfirm(unsigned channelNumber){  H245_OpenLogicalChannelConfirm & chan = Build(H245_IndicationMessage::e_openLogicalChannelConfirm);  chan.m_forwardLogicalChannelNumber = channelNumber;  return chan;}H245_CloseLogicalChannelAck &      H323ControlPDU::BuildCloseLogicalChannelAck(unsigned channelNumber){  H245_CloseLogicalChannelAck & chan = Build(H245_ResponseMessage::e_closeLogicalChannelAck);  chan.m_forwardLogicalChannelNumber = channelNumber;  return chan;}H245_RequestChannelCloseAck &      H323ControlPDU::BuildRequestChannelCloseAck(unsigned channelNumber){  H245_RequestChannelCloseAck & rcca = Build(H245_ResponseMessage::e_requestChannelCloseAck);  rcca.m_forwardLogicalChannelNumber = channelNumber;  return rcca;}H245_RequestChannelCloseReject &      H323ControlPDU::BuildRequestChannelCloseReject(unsigned channelNumber){  H245_RequestChannelCloseReject & rccr = Build(H245_ResponseMessage::e_requestChannelCloseReject);  rccr.m_forwardLogicalChannelNumber = channelNumber;  return rccr;}H245_RequestChannelCloseRelease &      H323ControlPDU::BuildRequestChannelCloseRelease(unsigned channelNumber){  H245_RequestChannelCloseRelease & rccr = Build(H245_IndicationMessage::e_requestChannelCloseRelease);  rccr.m_forwardLogicalChannelNumber = channelNumber;  return rccr;}H245_RequestMode & H323ControlPDU::BuildRequestMode(unsigned sequenceNumber){  H245_RequestMode & rm = Build(H245_RequestMessage::e_requestMode);  rm.m_sequenceNumber = sequenceNumber;  return rm;}H245_RequestModeAck & H323ControlPDU::BuildRequestModeAck(unsigned sequenceNumber,                                                          unsigned response){  H245_RequestModeAck & ack = Build(H245_ResponseMessage::e_requestModeAck);  ack.m_sequenceNumber = sequenceNumber;  ack.m_response.SetTag(response);  return ack;}H245_RequestModeReject & H323ControlPDU::BuildRequestModeReject(unsigned sequenceNumber,                                                                unsigned cause){  H245_RequestModeReject & reject = Build(H245_ResponseMessage::e_requestModeReject);  reject.m_sequenceNumber = sequenceNumber;  reject.m_cause.SetTag(cause);  return reject;}H245_RoundTripDelayRequest &      H323ControlPDU::BuildRoundTripDelayRequest(unsigned sequenceNumber){  H245_RoundTripDelayRequest & req = Build(H245_RequestMessage::e_roundTripDelayRequest);  req.m_sequenceNumber = sequenceNumber;  return req;}H245_RoundTripDelayResponse &      H323ControlPDU::BuildRoundTripDelayResponse(unsigned sequenceNumber){  H245_RoundTripDelayResponse & resp = Build(H245_ResponseMessage::e_roundTripDelayResponse);  resp.m_sequenceNumber = sequenceNumber;  return resp;}H245_UserInputIndication &      H323ControlPDU::BuildUserInputIndication(const PString & value){  H245_UserInputIndication & ind = Build(H245_IndicationMessage::e_userInput);  ind.SetTag(H245_UserInputIndication::e_alphanumeric);  (PASN_GeneralString &)ind = value;  return ind;}H245_UserInputIndication & H323ControlPDU::BuildUserInputIndication(char tone,                                                                    unsigned duration,                                                                    unsigned logicalChannel,                                                                    unsigned rtpTimestamp){  H245_UserInputIndication & ind = Build(H245_IndicationMessage::e_userInput);  ind.SetTag(H245_UserInputIndication::e_signal);  H245_UserInputIndication_signal & sig = ind;  sig.m_signalType.SetValue(tone);  if (duration > 0) {    sig.IncludeOptionalField(H245_UserInputIndication_signal::e_duration);    sig.m_duration = duration;  }  if (logicalChannel > 0) {    sig.IncludeOptionalField(H245_UserInputIndication_signal::e_rtp);    sig.m_rtp.m_logicalChannelNumber = logicalChannel;    sig.m_rtp.m_timestamp = rtpTimestamp;  }  return ind;}H245_FunctionNotUnderstood &      H323ControlPDU::BuildFunctionNotUnderstood(const H323ControlPDU & pdu){  H245_FunctionNotUnderstood & fnu = Build(H245_IndicationMessage::e_functionNotUnderstood);  switch (pdu.GetTag()) {    case H245_MultimediaSystemControlMessage::e_request :      fnu.SetTag(H245_FunctionNotUnderstood::e_request);      (H245_RequestMessage &)fnu = (const H245_RequestMessage &)pdu;      break;    case H245_MultimediaSystemControlMessage::e_response :      fnu.SetTag(H245_FunctionNotUnderstood::e_response);      (H245_ResponseMessage &)fnu = (const H245_ResponseMessage &)pdu;      break;    case H245_MultimediaSystemControlMessage::e_command :      fnu.SetTag(H245_FunctionNotUnderstood::e_command);      (H245_CommandMessage &)fnu = (const H245_CommandMessage &)pdu;      break;  }  return fnu;}H245_EndSessionCommand & H323ControlPDU::BuildEndSessionCommand(unsigned reason){  H245_EndSessionCommand & end = Build(H245_CommandMessage::e_endSessionCommand);  end.SetTag(reason);  return end;}/////////////////////////////////////////////////////////////////////////////PString H323GetAliasAddressString(const H225_AliasAddress & alias){  switch (alias.GetTag()) {    case H225_AliasAddress::e_e164 :    case H225_AliasAddress::e_url_ID :    case H225_AliasAddress::e_email_ID :      return (const PASN_IA5String &)alias;    case H225_AliasAddress::e_h323_ID :      return (const PASN_BMPString &)alias;    case H225_AliasAddress::e_transportID :      return H323TransportAddress(alias);    case H225_AliasAddress::e_partyNumber :    {      const H225_PartyNumber & party = alias;      switch (party.GetTag()) {        case H225_PartyNumber::e_publicNumber :        {          const H225_PublicPartyNumber & number = party;          return "PublicParty:" + (PString)number.m_publicNumberDigits;        }        case H225_PartyNumber::e_privateNumber :        {          const H225_PrivatePartyNumber & number = party;          return "PrivateParty:" + (PString)number.m_privateNumberDigits;        }        case H225_PartyNumber::e_dataPartyNumber :        case H225_PartyNumber::e_telexPartyNumber :        case H225_PartyNumber::e_nationalStandardPartyNumber :          return (const H225_NumberDigits &)party;      }      break;    }    default :      break;  }  return PString();}/////////////////////////////////////////////////////////////////////////////H225_GatekeeperRequest & H323RasPDU::BuildGatekeeperRequest(unsigned seqNum){  SetTag(e_gatekeeperRequest);  H225_GatekeeperRequest & grq = *this;  grq.m_requestSeqNum = seqNum;  grq.m_protocolIdentifier.SetValue(H225_ProtocolID);  return grq;}H225_RegistrationRequest & H323RasPDU::BuildRegistrationRequest(unsigned seqNum){  SetTag(e_registrationRequest);  H225_RegistrationRequest & rrq = *this;  rrq.m_requestSeqNum = seqNum;  rrq.m_protocolIdentifier.SetValue(H225_ProtocolID);  return rrq;}H225_UnregistrationRequest & H323RasPDU::BuildUnregistrationRequest(unsigned seqNum){  SetTag(e_unregistrationRequest);  H225_UnregistrationRequest & urq = *this;  urq.m_requestSeqNum = seqNum;  return urq;}H225_UnregistrationConfirm & H323RasPDU::BuildUnregistrationConfirm(unsigned seqNum){  SetTag(e_unregistrationConfirm);  H225_UnregistrationConfirm & ucf = *this;  ucf.m_requestSeqNum = seqNum;  return ucf;}H225_LocationRequest & H323RasPDU::BuildLocationRequest(unsigned seqNum){  SetTag(e_locationRequest);  H225_LocationRequest & lrq = *this;  lrq.m_requestSeqNum = seqNum;  return lrq;}H225_AdmissionRequest & H323RasPDU::BuildAdmissionRequest(unsigned seqNum){  SetTag(e_admissionRequest);  H225_AdmissionRequest & arq = *this;  arq.m_requestSeqNum = seqNum;  return arq;}H225_DisengageRequest & H323RasPDU::BuildDisengageRequest(unsigned seqNum){  SetTag(e_disengageRequest);  H225_DisengageRequest & drq = *this;  drq.m_requestSeqNum = seqNum;  return drq;}H225_DisengageConfirm & H323RasPDU::BuildDisengageConfirm(unsigned seqNum){  SetTag(e_disengageConfirm);  H225_DisengageConfirm & dcf = *this;  dcf.m_requestSeqNum = seqNum;  return dcf;}H225_BandwidthRequest & H323RasPDU::BuildBandwidthRequest(unsigned seqNum){  SetTag(e_bandwidthRequest);  H225_BandwidthRequest & brq = *this;  brq.m_requestSeqNum = seqNum;  return brq;}H225_BandwidthConfirm & H323RasPDU::BuildBandwidthConfirm(unsigned seqNum, unsigned bandWidth){  SetTag(e_bandwidthConfirm);  H225_BandwidthConfirm & bcf = *this;  bcf.m_requestSeqNum = seqNum;  bcf.m_bandWidth = bandWidth;  return bcf;}H225_BandwidthReject & H323RasPDU::BuildBandwidthReject(unsigned seqNum, unsigned reason){  SetTag(e_bandwidthReject);  H225_BandwidthReject & brj = *this;  brj.m_requestSeqNum = seqNum;  brj.m_rejectReason.SetTag(reason);  return brj;}H225_InfoRequestResponse & H323RasPDU::BuildInfoRequestResponse(unsigned seqNum){  SetTag(e_infoRequestResponse);  H225_InfoRequestResponse & irr = *this;  irr.m_requestSeqNum = seqNum;  return irr;}H225_UnknownMessageResponse & H323RasPDU::BuildUnknownMessageResponse(unsigned seqNum){  SetTag(e_unknownMessageResponse);  H225_UnknownMessageResponse & umr = *this;  umr.m_requestSeqNum = seqNum;  return umr;}BOOL H323RasPDU::Read(H323Transport & transport){  PPER_Stream strm;  if (!transport.ReadPDU(strm)) {    PTRACE(1, "H225RAS\tRead error: " << transport.GetErrorText());    return FALSE;  }  BOOL ok = Decode(strm);  if (!ok) {    PTRACE(1, "H225RAS\tRead error: PER decode failure");  }#if PTRACING  if (PTrace::CanTrace(4))    PTRACE(4, "H225RAS\tReceived PDU:\n  " << setprecision(2) << strm                                 << "\n "  << setprecision(2) << *this);  else    PTRACE(3, "H225RAS\tReceived PDU: " << GetTagName());#endif  return ok;}BOOL H323RasPDU::Write(H323Transport & transport) const{  PPER_Stream strm;  Encode(strm);  strm.CompleteEncoding();#if PTRACING  if (PTrace::CanTrace(4))    PTRACE(4, "H225RAS\tSending PDU:\n  " << setprecision(2) << *this                                << "\n "  << setprecision(2) << strm);  else    PTRACE(3, "H225\tSending PDU: " << GetTagName());#endif  return transport.WritePDU(strm);}/////////////////////////////////////////////////////////////////////////////

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -