From da2662ab27e5655636bfa6338d8d1f083a99f36f Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期四, 13 六月 2024 18:10:01 +0800
Subject: [PATCH] 国标28181-支持自动识别网卡监听,可以不再配置SIP.IP

---
 doc/_content/ability/device.md                                                         |    3 
 src/main/java/com/genersoft/iot/vmp/media/MediaServerConfig.java                       |    2 
 doc/_content/introduction/compile.md                                                   |    2 
 src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaNodeServerService.java           |    8 -
 src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRESTfulUtils.java                     |    1 
 src/main/java/com/genersoft/iot/vmp/conf/SipConfig.java                                |    3 
 src/main/resources/all-application.yml                                                 |    8 
 src/main/java/com/genersoft/iot/vmp/web/gb28181/ApiController.java                     |    2 
 src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java                              |   48 ++++++-
 src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java  |    2 
 src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java |   32 -----
 src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java                 |   10 +
 src/main/java/com/genersoft/iot/vmp/conf/MediaConfig.java                              |   27 +---
 doc/_sidebar.md                                                                        |    1 
 src/main/java/com/genersoft/iot/vmp/media/bean/MediaServer.java                        |    2 
 doc/_content/introduction/config.md                                                    |  138 +++++++++-------------
 src/main/java/com/genersoft/iot/vmp/conf/UserSetting.java                              |    2 
 src/main/java/com/genersoft/iot/vmp/conf/WVPTimerTask.java                             |    2 
 doc/_content/introduction/deployment.md                                                |   16 --
 src/main/resources/application-dev.yml                                                 |   29 +---
 20 files changed, 142 insertions(+), 196 deletions(-)

diff --git a/doc/_content/ability/device.md b/doc/_content/ability/device.md
index ceed545..134f7ad 100644
--- a/doc/_content/ability/device.md
+++ b/doc/_content/ability/device.md
@@ -3,9 +3,6 @@
 璁惧鎺ュ叆涓昏鏄渶瑕佸湪璁惧涓婇厤缃�28181涓婄骇涔熷氨鏄疻VP-PRO鐨勪俊鎭紝鍙湁淇℃伅涓�鑷寸殑鎯呭喌鎵嶅彲浠ユ敞鍐屾垚鍔熴�傝澶囨敞鍐屾垚鍔熷悗鎵撳紑WVP->鍥芥爣璁惧,鍙互鐪嬪埌鏂板鍔犵殑璁惧锛沎璁惧浣跨敤](./_content/ability/device_use.md)锛�  
 涓昏鏈変互涓嬪瓧娈甸渶瑕侀厤缃細  
 
-- sip->ip  
-鏈満IP锛屼笉瑕佷娇鐢�127.0.0.1/0.0.0.0, 闄ら潪浣犲椤圭洰鍙婂叾鐔熸倝    
-
 - sip->port  
 28181鏈嶅姟鐩戝惉鐨勭鍙�  
 
diff --git a/doc/_content/introduction/compile.md b/doc/_content/introduction/compile.md
index 66693bd..b5dbef0 100644
--- a/doc/_content/introduction/compile.md
+++ b/doc/_content/introduction/compile.md
@@ -44,7 +44,7 @@
 杩欓噷渚濈劧鏄弬鑰冪綉涓婃暀绋嬶紝鑷瀹夎鍚с��
 
 ## 4 缂栬瘧ZLMediaKit
