public void addContact
	(
		InetAddress iaIn
		, int iPort
		, String strName
		, int iSysState
		, int iState
		, String strStatus
	)
	{
		InetAddress iaTmp = this.normalizeAddressIfLocal(iaIn);

		if (this.idxContact(iaTmp) == -1)
		{
			synchronized(this.list)
			{
				try
				{
					EzimContact ecTmp = null;

					int iIdx = 0;
					int iLen = this.getSize();

					while(iIdx < iLen)
					{
						ecTmp = this.getElementAt(iIdx);

						if
						(
							strName.compareToIgnoreCase
							(
								ecTmp.getName()
							) < 0
						)
						{
							break;
						}

						iIdx ++;
					}

					this.list.add
					(
						iIdx
						, new EzimContact
						(
							iaTmp
							, iPort
							, strName
							, iSysState
							, iState
							, strStatus
						)
					);

					this.fireIntervalAdded(iIdx, iIdx);

					if (EzimSound.getInstance() != null)
						EzimSound.getInstance().playStateChg();
				}
				catch(EzimContactException eceTmp)
				{
					EzimLogger.getInstance().severe
					(
						eceTmp.getMessage()
						, eceTmp
					);
				}
			}
		}
	}