Commit 36e85582 authored by cankar's avatar cankar
Browse files

model update

parent 15951c71
Loading
Loading
Loading
Loading
+2648 −504

File changed.

Preview size limit exceeded, changes collapsed.

+877 −284

File changed.

Preview size limit exceeded, changes collapsed.

+17 −3
Original line number Diff line number Diff line
system {
    Inbound GmIn   : SIPPacket;
    Outbound GmOut : SIPPacket;

    Inbound ConfIn   : configSystemReq;
    Outbound ConfOut : configSystemResp;

    Inbound GmIn   : SIPPacket;
    Outbound GmOut : SIPPacket;

    Inbound MwIn   : SIPPacket;
    Outbound MwOut : SIPPacket;

    Inbound Ic1In   : SIPPacket;
    Outbound Ic1Out : SIPPacket;

    Outbound Ic2Out : SIPPacket;

    Inbound IscIn  : SIPPacket;
    Outbound IscOut: SIPPacket;

    Inbound Isc1In  : SIPPacket;
    Outbound Isc1Out: SIPPacket;

    Inbound Isc2In  : SIPPacket;
    Outbound Isc2Out: SIPPacket;
}


+247 −52
Original line number Diff line number Diff line
@@ -6,93 +6,150 @@ record SIPPacket {
    String recipient;
    String message_body;

    AuthenticationChallengeResponseParameter auth_challenge_resp_param;
    AuthorizationHeader authorization_header;
    CSeqHeader cseq;
    CallIdHeader callid_header; // MW_SUB_01
    ContactHeader contact_header;
    ContactUri contact_uri;
    ContentTypeHeader content_type_header;
    EncryptedSDPAnswer encryptedSDPAnswer;
    EncryptedSDPOffer encryptedSDPOffer;
    EventHeader event_header;
    ExpireHeader expire_header;
    FromHeader from;
    MinExpireHeader min_expire_header;
    MinSEHeader min_se_header;
    NotifyBody notify_body;
    PAccessNetInfoHeader p_access_network_info_header;
    PAssertedIdHeader p_asserted_identity_header;
    PAssertedServiceHeader p_asserted_service_header;
    PAssociatedURIHeader p_associated_uri_header;
    PChargingFuncAddrHeader p_charging_function_addresses_header;
    PChargingVectorHeader p_charging_vector_header;
    PMediaAuthorizationHeader p_media_authorization_header;
    PPreferredIndentityHeader p_preferred_identity_header;
    PVisitedNetworkIdHeader p_visited_network_id_header;
    PathHeader path_header;
    ReasonHeader reason;
    RecordRouteHeader record_route_header;
    RouteHeader route_header;
    RequestUri request_uri;
    RequireHeader require_header;
    RouteHeader route_header;
    SDPAnswer sdpAnswer;
    SDPOffer sdpOffer;
    SecondPAssertedIDHeader second_p_asserted_id_header;
    SecurityClientHeader security_client_header;
    SecurityServerHeader security_server_header;
    SecurityVerifyHeader security_verify_header; 
    ServiceRouteHeader service_route_header;
    SessionExpiresHeader session_expires_header;
    SipUriHeader sip_uri;
    String callid_parameter; // MW_REG_22 & MW_REG_23
    SupportedHeader supported_header;
    ToHeader to;
    ViaHeader via_header;
    TopmostRouteHeader topmost_route_header;
    TopmostPathHeader topmost_path_header;
    ViaHeader topmost_via_header;
    ViaHeader via_header;
    WwwAuthenticateHeader www_authenticate_header;
    ContentTypeHeader content_type_header;
    PMediaAuthorizationHeader p_media_authorization_header;
    MinSEHeader min_se_header;
    SDPOffer sdpOffer;
    EncryptedSDPOffer encryptedSDPOffer;
    SDPAnswer sdpAnswer;
    ReasonHeader reason;
    EncryptedSIPUri encrypted_sip_uri;
    AnyHeader any_header;
    SecondRouteHeader second_route_header;
}

// additional typedefs for sip messages
record SIPInvite extends SIPPacket{};
record SIPInviteReq extends SIPPacket{};
record SIPInvite extends SIPPacket{}
record SIPInviteReq extends SIPPacket{}

//record SIPBye extends SIPPacket{};
record SIPByeResp extends SIPPacket{};
record SIPByeReq extends SIPPacket{};
//record SIPBye extends SIPPacket{}
record SIPByeResp extends SIPPacket{}
record SIPByeReq extends SIPPacket{}

record SIPAckReq extends SIPPacket{};
record SIPAckResp extends SIPPacket{};
record SIPAckReq extends SIPPacket{}
record SIPAckResp extends SIPPacket{}

record SIPNotifyResp extends SIPPacket{};
record SIPNotifyResp extends SIPPacket{}

