Commit 5889ecbc authored by Yann Garcia's avatar Yann Garcia
Browse files

Review ECRF tests

parents a47acc94 562f4f47
Loading
Loading
Loading
Loading
+60 −7
Original line number Original line Diff line number Diff line
@@ -32,7 +32,7 @@ int sip_codec_message_body::encode (const LibSip__MessageBodyTypes::MessageBody&
    return -1;
    return -1;
  }
  }


  loggers::get_instance().log_msg("<<< sip_codec_message_body::encode: Failed to encode SDP message: ", data);
  loggers::get_instance().log_msg("<<< sip_codec_message_body::encode: ", data);
  return 0;
  return 0;
}
}


@@ -146,12 +146,41 @@ int sip_codec_message_body::encode_message_body_sdp(const LibSip__SDPTypes::SDP_
    for ( ; i < l.lengthof(); i++) {
    for ( ; i < l.lengthof(); i++) {
      const LibSip__SDPTypes::SDP__media__desc m = l[i];
      const LibSip__SDPTypes::SDP__media__desc m = l[i];
      loggers::get_instance().log_msg("sip_codec_message_body::encode_message_body_sdp: media: ", m);
      loggers::get_instance().log_msg("sip_codec_message_body::encode_message_body_sdp: media: ", m);
      // Mandatory fields
      if (m.media__field().ports().num__of__ports().is_present()) {
      if (m.media__field().ports().num__of__ports().is_present()) {
        int i = static_cast<const INTEGER&>(*m.media__field().ports().num__of__ports().get_opt_value());
        int p = static_cast<const INTEGER&>(*m.media__field().ports().num__of__ports().get_opt_value());
        ::sdp_message_m_media_add(*p_sdp_body, (char*)::strdup(static_cast<const char*>(m.media__field().media())), (char*)::strdup(std::to_string(m.media__field().ports().port__number()).c_str()), (char*)::strdup(std::to_string(i).c_str()), (char*)::strdup(static_cast<const char*>(m.media__field().transport())));
        ::sdp_message_m_media_add(*p_sdp_body, (char*)::strdup(static_cast<const char*>(m.media__field().media())), (char*)::strdup(std::to_string(m.media__field().ports().port__number()).c_str()), (char*)::strdup(std::to_string(p).c_str()), (char*)::strdup(static_cast<const char*>(m.media__field().transport())));
      } else {
      } else {
        ::sdp_message_m_media_add(*p_sdp_body, (char*)::strdup(static_cast<const char*>(m.media__field().media())), (char*)::strdup(std::to_string(m.media__field().ports().port__number()).c_str()), NULL, (char*)::strdup(static_cast<const char*>(m.media__field().transport())));
        ::sdp_message_m_media_add(*p_sdp_body, (char*)::strdup(static_cast<const char*>(m.media__field().media())), (char*)::strdup(std::to_string(m.media__field().ports().port__number()).c_str()), NULL, (char*)::strdup(static_cast<const char*>(m.media__field().transport())));
      }
      }
      // Attribute list, a
      loggers::get_instance().log_msg("sip_codec_message_body::encode_message_body_sdp: attributes: ", m.attributes());
      if (m.attributes().is_present()) {
        const LibSip__SDPTypes::SDP__attribute__list& al = static_cast<const LibSip__SDPTypes::SDP__attribute__list&>(*m.attributes().get_opt_value());
        for (int k = 0; k < al.lengthof(); k++) {
          const LibSip__SDPTypes::SDP__attribute a = al[k];
          loggers::get_instance().log_msg("sip_codec_message_body::encode_message_body_sdp: attribute: ", a);
          if (a.ischosen(LibSip__SDPTypes::SDP__attribute::ALT_rtpmap)) {
            std::string strp("rtpmap:");
            strp += static_cast<const char*>(a.rtpmap().payload__type());
            std::string str(static_cast<const char*>(a.rtpmap().codec().encoding()));
            str += " ";
            str += a.rtpmap().codec().clockrate();
            if (a.rtpmap().codec().parameters().is_present()) {
              str += "/";
              str += static_cast<const char*>(static_cast<const CHARSTRING&>(*a.rtpmap().codec().parameters().get_opt_value()));
            }
            loggers::get_instance().log("sip_codec_message_body::encode_message_body_sdp: attribute: media #%d: encode %s - %s", i, strp.c_str(), str.c_str());
            ::sdp_message_a_attribute_add(*p_sdp_body, i, (char*)::strdup(strp.c_str()), (char*)::strdup(str.c_str()));
          } else if (a.ischosen(LibSip__SDPTypes::SDP__attribute::ALT_maxptime)) {
            std::string str("maxptime:");
            str += static_cast<const char*>(a.maxptime().attr__value());
            ::sdp_message_a_attribute_add(*p_sdp_body, i, (char*)::strdup(str.c_str()), NULL);
          } else {
            loggers::get_instance().warning("sip_codec_message_body::encode_message_body_sdp: attribute not processed");
          }
        } // End of 'for' statement
      }
    } // End of 'for' statement
    } // End of 'for' statement
    ::sdp_message_endof_media(*p_sdp_body, i);
    ::sdp_message_endof_media(*p_sdp_body, i);
  }
  }
