/**
* Start time:15:07:07 2009-07-17<br>
* Project: mobicents-isup-stack<br>
*
* @author <a href="mailto:baranowb@gmail.com">Bartosz Baranowski </a>
*
*/
package org.mobicents.ss7.isup.impl;
import java.util.Arrays;
import org.mobicents.ss7.isup.impl.InitialAddressMessageImpl;
import org.mobicents.ss7.isup.impl.message.parameter.EndOfOptionalParametersImpl;
import org.mobicents.ss7.isup.message.CallProgressMessage;
import org.mobicents.ss7.isup.message.CircuitGroupUnblockingMessage;
import org.mobicents.ss7.isup.message.ISUPMessage;
import org.mobicents.ss7.isup.message.parameter.BackwardCallIndicators;
import org.mobicents.ss7.isup.message.parameter.CircuitIdentificationCode;
import org.mobicents.ss7.isup.message.parameter.ConnectedNumber;
import org.mobicents.ss7.isup.message.parameter.EventInformation;
import org.mobicents.ss7.isup.message.parameter.TransmissionMediumUsed;
/**
* Start time:15:07:07 2009-07-17<br>
* Project: mobicents-isup-stack<br>
*
* @author <a href="mailto:baranowb@gmail.com"> Bartosz Baranowski </a>
*/
public class CPGTest extends MessageHarness{
public void testTwo_Parameters() throws Exception
{
byte[] message = getDefaultBody();
//CallProgressMessage cpg=new CallProgressMessageImpl(this,message);
CallProgressMessage cpg=super.messageFactory.createCPG();
cpg.decodeElement(message);
assertNotNull(cpg.getParameter(EventInformation._PARAMETER_CODE));
assertNotNull(cpg.getParameter(BackwardCallIndicators._PARAMETER_CODE));
assertNotNull(cpg.getParameter(TransmissionMediumUsed._PARAMETER_CODE));
assertNotNull(cpg.getParameter(ConnectedNumber._PARAMETER_CODE));
EventInformation ei=(EventInformation) cpg.getParameter(EventInformation._PARAMETER_CODE);
assertEquals("EventInformation has wrong value: ",0x02 ,ei.getEventIndicator());
BackwardCallIndicators bci=(BackwardCallIndicators) cpg.getParameter(BackwardCallIndicators._PARAMETER_CODE);
assertEquals("BackwardCallIndicators value getChargeIndicator does not match:",bci._CHARGE_INDICATOR_CHARGE,bci.getChargeIndicator());
assertEquals("BackwardCallIndicators value getCalledPartysStatusIndicator does not match:",bci._CPSI_SUBSCRIBER_FREE,bci.getCalledPartysStatusIndicator());
assertEquals("BackwardCallIndicators value getCalledPartysCategoryIndicator does not match:",bci._CPCI_PAYPHONE,bci.getCalledPartysCategoryIndicator());
assertEquals("BackwardCallIndicators value getEndToEndMethodIndicator does not match:",bci._ETEMI_SCCP,bci.getEndToEndMethodIndicator());
assertEquals("BackwardCallIndicators value isInterworkingIndicator does not match:",bci._II_IE,bci.isInterworkingIndicator());
assertEquals("BackwardCallIndicators value isEndToEndInformationIndicator does not match:",bci._ETEII_NO_IA,bci.isEndToEndInformationIndicator());
assertEquals("BackwardCallIndicators value isIsdnUserPartIndicator does not match:",bci._ISDN_UPI_UATW,bci.isIsdnUserPartIndicator());
assertEquals("BackwardCallIndicators value isHoldingIndicator does not match:",bci._HI_REQUESTED,bci.isHoldingIndicator());
assertEquals("BackwardCallIndicators value isIsdnAccessIndicator does not match:",bci._ISDN_AI_TA_ISDN,bci.isIsdnAccessIndicator());
assertEquals("BackwardCallIndicators value isEchoControlDeviceIndicator does not match:",bci._ECDI_IECD_NOT_INCLUDED,bci.isEchoControlDeviceIndicator());
assertEquals("BackwardCallIndicators value getSccpMethodIndicator does not match:",bci._SCCP_MI_CONNECTION_ORIENTED,bci.getSccpMethodIndicator());
TransmissionMediumUsed tmu=(TransmissionMediumUsed) cpg.getParameter(TransmissionMediumUsed._PARAMETER_CODE);
assertEquals("TransmissionMediumUsed value getTransimissionMediumUsed does not match:",0x03,tmu.getTransimissionMediumUsed());
ConnectedNumber cn=(ConnectedNumber) cpg.getParameter(ConnectedNumber._PARAMETER_CODE);
//XXX: note this can fail, once we decide when APRI is done
assertEquals("ConnectedNumber value getNatureOfAddressIndicator does not match:",cn._NAI_SUBSCRIBER_NUMBER,cn.getNatureOfAddressIndicator());
assertEquals("ConnectedNumber value getNumberingPlanIndicator does not match:",cn._NPI_TELEX,cn.getNumberingPlanIndicator());
assertEquals("ConnectedNumber value getAddressRepresentationRestrictedIndicator does not match:",cn._APRI_NOT_AVAILABLE,cn.getAddressRepresentationRestrictedIndicator());
assertEquals("ConnectedNumber value getScreeningIndicator does not match:",cn._SI_NETWORK_PROVIDED,cn.getScreeningIndicator(),cn._SI_NETWORK_PROVIDED);
assertEquals("ConnectedNumber value getAddress does not match:","380683",cn.getAddress());
}
@Override
protected byte[] getDefaultBody() {
//FIXME: for now we strip MTP part
byte[] message={
0x0C
,(byte) 0x0B
,CallProgressMessage._MESSAGE_CODE_CPG
//EventInformation
,0x02
//no mandatory varialbe part, no pointer
//pointer to optioanl part
,0x01
//backward call idnicators
,BackwardCallIndicators._PARAMETER_CODE
,0x02
,(byte) 0xA6
,(byte) 0x9D
//TransmissionMedium Used
,TransmissionMediumUsed._PARAMETER_CODE
,0x01
,0x03
//Connected Number
,ConnectedNumber._PARAMETER_CODE
,0x05
,0x01
,0x4B
,(byte) (0x83&0xFF)
,0x60
,0x38
//End of Opt Part
,0x00
};
return message;
}
@Override
protected ISUPMessage getDefaultMessage() {
return super.messageFactory.createCPG();
}
}