record SIPRegisterReq extends SIPPacket{};
record SIPRegisterResp extends SIPPacket{};
record SIPRegisterReq extends SIPPacket{}

record SIPSubscribeReq extends SIPPacket{};
record SIPSubscribeReq extends SIPPacket{}

record SIPMessage extends SIPPacket{}; 
record SIPMessageReq extends SIPPacket{};

record SIP100Resp extends SIPPacket{};
record SIP180Resp extends SIPPacket{};
record SIP200Resp extends SIPPacket{};
record SIP380Resp extends SIPPacket{};
record SIP4xxResp extends SIPPacket{};
record SIP400Resp extends SIPPacket{};
record SIP401Resp extends SIPPacket{};
record SIP402Resp extends SIPPacket{};
record SIP403Resp extends SIPPacket{};
record SIP422Resp extends SIPPacket{};
record SIP481Resp extends SIPPacket{};
record SIPMessage extends SIPPacket{} 
record SIPMessageReq extends SIPPacket{}

record SIP100Resp extends SIPPacket{}
record SIP180Resp extends SIPPacket{}
record SIP200Resp extends SIPPacket{}
record SIP380Resp extends SIPPacket{}
record SIP3xxResp extends SIPPacket{}
record SIP4xxResp extends SIPPacket{}
record SIP400Resp extends SIPPacket{}
record SIP401Resp extends SIPPacket{}
record SIP402Resp extends SIPPacket{}
record SIP403Resp extends SIPPacket{}
record SIP404Resp extends SIPPacket{}
record SIP408Resp extends SIPPacket{}
record SIP422Resp extends SIPPacket{}
record SIP423Resp extends SIPPacket{}
record SIP480Resp extends SIPPacket{}
record SIP481Resp extends SIPPacket{}
record SIP488Resp extends SIPPacket{}
record SIP5xxResp extends SIPPacket{}
record SIP500Resp extends SIPPacket{}
record SIP504Resp extends SIPPacket{}

record SIPUpdateReq extends SIPPacket{}

record HeaderInfo {
    String present;
    String value;

    public boolean isPresent() {
        return present == "[present]";
        return present == PRESENT;
    }
    
    public boolean isOmit() {
        return present == OMIT;
    }
}

record SecondRouteHeader extends HeaderInfo {}
record AnyHeader extends HeaderInfo {}
record EncryptedSIPUri extends HeaderInfo {}
record CallIdHeader extends HeaderInfo {}
record CSeqHeader extends HeaderInfo{}
record PPreferredIndentityHeader extends HeaderInfo {
    EmergencyPublicUID emergency_public_user_identity;
    RegisteredPubUserIdentity registered_public_user_identity;
    String tel;
}

