flow: - start|DEFAULT_ONREPLY: - start|REPLY_ROUTE_NAT: - start|ROUTE_ENTRY: - return|ROUTE_ENTRY: - start|ROUTE_APPLY_HEADER_RULES: - return|ROUTE_APPLY_HEADER_RULES: - start|ROUTE_PREPARE_UA: - return|ROUTE_PREPARE_UA: - start|REPLY_ROUTE_RTPENGINE: - return|REPLY_ROUTE_RTPENGINE: - start|REPLY_ROUTE_NAT_CONTINUE: - start|ROUTE_EXIT: - start|ROUTE_RUNTIME: - return|ROUTE_RUNTIME: - start|dialog:start: - return|dialog:start: - return|dialog:start: sip_in: - '^SIP/2.0 200 OK' - 'From: ;tag=' - 'To: ;tag=' - 'CSeq: \d+ INVITE' - 'Allow: INVITE, PRACK, ACK, BYE, CANCEL, OPTIONS, NOTIFY, REGISTER, SUBSCRIBE, REFER, PUBLISH, UPDATE, MESSAGE' - 'Call-Info: ;appearance-index=1' - 'Contact: ' - 'Content-Type: application/sdp' - 'Content-Length: \d+' sip_out: - [ '^PUBLISH sip:[% scenarios.0.username %]@incoming-shared-line.scenarios-pbx.test SIP/2.0', 'From: ', 'To: ', 'Event: dialog', 'Content-Type: application/dialog-info\+xml', ] - [ '^SIP/2.0 200 OK', 'From: ;tag=', 'To: ;tag=', 'CSeq: \d+ INVITE', 'Allow: INVITE, PRACK, ACK, BYE, CANCEL, OPTIONS, NOTIFY, REGISTER, SUBSCRIBE, REFER, PUBLISH, UPDATE, MESSAGE', 'Call-Info: ;appearance-index=1', 'Contact: ', 'Content-Type: application/sdp', 'Content-Length: \d+', ] - [ '^CANCEL sip:[% scenarios.0.username %]@[% scenarios.2.responders.0.ip %]:[% scenarios.2.responders.0.port %] SIP/2.0', 'From: ;tag=', 'To: ', 'CSeq: \d+ CANCEL', 'Route: ', 'Max-Forwards: 69', 'Content-Length: 0', 'Reason: SIP;cause=200;text=\"Call completed elsewhere\"', ]