Commit 18396e8f authored by pintar's avatar pintar
Browse files

additional types, templates are added for SMS within MessageBody RFC3842

parent 8f9b8f7b
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ module LibSip_SIPTypesAndValues language "TTCN-3:2005"//MRO
	//	SipAts
	import from LibSip_SDPTypes all;
	import from LibSip_XMLTypes all;
    import from LibSip_SMSTypes all;

group Constants 
{	
@@ -1783,7 +1784,8 @@ group SubTypes{// Subtypes
        XmlBody xmlBody,				// if there is XML body
		MIME_Message mimeMessageBody, 	// if there is SDP and encapsulated ISUP part
		charstring sipfrag, 			// if content-Type is message/sipfrag (cp. NOTIFY, cp TS124147 A.4.3.1.2)
		charstring textplain			// if content type is text/plain (for testing long messages)
		charstring textplain,			// if content type is text/plain (for testing long messages)
		SMS sms
	  };
 
	} // end group MessageBodyTypes
+55 −0
Original line number Diff line number Diff line
/**
 *	@author 	STF 406
 *  @version    $Id: LibSip_SMSTypes.ttcn 488 2010-11-08 10:17:19Z pintar $
 *	@desc		This module provides the SMS type system for SIP tests.
 */
module LibSip_SMSTypes language "TTCN-3:2009" {
    
    group SMSConstants{

        // IMS ETSI name MWI application
        const charstring c_imsEtsiMwiApplication := "application/simple-message-summary";
        
        // msg_status line	:= "Message-Waiting"
        const charstring c_messageWaiting	:= "Message-Waiting";
        
        // msg_summary line	:= "Voice-Message"
        const charstring c_voiceMessage	:= "Voice-Message";
    
    }
    
    group SMSTypes{
                   //TODO add (SMS sms) into type union MessageBody{ in module LibSIPTypesAndValues
	
        type record SMS { //Simple_message_summary
            Msg_status_line msg_status_line,
            Msg_account msg_account optional,
            Msg_summary_line_list msg_summary_line_list optional,
            Opt_msg_headers opt_msg_headers optional	    
        }
	
        type record Msg_status_line {
            charstring msg_type,
            charstring msg_status
        }
	
        type record Msg_account {
            charstring msg_type_account,
            charstring account_URI
        }
	
        type set of Msg_summary_line Msg_summary_line_list;
    
        type record Msg_summary_line {
            charstring msg_context_class,
            charstring msgs,
            charstring urgent_msgs optional
        }
	
        type set of charstring Opt_msg_headers;
    
        //type integer msgcount length(1); //msgs and urgent_msgs can be dividet into subtypes
    }
    

} /* end module LibSip_XMLTypes */
 No newline at end of file