record EmergencyPublicUID extends HeaderInfo {}
record TopmostRouteHeader extends HeaderInfo {
    OrigIOParam orig_io_param;
}
record OrigIOParam extends HeaderInfo {}
record ReasonHeader extends HeaderInfo {}
record MinSEHeader extends HeaderInfo {}
record SDPOffer extends HeaderInfo {}
record EncryptedSDPOffer extends HeaderInfo {}
record EncryptedSDPAnswer extends HeaderInfo {}
record SDPAnswer extends HeaderInfo {}
record PAssertedIdHeader {
record PAssertedIdHeader extends HeaderInfo {
    String sip_uri;
    StoredDisplayName stored_display_name;
    StoredPublicUID stored_public_uid;
    EmergencyPublicUID emergency_public_user_identity;
    RegisteredPubUserIdentity registered_public_user_identity;
}

record SecondPAssertedIDHeader extends HeaderInfo {
    String tel;
}
record StoredPublicUID extends HeaderInfo {}
record PAssertedServiceHeader extends HeaderInfo{}
record StoredDisplayName extends HeaderInfo {}
record EventHeader extends HeaderInfo {
    String reg_parameter;    
}
@@ -104,17 +161,35 @@ record PChargingVectorHeader extends HeaderInfo {
    OrigIoiParameter orig_ioi_parameter;
    TermIoiParameter term_ioi_parameter;
    IoiParameter ioi_parameter;
    Update update_access_network_charging_info_parameter;
    AccessNetChargingInfoParam access_net_charging_info_param;
}
record AccessNetChargingInfoParam extends HeaderInfo {}
record Update extends HeaderInfo {}
record PVisitedNetworkIdHeader extends HeaderInfo {
    VisitedNetPreProvisionedStr visited_network_pre_provisioned_string;
}
record NotifyBody          extends HeaderInfo {
    String registered_public_user_identity;
    RegisteredPubUserIdentity registered_public_user_identity;
}
record RegisteredPubUserIdentity extends HeaderInfo {}
record AuthorizationHeader extends HeaderInfo {
    String integrity_protected_parameter;
    String private_user_identity;
    String algorithm_parameter;
    String response_parameter;
    String AUTS_parameter;
}
record ContactHeader extends HeaderInfo {
    String registered_public_user_identities;
    String contact_uri;
    String address_of_public_user_identity;
}

record PAssociatedURIHeader extends HeaderInfo {
    RegisteredPubUserIdentity registered_public_user_identity;
}
record ContactUri extends HeaderInfo {}
record SecurityServerHeader extends HeaderInfo {
    String pcscf;
}
@@ -126,39 +201,73 @@ record WwwAuthenticateHeader extends HeaderInfo {
    String      AUTN;
    String      algorithm_parameter;
}


record AuthenticationChallengeResponseParameter extends HeaderInfo {}
record PAccessNetInfoHeader extends HeaderInfo {
    String network_provide_parameter;
}

record ContentTypeHeader   extends HeaderInfo {}
record PMediaAuthorizationHeader   extends HeaderInfo {}
record RouteHeader         extends HeaderInfo {}
record RouteHeader         extends HeaderInfo {
    Topmost topmost;
}

record Topmost extends HeaderInfo {}
record CkParameter         extends HeaderInfo {}
record ExpireHeader extends HeaderInfo {}
record FromHeader extends SipUriHeader {}
record FromHeader extends   HeaderInfo {}
record IcidParameter       extends HeaderInfo {}
record IkParameter         extends HeaderInfo {}
record IoiParameter        extends HeaderInfo {}
record OrigIoiParameter    extends HeaderInfo {}
record PChargingFuncAddrHeader extends HeaderInfo {}
record PathHeader extends SipUriHeader {}
record PathHeader extends  HeaderInfo {}
record TopmostPathHeader extends  HeaderInfo {}
record PathTagParam        extends HeaderInfo {}
record RecordRouteHeader   extends HeaderInfo {}
record RequestUri           extends HeaderInfo {}
record RecordRouteHeader   extends HeaderInfo {
    String SIP_URI_of_IUT_P_CSCF;
    CompParam comp_parameter;
}

record CompParam extends HeaderInfo {}
record RequestUri           extends HeaderInfo {
    BarredPublicUserId barred_public_user_id;
    EmergencyServiceURN emergency_service_urn;
    GruuParam GRUU_parameter;
    GruuParam invalid_GRUU_parameter;
}

record EmergencyServiceURN extends HeaderInfo {}
record GruuParam extends HeaderInfo {}
record BarredPublicUserId extends HeaderInfo {}
record SecurityClientHeader extends HeaderInfo {}
record SecurityVerifyHeader extends HeaderInfo {}
record ServiceRouteHeader   extends HeaderInfo {}
record SessionExpiresHeader extends HeaderInfo {}
record ServiceRouteHeader   extends HeaderInfo {
    String sip_uri;
}
record SessionExpiresHeader extends HeaderInfo {
    RefreshParam refresh_parameter;
    DurationParam duration_parameter;
}

record DurationParam extends HeaderInfo {}
record RefreshParam extends HeaderInfo {}
record SipUriHeader extends HeaderInfo {}
record SupportedHeader     extends HeaderInfo {}
record TermIoiParameter    extends HeaderInfo {}
record ToHeader extends SipUriHeader {}
record ViaHeader    extends HeaderInfo{}
record ViaHeader    extends HeaderInfo{
    PortNumber port_number;
    FQDNAddress fqdn_address;
    IPAddress ip_address;
    Topmost topmost;
}
record IPAddress extends HeaderInfo {}
record FQDNAddress extends HeaderInfo {}
record PortNumber extends HeaderInfo {}
record ViaRecord           extends HeaderInfo {}
record VisitedNetPreProvisionedStr extends HeaderInfo {}

record MinExpireHeader extends HeaderInfo{}


// CONFIGURATION MESSAGES FOR UEs and IUT
@@ -172,8 +281,6 @@ record configSystemResp {}

record configNetworkReq { // was IUTConfiguration
    boolean security_association;
    boolean forward_ini02;  // defines the behavior of the IMS
                                   // for TP TP_IMST2_GM_INI_02