@@ -166,6 +195,7 @@ int sip_codec_message_body::encode_message_body_sdp(const LibSip__SDPTypes::SDP_
      if (a.ischosen(LibSip__SDPTypes::SDP__attribute::ALT_rtpmap)) {
      if (a.ischosen(LibSip__SDPTypes::SDP__attribute::ALT_rtpmap)) {
        std::string str("rtpmap:");
        std::string str("rtpmap:");
        str += static_cast<const char*>(a.rtpmap().codec().encoding());
        str += static_cast<const char*>(a.rtpmap().codec().encoding());
        str += " ";
        str += a.rtpmap().codec().clockrate();
        str += a.rtpmap().codec().clockrate();
        if (a.rtpmap().codec().parameters().is_present()) {
        if (a.rtpmap().codec().parameters().is_present()) {
          str += "/";
          str += "/";
@@ -181,6 +211,17 @@ int sip_codec_message_body::encode_message_body_sdp(const LibSip__SDPTypes::SDP_
      }
      }
    } // End of 'for' statement
    } // End of 'for' statement
  }
  }
  // Bandwith, b
  loggers::get_instance().log_msg("sip_codec_message_body::encode_message_body_sdp: Bandwith: ", p_sdp_message.bandwidth());
  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());
    int i = 0;
    for ( ; i < l.lengthof(); i++) {
      const LibSip__SDPTypes::SDP__bandwidth b = l[i];
      loggers::get_instance().log_msg("sip_codec_message_body::encode_message_body_sdp: bandwidth: ", b);
      ::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
  }
  // TODO To be continued
  // TODO To be continued


  loggers::get_instance().log("<<< sip_codec_message_body::encode_message_body_sdp");
  loggers::get_instance().log("<<< sip_codec_message_body::encode_message_body_sdp");
@@ -364,15 +405,27 @@ void sip_codec_message_body::decode_message_body(const osip_message_t* p_sip_mes
          loggers::get_instance().warning("sip_codec_message_body::decode_message_body: No attributes in sdp");
          loggers::get_instance().warning("sip_codec_message_body::decode_message_body: No attributes in sdp");
          sdp_header.attributes().set_to_omit();
          sdp_header.attributes().set_to_omit();
        }
        }
        // Bandwith, b
        i = 0;
        sdp_bandwidth_t* b;
        if ((b = ::sdp_message_bandwidth_get(sdp, 0, i)) != nullptr) {
          LibSip__SDPTypes::SDP__bandwidth__list l;
          do {
            loggers::get_instance().log("sip_codec_message_body::decode_message_body: Bandwidths#%d: '%s'='%s'", i, b->b_bwtype, b->b_bandwidth);
            LibSip__SDPTypes::SDP__bandwidth a(b->b_bwtype, INTEGER(std::stoi(b->b_bandwidth)));
            loggers::get_instance().log_msg("sip_codec_message_body::decode_message_body_sdp: Bandwith: ", a);
            l[i] = a;
            i += 1;
          } while((b = ::sdp_message_bandwidth_get(sdp, 0, i)) != nullptr);
          sdp_header.bandwidth() = OPTIONAL<LibSip__SDPTypes::SDP__bandwidth__list>(l);
        } else {
          sdp_header.bandwidth().set_to_omit();
        }
        
        
        // TODO
        // TODO
        sdp_header.uri().set_to_omit();
        sdp_header.uri().set_to_omit();
        sdp_header.phone__numbers().set_to_omit();
        sdp_header.phone__numbers().set_to_omit();
        sdp_header.connection().set_to_omit();
        sdp_header.connection().set_to_omit();
        // Bandwidth
        //        sdp_bandwidth_t* b = ::sdp_message_bandwidth_get(sdp, i, j);
        sdp_header.bandwidth().set_to_omit();

        sdp_header.timezone__adjustments().set_to_omit();
        sdp_header.timezone__adjustments().set_to_omit();
        sdp_header.key().set_to_omit();
        sdp_header.key().set_to_omit();