-鍙傝�僙LMediaKit[WIKI](https://github.com/ZLMediaKit/ZLMediaKit/wiki)锛屾埅鍙栦竴涓嬪叧閿楠わ細
+鍙傝�僙LMediaKit[WIKI](https://github.com/ZLMediaKit/ZLMediaKit/wiki)锛屽鏋滈渶瑕佷娇鐢ㄨ闊冲璁插姛鑳斤紝璇峰弬鑰僛zlm鍚敤webrtc缂栬瘧鎸囧崡](https://github.com/ZLMediaKit/ZLMediaKit/wiki/zlm%E5%90%AF%E7%94%A8webrtc%E7%BC%96%E8%AF%91%E6%8C%87%E5%8D%97)锛屽紑鍚痾lm鐨剋ebrtc鍔熻兘銆傛埅鍙栦竴涓嬪叧閿楠わ細
 ```bash
 # 鍥藉唴鐢ㄦ埛鎺ㄨ崘浠庡悓姝ラ暅鍍忕綉绔檊itee涓嬭浇 
 git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit
diff --git a/doc/_content/introduction/config.md b/doc/_content/introduction/config.md
index 29f00a4..359aac9 100644
--- a/doc/_content/introduction/config.md
+++ b/doc/_content/introduction/config.md
@@ -14,20 +14,11 @@
 鍩轰簬spring boot鐨勫紑鍙戞柟寮忥紝閰嶇疆鏂囦欢鐨勫姞杞芥槸寰堢伒娲荤殑銆傞粯璁ゅ湪src/main/resources/application.yml锛岄儴鍒嗛厤缃」鏄彲閫夛紝浣犱笉闇�瑕佸叏閮ㄩ厤缃湪閰嶇疆鏂囦欢涓紝
 瀹屽叏鐨勯厤缃鏄庡彲浠ュ弬鐪媋ll-application.yml銆�
 ### 1.1 榛樿鍔犺浇閰嶇疆鏂囦欢鏂瑰紡
-浣跨敤maven鎵撳寘鍚庣殑jar鍖呴噷锛屽凡缁忓瓨鍦ㄤ簡閰嶇疆鏂囦欢锛屼絾鏄瘡娆℃墦寮�jar鍖呬慨鏀归厤缃枃浠舵垨鑰呬慨鏀瑰悗鍐嶆墦鍖呴兘鏄瘮杈冮夯鐑︾殑锛屾墍浠ュぇ瀹跺彲閫氳繃鎸囧畾閰嶇疆鏂囦欢璺緞鏉ュ姞杞芥寚瀹氫綅缃殑閰嶇疆鏂囦欢銆�
+浣跨敤maven鎵撳寘鍚庣殑target閲岋紝宸茬粡瀛樺湪浜嗛厤缃枃浠讹紝榛樿鍔犺浇閰嶇疆鏂囦欢涓篴pplication.yml锛屾煡鐪嬪唴瀹瑰彂鐜板叾涓璼pring.profiles.active閰嶇疆鐨勫唴瀹癸紝灏嗗叆閰嶇疆鐨勫�间负dev锛岄偅涔堝叿浣撳姞杞界殑閰嶇疆鏂囦欢灏辨槸application-dev.yml锛屽鏋滈厤缃殑鍊兼壘涓嶅埌瀵瑰簲鐨勯厤缃枃浠讹紝淇敼鍊间负dev銆�
 ```shell
 cd wvp-GB28181-pro/target
-java -jar wvp-pro-*.jar --spring.config.location=../src/main/resources/application.yml
+java -jar wvp-pro-*.jar
 ```
-### 1.2 杩佺Щ閰嶇疆鏂囦欢浠ユ柟渚垮惎鍔�
-鐢变簬閰嶇疆鏂囦欢鐨勫懡浠ゆ瘮杈冮暱锛屾墍浠ヤ负浜嗗惎鍔ㄦ柟渚块�氬父鎴戜細鎶婇厤缃枃浠舵斁鍒癹ar鍖呯殑鍚岀骇鐩綍锛岀被浼艰繖鏍�,
-绉婚櫎jar鍖呭唴/BOOT-INF/classes/涓嬫墍鏈変互application寮�澶寸殑鏂囦欢锛屼娇鐢ㄨВ鍘嬬缉宸ュ叿鎵撳紑jar鍗冲彲锛屼笉闇�瑕佽В鍘嬪嚭鏉ャ��
-```shell
-cd wvp-GB28181-pro/target
-mv ../src/main/resources/application-dev.yml application.yml 
-java -jar wvp-pro-*.jar 
-```
-杩欎篃鏄垜鑷繁鏈�甯哥敤鐨勬柟寮忋��
 ## 2 閰嶇疆WVP-PRO
 wvp鏀寔澶氱鏁版嵁搴擄紝鍖呮嫭Mysql锛孭ostgresql锛岄噾浠撶瓑锛岄厤缃换閫変竴绉嶅嵆鍙��
 ### 2.1 鏁版嵁搴撻厤缃�
@@ -37,27 +28,28 @@
 鏁版嵁搴撳悕绉颁互wvp涓轰緥
 ```yaml
 spring:
-  datasource:
-    type: com.zaxxer.hikari.HikariDataSource
-    driver-class-name: com.mysql.cj.jdbc.Driver
-    url: jdbc:mysql://127.0.0.1:3306/wvp?useUnicode=true&characterEncoding=UTF8&rewriteBatchedStatements=true&serverTimezone=PRC&useSSL=false&allowMultiQueries=true&allowPublicKeyRetrieval=true
-    username: root
-    password: 12345678
-
-mybatis:
-  configuration:
-    map-underscore-to-camel-case: true
+  dynamic:
+    primary: master
+    datasource:
+      master:
+        type: com.zaxxer.hikari.HikariDataSource
+        driver-class-name: com.mysql.cj.jdbc.Driver
+        url: jdbc:mysql://127.0.0.1:3306/wvp?useUnicode=true&characterEncoding=UTF8&rewriteBatchedStatements=true&serverTimezone=PRC&useSSL=false&allowMultiQueries=true
+        username: root
+        password: root123
 ```
 ####  2.1.3 Postgresql鏁版嵁搴撻厤缃�
 鏁版嵁搴撳悕绉颁互wvp涓轰緥
 ```yaml
 spring:
-  datasource:
-    type: com.zaxxer.hikari.HikariDataSource
-    driver-class-name: org.postgresql.Driver
-    url: jdbc:postgresql://127.0.0.1:3306/wvp?useUnicode=true&characterEncoding=UTF8&rewriteBatchedStatements=true&serverTimezone=PRC&useSSL=false&allowMultiQueries=true&allowPublicKeyRetrieval=true
-    username: root
-    password: 12345678
+  dynamic:
+      primary: master
+      datasource:
+        type: com.zaxxer.hikari.HikariDataSource
+        driver-class-name: org.postgresql.Driver
+        url: jdbc:postgresql://127.0.0.1:3306/wvp?useUnicode=true&characterEncoding=UTF8&rewriteBatchedStatements=true&serverTimezone=PRC&useSSL=false&allowMultiQueries=true&allowPublicKeyRetrieval=true
+        username: root
+        password: 12345678
 
 pagehelper:
   helper-dialect: postgresql
@@ -66,12 +58,14 @@
 鏁版嵁搴撳悕绉颁互wvp涓轰緥
 ```yaml
 spring:
-  datasource:
-    type: com.zaxxer.hikari.HikariDataSource
-    driver-class-name: com.kingbase8.Driver
-    url: jdbc:kingbase8://127.0.0.1:3306/wvp?useUnicode=true&characterEncoding=utf8
-    username: root
-    password: 12345678
+  dynamic:
+    primary: master
+    datasource:
+      type: com.zaxxer.hikari.HikariDataSource
+      driver-class-name: com.kingbase8.Driver
+      url: jdbc:kingbase8://127.0.0.1:3306/wvp?useUnicode=true&characterEncoding=utf8
+      username: root
+      password: 12345678
 
 pagehelper:
   helper-dialect: postgresql
@@ -88,8 +82,6 @@
 ```yaml
 # 浣滀负28181鏈嶅姟鍣ㄧ殑閰嶇疆
 sip:
-    # [蹇呴』淇敼] 鏈満鐨処P
-    ip: 192.168.1.3
     # [鍙�塢 28181鏈嶅姟鐩戝惉鐨勭鍙�
     port: 5060
     # 鏍规嵁鍥芥爣6.1.2涓瀹氾紝domain瀹滈噰鐢↖D缁熶竴缂栫爜鐨勫墠鍗佷綅缂栫爜銆傚浗鏍囬檮褰旸涓畾涔夊墠8浣嶄负涓績缂栫爜锛堢敱鐪佺骇銆佸競绾с�佸尯绾с�佸熀灞傜紪鍙风粍鎴愶紝鍙傜収GB/T 2260-2007锛�
@@ -106,58 +98,42 @@
 ```yaml
 #zlm 榛樿鏈嶅姟鍣ㄩ厤缃�
 media:
-    # ZLMediaKit鐨勬湇鍔D锛屽繀椤婚厤缃�
-    id: FQ3TF8yT83wh5Wvz
-    # [蹇呴』淇敼] zlm鏈嶅姟鍣ㄧ殑鍐呯綉IP锛宻dp-ip涓巗tream-ip浣跨敤榛樿鍊肩殑鎯呭喌涓嬶紝杩欓噷涓嶈浣跨敤127.0.0.1/0.0.0.0
-    ip: 192.168.1.3
-    # [蹇呴』淇敼] zlm鏈嶅姟鍣ㄧ殑http.port
-    http-port: 6080
-    # [鍙�塢 zlm鏈嶅姟鍣ㄧ殑hook.admin_params=secret
-    secret: 035c73f7-bb6b-4889-a715-d9eb2d1925cc
-    # 鍚敤澶氱鍙fā寮�, 澶氱鍙fā寮忎娇鐢ㄧ鍙e尯鍒嗘瘡璺祦锛屽吋瀹规�ф洿濂姐�� 鍗曠鍙d娇鐢ㄦ祦鐨剆src鍖哄垎锛� 鐐规挱瓒呮椂寤鸿浣跨敤澶氱鍙f祴璇�
-    rtp:
-        # [鍙�塢 鏄惁鍚敤澶氱鍙fā寮�, 寮�鍚悗浼氬湪portRange鑼冨洿鍐呴�夋嫨绔彛鐢ㄤ簬濯掍綋娴佷紶杈�
-        enable: true
-        # [鍙�塢 鍦ㄦ鑼冨洿鍐呴�夋嫨绔彛鐢ㄤ簬濯掍綋娴佷紶杈�,
-        port-range: 30000,30500 # 绔彛鑼冨洿
-        # [鍙�塢 鍥芥爣绾ц仈鍦ㄦ鑼冨洿鍐呴�夋嫨绔彛鍙戦�佸獟浣撴祦,
-        send-port-range: 30000,30500 # 绔彛鑼冨洿
-    # 褰曞儚杈呭姪鏈嶅姟锛� 閮ㄧ讲姝ゆ湇鍔″彲浠ュ疄鐜皕lm褰曞儚鐨勭鐞嗕笌涓嬭浇锛� 0 琛ㄧず涓嶄娇鐢�
-    record-assist-port: 18081
+  id: zlmediakit-local
+  # [蹇呴』淇敼] zlm鏈嶅姟鍣ㄧ殑鍐呯綉IP
+  ip: 172.19.128.50
+  # [鍙�塢 鏈夊叕缃慖P灏遍厤缃叕缃慖P, 涓嶅彲鐢ㄥ煙鍚�
+  wan_ip:
+  # [蹇呴』淇敼] zlm鏈嶅姟鍣ㄧ殑http.port
+  http-port: 9092
+  # [鍙�塢 zlm鏈嶅姟鍣ㄨ闂甒VP鎵�浣跨敤鐨処P, 榛樿浣跨敤127.0.0.1锛寊lm鍜寃vp娌℃湁閮ㄧ讲鍦ㄥ悓涓�鍙版湇鍔″櫒鏃跺繀椤婚厤缃�
+  hook-ip: 172.19.128.50
+  # [蹇呴�夐�塢 zlm鏈嶅姟鍣ㄧ殑hook.admin_params=secret
+  secret: TWSYFgYJOQWB4ftgeYut8DW4wbs7pQnj
+  # 鍚敤澶氱鍙fā寮�, 澶氱鍙fā寮忎娇鐢ㄧ鍙e尯鍒嗘瘡璺祦锛屽吋瀹规�ф洿濂姐�� 鍗曠鍙d娇鐢ㄦ祦鐨剆src鍖哄垎锛� 鐐规挱瓒呮椂寤鸿浣跨敤澶氱鍙f祴璇�
+  rtp:
+    # [鍙�塢 鏄惁鍚敤澶氱鍙fā寮�, 寮�鍚悗浼氬湪portRange鑼冨洿鍐呴�夋嫨绔彛鐢ㄤ簬濯掍綋娴佷紶杈�
+    enable: true
+    # [鍙�塢 鍦ㄦ鑼冨洿鍐呴�夋嫨绔彛鐢ㄤ簬濯掍綋娴佷紶杈�, 蹇呴』鎻愬墠鍦▃lm涓婇厤缃灞炴�э紝涓嶇劧鑷姩閰嶇疆姝ゅ睘鎬у彲鑳戒笉鎴愬姛
+    port-range: 30000,35000 # 绔彛鑼冨洿
+    # [鍙�塢 鍥芥爣绾ц仈鍦ㄦ鑼冨洿鍐呴�夋嫨绔彛鍙戦�佸獟浣撴祦,
+    send-port-range: 40000,40300 # 绔彛鑼冨洿
 ```
 ### 2.4 涓�у寲瀹氬埗淇℃伅閰嶇疆
 ```yaml
 # [鏍规嵁涓氬姟闇�姹傞厤缃甝
 user-settings:
-    # [鍙�塢 鏈嶅姟ID锛屼笉鍐欏垯涓�000000
-    server-id:
-    # [鍙�塢 鑷姩鐐规挱锛� 浣跨敤鍥哄畾娴佸湴鍧�杩涜鎾斁鏃讹紝濡傛灉鏈偣鎾垯鑷姩杩涜鐐规挱, 闇�瑕乺tp.enable=true
-    auto-apply-play: false
-    # [鍙�塢 閮ㄥ垎璁惧闇�瑕佹墿灞昐DP锛岄渶瑕佹墦寮�姝よ缃�
-    senior-sdp: false
-    # 淇濆瓨绉诲姩浣嶇疆鍘嗗彶杞ㄨ抗锛歵rue:淇濈暀鍘嗗彶鏁版嵁锛宖alse:浠呬繚鐣欐渶鍚庣殑浣嶇疆(榛樿)
-    save-position-history: false
-    # 鐐规挱绛夊緟瓒呮椂鏃堕棿,鍗曚綅锛氭绉�
-    play-timeout: 3000
-    # 绛夊緟闊宠棰戠紪鐮佷俊鎭啀杩斿洖锛� true锛� 鍙互鏍规嵁缂栫爜閫夋嫨鍚堥�傜殑鎾斁鍣紝false锛� 鍙互鏇村揩鐐规挱
-    wait-track: false
-    # 鏄惁寮�鍚帴鍙i壌鏉�
-    interface-authentication: true
-    # 鑷姩閰嶇疆redis 鍙互杩囨湡浜嬩欢
-    redis-config: true
-    # 鎺ュ彛閴存潈渚嬪鐨勬帴鍙�, 鍗充笉杩涜鎺ュ彛閴存潈鐨勬帴鍙�,灏介噺璇︾粏涔﹀啓锛屽敖閲忎笉鐢�/**锛岃嚦灏戜袱绾х洰褰�
-    interface-authentication-excludes:
-        - /api/v1/**
-    # 鎺ㄦ祦鐩存挱鏄惁褰曞埗
-    record-push-live: true
-    # 鍥芥爣鏄惁褰曞埗
-    record-sip: true
-    # 鏄惁灏嗘棩蹇楀瓨鍌ㄨ繘鏁版嵁搴�
-    logInDatabase: true
-    # 绗笁鏂瑰尮閰嶏紝鐢ㄤ簬浠巗tream閽熻幏鍙栨湁鏁堜俊鎭�
-    thirdPartyGBIdReg: [\s\S]*
+  # 鐐规挱/褰曞儚鍥炴斁 绛夊緟瓒呮椂鏃堕棿,鍗曚綅锛氭绉�
+  play-timeout: 180000
+  # [鍙�塢 鑷姩鐐规挱锛� 浣跨敤鍥哄畾娴佸湴鍧�杩涜鎾斁鏃讹紝濡傛灉鏈偣鎾垯鑷姩杩涜鐐规挱, 闇�瑕乺tp.enable=true
+  auto-apply-play: true
+  # 鎺ㄦ祦鐩存挱鏄惁褰曞埗
+  record-push-live: true
+  # 鍥芥爣鏄惁褰曞埗
+  record-sip: true
+  # 鍥芥爣鐐规挱 鎸夐渶鎷夋祦, true锛氭湁浜鸿鐪嬫媺娴侊紝鏃犱汉瑙傜湅閲婃斁锛� false锛氭媺璧峰悗涓嶈嚜鍔ㄩ噴鏀�
+  stream-on-demand: true
 ```
-
+鏇村瀹屾暣鐨勯厤缃俊鎭弬鑰僡ll-application.yml鏂囦欢锛岄渶瑕侀偅涓厤缃」锛屽鍒跺埌姝e湪浣跨敤鐨勯厤缃枃浠朵腑瀵瑰簲鐨勬枃浠跺嵆鍙��
 
 濡傛灉閰嶇疆淇℃伅鏃犺锛屼綘鍙互鍚姩zlm锛屽啀鍚姩wvp鏉ユ祴璇曚簡锛屽惎鍔ㄦ垚鍔熺殑璇濓紝浣犲彲浠ュ湪wvp鐨勬棩蹇椾笅鐪嬪埌zlm宸茶繛鎺ョ殑鎻愮ず銆�
 鎺ヤ笅鏉閮ㄧ讲鍒版湇鍔″櫒](./_content/introduction/deployment.md)锛� 濡傛灉浣犲彧鏄湰鍦拌繍琛岀洿鎺ュ湪鏈湴杩愯鍗冲彲銆�
diff --git a/doc/_content/introduction/deployment.md b/doc/_content/introduction/deployment.md
index 3883842..f11fe7f 100644
--- a/doc/_content/introduction/deployment.md
+++ b/doc/_content/introduction/deployment.md
@@ -19,7 +19,7 @@
 
 3. 娴嬭瘯鐜閮ㄧ讲寤鸿鎵�鏈夋湇鍔¢儴缃插湪涓�鍙颁富鏈猴紝鍏抽棴闃茬伀澧欙紝鍑忓皯鍥犵綉缁滃嚭鐜伴棶棰樼殑鍙兘;
 4. 鐢熶骇鐜鎸夐渶寮�鏀剧鍙o紝浣嗘槸寤鸿淇敼榛樿绔彛锛屽挨鍏舵槸5060绔彛锛屾槗鍙楀埌鏀诲嚮;
-5. zlm浣跨敤docker閮ㄧ讲鐨勬儏鍐碉紝瑕佹眰绔彛鏄犲皠涓�鑷达紝姣斿鏄犲皠5060,搴斿皢澶栭儴绔彛涔熸槧灏勪负5060绔彛;
+5. zlm浣跨敤docker閮ㄧ讲鐨勬儏鍐碉紝璇蜂娇鐢╤ost妯″紡锛屾垨鑰呯鍙f槧灏勪竴鑷达紝姣斿鏄犲皠5060,搴斿皢澶栭儴绔彛涔熸槧灏勪负5060绔彛;
 6. zlm涓巜vp浼氫繚鎸侀珮棰戠巼鐨勯�氫俊锛屾墍浠ヤ笉瑕佸幓灏唚vp涓巣lm鍒嗗睘鍦ㄤ袱涓綉缁滐紝姣斿wvp鍦ㄥ唴缃戯紝zlm鍗村湪鍏綉鐨勬儏鍐点��
 7. 鍚姩鏈嶅姟锛屼互linux涓轰緥
 **鍚姩WVP-PRO**
@@ -36,19 +36,9 @@
 ### 鍓嶅悗绔垎绂婚儴缃�
 鍓嶅悗绔儴缃茬洰鍓嶅湪鏈�鏂扮殑鐗堟湰宸茬粡鏀寔锛岃浣跨敤3鏈�15鏃ヤ箣鍚庣殑鐗堟湰閮ㄧ讲
 鍓嶇缂栬瘧鍚庣殑鏂囦欢鍦╜src/main/resources/static`涓紝灏嗘鐩綍涓嬬殑鏂囦欢閮ㄧ讲銆�
-鍓嶅悗绔垎绂婚儴缃叉渶澶х殑闂鏄法鍩熺殑瑙e喅锛屼箣鍓嶇増鏈娇鐢╟ookie瀹屾垚鐧诲綍娴佺▼锛岃�宑ookie鏄笉鍙互鍦ㄥ鏉傝法鍩熶腑浣跨敤鐨勩�傛墍浠ュ綋鍓嶇増鏈娇鐢↗WT鐢熸垚鐨凾OKEN浣滀负璁よ瘉鍑嵁锛�
-閮ㄧ讲鍓嶇鍚庨渶瑕佸湪wvp涓厤缃墠绔闂殑鍦板潃浠ュ畬鎴愯法鍩熸祦绋嬨��   
+WVP榛樿寮�鍚叏閮ㄦ帴鍙f敮鎸佽法鍩熴�傞儴缃插墠绔枃浠跺埌WEB瀹瑰櫒锛屽苟灏嗚闂殑鍦板潃璁剧疆涓篧VP鐨勫湴鍧�鍗冲彲銆�
 **閰嶇疆鍓嶇鏈嶅姟鍣�**
-1. 鍋囧浣犵殑鏈嶅姟鏈夊叕缃戝煙鍚嶄负xxx.com锛屽叕缃慖P涓�11.11.11.11锛� 閭d箞浣犲彲浠ュ湪wvp涓繖鏍烽厤缃細
-```yaml
-user-settings:
-  # 璺ㄥ煙閰嶇疆锛岄厤缃綘璁块棶鍓嶇椤甸潰鐨勫湴鍧�鍗冲彲锛� 鍙互閰嶇疆澶氫釜
-  allowed-origins:
-    - http://xxx.com:8008
-    - http://11.11.11.11:8008
-```
-閰嶇疆涓嶆槸蹇呴』鐨勶紝浣犱娇鐢ㄥ摢涓猧p/鍩熷悕璁块棶灏遍厤缃摢涓嵆鍙�備慨鏀归厤缃悗閲嶅惎wvp浠ヤ娇閰嶇疆鐢熸晥銆�
-2. 鍦╜src/main/resources/static/static/js/config.js`涓嬮厤缃湇鍔″櫒鐨勫湴鍧�锛屼篃灏辨槸wvp鏈嶅姟鐨勫湴鍧�
+1. 鍦╜src/main/resources/static/static/js/config.js`涓嬮厤缃湇鍔″櫒鐨勫湴鍧�锛屼篃灏辨槸wvp鏈嶅姟鐨勫湴鍧�
 ```javascript
 window.baseUrl = "http://xxx.com:18080"
 ```
diff --git a/doc/_sidebar.md b/doc/_sidebar.md
index bdf5955..09a675d 100644
--- a/doc/_sidebar.md
+++ b/doc/_sidebar.md
@@ -1,7 +1,6 @@
 <!-- 渚ц竟鏍� -->
 
 * **缂栬瘧涓庨儴缃�**
-  * [娴嬭瘯](_content/introduction/test.md)
   * [缂栬瘧](_content/introduction/compile.md)
   * [閰嶇疆](_content/introduction/config.md)
   * [閮ㄧ讲](_content/introduction/deployment.md)
diff --git a/src/main/java/com/genersoft/iot/vmp/conf/MediaConfig.java b/src/main/java/com/genersoft/iot/vmp/conf/MediaConfig.java
index eac7c11..0770172 100644
--- a/src/main/java/com/genersoft/iot/vmp/conf/MediaConfig.java
+++ b/src/main/java/com/genersoft/iot/vmp/conf/MediaConfig.java
@@ -27,19 +27,19 @@
     @Value("${media.ip}")
     private String ip;
 
-    @Value("${media.hook-ip:}")
-    private String hookIp;
+    @Value("${media.wan_ip}")
+    private String wanIp;
 
-    @Value("${sip.ip}")
-    private String sipIp;
+    @Value("${media.hook-ip:127.0.0.1}")
+    private String hookIp;
 
     @Value("${sip.domain}")
     private String sipDomain;
 
-    @Value("${media.sdp-ip:${media.ip}}")
+    @Value("${media.sdp-ip:${media.wan_ip}}")
     private String sdpIp;
 
-    @Value("${media.stream-ip:${media.ip}}")
+    @Value("${media.stream-ip:${media.wan_ip}}")
     private String streamIp;
 
     @Value("${media.http-port:0}")
@@ -111,20 +111,7 @@
     }
 
     public String getHookIp() {
-        if (ObjectUtils.isEmpty(hookIp)){
-            return sipIp;
-        }else {
-            return hookIp;
-        }
-
-    }
-
-    public String getSipIp() {
-        if (sipIp == null) {
-            return this.ip;
-        }else {
-            return sipIp;
-        }
+        return hookIp;
     }
 
     public int getHttpPort() {
diff --git a/src/main/java/com/genersoft/iot/vmp/conf/SipConfig.java b/src/main/java/com/genersoft/iot/vmp/conf/SipConfig.java
index 6a6c54f..4b85e0d 100644
--- a/src/main/java/com/genersoft/iot/vmp/conf/SipConfig.java
+++ b/src/main/java/com/genersoft/iot/vmp/conf/SipConfig.java
@@ -98,9 +98,6 @@
 	}
 
 	public String getShowIp() {
-		if (this.showIp == null) {
-			return this.ip;
-		}
 		return showIp;
 	}
 
diff --git a/src/main/java/com/genersoft/iot/vmp/conf/UserSetting.java b/src/main/java/com/genersoft/iot/vmp/conf/UserSetting.java
index cce9145..007c72a 100644
--- a/src/main/java/com/genersoft/iot/vmp/conf/UserSetting.java
+++ b/src/main/java/com/genersoft/iot/vmp/conf/UserSetting.java
@@ -74,7 +74,7 @@
 
     private boolean registerKeepIntDialog = false;
 
-    private int gbDeviceOnline = 0;
+    private int gbDeviceOnline = 1;
 
     public Boolean getSavePositionHistory() {
         return savePositionHistory;
diff --git a/src/main/java/com/genersoft/iot/vmp/conf/WVPTimerTask.java b/src/main/java/com/genersoft/iot/vmp/conf/WVPTimerTask.java
index c586255..229aeab 100644
--- a/src/main/java/com/genersoft/iot/vmp/conf/WVPTimerTask.java
+++ b/src/main/java/com/genersoft/iot/vmp/conf/WVPTimerTask.java
@@ -22,7 +22,7 @@
     @Scheduled(fixedRate = 2 * 1000)   //姣�3绉掓墽琛屼竴娆�
     public void execute(){
         JSONObject jsonObject = new JSONObject();
-        jsonObject.put("ip", sipConfig.getIp());
+        jsonObject.put("ip", sipConfig.getShowIp());
         jsonObject.put("port", serverPort);
         redisCatchStorage.updateWVPInfo(jsonObject, 3);
     }
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java b/src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java
index 56663f1..1373530 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java
@@ -16,6 +16,9 @@
 import org.springframework.util.ObjectUtils;
 
 import javax.sip.*;
+import java.net.Inet4Address;
+import java.net.InetAddress;
+import java.net.NetworkInterface;
 import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
 
@@ -40,15 +43,46 @@
 	@Override
 	public void run(String... args) {
 		List<String> monitorIps = new ArrayList<>();
-		// 浣跨敤閫楀彿鍒嗗壊澶氫釜ip
-		String separator = ",";
-		if (sipConfig.getIp().indexOf(separator) > 0) {
-			String[] split = sipConfig.getIp().split(separator);
-			monitorIps.addAll(Arrays.asList(split));
+		if (ObjectUtils.isEmpty(sipConfig.getIp())) {
+			try {
+				// 鑾峰緱鏈満鐨勬墍鏈夌綉缁滄帴鍙�
+				Enumeration<NetworkInterface> nifs = NetworkInterface.getNetworkInterfaces();
+				while (nifs.hasMoreElements()) {
+					NetworkInterface nif = nifs.nextElement();
+					// 鑾峰緱涓庤缃戠粶鎺ュ彛缁戝畾鐨� IP 鍦板潃锛屼竴鑸彧鏈変竴涓�
+					Enumeration<InetAddress> addresses = nif.getInetAddresses();
+					while (addresses.hasMoreElements()) {
+						InetAddress addr = addresses.nextElement();
+						if (addr instanceof Inet4Address) {
+							if (addr.getHostAddress().equals("127.0.0.1")){
+								continue;
+							}
+							if (nif.getName().startsWith("docker")) {
+								continue;
+							}
+							logger.error("[鑷姩閰嶇疆SIP鐩戝惉缃戝崱] 缃戝崱鎺ュ彛鍦板潃锛� {}", addr.getHostAddress());// 鍙叧蹇� IPv4 鍦板潃
+							monitorIps.add(addr.getHostAddress());
+						}
+					}
+				}
+			}catch (Exception e) {
+				logger.error("[璇诲彇缃戝崱淇℃伅澶辫触]", e);
+			}
+			if (monitorIps.isEmpty()) {
+				logger.error("[鑷姩閰嶇疆SIP鐩戝惉缃戝崱淇℃伅澶辫触]锛� 璇锋墜鍔ㄩ厤缃甋IP.IP鍚庨噸鏂板惎鍔�");
+				System.exit(1);
+			}
 		}else {
-			monitorIps.add(sipConfig.getIp());
+			// 浣跨敤閫楀彿鍒嗗壊澶氫釜ip
+			String separator = ",";
+			if (sipConfig.getIp().indexOf(separator) > 0) {
+				String[] split = sipConfig.getIp().split(separator);
+				monitorIps.addAll(Arrays.asList(split));
+			}else {
+				monitorIps.add(sipConfig.getIp());
+			}
 		}
-
+		sipConfig.setShowIp(String.join(",", monitorIps));
 		SipFactory.getInstance().setPathName("gov.nist");
 		if (monitorIps.size() > 0) {
 			for (String monitorIp : monitorIps) {
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java
index dd30fea..8787ed1 100755
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java
@@ -353,36 +353,4 @@
 
 		return request;
 	}
-	public Request createBroadcastMessageRequest(Device device, String channelId, String content, String viaTag, String fromTag, String toTag, CallIdHeader callIdHeader) throws ParseException, InvalidArgumentException, PeerUnavailableException {
-		Request request = null;
-		// sipuri
-		SipURI requestURI = SipFactory.getInstance().createAddressFactory().createSipURI(channelId, device.getHostAddress());
-		// via
-		ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>();
-		ViaHeader viaHeader = SipFactory.getInstance().createHeaderFactory().createViaHeader(sipConfig.getIp(), sipConfig.getPort(), device.getTransport(), viaTag);
-		viaHeader.setRPort();
-		viaHeaders.add(viaHeader);
-		// from
-		SipURI fromSipURI = SipFactory.getInstance().createAddressFactory().createSipURI(sipConfig.getId(), sipConfig.getDomain());
-		Address fromAddress = SipFactory.getInstance().createAddressFactory().createAddress(fromSipURI);
-		FromHeader fromHeader = SipFactory.getInstance().createHeaderFactory().createFromHeader(fromAddress, fromTag);
-		// to
-		SipURI toSipURI = SipFactory.getInstance().createAddressFactory().createSipURI(channelId, device.getHostAddress());
-		Address toAddress = SipFactory.getInstance().createAddressFactory().createAddress(toSipURI);
-		ToHeader toHeader = SipFactory.getInstance().createHeaderFactory().createToHeader(toAddress, toTag);
-
-		// Forwards
-		MaxForwardsHeader maxForwards = SipFactory.getInstance().createHeaderFactory().createMaxForwardsHeader(70);
-		// ceq
-		CSeqHeader cSeqHeader = SipFactory.getInstance().createHeaderFactory().createCSeqHeader(redisCatchStorage.getCSEQ(), Request.MESSAGE);
-
-		ContentTypeHeader contentTypeHeader = SipFactory.getInstance().createHeaderFactory().createContentTypeHeader("Application", "MANSCDP+xml");
-
-		request = SipFactory.getInstance().createMessageFactory().createRequest(requestURI, Request.MESSAGE, callIdHeader, cSeqHeader, fromHeader,
-				toHeader, viaHeaders, maxForwards, contentTypeHeader, content);
-
-		request.addHeader(SipUtils.createUserAgentHeader(gitUtil));
-
-		return request;
-	}
 }
diff --git a/src/main/java/com/genersoft/iot/vmp/media/MediaServerConfig.java b/src/main/java/com/genersoft/iot/vmp/media/MediaServerConfig.java
index fb9de3f..ccd2828 100755
--- a/src/main/java/com/genersoft/iot/vmp/media/MediaServerConfig.java
+++ b/src/main/java/com/genersoft/iot/vmp/media/MediaServerConfig.java
@@ -1,9 +1,9 @@
 package com.genersoft.iot.vmp.media;
 
 import com.genersoft.iot.vmp.conf.MediaConfig;
+import com.genersoft.iot.vmp.media.bean.MediaServer;
 import com.genersoft.iot.vmp.media.event.mediaServer.MediaServerChangeEvent;
 import com.genersoft.iot.vmp.media.service.IMediaServerService;
-import com.genersoft.iot.vmp.media.bean.MediaServer;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
diff --git a/src/main/java/com/genersoft/iot/vmp/media/bean/MediaServer.java b/src/main/java/com/genersoft/iot/vmp/media/bean/MediaServer.java
index c951e41..e6faac3 100755
--- a/src/main/java/com/genersoft/iot/vmp/media/bean/MediaServer.java
+++ b/src/main/java/com/genersoft/iot/vmp/media/bean/MediaServer.java
@@ -15,7 +15,7 @@
     private String ip;
 
     @Schema(description = "hook浣跨敤鐨処P锛坺lm璁块棶WVP浣跨敤鐨処P锛�")
-    private String hookIp;
+    private String hookIp = "127.0.0.1";
 
     @Schema(description = "SDP IP")
     private String sdpIp;
diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java
index 738d3f8..636b4bf 100755
--- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java
+++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java
@@ -190,7 +190,15 @@
         }
     }
 
-
+    /**
+     * rtsp/rtmp娴佹敞鍐屾垨娉ㄩ攢鏃惰Е鍙戞浜嬩欢锛涙浜嬩欢瀵瑰洖澶嶄笉鏁忔劅銆�
+     */
+//    @ResponseBody
+//    @PostMapping(value = "/on_stream_changed", produces = "application/json;charset=UTF-8")
+//    public HookResult onStreamChanged(@RequestBody JSONObject param) {
+//        System.out.println(11);
+//        return HookResult.SUCCESS();
+//    }
     /**
      * rtsp/rtmp娴佹敞鍐屾垨娉ㄩ攢鏃惰Е鍙戞浜嬩欢锛涙浜嬩欢瀵瑰洖澶嶄笉鏁忔劅銆�
      */
diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaNodeServerService.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaNodeServerService.java
index d9a6c6b..4344343 100644
--- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaNodeServerService.java
+++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaNodeServerService.java
@@ -8,15 +8,14 @@
 import com.genersoft.iot.vmp.conf.exception.ControllerException;
 import com.genersoft.iot.vmp.gb28181.bean.SendRtpItem;
 import com.genersoft.iot.vmp.media.bean.MediaInfo;
-import com.genersoft.iot.vmp.media.service.IMediaNodeServerService;
 import com.genersoft.iot.vmp.media.bean.MediaServer;
+import com.genersoft.iot.vmp.media.service.IMediaNodeServerService;
 import com.genersoft.iot.vmp.media.zlm.dto.ZLMServerConfig;
 import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;
 import com.genersoft.iot.vmp.vmanager.bean.WVPResult;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.util.ObjectUtils;
 
@@ -35,9 +34,6 @@
 
     @Autowired
     private ZLMServerFactory zlmServerFactory;
-
-    @Value("${sip.ip}")
-    private String sipIp;
 
     @Override
     public int createRTPServer(MediaServer mediaServer, String streamId, long ssrc, Integer port, Boolean onlyAuto, Boolean disableAudio, Boolean reUsePort, Integer tcpMode) {
@@ -120,7 +116,7 @@
         mediaServer.setRtpProxyPort(zlmServerConfig.getRtpProxyPort());
         mediaServer.setStreamIp(ip);
 
-        mediaServer.setHookIp(sipIp.split(",")[0]);
+        mediaServer.setHookIp("127.0.0.1");
         mediaServer.setSdpIp(ip);
         mediaServer.setType("zlm");
         return mediaServer;
diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRESTfulUtils.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRESTfulUtils.java
index 285b9e6..5d5f1c3 100755
--- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRESTfulUtils.java
+++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRESTfulUtils.java
@@ -96,7 +96,6 @@
             if (callback == null) {
                 try {
                     Response response = client.newCall(request).execute();
-
                     if (response.isSuccessful()) {
                         ResponseBody responseBody = response.body();
                         if (responseBody != null) {
diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java
index 97803f9..debc3b2 100755
--- a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java
+++ b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java
@@ -89,7 +89,7 @@
     @GetMapping("/server_config")
     public JSONObject serverConfig() {
         JSONObject result = new JSONObject();
-        result.put("deviceIp", sipConfig.getIp());
+        result.put("deviceIp", sipConfig.getShowIp());
         result.put("devicePort", sipConfig.getPort());
         result.put("username", sipConfig.getId());
         result.put("password", sipConfig.getPassword());
diff --git a/src/main/java/com/genersoft/iot/vmp/web/gb28181/ApiController.java b/src/main/java/com/genersoft/iot/vmp/web/gb28181/ApiController.java
index 3457cf9..e0973b9 100644
--- a/src/main/java/com/genersoft/iot/vmp/web/gb28181/ApiController.java
+++ b/src/main/java/com/genersoft/iot/vmp/web/gb28181/ApiController.java
@@ -40,7 +40,7 @@
         result.put("Server","");
         result.put("SIPSerial", sipConfig.getId());
         result.put("SIPRealm", sipConfig.getDomain());
-        result.put("SIPHost", sipConfig.getIp());
+        result.put("SIPHost", sipConfig.getShowIp());
         result.put("SIPPort", sipConfig.getPort());
         result.put("ChannelCount","1000");
         result.put("VersionType","");
diff --git a/src/main/resources/all-application.yml b/src/main/resources/all-application.yml
index 5c46d52..31db680 100644
--- a/src/main/resources/all-application.yml
+++ b/src/main/resources/all-application.yml
@@ -139,12 +139,14 @@
     id:
     # [蹇呴』淇敼] zlm鏈嶅姟鍣ㄧ殑鍐呯綉IP
     ip: 192.168.0.100
+    # [鍙�塢 鏈夊叕缃慖P灏遍厤缃叕缃慖P, 涓嶅彲鐢ㄥ煙鍚�
+    wan_ip:
     # [鍙�塢 杩斿洖娴佸湴鍧�鏃剁殑ip锛岀疆绌轰娇鐢� media.ip
     stream-ip:
     # [鍙�塢 wvp鍦ㄥ浗鏍囦俊浠や腑浣跨敤鐨刬p锛屾ip涓烘憚鍍忔満鍙互璁块棶鍒扮殑ip锛� 缃┖浣跨敤 media.ip
     sdp-ip:
-    # [鍙�塢 zlm鏈嶅姟鍣ㄧ殑hook鎵�浣跨敤鐨処P, 榛樿浣跨敤sip.ip
-    hook-ip:
+    # [鍙�塢 zlm鏈嶅姟鍣ㄨ闂甒VP鎵�浣跨敤鐨処P, 榛樿浣跨敤127.0.0.1锛寊lm鍜寃vp娌℃湁閮ㄧ讲鍦ㄥ悓涓�鍙版湇鍔″櫒鏃跺繀椤婚厤缃�
+    hook-ip: 172.19.128.50
     # [蹇呴』淇敼] zlm鏈嶅姟鍣ㄧ殑http.port
     http-port: 80
     # [鍙�塢 zlm鏈嶅姟鍣ㄧ殑http.sslport, 缃┖浣跨敤zlm閰嶇疆鏂囦欢閰嶇疆
@@ -249,7 +251,7 @@
         - http://192.168.1.3:8008
     # 鍥芥爣璁惧绂荤嚎鍚庣殑涓婄嚎绛栫暐锛�
     # 0锛� 鍥芥爣鏍囧噯瀹炵幇锛岃澶囩绾垮悗涓嶅洖澶嶅績璺筹紝鐩村埌璁惧閲嶆柊娉ㄥ唽涓婄嚎锛�
-    # 1锛� 瀵逛簬绂荤嚎璁惧锛屾敹鍒板績璺冲氨鎶婅澶囪缃负涓婄嚎锛屽苟鏇存柊娉ㄥ唽鏃堕棿涓轰笂娆¤繖娆″績璺崇殑鏃堕棿銆傞槻姝㈣繃鏈熸椂闂村垽鏂紓甯�
+    # 1锛堥粯璁わ級锛� 瀵逛簬绂荤嚎璁惧锛屾敹鍒板績璺冲氨鎶婅澶囪缃负涓婄嚎锛屽苟鏇存柊娉ㄥ唽鏃堕棿涓轰笂娆¤繖娆″績璺崇殑鏃堕棿銆傞槻姝㈣繃鏈熸椂闂村垽鏂紓甯�
     gb-device-online: 0
 
 # 鍏抽棴鍦ㄧ嚎鏂囨。锛堢敓浜х幆澧冨缓璁叧闂級
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index e61ac0b..93c8af3 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -58,11 +58,6 @@
 
 # 浣滀负28181鏈嶅姟鍣ㄧ殑閰嶇疆
 sip:
-  # [蹇呴』淇敼] 鏈満鐨処P锛屽搴斾綘鐨勭綉鍗★紝鐩戝惉浠�涔坕p灏辨槸浣跨敤浠�涔堢綉鍗★紝
-  # 濡傛灉瑕佺洃鍚寮犵綉鍗★紝鍙互浣跨敤閫楀彿鍒嗛殧澶氫釜IP锛� 渚嬪锛� 192.168.1.4,10.0.0.4
-  # 濡傛灉涓嶆槑鐧斤紝灏变娇鐢�0.0.0.0锛屽ぇ閮ㄥ垎鎯呭喌閮芥槸鍙互鐨�
-  # 璇蜂笉瑕佷娇鐢�127.0.0.1锛屼换浣曞寘鎷琹ocalhost鍦ㄥ唴鐨勫煙鍚嶉兘鏄笉鍙互鐨勩��
-  ip: 172.19.128.50
   # [鍙�塢 28181鏈嶅姟鐩戝惉鐨勭鍙�
   port: 8116
   # 鏍规嵁鍥芥爣6.1.2涓瀹氾紝domain瀹滈噰鐢↖D缁熶竴缂栫爜鐨勫墠鍗佷綅缂栫爜銆傚浗鏍囬檮褰旸涓畾涔夊墠8浣嶄负涓績缂栫爜锛堢敱鐪佺骇銆佸競绾с�佸尯绾с�佸熀灞傜紪鍙风粍鎴愶紝鍙傜収GB/T 2260-2007锛�
@@ -82,18 +77,14 @@
   id: zlmediakit-local
   # [蹇呴』淇敼] zlm鏈嶅姟鍣ㄧ殑鍐呯綉IP
   ip: 172.19.128.50
+  # [鍙�塢 鏈夊叕缃慖P灏遍厤缃叕缃慖P, 涓嶅彲鐢ㄥ煙鍚�
+  wan_ip:
   # [蹇呴』淇敼] zlm鏈嶅姟鍣ㄧ殑http.port
   http-port: 9092
-  # [鍙�塢 杩斿洖娴佸湴鍧�鏃剁殑ip锛岀疆绌轰娇鐢� media.ip
-  stream-ip: 172.19.128.50
-  # [鍙�塢 wvp鍦ㄥ浗鏍囦俊浠や腑浣跨敤鐨刬p锛屾ip涓烘憚鍍忔満鍙互璁块棶鍒扮殑ip锛� 缃┖浣跨敤 media.ip
-  sdp-ip: 172.19.128.50
-  # [鍙�塢 zlm鏈嶅姟鍣ㄧ殑hook鎵�浣跨敤鐨処P, 榛樿浣跨敤sip.ip
+  # [鍙�塢 zlm鏈嶅姟鍣ㄨ闂甒VP鎵�浣跨敤鐨処P, 榛樿浣跨敤127.0.0.1锛寊lm鍜寃vp娌℃湁閮ㄧ讲鍦ㄥ悓涓�鍙版湇鍔″櫒鏃跺繀椤婚厤缃�
   hook-ip: 172.19.128.50
-  # [鍙�塢 zlm鏈嶅姟鍣ㄧ殑http.sslport, 缃┖浣跨敤zlm閰嶇疆鏂囦欢閰嶇疆
-  http-ssl-port: 1443
-  # [鍙�塢 zlm鏈嶅姟鍣ㄧ殑hook.admin_params=secret
-  secret: 10000
+  # [蹇呴�夐�塢 zlm鏈嶅姟鍣ㄧ殑hook.admin_params=secret
+  secret: TWSYFgYJOQWB4ftgeYut8DW4wbs7pQnj
   # 鍚敤澶氱鍙fā寮�, 澶氱鍙fā寮忎娇鐢ㄧ鍙e尯鍒嗘瘡璺祦锛屽吋瀹规�ф洿濂姐�� 鍗曠鍙d娇鐢ㄦ祦鐨剆src鍖哄垎锛� 鐐规挱瓒呮椂寤鸿浣跨敤澶氱鍙f祴璇�
   rtp:
     # [鍙�塢 鏄惁鍚敤澶氱鍙fā寮�, 寮�鍚悗浼氬湪portRange鑼冨洿鍐呴�夋嫨绔彛鐢ㄤ簬濯掍綋娴佷紶杈�
@@ -102,14 +93,16 @@
     port-range: 50000,50300 # 绔彛鑼冨洿
     # [鍙�塢 鍥芥爣绾ц仈鍦ㄦ鑼冨洿鍐呴�夋嫨绔彛鍙戦�佸獟浣撴祦,
     send-port-range: 50000,50300 # 绔彛鑼冨洿
-  # 褰曞儚杈呭姪鏈嶅姟锛� 閮ㄧ讲姝ゆ湇鍔″彲浠ュ疄鐜皕lm褰曞儚鐨勭鐞嗕笌涓嬭浇锛� 0 琛ㄧず涓嶄娇鐢�
-  record-assist-port: 18081
 # [鏍规嵁涓氬姟闇�姹傞厤缃甝
 user-settings:
   # 鐐规挱/褰曞儚鍥炴斁 绛夊緟瓒呮椂鏃堕棿,鍗曚綅锛氭绉�
   play-timeout: 180000
   # [鍙�塢 鑷姩鐐规挱锛� 浣跨敤鍥哄畾娴佸湴鍧�杩涜鎾斁鏃讹紝濡傛灉鏈偣鎾垯鑷姩杩涜鐐规挱, 闇�瑕乺tp.enable=true
   auto-apply-play: true
-  # 璁惧/閫氶亾鐘舵�佸彉鍖栨椂鍙戦�佹秷鎭�
-  device-status-notify: true
+  # 鎺ㄦ祦鐩存挱鏄惁褰曞埗
+  record-push-live: true
+  # 鍥芥爣鏄惁褰曞埗
+  record-sip: true
+  # 鍥芥爣鐐规挱 鎸夐渶鎷夋祦, true锛氭湁浜鸿鐪嬫媺娴侊紝鏃犱汉瑙傜湅閲婃斁锛� false锛氭媺璧峰悗涓嶈嚜鍔ㄩ噴鏀�
+  stream-on-demand: true
 

--
Gitblit v1.8.0