+19 −0
Original line number Diff line number Diff line
@@ -2949,6 +2949,25 @@ group AwaitingMessage {
		}
	} // end of f_awaitingMESSAGE_PassOnTimeout
	
    /** 
    *  @desc await NOTIFY request
    */
    function f_awaitingNOTIFY(in template NOTIFY_Request p_MSG) runs on SipComponent
    {
        var NOTIFY_Request	v_MSG;
      
        tc_wait.start(PX_SIP_TWAIT);
        alt
        {
          [] SIPP.receive(p_MSG)-> value v_MSG sender vc_sent_label
            {
              tc_wait.stop;
              f_getRouteMapIntoRecordRoute(vc_cSeq, v_MSG);
              f_setHeadersOnReceiptOfRequest(v_MSG);
            }
        }
    } // end of f_awaitingNOTIFY
	
	/** 
	*  @desc await NOTIFY request
	*		 reply with 200 OK
+101 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ module LibSip_Templates
	import from LibSip_Interface all;
	import from LibSip_PIXITS all;
	import from LibSip_XMLTypes all;
    import from LibSip_SMSTypes all;
	
	//LibXMLTypes
	import from ietf_params_xml_ns_resource_lists language "XSD" all
@@ -2708,6 +2709,96 @@ group SDP_Templates {

} //*  end group SDP_Templates

group SMS_Templates {
    
    template SMS m_SMS(template Msg_summary_line_list p_summaryLineList, template charstring p_uri) :=
    {
        msg_status_line := m_msgStatusLine_yes,
        msg_account := m_msgAccount(p_uri),
        msg_summary_line_list :=p_summaryLineList, 
        opt_msg_headers := omit
    }
    
    template SMS mw_SMS :=
    {
        msg_status_line := ?,
    	msg_account := *,
        msg_summary_line_list := *,
        opt_msg_headers := *
    }
    
    template SMS mw_SMS_yes :=
    {
        msg_status_line := mw_msgStatusLine_yes,
        msg_account := *,
        msg_summary_line_list := *,
        opt_msg_headers := *
    }
    
    template SMS mw_SMS_yesUri :=
    {
        msg_status_line := mw_msgStatusLine_yes,
        msg_account := mw_msgAccount,
        msg_summary_line_list := *,
        opt_msg_headers := *
    }
    
    template SMS mw_SMS_yesVoice :=
    {
        msg_status_line := mw_msgStatusLine_yes,
        msg_account := *,
        msg_summary_line_list := {mw_msgSummaryLine(c_voiceMessage)},
        opt_msg_headers := *
    }
    
    template SMS mw_SMS_yesUriVoice :=
    {
        msg_status_line := mw_msgStatusLine_yes,
        msg_account := mw_msgAccount,
        msg_summary_line_list := {mw_msgSummaryLine(c_voiceMessage)},
        opt_msg_headers := *
    }
    
    template Msg_status_line m_msgStatusLine_yes:=
    {
        msg_type	:= c_messageWaiting,
        msg_status	:= "yes"
    }
    
    template Msg_status_line mw_msgStatusLine_yes:=
    {
        msg_type	:= c_messageWaiting,
        msg_status	:= "yes"
    }

    template Msg_account m_msgAccount(template charstring p_uri) :=
    {
        msg_type_account := c_messageWaiting,
        account_URI := p_uri//m_SipUrl_NumberHostParam(PX_IMS_SUT_UE2_PUBLIC_USER,PX_IMS_SUT_UE2_HOME_DOMAIN,omit)
    }

    template Msg_account mw_msgAccount :=
    {
        msg_type_account := c_messageWaiting,
        account_URI := ?
    }
    
    template Msg_summary_line m_msgSummaryLine(template charstring p_msgContexClass,template charstring p_msgs,template charstring p_urgent_msgs) :=
    {
        msg_context_class := p_msgContexClass,
        msgs := p_msgs,
        urgent_msgs := p_urgent_msgs
    }
    
    template Msg_summary_line mw_msgSummaryLine(template charstring p_msgContexClass) :=
    {
        msg_context_class := p_msgContexClass,
        msgs := ?,
        urgent_msgs :=*
	}
    
} //end group Templates_SMS

group MessageBodies {
	
	template MessageBody m_MBody_SDP(template SDP_Message p_SDP):=
@@ -2720,6 +2811,11 @@ group MessageBodies {
		xmlBody := p_xmlBody
	};
	
	template MessageBody m_mBody_SMS(template SMS p_SMS):=
	{
		sms :=  p_SMS
	};
	
	template MessageBody m_MBody_longPlainText:=
	{
		textplain :=  c_longMessageContent_1300Bytes
@@ -2758,6 +2854,11 @@ group MessageBodies {
		xmlBody := p_xmlBody
	};
        
    template MessageBody mw_mBody_SMS(template SMS p_SMS):=
    {
        sms :=  p_SMS
    };
	
	template MessageBody mw_MBody_MIMESdpXml(template SDP_Message p_sdp, template XmlBody p_xmlBody):=
	{
		mimeMessageBody := {boundary:=?,