package org.jetlinks.community; import lombok.extern.slf4j.Slf4j; import org.jetlinks.community.media.bean.SSRCInfo; import org.jetlinks.community.media.entity.SipServerConfig; import org.jetlinks.community.media.service.LocalMediaDeviceService; import org.jetlinks.community.media.sip.SipServerHelper; import org.jetlinks.community.media.transmit.cmd.SipCommander; import org.jetlinks.community.media.zlm.entity.MediaServerItem; import org.jetlinks.community.standalone.JetLinksApplication; import org.jetlinks.core.device.DeviceRegistry; import org.jetlinks.core.event.EventBus; import org.jetlinks.supports.server.DecodedClientMessageHandler; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.context.annotation.EnableAspectJAutoProxy; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import reactor.core.publisher.Mono; /** * @author lifang * @version 1.0.0 * @ClassName bridge.java * @Description TODO * @createTime 2021年12月02日 08:13:00 */ @RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest(classes = JetLinksApplication.class, webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT) @Slf4j @EnableAspectJAutoProxy(proxyTargetClass = true,exposeProxy = true) public class BridgeTest { @Autowired private EventBus eventBus; @Autowired private DeviceRegistry registry; @Autowired private DecodedClientMessageHandler messageHandler; @Autowired private SipCommander sipCommander; @Autowired SipServerHelper serverHelper; @Autowired LocalMediaDeviceService mediaDeviceService; // // @Test public void init() throws InterruptedException { serverHelper.createSip( SipServerConfig.of("34020000002000000001","192.168.10.100", 7001,"udp","340200000","utf-8","12345678",10L,"1")).subscribe(); Thread.sleep(3000); System.out.println("开始调用invite方法"); SSRCInfo ssrcInfo = SSRCInfo.of(10000,"1000",null); MediaServerItem mediaServerItem = new MediaServerItem(); mediaServerItem.setSdpIp("1.15.89.83"); mediaDeviceService.findById("34020000001320000003") .flatMap(device->{ device.setStreamMode("udp"); return sipCommander.playStreamCmd(mediaServerItem, ssrcInfo,device, "34020000002000000001") .doOnNext(s->{ System.out.println(s); }) .then(Mono.empty()); } ) .subscribe(); while (true){ } } // @Test // public void init() throws InterruptedException { // AliIotBridgeDeviceConfig bridgeConfig = new AliIotBridgeDeviceConfig(); // bridgeConfig.setDeviceName("ceshi_"); // bridgeConfig.setDeviceSecret("81be3f5ef0b9d383e270218f262c353"); // bridgeConfig.setProductKey("a1UmTLN10zP"); // bridgeConfig.setId("123"); // // // AliIotBridgeEntity aliIotBridgeEntity = new AliIotBridgeEntity(); // AliIotBridgeEntity.AccessConfig accessConfig = new AliIotBridgeEntity.AccessConfig(); // accessConfig.setAccessKey("LTAIcCyEivml1zSX"); // accessConfig.setAccessSecret("nFHWpY8rT1fP3vobiFz3jYnSoHm5fl"); // accessConfig.setAuthEndpoint("https://iot-auth.cn-shanghai.aliyuncs.com/auth/bridge"); // accessConfig.setHttp2Endpoint("https://a1UmTLN10zP.iot-as-http2.cn-shanghai.aliyuncs.com:443"); // accessConfig.setProductKey("a1UmTLN10zP"); // accessConfig.setRegionId("cn-shanghai"); // aliIotBridgeEntity.setProductId("1"); // aliIotBridgeEntity.setAccessConfig(accessConfig); //// AliBridgeGateway aliBridgeGateway = new AliBridgeGateway(registry,eventBus,messageHandler); // // aliBridgeGateway.initBridge(aliIotBridgeEntity) // .doOnError(error->{ // System.out.println(error); // }) // .subscribe(); // //// aliBridgeGateway.getBridgeServer().flatMap(server->server.register("819b4fd3896e67f74195df36920ae55a","a1UmTLN10zP","ceshi_","81be3f5ef0b9d383270218f862c353")).subscribe(); // // Thread.sleep(10000); // DeviceOnlineMessage onlineMessage = new DeviceOnlineMessage(); // onlineMessage.setId("819b4fd3896e67f74195df36920ae55a"); // eventBus.publish("/device/1/819b4fd3896e67f74195df36920ae55a/online",onlineMessage) // .doOnError(error->{ // System.out.println(error); // }) // .subscribe(); // // ReportPropertyMessage propertyMessage = new ReportPropertyMessage(); // propertyMessage.setId("819b4fd3896e67f74195df36920ae55a"); // propertyMessage.setProperties(MapUtil.of(Pair.of("LightStatus",0))); // eventBus.publish("/device/1/819b4fd3896e67f74195df36920ae55a/message/property/report",propertyMessage).subscribe(); // while (Thread.activeCount()>1){ // // } // } }