+6 −0
Original line number Original line Diff line number Diff line
@@ -42,9 +42,15 @@ system.httpPort.params := "HTTP(codecs=lost:lost_codec;held:held_codec)/TCP(debu
# ECRF
# ECRF
#system.httpPort.params := "HTTP(codecs=lost:lost_codec;held:held_codec)/TCP(debug=1,server=ecrf.gridgears.io,use_ssl=1)"
#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.241,dst_port=5060,src_port=5060)"
Caller.SIPP.params := "SIP/UDP(dst_ip=172.24.1.241,dst_port=5060,src_port=5060)"
Psap.SIPP.params := "SIP/UDP(dst_ip=172.24.1.11,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,
+7 −7
Original line number Original line Diff line number Diff line
@@ -2222,11 +2222,11 @@ module AtsNg112_TestCases {
        f_prepare_SDP(1, 2); // 1: PCMU
        f_prepare_SDP(1, 2); // 1: PCMU
        f_append_media(
        f_append_media(
                       vc_sdp_local,
                       vc_sdp_local,
                       m_mediaFieldBandwdthAttributes(
                       m_media(
                                                      m_media_field(c_video, 20002, "RTP/AVP", "31"), 
                               m_media_field(c_video, 20002, "RTP/AVP", "31")
                                                      -, 
                               )
                                                      {m_attribute_base({"31", {"H261", "90000", omit}})}
                       );
                                                      ));
        f_append_media_attribute(vc_sdp_local, { rtpmap := {"31", {"H261", "90000", omit} } } );
        f_SendINVITE(m_INVITE_Request_IMS(vc_requestUri,
        f_SendINVITE(m_INVITE_Request_IMS(vc_requestUri,
                                          vc_callId,
                                          vc_callId,
                                          vc_cSeq,
                                          vc_cSeq,
@@ -2237,7 +2237,7 @@ module AtsNg112_TestCases {
                                          -, -, -, -, -,
                                          -, -, -, -, -,
                                          m_MBody_SDP(vc_sdp_local)
                                          m_MBody_SDP(vc_sdp_local)
                                          ));
                                          ));
        f_awaitingOkResponse(vc_cSeq);
        f_awaitingResponseIgnore100Trying(mw_Response_Base(c_statusLine200, vc_callId, vc_cSeq));
        f_selfOrClientSyncAndVerdictTestBody(c_prDone, e_success);
        f_selfOrClientSyncAndVerdictTestBody(c_prDone, e_success);
        
        
        // test body
        // test body
+4 −2
Original line number Original line Diff line number Diff line
@@ -2373,9 +2373,11 @@ module LibSip_Steps {
            inout SDP_Message p_sdp,
            inout SDP_Message p_sdp,
            in SDP_attribute p_att
            in SDP_attribute p_att
        ) {
        ) {
            var integer v_mn;
          var integer v_mn := 0;
            if (isvalue(p_sdp.media_list)) {
            if (isvalue(p_sdp.media_list)) {
              if(ispresent(p_sdp.media_list[0].attributes)) {
                v_mn := lengthof(p_sdp.media_list[0].attributes);
                v_mn := lengthof(p_sdp.media_list[0].attributes);
              }
              p_sdp.media_list[0].attributes[v_mn] := p_att;
              p_sdp.media_list[0].attributes[v_mn] := p_att;
            }
            }
        }
        }