From ed9c3d2d0354d493209769f0013de98eb7e443e5 Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期四, 18 九月 2025 16:39:54 +0800
Subject: [PATCH] 电话、详情、表单

---
 src/utils/sipService-cs.js |   64 ++++++++++++++++++++++++++++----
 1 files changed, 56 insertions(+), 8 deletions(-)

diff --git a/src/utils/sipService-zs.js b/src/utils/sipService-cs.js
similarity index 78%
rename from src/utils/sipService-zs.js
rename to src/utils/sipService-cs.js
index dbc4a4e..0cfc572 100644
--- a/src/utils/sipService-zs.js
+++ b/src/utils/sipService-cs.js
@@ -99,13 +99,26 @@
         }
 
         const options = {
-          sessionTimers: true, // 鍚敤浼氳瘽璁℃椂鍣�
-          sessionTimersExpires: 150,
-          extraHeaders: ["Accept: application/sdp"],
-          mediaConstraints: { audio: true, video: false },
+          sessionTimers: true,
+          sessionTimersExpires: 300,
+          extraHeaders: [
+            "Min-SE: 120",
+            "Route: <sip:@192.168.100.6>",
+            "Accept: application/sdp",
+            "Supported: replaces, timer",
+            "Allow: INVITE, ACK, BYE, CANCEL, OPTIONS",
+          ],
+          mediaConstraints: {
+            audio: true,
+            video: false,
+          },
           rtcOfferConstraints: {
-            offerToReceiveAudio: true,
-            offerToReceiveVideo: false,
+            offerToReceiveAudio: 1,
+            offerToReceiveVideo: 0,
+            mandatory: {
+              OfferToReceiveAudio: true,
+              OfferToReceiveVideo: false,
+            },
           },
           eventHandlers: {
             progress: () => this.updateCallStatus("calling", "鍛煎彨涓�..."),
@@ -118,13 +131,48 @@
               resolve();
             },
           },
+          pcConfig: {
+            iceServers: [{ urls: "stun:stun.l.google.com:19302" }],
+            iceTransportPolicy: "all",
+            bundlePolicy: "balanced",
+            rtcpMuxPolicy: "require",
+            codecs: {
+              audio: [
+                { name: "PCMU", clockRate: 8000, payloadType: 0 },
+                { name: "PCMA", clockRate: 8000, payloadType: 8 },
+              ],
+              video: [],
+            },
+          },
         };
 
         this.currentSession = this.ua.call(
-          `sip:${targetNumber}@1192.170.66.107`,
+          `sip:${targetNumber}@192.168.100.6`,
           options
         );
-
+        // 鍦ㄤ細璇濆垱寤哄悗淇敼 SDP
+        this.currentSession.on("peerconnection", (pc) => {
+          this.updateCallStatus("calling", "鍛煎彨涓�...");
+          pc.createOffer = (offerOptions) => {
+            return RTCPeerConnection.prototype.createOffer
+              .call(pc, offerOptions)
+              .then((offer) => {
+                const modifiedSdp = offer.sdp
+                  .replace(
+                    /c=IN IP4 192\.168\.100\.10/g,
+                    "c=IN IP4 192.168.100.6"
+                  )
+                  .replace(
+                    /m=audio \d+ RTP\/AVP.*/,
+                    "m=audio 7078 RTP/AVP 0 8"
+                  );
+                return new RTCSessionDescription({
+                  type: "offer",
+                  sdp: modifiedSdp,
+                });
+              });
+          };
+        });
         this.setupPeerConnection(this.currentSession);
         this.setupAudio(this.currentSession);
       } catch (error) {

--
Gitblit v1.9.3