Commit c4b2f3a9 authored by Yann Garcia's avatar Yann Garcia
Browse files

Titaniozation od LibDiameter and LibSip

parent 1732cd18
Loading
Loading
Loading
Loading
+5 −112
Original line number Original line Diff line number Diff line
#include "LibSip_Interface.hh"
#include "LibDiameter_Interface.hh"
#include "LibSip_SIPTypesAndValues.hh"
#include "LibDiameter_TypesAndValues.hh"


#include "diameter_layer_factory.hh"
#include "diameter_layer_factory.hh"


@@ -13,105 +13,15 @@ diameter_layer::diameter_layer(const std::string & p_type, const std::string & p
  params::convert(_params, p_param);
  params::convert(_params, p_param);
}
}


void diameter_layer::sendMsg(const LibDiameter__SIPTypesAndValues::REGISTER__Request& p_diameter_message, params& p_param) {
void diameter_layer::sendMsg(const LibDiameter__TypesAndValues::DIAMETER__MSG& p_diameter_message, params& p_param) {
  loggers::get_instance().log_msg(">>> diameter_layer::sendMsg: ", p_diameter_message);
  loggers::get_instance().log_msg(">>> diameter_layer::sendMsg: ", p_diameter_message);


  // Encode SipMessage
  // Encode DiameterMessage
  OCTETSTRING data;
  OCTETSTRING data;
  _codec_register.encode(p_diameter_message, data);
  _codec_register.encode(p_diameter_message, data);
  send_data(data, _params);
  send_data(data, _params);
}
}


void diameter_layer::sendMsg(const LibDiameter__SIPTypesAndValues::INVITE__Request& p_diameter_message, params& p_param) {
  loggers::get_instance().log_msg(">>> diameter_layer::sendMsg: ", p_diameter_message);

  // Encode SipMessage
  OCTETSTRING data;
  _codec_invite.encode(p_diameter_message, data);
  send_data(data, _params);
}

void diameter_layer::sendMsg(const LibDiameter__SIPTypesAndValues::ACK__Request& p_diameter_message, params& p_param) {
  loggers::get_instance().log_msg(">>> diameter_layer::sendMsg: ", p_diameter_message);

  // Encode SipMessage
  OCTETSTRING data;
  _codec_ack.encode(p_diameter_message, data);
  send_data(data, _params);
}

void diameter_layer::sendMsg(const LibDiameter__SIPTypesAndValues::SUBSCRIBE__Request& p_diameter_message, params& p_param) {
  loggers::get_instance().log_msg(">>> diameter_layer::sendMsg: ", p_diameter_message);

  // Encode SipMessage
  OCTETSTRING data;
  _codec_subscribe.encode(p_diameter_message, data);
  send_data(data, _params);
}

void diameter_layer::sendMsg(const LibDiameter__SIPTypesAndValues::MESSAGE__Request& p_diameter_message, params& p_param) {
  loggers::get_instance().log_msg(">>> diameter_layer::sendMsg: ", p_diameter_message);

  // Encode SipMessage
  OCTETSTRING data;
  _codec_message.encode(p_diameter_message, data);
  send_data(data, _params);
}

void diameter_layer::sendMsg(const LibDiameter__SIPTypesAndValues::OPTIONS__Request& p_diameter_message, params& p_param) {
  loggers::get_instance().log_msg(">>> diameter_layer::sendMsg: ", p_diameter_message);

  // Encode SipMessage
  OCTETSTRING data;
  _codec_options.encode(p_diameter_message, data);
  send_data(data, _params);
}

void diameter_layer::sendMsg(const LibDiameter__SIPTypesAndValues::BYE__Request& p_diameter_message, params& p_param) {
  loggers::get_instance().log_msg(">>> diameter_layer::sendMsg: ", p_diameter_message);

  // Encode SipMessage
  OCTETSTRING data;
  _codec_bye.encode(p_diameter_message, data);
  send_data(data, _params);
}

void diameter_layer::sendMsg(const LibDiameter__SIPTypesAndValues::CANCEL__Request& p_diameter_message, params& p_param) {
  loggers::get_instance().log_msg(">>> diameter_layer::sendMsg: ", p_diameter_message);

  // Encode SipMessage
  OCTETSTRING data;
  _codec_cancel.encode(p_diameter_message, data);
  send_data(data, _params);
}