    boolean forward_message;       // TP_IMST2_GM_STA_01
    boolean topology_hiding;
@@ -181,6 +288,8 @@ record configNetworkReq { // was IUTConfiguration
    boolean configured_for_emergency_sessions;
    boolean same_trust_domain;

    boolean forward_ini02;  // defines the behavior of the IMS for
                            // TP_IMST2_GM_INI_02
    boolean forward_ini06;
    boolean forward_sta01;
    boolean forward_sub02;
@@ -191,11 +300,97 @@ record configNetworkReq { // was IUTConfiguration
    boolean forward_tar02;
    boolean response_reg09;
    boolean encrypted_sdp_offer;
    boolean respond_401_mwreg24;
    boolean forward_mwini03;
    boolean stored_display_name;
    boolean forward_mwini10;
    boolean stored_via_header;
    boolean forward_mwini11;
    boolean stored_record_route_header;
    boolean forward_mwini12;
    boolean forward_mwini13;
    boolean forward_mwini14;
    boolean requiring_periodic_refresh;
    boolean forward_mwsta01;
    boolean stored_service_route_header;
    boolean forward_mwsta06;
    boolean forward_mwsub02;
    boolean forward_mwsub05;
    boolean forward_mwsub08;
    boolean forward_mwtar02;
    boolean forward_mwtar06;
    boolean forward_mwtar08;
    boolean configured_entry_point_to_home_net;
    boolean conf_two_entry_points_to_home_net;
    boolean send_408_icreg04;
    boolean send_408_icreg05;
    boolean send_408_icreg06;
    boolean contact_as1_for_message;
    boolean contact_as1_for_invite;
    boolean contact_as2_for_invite;
    boolean iut_and_as1_in_same_trust_domain;
    boolean as1_indicated_iut_handles_dialog;
    boolean as1_and_iut_in_same_net;
    boolean ifc_session_continued;
    boolean forward_iscsta05;
    boolean forward_iscsta06;
    boolean as1_indicated_handling_whole_dialog;
    boolean forward_message_to_as1;
}

record configUserReq { // was UEConfiguration
    String sender;
    boolean init_security_association;
    boolean init_emergency_registered;
    boolean ue_is_visiting_iut;
    boolean ue_is_home_net;
    boolean init_temporary_security_association;
    boolean init_registered_user_id;
}


// constants
final String UE1 = "[UE1]";
final String UE2 = "[UE2]";
final String IUT = "[IUT]";
final String IMS = "[IMS]";
final String AS1 = "[AS1]";
final String AS2 = "[AS2]";
final String OMIT = "[omit]";
final String PRESENT = "[present]";
final String INVALID_USER_ID = "[invalid private user identity]";
final String INVITE = "INVITE";
final String ACK = "ACK";
final String REGISTER = "REGISTER";
final String SUBSCRIBE = "SUBSCRIBE";
final String NOTIFY = "NOTIFY";
final String BYE    = "BYE";
final String MESSAGE = "MESSAGE";
final String UPDATE  = "UPDATE";
final String STORED_VIA_HEADER = "[stored Via header]";
final String NOT_MATCHING_STORED_ROUTE_HEADER = "[Route Header not matching stored Record-Route header]";
final String ROUTE_HEADER_NOT_MATCHING = "[Route header not matching stored Service-Route header]";
final String PCSCF_OR_FQDN_ADDRESS = "[address of IUT P-CSCF or FQDN address of IUT P-CSCF]";
final String NOT_MATCHING_VIA_HEADER = "[Via header not matching stored Via header]";
final String TIMER_OPTION_TAG = "[timer option tag]";
final String WRONG_EXPIRATION = "[||acceptable expiration]";
final String ACCEPTABLE_EXPIRATION = "[acceptable expiration]";
final String TYPE1 = "[type1]";
final String TYPE2 = "[type2]";
final String TYPE3 = "[type3]";
final String YES = "[YES]";
final String NO = "[NO]";
final String SECURITY_LIST_PARAMETERS = "[P-CSCF security list the parameters needed for the security association setup]";
final String LARGE_BODY = "[Message Body greater than 1300 bytes]";
final String EMERGENCY_SERVICE_ID = "[emergency service identifier]";
final String RESPONSE_503_OR_488 = "[503 response code OR 488 response code]";
final String UNACCEPTABLE_MEDIA_PARAM = "[unacceptable media parameter]";
final String AKAV1_MD5 = "[AKAv1-MD5]";
final float UE1RegistrationTimeout = 1.0;
final String REQUEST_URI_MATCHING_EMERGENCY_SERVICE_ID = "[Request-URI matching an emergency service identifier]";
final String TEL_URI_OF_EMERGENCY_PUB_USER_ID = "[tel URI of emergency public user identity]";
final String TEL_URI_OF_PUB_UID = "[tel URI of public user identity]";
final String TOKENIZED_BY_PARAMETER = "[-> tokenized-by parameter]";
final String SIP_URI_OF_IUT_IBCF = "-> SIP URI of IUT IBCF";
final String SIP_URI_OF_IMS = "-> SIP URI of IMS";
final String SIP_URI_OF_IUT_SCSCF = "-> SIP URI of IUT S-CSCF";
final float timeout_iscini05 = 1.0;
final float timeout_iscsta04 = 1.0;