
( Web Exclusive ) Teleunit SpA awarded test WiMAX licence for Florence region Teleunit , the Italian telecom services provider , has announced that it has been awarded a WiMAX test licence covering the Florence region in Tuscany , in conjunction with Italtel , one of the leading companies in the supply of products , solutions and services for next generation networks over IP , by the Italian Ministry of Communications . Teleunit will make available its existing wireless local loop ( WLL ) backbone , and structure the commercial offering through which the WiMAX and all related services will be rolled out to end users . Italtel will provide an integrated WiMAX solution , including its engineering , installation , onsite testing and technical support services , and additional marketing support to maximise the WiMAX customer base . The test licence has been issued free of charge , although any investment required to ensure the commercial feasibility of WiMAX will be assumed by Teleunit and Italtel . The test licence has also been issued subject to the provision of free trial WiMAX services to clients ; however , this does not preclude the possibility of exploiting other associated commercial opportunities . Francesco Cimica , Teleunit 's Chief Executive Officer , commented : " This represents an exceptional opportunity for Teleunit to develop a strong foothold in the WiMAX arena . Our existing WLL infrastructure means that the WiMAX offering can be rolled out more easily , thereby affording us a competitive advantage . Initially we will concentrate on technical testing in preparation for the commercial roll-out of the services . " 