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

Start PSAP tests

parent 2a4be132
Loading
Loading
Loading
Loading
+22 −23
Original line number Original line Diff line number Diff line
@@ -14,14 +14,14 @@ int sip_codec_headers::encode_headers(const LibSip__SIPTypesAndValues::MessageHe
  // From
  // From
  osip_from_t* from_header = nullptr;
  osip_from_t* from_header = nullptr;
  if (encode_from_header(p_msg_header.fromField(), &from_header) == -1) {
  if (encode_from_header(p_msg_header.fromField(), &from_header) == -1) {
    loggers::get_instance().warning("sip_codec_headers::encode_headers: Faile to encode From header");
    loggers::get_instance().warning("sip_codec_headers::encode_headers: Failed to encode From header");
    return -1;
    return -1;
  }
  }
  char* hvalue;
  char* hvalue;
  ::osip_from_to_str(from_header, &hvalue);
  ::osip_from_to_str(from_header, &hvalue);
  loggers::get_instance().log("sip_codec_headers::encode_headers: From:%s", hvalue);
  loggers::get_instance().log("sip_codec_headers::encode_headers: From:%s", hvalue);
  if (::osip_message_set_from(p_sip_message, hvalue) != OSIP_SUCCESS) {
  if (::osip_message_set_from(p_sip_message, hvalue) != OSIP_SUCCESS) {
    loggers::get_instance().warning("sip_codec_headers::encode_headers: Faile to set From header in sip_message");
    loggers::get_instance().warning("sip_codec_headers::encode_headers: Failed to set From header in sip_message");
    return -1;
    return -1;
  }
  }


@@ -31,13 +31,13 @@ int sip_codec_headers::encode_headers(const LibSip__SIPTypesAndValues::MessageHe
  // To
  // To
  osip_to_t* to_header = nullptr;
  osip_to_t* to_header = nullptr;
  if (encode_to_header(p_msg_header.toField(), &to_header) == -1) {
  if (encode_to_header(p_msg_header.toField(), &to_header) == -1) {
    loggers::get_instance().warning("sip_codec_headers::encode_headers: Faile to encode To header");
    loggers::get_instance().warning("sip_codec_headers::encode_headers: Failed to encode To header");
    return -1;
    return -1;
  }
  }
  int r = ::osip_to_to_str(to_header, &hvalue);
  int r = ::osip_to_to_str(to_header, &hvalue);
  loggers::get_instance().log("sip_codec_headers::encode_headers: To:'%s'- result:%d", hvalue, r);
  loggers::get_instance().log("sip_codec_headers::encode_headers: To:'%s'- result:%d", hvalue, r);
  if (::osip_message_set_to(p_sip_message, hvalue) != OSIP_SUCCESS) {
  if (::osip_message_set_to(p_sip_message, hvalue) != OSIP_SUCCESS) {
    loggers::get_instance().warning("sip_codec_headers::encode_headers: Faile to set To header in sip_message");
    loggers::get_instance().warning("sip_codec_headers::encode_headers: Failed to set To header in sip_message");
    return -1;
    return -1;
  }
  }
  ::osip_to_free(to_header);
  ::osip_to_free(to_header);
@@ -46,13 +46,13 @@ int sip_codec_headers::encode_headers(const LibSip__SIPTypesAndValues::MessageHe
  // Via
  // Via
  osip_via_t* via_header = nullptr;
  osip_via_t* via_header = nullptr;
  if (encode_via_header(p_msg_header.via(), &via_header) == -1) {
  if (encode_via_header(p_msg_header.via(), &via_header) == -1) {
    loggers::get_instance().warning("sip_codec_headers::encode_headers: Faile to encode Via header");
    loggers::get_instance().warning("sip_codec_headers::encode_headers: Failed to encode Via header");
    return -1;
    return -1;
  }
  }
  ::osip_via_to_str(via_header, &hvalue);
  ::osip_via_to_str(via_header, &hvalue);
  loggers::get_instance().log("sip_codec_headers::encode_headers: Via:%s", hvalue);
  loggers::get_instance().log("sip_codec_headers::encode_headers: Via:%s", hvalue);
  std::string str(hvalue);
  std::string str(hvalue);
  std::size_t idx = str.find(" ()"); // FIXME Horrible work-around for osip_via_to_str issue (' ()' added sometimes
  std::size_t idx = str.find(" ("); // FIXME Horrible work-around for osip_via_to_str issue (' ()' added sometimes
  if (idx != std::string::npos) {
  if (idx != std::string::npos) {
    str = str.substr(0, idx);
    str = str.substr(0, idx);
  }
  }
@@ -70,7 +70,7 @@ int sip_codec_headers::encode_headers(const LibSip__SIPTypesAndValues::MessageHe
  // Accept
  // Accept
  if (p_msg_header.accept().is_present()) {
  if (p_msg_header.accept().is_present()) {
    if (encode_accept_header(p_msg_header.accept(), &p_sip_message) == -1) {
    if (encode_accept_header(p_msg_header.accept(), &p_sip_message) == -1) {
      loggers::get_instance().warning("sip_codec_headers::encode_headers: Faile to encode Accept header");
      loggers::get_instance().warning("sip_codec_headers::encode_headers: Failed to encode Accept header");
      return -1;
      return -1;
    }
    }
  }
  }
@@ -78,7 +78,7 @@ int sip_codec_headers::encode_headers(const LibSip__SIPTypesAndValues::MessageHe
  // AcceptContact
  // AcceptContact
  if (p_msg_header.acceptContact().is_present()) {
  if (p_msg_header.acceptContact().is_present()) {
    if (encode_accept_contact_header(p_msg_header.acceptContact(), &p_sip_message) == -1) {
    if (encode_accept_contact_header(p_msg_header.acceptContact(), &p_sip_message) == -1) {
      loggers::get_instance().warning("sip_codec_headers::encode_headers: Faile to encode AcceptContact header");
      loggers::get_instance().warning("sip_codec_headers::encode_headers: Failed to encode AcceptContact header");
      return -1;
      return -1;
    }
    }
  }
  }
@@ -86,7 +86,7 @@ int sip_codec_headers::encode_headers(const LibSip__SIPTypesAndValues::MessageHe
  // Allow
  // Allow
  if (p_msg_header.allow().is_present()) {
  if (p_msg_header.allow().is_present()) {
    if (encode_allow_header(p_msg_header.allow(), &p_sip_message) == -1) {
    if (encode_allow_header(p_msg_header.allow(), &p_sip_message) == -1) {
      loggers::get_instance().warning("sip_codec_headers::encode_headers: Faile to encode Allow header");
      loggers::get_instance().warning("sip_codec_headers::encode_headers: Failed to encode Allow header");
      return -1;
      return -1;
    }
    }
  }
  }
@@ -95,7 +95,7 @@ int sip_codec_headers::encode_headers(const LibSip__SIPTypesAndValues::MessageHe
  if (p_msg_header.authorization().is_present()) {
  if (p_msg_header.authorization().is_present()) {
    osip_authorization_t* authorization_header = nullptr;
    osip_authorization_t* authorization_header = nullptr;
    if (encode_authorization_header(p_msg_header.authorization(), &authorization_header) == -1) {
    if (encode_authorization_header(p_msg_header.authorization(), &authorization_header) == -1) {
      loggers::get_instance().warning("sip_codec_headers::encode_headers: Faile to encode Authorization header");
      loggers::get_instance().warning("sip_codec_headers::encode_headers: Failed to encode Authorization header");
      return -1;
      return -1;
    }
    }
    int result = ::osip_authorization_to_str(authorization_header, &hvalue);
    int result = ::osip_authorization_to_str(authorization_header, &hvalue);
@@ -110,7 +110,7 @@ int sip_codec_headers::encode_headers(const LibSip__SIPTypesAndValues::MessageHe
  if (p_msg_header.callId().is_present()) {
  if (p_msg_header.callId().is_present()) {
    osip_call_id_t* call_id_header;
    osip_call_id_t* call_id_header;
    if (encode_call_id_header(p_msg_header.callId(), &call_id_header) == -1) {
    if (encode_call_id_header(p_msg_header.callId(), &call_id_header) == -1) {
      loggers::get_instance().warning("sip_codec_headers::encode_headers: Faile to encode Call_Id header");
      loggers::get_instance().warning("sip_codec_headers::encode_headers: Failed to encode Call_Id header");
      return -1;
      return -1;
    }
    }
    ::osip_call_id_to_str(call_id_header, &hvalue);
    ::osip_call_id_to_str(call_id_header, &hvalue);
@@ -125,7 +125,7 @@ int sip_codec_headers::encode_headers(const LibSip__SIPTypesAndValues::MessageHe
  if (p_msg_header.contact().is_present()) {
  if (p_msg_header.contact().is_present()) {
    osip_contact_t* contact_header;
    osip_contact_t* contact_header;
    if (encode_contact_header(p_msg_header.contact(), &contact_header) == -1) {
    if (encode_contact_header(p_msg_header.contact(), &contact_header) == -1) {
      loggers::get_instance().warning("sip_codec_headers::encode_headers: Faile to encode Contact header");
      loggers::get_instance().warning("sip_codec_headers::encode_headers: Failed to encode Contact header");
      return -1;
      return -1;
    }
    }
    ::osip_contact_to_str(contact_header, &hvalue);
    ::osip_contact_to_str(contact_header, &hvalue);
@@ -139,7 +139,7 @@ int sip_codec_headers::encode_headers(const LibSip__SIPTypesAndValues::MessageHe
  // ContentLength
  // ContentLength
  osip_content_length_t* content_length_header = nullptr;
  osip_content_length_t* content_length_header = nullptr;
  if (encode_content_length_header(p_msg_header.contentLength(), &content_length_header) == -1) {
  if (encode_content_length_header(p_msg_header.contentLength(), &content_length_header) == -1) {
    loggers::get_instance().warning("sip_codec_headers::encode_headers: Faile to encode ContentLength header");
    loggers::get_instance().warning("sip_codec_headers::encode_headers: Failed to encode ContentLength header");
    return -1;
    return -1;
  }
  }
  ::osip_content_length_to_str(content_length_header, &hvalue);
  ::osip_content_length_to_str(content_length_header, &hvalue);
@@ -152,7 +152,7 @@ int sip_codec_headers::encode_headers(const LibSip__SIPTypesAndValues::MessageHe
  if (p_msg_header.contentType().is_present()) {
  if (p_msg_header.contentType().is_present()) {
    osip_content_type_t* content_type_header = nullptr;
    osip_content_type_t* content_type_header = nullptr;
    if (encode_content_type_header(p_msg_header.contentType(), &content_type_header) == -1) {
    if (encode_content_type_header(p_msg_header.contentType(), &content_type_header) == -1) {
      loggers::get_instance().warning("sip_codec_headers::encode_headers: Faile to encode ContentType header");
      loggers::get_instance().warning("sip_codec_headers::encode_headers: Failed to encode ContentType header");
      return -1;
      return -1;
    }
    }
    ::osip_content_type_to_str(content_type_header, &hvalue);
    ::osip_content_type_to_str(content_type_header, &hvalue);
@@ -165,7 +165,7 @@ int sip_codec_headers::encode_headers(const LibSip__SIPTypesAndValues::MessageHe
  // CSeq
  // CSeq
  osip_cseq_t* cseq_header = nullptr;
  osip_cseq_t* cseq_header = nullptr;
  if (encode_c_seq_header(p_msg_header.cSeq(), &cseq_header) == -1) {
  if (encode_c_seq_header(p_msg_header.cSeq(), &cseq_header) == -1) {
    loggers::get_instance().warning("sip_codec_headers::encode_headers: Faile to encode CSeq header");
    loggers::get_instance().warning("sip_codec_headers::encode_headers: Failed to encode CSeq header");
    return -1;
    return -1;
  }
  }
  ::osip_cseq_to_str(cseq_header, &hvalue);
  ::osip_cseq_to_str(cseq_header, &hvalue);
@@ -177,7 +177,7 @@ int sip_codec_headers::encode_headers(const LibSip__SIPTypesAndValues::MessageHe
  // MaxForwards
  // MaxForwards
  if (p_msg_header.maxForwards().is_present()) {
  if (p_msg_header.maxForwards().is_present()) {
    if (encode_max_forwards_header(p_msg_header.maxForwards(), &p_sip_message) == -1) {
    if (encode_max_forwards_header(p_msg_header.maxForwards(), &p_sip_message) == -1) {
      loggers::get_instance().warning("sip_codec_headers::encode_headers: Faile to encode MaxForwards header");
      loggers::get_instance().warning("sip_codec_headers::encode_headers: Failed to encode MaxForwards header");
      return -1;
      return -1;
    }
    }
  }
  }
@@ -185,7 +185,7 @@ int sip_codec_headers::encode_headers(const LibSip__SIPTypesAndValues::MessageHe
  // MinSE
  // MinSE
  if (p_msg_header.minSE().is_present()) {
  if (p_msg_header.minSE().is_present()) {
    if (encode_min_se_header(p_msg_header.minSE(), &p_sip_message) == -1) {
    if (encode_min_se_header(p_msg_header.minSE(), &p_sip_message) == -1) {
      loggers::get_instance().warning("sip_codec_headers::encode_headers: Faile to encode MinSE header");
      loggers::get_instance().warning("sip_codec_headers::encode_headers: Failed to encode MinSE header");
      return -1;
      return -1;
    }
    }
  }
  }
@@ -193,7 +193,7 @@ int sip_codec_headers::encode_headers(const LibSip__SIPTypesAndValues::MessageHe
  // PAccessNetworkInfo
  // PAccessNetworkInfo
  if (p_msg_header.pAccessNetworkInfo().is_present()) {
  if (p_msg_header.pAccessNetworkInfo().is_present()) {
    if (encode_p_access_network_info_header(p_msg_header.pAccessNetworkInfo(), &p_sip_message) == -1) {
    if (encode_p_access_network_info_header(p_msg_header.pAccessNetworkInfo(), &p_sip_message) == -1) {
      loggers::get_instance().warning("sip_codec_headers::encode_headers: Faile to encode PAccessNetworkInfo header");
      loggers::get_instance().warning("sip_codec_headers::encode_headers: Failed to encode PAccessNetworkInfo header");
      return -1;
      return -1;
    }
    }
  }
  }
@@ -201,7 +201,7 @@ int sip_codec_headers::encode_headers(const LibSip__SIPTypesAndValues::MessageHe
  // RSeq
  // RSeq
  if (p_msg_header.rSeq().is_present()) {
  if (p_msg_header.rSeq().is_present()) {
    if (encode_r_seq_header(p_msg_header.rSeq(), &p_sip_message) == -1) {
    if (encode_r_seq_header(p_msg_header.rSeq(), &p_sip_message) == -1) {
      loggers::get_instance().warning("sip_codec_headers::encode_headers: Faile to encode RSeq header");
      loggers::get_instance().warning("sip_codec_headers::encode_headers: Failed to encode RSeq header");
      return -1;
      return -1;
    }
    }
  }
  }
@@ -209,7 +209,7 @@ int sip_codec_headers::encode_headers(const LibSip__SIPTypesAndValues::MessageHe
  // Supported
  // Supported
  if (p_msg_header.supported().is_present()) {
  if (p_msg_header.supported().is_present()) {
    if (encode_supported_header(p_msg_header.supported(), &p_sip_message) == -1) {
    if (encode_supported_header(p_msg_header.supported(), &p_sip_message) == -1) {
      loggers::get_instance().warning("sip_codec_headers::encode_headers: Faile to encode Supported header");
      loggers::get_instance().warning("sip_codec_headers::encode_headers: Failed to encode Supported header");
      return -1;
      return -1;
    }
    }
  }
  }
@@ -217,7 +217,7 @@ int sip_codec_headers::encode_headers(const LibSip__SIPTypesAndValues::MessageHe
  // UserAgent
  // UserAgent
  if (p_msg_header.userAgent().is_present()) {
  if (p_msg_header.userAgent().is_present()) {
    if (encode_user_agent_header(p_msg_header.userAgent(), &p_sip_message) == -1) {
    if (encode_user_agent_header(p_msg_header.userAgent(), &p_sip_message) == -1) {
      loggers::get_instance().warning("sip_codec_headers::encode_headers: Faile to encode UserAgent header");
      loggers::get_instance().warning("sip_codec_headers::encode_headers: Failed to encode UserAgent header");
      return -1;
      return -1;
    }
    }
  }
  }
@@ -1243,9 +1243,8 @@ int sip_codec_headers::encode_via_header(const LibSip__SIPTypesAndValues::Via& p
    const LibSip__SIPTypesAndValues::ViaBody v = l[i];
    const LibSip__SIPTypesAndValues::ViaBody v = l[i];
    loggers::get_instance().log_msg("sip_codec_headers::encode_via_header: Processing ", v);
    loggers::get_instance().log_msg("sip_codec_headers::encode_via_header: Processing ", v);


    ::via_set_protocol(*p_via_header, (char*)::strdup(static_cast<const char *>(v.sentProtocol().protocolName())));
    ::via_set_protocol(*p_via_header, (char*)::strdup(static_cast<const char *>(v.sentProtocol().transport())));
    ::via_set_version(*p_via_header, (char*)::strdup(static_cast<const char *>(v.sentProtocol().protocolVersion())));
    ::via_set_version(*p_via_header, (char*)::strdup(static_cast<const char *>(v.sentProtocol().protocolVersion())));
    ::via_set_comment(*p_via_header, (char*)::strdup(static_cast<const char *>(v.sentProtocol().transport())));
    std::string host;
    std::string host;
    std::string port;
    std::string port;
    encode_host_port(v.sentBy(), host, port);
    encode_host_port(v.sentBy(), host, port);
+53 −11
Original line number Original line Diff line number Diff line
@@ -116,7 +116,6 @@ int sip_codec_message_body::encode_sdp(const LibSip__SDPTypes::SDP__Message& p_s
      } // End of 'for' statement
      } // End of 'for' statement
    }
    }
  } // End of 'for' statement
  } // End of 'for' statement

  // Encode optional fields
  // Encode optional fields
  // email, e
  // email, e
  loggers::get_instance().log_msg("sip_codec_message_body::encode_sdp: emails: ", p_sdp_message.emails());
  loggers::get_instance().log_msg("sip_codec_message_body::encode_sdp: emails: ", p_sdp_message.emails());
@@ -300,7 +299,7 @@ int sip_codec_message_body::encode_sdp(const LibSip__SDPTypes::SDP__Message& p_s
    } // End of 'for' statement
    } // End of 'for' statement
  }
  }
  // Bandwith, b
  // Bandwith, b
  loggers::get_instance().log_msg("sip_codec_message_body::encode_sdp: Bandwith: ", p_sdp_message.bandwidth());
  loggers::get_instance().log_msg("sip_codec_message_body::encode_sdp: Bandwidth: ", p_sdp_message.bandwidth());
  if (p_sdp_message.bandwidth().is_present()) {
  if (p_sdp_message.bandwidth().is_present()) {
    const LibSip__SDPTypes::SDP__bandwidth__list& l = static_cast<const LibSip__SDPTypes::SDP__bandwidth__list&>(*p_sdp_message.bandwidth().get_opt_value());
    const LibSip__SDPTypes::SDP__bandwidth__list& l = static_cast<const LibSip__SDPTypes::SDP__bandwidth__list&>(*p_sdp_message.bandwidth().get_opt_value());
    int i = 0;
    int i = 0;
@@ -310,6 +309,12 @@ int sip_codec_message_body::encode_sdp(const LibSip__SDPTypes::SDP__Message& p_s
      ::sdp_message_b_bandwidth_add(*p_sdp_body, i, (char*)::strdup(static_cast<const char*>(b.modifier())), (char*)::strdup(std::to_string(b.bandwidth()).c_str()));
      ::sdp_message_b_bandwidth_add(*p_sdp_body, i, (char*)::strdup(static_cast<const char*>(b.modifier())), (char*)::strdup(std::to_string(b.bandwidth()).c_str()));
    } // End of 'for' statement
    } // End of 'for' statement
  }
  }
  // Connection, c
  loggers::get_instance().log_msg("sip_codec_message_body::encode_sdp: Connection: ", p_sdp_message.connection());
  if (p_sdp_message.connection().is_present()) {
    const LibSip__SDPTypes::SDP__connection& c = static_cast<const LibSip__SDPTypes::SDP__connection&>(*p_sdp_message.connection().get_opt_value());
    ::sdp_message_c_connection_add(*p_sdp_body, 0, ::strdup(static_cast<const char*>(c.net__type())), ::strdup(static_cast<const char*>(c.addr__type())), ::strdup(static_cast<const char*>(c.conn__addr().addr())), nullptr, nullptr);
  }
  // TODO To be continued
  // TODO To be continued


  loggers::get_instance().log("<<< sip_codec_message_body::encode_sdp");
  loggers::get_instance().log("<<< sip_codec_message_body::encode_sdp");
@@ -332,7 +337,7 @@ void sip_codec_message_body::decode_message_body(const osip_message_t* p_sip_mes
  osip_body_t* body;
  osip_body_t* body;
  int result = ::osip_message_get_body(p_sip_message, 0, &body);
  int result = ::osip_message_get_body(p_sip_message, 0, &body);
  if (result != 0) {
  if (result != 0) {
    loggers::get_instance().warning("sip_codec_message_body::decode_message_body: Failded to retrieve body");
    loggers::get_instance().warning("sip_codec_message_body::decode_message_body: Failed to retrieve body");
    p_message_body.set_to_omit();
    p_message_body.set_to_omit();
    return;
    return;
  }
  }
@@ -367,14 +372,33 @@ void sip_codec_message_body::decode_message_body(const osip_message_t* p_sip_mes
            p.content__type() = CHARSTRING("sdp");
            p.content__type() = CHARSTRING("sdp");
            p.content__disposition().set_to_omit();
            p.content__disposition().set_to_omit();
            p.content__id().set_to_omit();
            p.content__id().set_to_omit();
            LibSip__SDPTypes::SDP__Message sdp_header;
            LibSip__SDPTypes::SDP__Message sdp_body;
            osip_body_t* body;
            osip_body_t* body;
            ::osip_body_init(&body);
            ::osip_body_init(&body);
            body->body = ::strdup(header->hname);
            body->body = ::strdup(header->hname); // TODO Check if strdup is needed
            body->length = strlen(header->hname);
            body->length = strlen(header->hname);
            LibSip__MessageBodyTypes::MIME__Encapsulated__Parts& parts = p.mime__encapsulated__part();
            LibSip__MessageBodyTypes::MIME__Encapsulated__Parts& parts = p.mime__encapsulated__part();
            if (decode_sdp(body, sdp_header) == 0) {
            if (decode_sdp(body, sdp_body) == 0) {
              parts.sdpMessageBody() = sdp_header;
              parts.sdpMessageBody() = sdp_body;
            } else {
              parts.msdBody() = char2oct(CHARSTRING(header->hname));
            }
            ::osip_body_free(body);
            l[pos] = p;
          } else if ((*header->hname == '<') && (*(header->hname + 1) == '?') && (*(header->hname + 2) == 'x')) { // <?xml
              loggers::get_instance().log("sip_codec_message_body::decode_message_body: Decode XML");
              LibSip__MessageBodyTypes::MIME__Encapsulated__Part p;
              p.content__type() = CHARSTRING("xml");
              p.content__disposition().set_to_omit();
              p.content__id().set_to_omit();
              LibSip__XMLTypes::XmlBody xml_body;
              osip_body_t* body;
              ::osip_body_init(&body);
              body->body = header->hname;
              body->length = strlen(header->hname);
              LibSip__MessageBodyTypes::MIME__Encapsulated__Parts& parts = p.mime__encapsulated__part();
              if (decode_xml(body, xml_body) == 0) {
                parts.xmlBody() = xml_body;
              } else {
              } else {
                parts.msdBody() = char2oct(CHARSTRING(header->hname));
                parts.msdBody() = char2oct(CHARSTRING(header->hname));
              }
              }
@@ -382,15 +406,16 @@ void sip_codec_message_body::decode_message_body(const osip_message_t* p_sip_mes
              l[pos] = p;
              l[pos] = p;
          } else {
          } else {
            // TODO
            // TODO
              loggers::get_instance().error("sip_codec_message_body::decode_message_body: Not implemented yet");
          }
          }
        } // End of 'while' statement
        } // End of 'while' statement
        msg_body.mimeMessageBody() = mime;
        msg_body.mimeMessageBody() = mime;
      }
      }
    } else if ((std::string(content_type->type).compare("application") == 0) && (std::string(content_type->subtype).compare("sdp") == 0)) {
    } else if ((std::string(content_type->type).compare("application") == 0) && (std::string(content_type->subtype).compare("sdp") == 0)) {
      LibSip__SDPTypes::SDP__Message sdp_header;
      LibSip__SDPTypes::SDP__Message sdp_body;
      if (decode_sdp(body, sdp_header) == 0) {
      if (decode_sdp(body, sdp_body) == 0) {
        // Set message body
        // Set message body
        msg_body.sdpMessageBody() = sdp_header;
        msg_body.sdpMessageBody() = sdp_body;
      } else {
      } else {
        loggers::get_instance().warning("sip_codec_message_body::decode_message_body: sdp_message_parse failed, fallback to textplain");
        loggers::get_instance().warning("sip_codec_message_body::decode_message_body: sdp_message_parse failed, fallback to textplain");
        msg_body.textplain() = CHARSTRING(body->body);
        msg_body.textplain() = CHARSTRING(body->body);
@@ -651,3 +676,20 @@ int sip_codec_message_body::decode_sdp(const osip_body_t* p_body, LibSip__SDPTyp
  loggers::get_instance().log_msg("<<< sip_codec_message_body::decode_sdp: sdp: ", p_sdp_header);
  loggers::get_instance().log_msg("<<< sip_codec_message_body::decode_sdp: sdp: ", p_sdp_header);
  return 0;
  return 0;
}
}

int sip_codec_message_body::encode_xml(const LibSip__XMLTypes::XmlBody& p_message_body, sdp_message_t** p_xml_header) {
  loggers::get_instance().log_msg(">>> sip_codec_message_body::encode_xml: ", p_message_body);


  loggers::get_instance().log("<<< sip_codec_message_body::encode_xml");
  return 0;
}

int sip_codec_message_body::decode_xml(const osip_body_t* p_body, LibSip__XMLTypes::XmlBody& p_xml_header) {
  loggers::get_instance().log(">>> sip_codec_message_body::decode_xml: %s", p_body->body);


  loggers::get_instance().log_msg("<<< sip_codec_message_body::decode_xml: xml: ", p_xml_header);
  return 0;
}
+10 −0
Original line number Original line Diff line number Diff line
@@ -10,6 +10,14 @@ namespace LibSip__MessageBodyTypes {
  class MessageBody;
  class MessageBody;
}
}


namespace LibSip__SDPTypes {
  class SDP__Messag;
}

namespace LibSip__XMLTypes {
  class XmlBody;
}

class sip_codec_message_body: public codec <
class sip_codec_message_body: public codec <
LibSip__MessageBodyTypes::MessageBody,
LibSip__MessageBodyTypes::MessageBody,
LibSip__MessageBodyTypes::MessageBody>
LibSip__MessageBodyTypes::MessageBody>
@@ -27,5 +35,7 @@ public:
private:
private:
  int encode_sdp(const LibSip__SDPTypes::SDP__Message& p_message_body, sdp_message_t** p_sdp_body);
  int encode_sdp(const LibSip__SDPTypes::SDP__Message& p_message_body, sdp_message_t** p_sdp_body);
  int decode_sdp(const osip_body_t* p_body, LibSip__SDPTypes::SDP__Message& p_sdp_header);
  int decode_sdp(const osip_body_t* p_body, LibSip__SDPTypes::SDP__Message& p_sdp_header);
  int encode_xml(const LibSip__XMLTypes::XmlBody& p_message_body, sdp_message_t** p_xml_header);
  int decode_xml(const osip_body_t* p_body, LibSip__XMLTypes::XmlBody& p_xml_header);


}; // End of class sip_codec_message_body
}; // End of class sip_codec_message_body
+14 −16
Original line number Original line Diff line number Diff line
@@ -3,7 +3,7 @@


# IUT roles
# IUT roles
LibNg112_Pics.PICS_LIS_IUT := false;
LibNg112_Pics.PICS_LIS_IUT := false;
LibNg112_Pics.PICS_ECRF_IUT := true;
LibNg112_Pics.PICS_ECRF_IUT := false;
LibNg112_Pics.PICS_ESRP_IUT := false;
LibNg112_Pics.PICS_ESRP_IUT := false;
LibNg112_Pics.PICS_PSAP_IUT := true;
LibNg112_Pics.PICS_PSAP_IUT := true;


@@ -14,12 +14,17 @@ LibCommon_Sync.PX_TSHUT_DOWN_TIME_LIMIT := 30.0;
#LibItsHttp_Pics.PICS_HEADER_HOST := "lis.gridgears.io" # Used for LIS
#LibItsHttp_Pics.PICS_HEADER_HOST := "lis.gridgears.io" # Used for LIS
LibItsHttp_Pics.PICS_HEADER_HOST := "ecrf.gridgears.io" # Used for ECRF
LibItsHttp_Pics.PICS_HEADER_HOST := "ecrf.gridgears.io" # Used for ECRF


#LibItsHttp_Pics.PICS_HEADER_CONTENT_TYPE := "application/held+xml;charset=utf-8";
#LibItsHttp_Pics.PICS_HEADER_CONTENT_TYPE := "application/held+xml;charset=utf-8"
LibItsHttp_Pics.PICS_HEADER_CONTENT_TYPE := "application/lost+xml;charset=utf-8";
LibItsHttp_Pics.PICS_HEADER_CONTENT_TYPE := "application/lost+xml;charset=utf-8"


#LibNg112_Pics.PICS_HTTP_GET_REQUEST := false
#LibNg112_Pics.PICS_HTTP_GET_REQUEST := false
#LibNg112_Pics.PICS_HTTP_POST_REQUEST := false
#LibNg112_Pics.PICS_HTTP_POST_REQUEST := false


LibNg112_Pixits.PX_IMS_TS_UE1_IPADDR := "10.101.242.1"         # Local UE address
LibNg112_Pixits.PX_IMS_SUT_UE1_BEARER_IPADDR := "10.101.242.1" # Local UE address



[LOGGING]
[LOGGING]
# In this section you can specify the name of the log file and the classes of events
# In this section you can specify the name of the log file and the classes of events
# you want to log into the file or display on console (standard error).
# you want to log into the file or display on console (standard error).
@@ -37,20 +42,13 @@ LogEventTypes:= Yes
[TESTPORT_PARAMETERS]
[TESTPORT_PARAMETERS]
# In this section you can specify parameters that are passed to Test Ports.
# In this section you can specify parameters that are passed to Test Ports.


# LIS
# LIS/ECRF
system.httpPort.params := "HTTP(codecs=lost:lost_codec;held:held_codec)/TCP(debug=1,server=lis.gridgears.io,use_ssl=1)"
system.httpPort.params := "HTTP(codecs=lost:lost_codec;held:held_codec)/TCP(debug=1,server=lis.gridgears.io,use_ssl=1)"
# ECRF

#system.httpPort.params := "HTTP(codecs=lost:lost_codec;held:held_codec)/TCP(debug=1,server=ecrf.gridgears.io,use_ssl=1)"
# SIP
# SIP
<<<<<<< HEAD
Caller.SIPP.params := "SIP/UDP(dst_ip=172.24.1.115,dst_port=5060,src_port=5060)"
Caller.SIPP.params := "SIP/UDP(dst_ip=172.24.1.241,dst_port=5060,src_port=5060)"
Ecrf.SIPP.params := "SIP/UDP(dst_ip=172.24.1,240,dst_port=5060,src_port=5060)"
Psap.SIPP.params := "SIP/UDP(dst_ip=172.24.1.11,dst_port=5060,src_port=5060)"
CallTaker.SIPP.params := "SIP/UDP(dst_ip=172.24.1.241,dst_port=5060,src_port=5060)"
CallTaker.SIPP.params := "SIP/UDP(dst_ip=172.24.1.241,dst_port=5060,src_port=5060)"
=======
Caller.SIPP.params := "SIP/UDP(dst_ip=192.168.0.4,dst_port=5060,src_port=5060)"
Psap.SIPP.params := "SIP/UDP(dst_ip=192.168.43.4,dst_port=5060,src_port=5061)"
CallTaker.SIPP.params := "SIP/UDP(dst_ip=192.168.0.4,dst_port=5060,src_port=5062)"
>>>>>>> 562f4f47b07fa346377cb114653e2c987657dfc8


[DEFINE]
[DEFINE]
# In this section you can create macro definitions,
# In this section you can create macro definitions,
@@ -75,7 +73,7 @@ CallTaker.SIPP.params := "SIP/UDP(dst_ip=192.168.0.4,dst_port=5060,src_port=5062


[EXECUTE]
[EXECUTE]
# In this section you can specify what parts of your test suite you want to execute.
# In this section you can specify what parts of your test suite you want to execute.
#AtsNg112_TestControl.control
AtsNg112_TestControl.control


#AtsNg112_TestCases.TC_LIS_HTTP_POST_BV_01
#AtsNg112_TestCases.TC_LIS_HTTP_POST_BV_01
#AtsNg112_TestCases.TC_LIS_HTTP_POST_BV_02
#AtsNg112_TestCases.TC_LIS_HTTP_POST_BV_02
@@ -91,7 +89,7 @@ CallTaker.SIPP.params := "SIP/UDP(dst_ip=192.168.0.4,dst_port=5060,src_port=5062
#AtsNg112_TestCases.TC_ECRF_HTTP_POST_BV_03
#AtsNg112_TestCases.TC_ECRF_HTTP_POST_BV_03
#AtsNg112_TestCases.TC_ECRF_HTTP_POST_BV_04
#AtsNg112_TestCases.TC_ECRF_HTTP_POST_BV_04
#AtsNg112_TestCases.TC_ECRF_HTTP_POST_BV_05
#AtsNg112_TestCases.TC_ECRF_HTTP_POST_BV_05
AtsNg112_TestCases.TC_ECRF_HTTP_POST_BV_06
#AtsNg112_TestCases.TC_ECRF_HTTP_POST_BV_06
#AtsNg112_TestCases.TC_ECRF_HTTP_POST_BV_07
#AtsNg112_TestCases.TC_ECRF_HTTP_POST_BV_07
#AtsNg112_TestCases.TC_ECRF_HTTP_POST_BV_08
#AtsNg112_TestCases.TC_ECRF_HTTP_POST_BV_08
#AtsNg112_TestCases.TC_ECRF_HTTP_POST_BV_09
#AtsNg112_TestCases.TC_ECRF_HTTP_POST_BV_09
+2 −2
Original line number Original line Diff line number Diff line
@@ -58,13 +58,13 @@ system.httpPort.params := "HTTP(codecs=held:held_codec;html:html_codec;json:json
#TestCodec_Invite.tc_invite_request_1
#TestCodec_Invite.tc_invite_request_1
#TestCodec_Invite.tc_invite_request_2
#TestCodec_Invite.tc_invite_request_2
#TestCodec_Invite.tc_invite_request_3
#TestCodec_Invite.tc_invite_request_3
TestCodec_Invite.tc_invite_request_4
#TestCodec_Invite.tc_invite_request_4
#TestCodec_Responses.tc_100_trying_1
#TestCodec_Responses.tc_100_trying_1
#TestCodec_Responses.tc_180_ringing_1
#TestCodec_Responses.tc_180_ringing_1
#TestCodec_HttpRequest.tc_http_get_1
#TestCodec_HttpRequest.tc_http_get_1
#TestCodec_HttpResponse.tc_http_200_ok_1
#TestCodec_HttpResponse.tc_http_200_ok_1
#TestCodec_HttpPort.tc_http_map_1
#TestCodec_HttpPort.tc_http_map_1
#TestCodec_Xsd.tc_linear_ring_1
TestCodec_Xsd.tc_linear_ring_1
#TestCodec_Xsd.tc_test_vendor_response_1
#TestCodec_Xsd.tc_test_vendor_response_1
#TestCodec_Xsd.tc_test_vendor_response_2
#TestCodec_Xsd.tc_test_vendor_response_2


Loading