flow:
  - start|DEFAULT_ROUTE:
  - start|ROUTE_ENTRY:
  - return|ROUTE_ENTRY:
  - start|ROUTE_NET_INFO:
  - return|ROUTE_NET_INFO:
  - start|ROUTE_CHECK_TEL_URI:
  - return|ROUTE_CHECK_TEL_URI:
  - start|ROUTE_PRX_REQUEST:
  - start|ROUTE_INITVARS:
  - return|ROUTE_INITVARS:
  - start|ROUTE_INVITE:
  - start|ROUTE_LOAD_CALLEE_DOMAIN_PREF:
  - start|ROUTE_CLEAR_CALLEE_DOMAIN_PREF:
  - return|ROUTE_CLEAR_CALLEE_DOMAIN_PREF:
  - return|ROUTE_LOAD_CALLEE_DOMAIN_PREF:
  - start|ROUTE_FIND_CALLER:
  - start|ROUTE_AUTH:
  - start|ROUTE_AUTH_HELPER:
  - return|ROUTE_AUTH_HELPER:
  - start|ROUTE_ADD_CALLINFO_REPLY:
  - start|ROUTE_ADD_CALLINFO_CALLER_PRIMARY:
  - return|ROUTE_ADD_CALLINFO_CALLER_PRIMARY:
  - return|ROUTE_ADD_CALLINFO_REPLY:
  - return|ROUTE_AUTH:
  - return|ROUTE_FIND_CALLER:
  - start|ROUTE_LOAD_CALLER_PREF:
  - start|ROUTE_CLEAR_CALLER_PREF:
  - return|ROUTE_CLEAR_CALLER_PREF:
  - start|ROUTE_CHECK_UA:
  - return|ROUTE_CHECK_UA:
  - start|ROUTE_LOAD_CALLER_CONTRACT_PREF:
  - return|ROUTE_LOAD_CALLER_CONTRACT_PREF:
  - return|ROUTE_LOAD_CALLER_PREF:
  - start|ROUTE_DLG_MANAGE:
  - return|ROUTE_DLG_MANAGE:
  - start|ROUTE_PARSE_P_EARLY_MEDIA:
  - start|ROUTE_DISABLE_SEMS_EARLY_MEDIA:
  - return|ROUTE_DISABLE_SEMS_EARLY_MEDIA:
  - return|ROUTE_PARSE_P_EARLY_MEDIA:
      $var(pem_flags): 1
      $var(sems_early_media_disabled): 1
  - start|ROUTE_APPLY_HEADER_RULES:
  - return|ROUTE_APPLY_HEADER_RULES:
  - start|ROUTE_GET_CALLER_CLI:
  - return|ROUTE_GET_CALLER_CLI:
  - start|ROUTE_GET_FORWARDER_CLI:
  - return|ROUTE_GET_FORWARDER_CLI:
  - start|ROUTE_APPLY_REWRITE_RULE:
  - return|ROUTE_APPLY_REWRITE_RULE:
  - start|ROUTE_ACC_FAILURE:
  - start|ROUTE_ACC_CALLER:
  - start|ROUTE_SET_ACC_CALLER_CALL_COUNTERS:
  - return|ROUTE_SET_ACC_CALLER_CALL_COUNTERS:
  - return|ROUTE_ACC_CALLER:
  - start|ROUTE_ACC_CALLEE:
  - start|ROUTE_SET_ACC_CALLEE_CALL_COUNTERS:
  - return|ROUTE_SET_ACC_CALLEE_CALL_COUNTERS:
  - return|ROUTE_ACC_CALLEE:
  - return|ROUTE_ACC_FAILURE:
  - start|ROUTE_EARLY_REJECT:
  - start|ROUTE_ADD_CALLINFO_REPLY:
  - start|ROUTE_ADD_CALLINFO_CALLER_PRIMARY:
  - return|ROUTE_ADD_CALLINFO_CALLER_PRIMARY:
  - start|ROUTE_ADD_CALLINFO_CALLEE_PRIMARY:
  - return|ROUTE_ADD_CALLINFO_CALLEE_PRIMARY:
  - return|ROUTE_ADD_CALLINFO_REPLY:
  - start|ROUTE_LOCAL_REPLY:
  - start|ROUTE_APPLY_HEADER_RULES:
  - return|ROUTE_APPLY_HEADER_RULES:
  - start|dialog:failed:
  - return|dialog:failed:
  - return|dialog:failed:
  - start|ROUTE_EXIT:
  - start|ROUTE_RUNTIME:
  - return|ROUTE_RUNTIME:
  - exit|ROUTE_EXIT:
sip_in:
  - 'INVITE sip:[% scenarios.1.responders.0.username %]@invite-allowip-soundset.scenarios.test SIP/2.0'
  - 'From: <sip:[% scenarios.1.username %]@invite-allowip-soundset.scenarios.test>;tag=[\w-]+'
  - 'To: <sip:[% scenarios.1.responders.0.username %]@invite-allowip-soundset.scenarios.test>'
  - 'CSeq: \d+ INVITE'
  - 'Proxy-Authorization: Digest username="testuser1002",realm="invite-allowip-soundset.scenarios.test",uri="sip:[% server_ip %]:5060",nonce=".+",response=".+",algorithm=MD5'
  - 'P-Early-Media: supported,inactive'
  - 'Content-Type: application/sdp'
  - 'Content-Length:\s+\d+'
sip_out:
  - [
      'SIP/2.0 100 Trying',
      'From: <sip:[% scenarios.1.username %]@invite-allowip-soundset.scenarios.test>;tag=[\w-]+',
      'To: <sip:[% scenarios.1.responders.0.username %]@invite-allowip-soundset.scenarios.test>',
      'CSeq: \d+ INVITE',
      'Content-Length: 0',
    ]
  - [
      'SIP/2.0 101 Connecting',
      'From: <sip:testuser1002@invite-allowip-soundset.scenarios.test>;tag=[\w-]+',
      'To: <sip:[% scenarios.1.responders.0.username %]@invite-allowip-soundset.scenarios.test>',
      'CSeq: \d+ INVITE',
      'Content-Length: 0',
    ]
  - [
      'SIP/2.0 403 Unauthorized IP detected',
      'From: <sip:testuser1002@invite-allowip-soundset.scenarios.test>;tag=[\w-]+',
      'To: <sip:[% scenarios.1.responders.0.username %]@invite-allowip-soundset.scenarios.test>;tag=[\w-]+',
      'CSeq: \d+ INVITE',
      'Content-Length: 0',
    ]