void diameter_layer::sendMsg(const LibDiameter__SIPTypesAndValues::NOTIFY__Request& p_diameter_message, params& p_param) {
  loggers::get_instance().log_msg(">>> diameter_layer::sendMsg: ", p_diameter_message);

  // Encode SipMessage
  OCTETSTRING data;
  _codec_notify.encode(p_diameter_message, data);
  send_data(data, _params);
}

void diameter_layer::sendMsg(const LibDiameter__SIPTypesAndValues::INFO__Request& p_diameter_message, params& p_param) {
  loggers::get_instance().log_msg(">>> diameter_layer::sendMsg: ", p_diameter_message);

  // Encode SipMessage
  OCTETSTRING data;
  _codec_info.encode(p_diameter_message, data);
  send_data(data, _params);
}

void diameter_layer::sendMsg(const LibDiameter__SIPTypesAndValues::Response& p_diameter_message, params& p_param) {
  loggers::get_instance().log_msg(">>> diameter_layer::sendMsg: ", p_diameter_message);

  // Encode SipMessage
  OCTETSTRING data;
  _codec_response.encode(p_diameter_message, data);
  send_data(data, _params);
}

void diameter_layer::send_data(OCTETSTRING& data, params& p_params) {
void diameter_layer::send_data(OCTETSTRING& data, params& p_params) {
  loggers::get_instance().log_msg(">>> diameter_layer::send_data: ", data);
  loggers::get_instance().log_msg(">>> diameter_layer::send_data: ", data);


@@ -122,24 +32,7 @@ void diameter_layer::receive_data(OCTETSTRING& data, params& p_params)
{
{
  loggers::get_instance().log_msg(">>> diameter_layer::receive_data: ", data);
  loggers::get_instance().log_msg(">>> diameter_layer::receive_data: ", data);


  // Decode SIP message
  // Decode Diameter message
  if ((data[0].get_octet() == 'S') && (data[1].get_octet() == 'I') && (data[2].get_octet() == 'P')) { // SIP... Assume it is a responce
    LibDiameter__SIPTypesAndValues::Response diameter_response;
    if (_codec_response.decode(data, diameter_response) == -1) {
      loggers::get_instance().warning("diameter_layer::receive_data: Failed to decode response data");
      return;
    }
    // Pass it to the ports
    to_all_upper_ports(diameter_response, p_params);
  } else { // Assume it is a request
    LibDiameter__SIPTypesAndValues::Request diameter_request;
    if (_codec_request.decode(data, diameter_request) == -1) {
      loggers::get_instance().warning("diameter_layer::receive_data: Failed to decode request data");
      return;
    }
    // Pass it to the ports
    to_all_upper_ports(diameter_request, p_params);
  }
}
}


diameter_layer_factory diameter_layer_factory::_f;
diameter_layer_factory diameter_layer_factory::_f;
+4 −35
Original line number Original line Diff line number Diff line
@@ -18,19 +18,8 @@ namespace LibDiameter__Interface {
  class DiameterPort; //! Forward declaration of TITAN class
  class DiameterPort; //! Forward declaration of TITAN class
}
}


namespace LibDiameter__SIPTypesAndValues {
namespace LibDiameter__TypesAndValues {
  class REGISTER__Request; //! Forward declaration of TITAN class
  class DIAMETER__MSG; //! Forward declaration of TITAN class
  class INVITE__Request;   //! Forward declaration of TITAN class
  class ACK__Request;   //! Forward declaration of TITAN class
  class SUSCRIBE__Request; //! Forward declaration of TITAN class
  class MESSAGE__Request;  //! Forward declaration of TITAN class
  class OPTIONS__Request;   //! Forward declaration of TITAN class
  class CANCEL__Request;   //! Forward declaration of TITAN class
  class NOTIFY__Request;   //! Forward declaration of TITAN class
  class INFO__Request;   //! Forward declaration of TITAN class
  class BYE__Request;   //! Forward declaration of TITAN class
  class Resquest;          //! Forward declaration of TITAN class
  class Response;          //! Forward declaration of TITAN class
}
}


class OCTETSTRING; //! Forward declaration of TITAN class
class OCTETSTRING; //! Forward declaration of TITAN class
@@ -62,27 +51,7 @@ public: //! \publicsection
   */
   */
  virtual ~diameter_layer() { };
  virtual ~diameter_layer() { };


  void sendMsg(const LibDiameter__SIPTypesAndValues::REGISTER__Request& p_diameter_message, params& p_param);
  void sendMsg(const LibDiameter__TypesAndValues::DIAMETER__MSG& p_diameter_message, params& p_param);
  
  void sendMsg(const LibDiameter__SIPTypesAndValues::INVITE__Request& p_diameter_message, params& p_param);
  
  void sendMsg(const LibDiameter__SIPTypesAndValues::ACK__Request& p_diameter_message, params& p_param);
  
  void sendMsg(const LibDiameter__SIPTypesAndValues::SUBSCRIBE__Request& p_diameter_message, params& p_param);
  
  void sendMsg(const LibDiameter__SIPTypesAndValues::MESSAGE__Request& p_diameter_message, params& p_param);
  
  void sendMsg(const LibDiameter__SIPTypesAndValues::OPTIONS__Request& p_diameter_message, params& p_param);
  
  void sendMsg(const LibDiameter__SIPTypesAndValues::BYE__Request& p_diameter_message, params& p_param);
  
  void sendMsg(const LibDiameter__SIPTypesAndValues::CANCEL__Request& p_diameter_message, params& p_param);
  
  void sendMsg(const LibDiameter__SIPTypesAndValues::NOTIFY__Request& p_diameter_message, params& p_param);
  
  void sendMsg(const LibDiameter__SIPTypesAndValues::INFO__Request& p_diameter_message, params& p_param);
  
  void sendMsg(const LibDiameter__SIPTypesAndValues::Response& p_diameter_message, params& p_param);


  /*!
  /*!
   * \virtual
   * \virtual
+4 −1
Original line number Original line Diff line number Diff line
sources := \
sources := \
        diameter_layer.cc
        diameter_layer.cc \
        diameter_codec.cc \
        avp.cc

includes := .
includes := .
+3 −0
Original line number Original line Diff line number Diff line
@@ -8,6 +8,9 @@
		},
		},
		{
		{
			"path": "../../tmp/emergency-iop-ttf010"
			"path": "../../tmp/emergency-iop-ttf010"
		},
		{
			"path": "../../tmp/vxlte-iop"
		}
		}
	]
	]
}
}
 No newline at end of file
+3 −3
Original line number Original line Diff line number Diff line
@@ -2,9 +2,9 @@ sources := \
    ttcn/LibDiameter_PIXITS.ttcn \
    ttcn/LibDiameter_PIXITS.ttcn \
    ttcn/LibDiameter_Interface.ttcn \
    ttcn/LibDiameter_Interface.ttcn \
    ttcn/LibDiameter_Steps.ttcn \
    ttcn/LibDiameter_Steps.ttcn \
    ttcn/LibDiameter_Templates.ttcn \
    ../patch_lib_diameter_titan/ttcn/LibDiameter_Templates.ttcn \
    ttcn/LibDiameter_Types_S6a_AVPs.ttcn3 \
    ../patch_lib_diameter_titan/ttcn/LibDiameter_Types_S6a_AVPs.ttcn \
    ttcn/LibDiameter_Types_S9_AVPs.ttcn \
    ../patch_lib_diameter_titan/ttcn/LibDiameter_Types_S9_AVPs.ttcn \
    ../patch_lib_diameter_titan/ttcn/LibDiameter_EncdecDeclarations.ttcn \
    ../patch_lib_diameter_titan/ttcn/LibDiameter_EncdecDeclarations.ttcn \
    ../patch_lib_diameter_titan/ttcn/LibDiameter_Types_RfRo_AVPs.ttcn \
    ../patch_lib_diameter_titan/ttcn/LibDiameter_Types_RfRo_AVPs.ttcn \
    ../patch_lib_diameter_titan/ttcn/LibDiameter_Types_ShDh_AVPs.ttcn \
    ../patch_lib_diameter_titan/ttcn/LibDiameter_Types_ShDh_AVPs.ttcn \
Loading