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

Bug fixed in Http/Held codec

parent 89ac7f9e
Loading
Loading
Loading
Loading
+36 −16
Original line number Diff line number Diff line
@@ -8,6 +8,8 @@

#include "loggers.hh"

#include "converter.hh"

#include "LibItsHttp_TypesAndValues.hh"
#include "LibItsHttp_MessageBodyTypes.hh"
#include "LibItsHttp_XmlMessageBodyTypes.hh"
@@ -378,6 +380,7 @@ int http_codec::decode_header(CHARSTRING& header_line, LibItsHttp__TypesAndValue
    } else if (m[1].str().compare("Transfer-Encoding") == 0) {
      if (m[2].str().find("chunked") != std::string::npos) {
        _dc.chunked = true;
        loggers::get_instance().log("http_codec::decode_header: decoded Transfer-Encoding %x", _dc.chunked);
      }
    }

@@ -522,27 +525,44 @@ int http_codec::decode_body(TTCN_Buffer& decoding_buffer, LibItsHttp__MessageBod
    }
  }
  loggers::get_instance().log("http_codec::decode_body: counter=%d", counter);
  loggers::get_instance().log("http_codec::decode_body: body length=%d", body.lengthof());
  body = OCTETSTRING(body.lengthof() - counter, static_cast<const unsigned char*>(body));
  if (_dc.chunked) {
    // Extract the size of the chunk <chunk size>\r[\n]
    counter = 0;
    while (counter < body.lengthof()) {
    int prev = 0;
    OCTETSTRING os;
    do {
      while (counter < body.lengthof()) { // Extract the size of the chunk <chunk size>\r[\n]
        if ((body[counter].get_octet() == '\r') || (body[counter].get_octet() == '\n')) {
          break;
        }
        counter += 1;
      } // End of 'while' statement
    loggers::get_instance().log("http_codec::decode_body: Chunked: counter=%d", counter);
    if (counter < body.lengthof()) { // Skip additional \n
      OCTETSTRING os(counter - 1, static_cast<const unsigned char*>(body));
      loggers::get_instance().log_msg("http_codec::decode_body: os: ", os);
      int len = oct2int(os);
      loggers::get_instance().log("http_codec::decode_body: Chunked(0): prev = %d, counter=%d / %d", prev, counter, body.lengthof());
      if (counter < body.lengthof()) {
        int idx = counter - prev;
        OCTETSTRING trunk(idx, static_cast<const unsigned char*>(body));
        loggers::get_instance().log_msg("http_codec::decode_body: trunk: ", trunk);
        std::string str((const char*)static_cast<const unsigned char*>(trunk), counter);
        loggers::get_instance().log("http_codec::decode_body: str: '%s'", str.c_str());
        int len = std::stoi(str);//converter::get_instance().string_to_int(str);
        loggers::get_instance().log("http_codec::decode_body: Chunk len: %d", len);
      if (body[counter].get_octet() == '\n') {
        while (counter < body.lengthof() && ((body[counter].get_octet() == '\r') || (body[counter].get_octet() == '\n'))) { // Skip additional \n
          counter += 1;
        } // End of 'while' statement
        loggers::get_instance().log("http_codec::decode_body: Chunked (1): prev = %d, counter=%d / %d", prev, counter, body.lengthof());
        os += OCTETSTRING(len, counter + static_cast<const unsigned char*>(body));
        loggers::get_instance().log_msg("http_codec::decode_body: os=", os);
        counter += len;
        loggers::get_instance().log("http_codec::decode_body: Chunked (2): prev = %d, counter=%d / %d", prev, counter, body.lengthof());
        while (counter < body.lengthof() && ((body[counter].get_octet() == '\r') || (body[counter].get_octet() == '\n'))) { // Skip additional \n
          counter += 1;
        } // End of 'while' statement
        prev = counter;
        loggers::get_instance().log("http_codec::decode_body: Chunked (3): prev = %d, counter=%d / %d", prev, counter, body.lengthof());
      }
      body = OCTETSTRING(len, counter + static_cast<const unsigned char*>(body));
    }
    } while (counter < body.lengthof()); // Process next chunk if any
    body = os;
  }
  loggers::get_instance().log_msg("http_codec::decode_body: Finalised body=", body);
  // Check if HTTP message body contains binary characters
+143 −0
Original line number Diff line number Diff line
[MODULE_PARAMETERS]
# This section shall contain the values of all parameters that are defined in your TTCN-3 modules.

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

LibCommon_Time.PX_TAC := 30.0
LibCommon_Sync.PX_TSYNC_TIME_LIMIT := 30.0;
LibCommon_Sync.PX_TSHUT_DOWN_TIME_LIMIT := 30.0;

#LibItsHttp_Pics.PICS_HEADER_HOST := "10.100.13.21" # Used for LIS
LibItsHttp_Pics.PICS_HEADER_HOST := "10.100.13.51" # Used for ECRF

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

LibNg112_Pics.PICS_LIS_URI  := "/LIS/api/v1/LIS"
LibNg112_Pics.PICS_ECRF_URI := "/api/lost"

[LOGGING]
# 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).

LogFile := "../logs/%e.%h-%r.%s"
FileMask := LOG_ALL | USER | DEBUG | MATCHING
ConsoleMask := LOG_ALL | USER | DEBUG | MATCHING
#FileMask := ERROR | WARNING | USER | MATCHING | EXECUTOR_RUNTIME | VERDICTOP
#ConsoleMask := ERROR | WARNING | USER | MATCHING | EXECUTOR_RUNTIME | VERDICTOP
LogSourceInfo := Stack
LogEntityName:= Yes
LogEventTypes:= Yes
#TimeStampFormat := DateTime

[TESTPORT_PARAMETERS]
# In this section you can specify parameters that are passed to Test Ports.

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

[DEFINE]
# In this section you can create macro definitions,
# that can be used in other configuration file sections except [INCLUDE] and [ORDERED_INCLUDE].

[INCLUDE]
# To use configuration settings given in other configuration files,
# the configuration files just need to be listed in this section, with their full or relative pathnames.

[ORDERED_INCLUDE]
# To use configuration settings given in other configuration files,
# the configuration files just need to be listed in this section, with their full or relative pathnames.

[EXTERNAL_COMMANDS]
# This section can define external commands (shell scripts) to be executed by the ETS
# whenever a control part or test case is started or terminated.

#BeginTestCase := ""
#EndTestCase := ""
#BeginControlPart := ""
#EndControlPart := ""

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

# "IUT successfully responds with a Point when it receives a HTTP POST location request without location type"
#AtsNg112_TestCases.TC_LIS_HTTP_POST_BV_01
# "IUT successfully responds with a Circle when it receives a HTTP POST location request without location type"
#AtsNg112_TestCases.TC_LIS_HTTP_POST_BV_02
# "IUT successfully responds with a reference when it receives a HTTP POST location request with location type locationURI and exact attribute"
#AtsNg112_TestCases.TC_LIS_HTTP_POST_BV_03
# "IUT successfully responds with a reference and geodetic location when it receives a HTTP POST location request with location types locationURI and geodetic and exact attribute"
#AtsNg112_TestCases.TC_LIS_HTTP_POST_BV_04
# "IUT successfully responds with an error response when it receives a HTTP POST location request for an unknown device"
#AtsNg112_TestCases.TC_LIS_HTTP_POST_BV_05
# "IUT successfully responds with a CIVIC address when it receives a HTTP POST location request without location type"
#AtsNg112_TestCases.TC_LIS_HTTP_POST_BV_06
# "IUT successfully responds with an error response when it receives a HTTP POST location request with an unknown location type"
#AtsNg112_TestCases.TC_LIS_HTTP_POST_BV_07
# "IUT successfully returns the location when a locationURI is dereferenced"
#AtsNg112_TestCases.TC_LIS_HTTP_GET_BV_01
# "IUT returns HTTP error 404 if it does not support HTTP GET method"
#AtsNg112_TestCases.TC_LIS_HTTP_GET_BV_02
# "IUT successfully responds with a service URI for a Point in the service boundary"
AtsNg112_TestCases.TC_ECRF_HTTP_POST_BV_01
# "IUT successfully responds with a service URI for a Circle in the service boundary"
#AtsNg112_TestCases.TC_ECRF_HTTP_POST_BV_02
# "IUT successfully responds with an error response for an unknown Service URN in the service boundary"
#AtsNg112_TestCases.TC_ECRF_HTTP_POST_BV_03
# "IUT successfully responds with an error response for an unrecognized location profile"
#AtsNg112_TestCases.TC_ECRF_HTTP_POST_BV_04
# "IUT successfully responds with service boundary by value if requested"
#AtsNg112_TestCases.TC_ECRF_HTTP_POST_BV_05
# "IUT successfully responds with service URI for a Circle that intersects service boundary"
#AtsNg112_TestCases.TC_ECRF_HTTP_POST_BV_06
# "IUT successfully responds with a service URI for a Circle that intersects multiple service boundaries"
#AtsNg112_TestCases.TC_ECRF_HTTP_POST_BV_07
# "IUT successfully responds with a service URI for a Circle in the service boundary with multiple services"
#AtsNg112_TestCases.TC_ECRF_HTTP_POST_BV_08
# "IUT successfully responds with configured service types for a ListServices request"
#AtsNg112_TestCases.TC_ECRF_HTTP_POST_BV_09
# "IUT successfully responds with configured service types for a ListServicesByLocation request"
#AtsNg112_TestCases.TC_ECRF_HTTP_POST_BV_10
# "IUT successfully responds with configured service types for a ListServices request without service element"
#AtsNg112_TestCases.TC_ECRF_HTTP_POST_BV_11
# "IUT successfully responds with configured service types for a ListServicesByLocation request without service element"
#AtsNg112_TestCases.TC_ECRF_HTTP_POST_BV_12
# "IUT successfully forwards an incoming SIP INVITE to the correct downstream element, based on the ECRF response"
#AtsNg112_TestCases.TC_ESRP_SIP_INVITE_BV_01
# "IUT successfully handles SIP INVITE with service urn and ULAW via UDP"
#AtsNg112_TestCases.TC_PSAP_SIP_INVITE_BV_01
# "IUT successfully handles SIP INVITE with service urn and ULAW via UDP"
#AtsNg112_TestCases.TC_PSAP_SIP_INVITE_BV_02
# "IUT successfully handles SIP INVITE with service urn via TCP"
#AtsNg112_TestCases.TC_PSAP_SIP_INVITE_BV_03
# "IUT successfully handles SIP INVITE with SDP and PIDF-LO content"
#AtsNg112_TestCases.TC_PSAP_SIP_INVITE_BV_04
# "IUT successfully handles SIP INVITE without service URN"
#AtsNg112_TestCases.TC_PSAP_SIP_INVITE_BV_05
# "IUT successfully handles an incoming SIP BYE"
#AtsNg112_TestCases.TC_PSAP_SIP_INVITE_BV_06
# "IUT successfully handles an incoming SIP MESSAGE"
#AtsNg112_TestCases.TC_PSAP_SIP_INVITE_BV_07
# "IUT successfully handles an incoming SIP OPTION"
#AtsNg112_TestCases.TC_PSAP_SIP_INVITE_BV_08

[GROUPS]
# In this section you can specify groups of hosts. These groups can be used inside the
# [COMPONENTS] section to restrict the creation of certain PTCs to a given set of hosts.

[COMPONENTS]
# This section consists of rules restricting the location of created PTCs.

[MAIN_CONTROLLER]
# The options herein control the behavior of MC.
KillTimer := 10.0
LocalAddress := 127.0.0.1
TCPPort := 12000
NumHCs := 1
+2 −2
Original line number Diff line number Diff line
@@ -65,7 +65,7 @@ system.httpPort.params := "HTTP(codecs=lost:lost_codec;held:held_codec)/TCP(debu
#AtsNg112_TestControl.control

# "IUT successfully responds with a Point when it receives a HTTP POST location request without location type"
#AtsNg112_TestCases.TC_LIS_HTTP_POST_BV_01
AtsNg112_TestCases.TC_LIS_HTTP_POST_BV_01
# "IUT successfully responds with a Circle when it receives a HTTP POST location request without location type"
#AtsNg112_TestCases.TC_LIS_HTTP_POST_BV_02
# "IUT successfully responds with a reference when it receives a HTTP POST location request with location type locationURI and exact attribute"
@@ -79,7 +79,7 @@ system.httpPort.params := "HTTP(codecs=lost:lost_codec;held:held_codec)/TCP(debu
# "IUT successfully responds with an error response when it receives a HTTP POST location request with an unknown location type"
#AtsNg112_TestCases.TC_LIS_HTTP_POST_BV_07
# "IUT successfully returns the location when a locationURI is dereferenced"
AtsNg112_TestCases.TC_LIS_HTTP_GET_BV_01
#AtsNg112_TestCases.TC_LIS_HTTP_GET_BV_01
# "IUT returns HTTP error 404 if it does not support HTTP GET method"
#AtsNg112_TestCases.TC_LIS_HTTP_GET_BV_02
# "IUT successfully responds with a service URI for a Point in the service boundary"
+5 −6
Original line number Diff line number Diff line
@@ -11,17 +11,16 @@ LibCommon_Time.PX_TAC := 30.0
LibCommon_Sync.PX_TSYNC_TIME_LIMIT := 30.0;
LibCommon_Sync.PX_TSHUT_DOWN_TIME_LIMIT := 30.0;

LibItsHttp_Pics.PICS_HEADER_HOST := "172.24.6.21" # Used for LIS - Intersys
#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 := "172.24.6.21"

LibItsHttp_Pics.PICS_HTTP_VERSION_MINOR := 0;

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

# LIS PICS
LibNg112_Pics.PICS_LIS_URI := "/rest/api/interface/serviceC" # Intersys
LibNg112_Pics.PICS_HTTP_POST_GET_KEEP_ALIVE := false; # Intersys
LibNg112_Pics.PICS_LIS_URI := "/rest/api/interface/serviceC"
LibNg112_Pics.PICS_HTTP_POST_GET_KEEP_ALIVE := false
#LibNg112_Pics.PICS_H_QRY_GEO1 := true
#LibNg112_Pics.PICS_H_QRY_GEO2 := false
#LibNg112_Pics.PICS_H_QRY_GEO3 := false
@@ -53,7 +52,7 @@ LogEventTypes:= Yes
# In this section you can specify parameters that are passed to Test Ports.

# LIS
system.httpPort.params := "HTTP(codecs=lost:lost_codec;held:held_codec)/TCP(debug=1,server=172.24.6.21,port=28081,use_ssl=0)" # Intersys
system.httpPort.params := "HTTP(codecs=lost:lost_codec;held:held_codec)/TCP(debug=1,server=172.24.6.21,port=28081,use_ssl=0)"

[DEFINE]
# In this section you can create macro definitions,
+169 −0
Original line number Diff line number Diff line
[MODULE_PARAMETERS]
# This section shall contain the values of all parameters that are defined in your TTCN-3 modules.

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

LibCommon_Time.PX_TAC := 30.0
LibCommon_Sync.PX_TSYNC_TIME_LIMIT := 30.0;
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 := "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/lost+xml;charset=utf-8"

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

# LIS SIP
LibSip_PIXITS.PX_SIP_REGISTRATION                    := false
LibSip_PIXITS.PX_SIP_REGISTER_AUTHENTICATION_ENABLED := false
#LibSip_PIXITS.PX_SEED                               := true

LibNg112_Pixits.PX_IMS_SUT_UE_IPADDR         := "10.100.60.1" # UE IP address to exchange SIP messages - connection point for PCSCF

LibNg112_Pixits.PX_IMS_TS_UE1_IPADDR         := "10.100.60.2" # Local UE address used for From header
LibNg112_Pixits.PX_IMS_SUT_UE1_BEARER_IPADDR := "10.100.60.1" # Local UE address used for SDP connection attrubute

#LibNg112_Pics.PICS_S_SIP_TCP1                 := true       # Set to true when using SIP over TCP ==> change SIP ports configuration
#LibNg112_Pics.PICS_S_SIP_UDP1                 := false
#LibSip_PIXITS.PX_SIP_TRANSPORT                := "TCP"     # Transport is TCP
#LibNg112_Pixits.PX_IMS_TS_UE1_PORT            := 5052  # SIP over TCP port
LibNg112_Pixits.PX_IMS_SUT_UE1_PUBLIC_USER     := "alice-05"
LibNg112_Pixits.PX_IMS_SUT_UE1_HOME_DOMAIN     := "plugtests.net"
LibNg112_Pixits.PX_IMS_SUT_UE1_REGISTRAR       := "plugtests.net"
LibNg112_Pixits.PX_IMS_SUT_UE1_PUBLIC_USER     := "alice-05"
LibNg112_Pixits.PX_IMS_SUT_UE1_PRIVAT_USERNAME := "alice-05";
LibNg112_Pixits.PX_IMS_SUT_UE1_PRIVAT_PASSWD   := "alice-05"

LibNg112_Pixits.PX_IMS_SUT_EMERGENCY_HOME_DOMAIN := "plugtest.com";
LibNg112_Pixits.PX_IMS_SUT_EMERGENCY_SERVICE := "112";

[LOGGING]
# 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).

LogFile := "../logs/%e.%h-%r.%s"
FileMask := LOG_ALL | USER | DEBUG | MATCHING
ConsoleMask := LOG_ALL | USER | DEBUG | MATCHING
#FileMask := ERROR | WARNING | USER | MATCHING | EXECUTOR_RUNTIME | VERDICTOP
#ConsoleMask := ERROR | WARNING | USER | MATCHING | EXECUTOR_RUNTIME | VERDICTOP
LogSourceInfo := Stack
LogEntityName:= Yes
LogEventTypes:= Yes
#TimeStampFormat := DateTime

[TESTPORT_PARAMETERS]
# In this section you can specify parameters that are passed to Test Ports.

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

# SIP/PSAP
Caller.SIPP.params := "SIP/TCP(debug=1,server=10.100.14.31,port=5060,use_ssl=0)"
CallTaker.SIPP.params := "SIP/UDP(dst_ip=10.100.2.61,dst_port=5060,src_port=5061)"

[DEFINE]
# In this section you can create macro definitions,
# that can be used in other configuration file sections except [INCLUDE] and [ORDERED_INCLUDE].

[INCLUDE]
# To use configuration settings given in other configuration files,
# the configuration files just need to be listed in this section, with their full or relative pathnames.

[ORDERED_INCLUDE]
# To use configuration settings given in other configuration files,
# the configuration files just need to be listed in this section, with their full or relative pathnames.

[EXTERNAL_COMMANDS]
# This section can define external commands (shell scripts) to be executed by the ETS
# whenever a control part or test case is started or terminated.

#BeginTestCase := ""
#EndTestCase := ""
#BeginControlPart := ""
#EndControlPart := ""

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

# "IUT successfully responds with a Point when it receives a HTTP POST location request without location type"
#AtsNg112_TestCases.TC_LIS_HTTP_POST_BV_01
# "IUT successfully responds with a Circle when it receives a HTTP POST location request without location type"
#AtsNg112_TestCases.TC_LIS_HTTP_POST_BV_02
# "IUT successfully responds with a reference when it receives a HTTP POST location request with location type locationURI and exact attribute"
#AtsNg112_TestCases.TC_LIS_HTTP_POST_BV_03
# "IUT successfully responds with a reference and geodetic location when it receives a HTTP POST location request with location types locationURI and geodetic and exact attribute"
#AtsNg112_TestCases.TC_LIS_HTTP_POST_BV_04
# "IUT successfully responds with an error response when it receives a HTTP POST location request for an unknown device"
#AtsNg112_TestCases.TC_LIS_HTTP_POST_BV_05
# "IUT successfully responds with a CIVIC address when it receives a HTTP POST location request without location type"
#AtsNg112_TestCases.TC_LIS_HTTP_POST_BV_06
# "IUT successfully responds with an error response when it receives a HTTP POST location request with an unknown location type"
#AtsNg112_TestCases.TC_LIS_HTTP_POST_BV_07
# "IUT successfully returns the location when a locationURI is dereferenced"
#AtsNg112_TestCases.TC_LIS_HTTP_GET_BV_01
# "IUT returns HTTP error 404 if it does not support HTTP GET method"
#AtsNg112_TestCases.TC_LIS_HTTP_GET_BV_02
# "IUT successfully responds with a service URI for a Point in the service boundary"
#AtsNg112_TestCases.TC_ECRF_HTTP_POST_BV_01
# "IUT successfully responds with a service URI for a Circle in the service boundary"
#AtsNg112_TestCases.TC_ECRF_HTTP_POST_BV_02
# "IUT successfully responds with an error response for an unknown Service URN in the service boundary"
#AtsNg112_TestCases.TC_ECRF_HTTP_POST_BV_03
# "IUT successfully responds with an error response for an unrecognized location profile"
#AtsNg112_TestCases.TC_ECRF_HTTP_POST_BV_04
# "IUT successfully responds with service boundary by value if requested"
#AtsNg112_TestCases.TC_ECRF_HTTP_POST_BV_05
# "IUT successfully responds with service URI for a Circle that intersects service boundary"
#AtsNg112_TestCases.TC_ECRF_HTTP_POST_BV_06
# "IUT successfully responds with a service URI for a Circle that intersects multiple service boundaries"
#AtsNg112_TestCases.TC_ECRF_HTTP_POST_BV_07
# "IUT successfully responds with a service URI for a Circle in the service boundary with multiple services"
#AtsNg112_TestCases.TC_ECRF_HTTP_POST_BV_08
# "IUT successfully responds with configured service types for a ListServices request"
#AtsNg112_TestCases.TC_ECRF_HTTP_POST_BV_09
# "IUT successfully responds with configured service types for a ListServicesByLocation request"
#AtsNg112_TestCases.TC_ECRF_HTTP_POST_BV_10
# "IUT successfully responds with configured service types for a ListServices request without service element"
#AtsNg112_TestCases.TC_ECRF_HTTP_POST_BV_11
# "IUT successfully responds with configured service types for a ListServicesByLocation request without service element"
#AtsNg112_TestCases.TC_ECRF_HTTP_POST_BV_12
# "IUT successfully forwards an incoming SIP INVITE to the correct downstream element, based on the ECRF response"
#AtsNg112_TestCases.TC_ESRP_SIP_INVITE_BV_01
# "IUT successfully handles SIP INVITE with service urn and ULAW via UDP"
#AtsNg112_TestCases.TC_PSAP_SIP_INVITE_BV_01
# "IUT successfully handles SIP INVITE with service urn and ULAW via UDP"
#AtsNg112_TestCases.TC_PSAP_SIP_INVITE_BV_02
# "IUT successfully handles SIP INVITE with service urn via TCP"
#AtsNg112_TestCases.TC_PSAP_SIP_INVITE_BV_03
# "IUT successfully handles SIP INVITE with SDP and PIDF-LO content"
#AtsNg112_TestCases.TC_PSAP_SIP_INVITE_BV_04
# "IUT successfully handles SIP INVITE without service URN"
#AtsNg112_TestCases.TC_PSAP_SIP_INVITE_BV_05
# "IUT successfully handles an incoming SIP BYE"
#AtsNg112_TestCases.TC_PSAP_SIP_INVITE_BV_06
# "IUT successfully handles an incoming SIP MESSAGE"
#AtsNg112_TestCases.TC_PSAP_SIP_INVITE_BV_07
# "IUT successfully handles an incoming SIP OPTION"
#AtsNg112_TestCases.TC_PSAP_SIP_INVITE_BV_08

[GROUPS]
# In this section you can specify groups of hosts. These groups can be used inside the
# [COMPONENTS] section to restrict the creation of certain PTCs to a given set of hosts.

[COMPONENTS]
# This section consists of rules restricting the location of created PTCs.

[MAIN_CONTROLLER]
# The options herein control the behavior of MC.
KillTimer := 10.0
LocalAddress := 127.0.0.1
TCPPort := 12000
NumHCs := 1
Loading