Commit 20ba178 for jssip.net

commit 20ba178cfe0e8f1553f9d9a14e8e194662b20503
Author: José Luis Millán <jmillan@aliax.net>
Date:   Tue Jan 13 11:02:15 2026 +0100

    add parse message test

diff --git a/test/test-parser.js b/test/test-parser.js
index b4554c9..34cbef2 100644
--- a/test/test-parser.js
+++ b/test/test-parser.js
@@ -1,5 +1,7 @@
 require('./include/common');
 const JsSIP = require('../');
+const testUA = require('./include/testUA');
+const Parser = require('../src/Parser');


 describe('parser', () =>
@@ -385,4 +387,38 @@ describe('parser', () =>
     expect((parsed = JsSIP.Grammar.parse(data, 'Status_Line'))).not.toBe(-1);
     expect(parsed.status_code).toBe(420);
   });
+
+  test('parse message', () =>
+  {
+    // eslint-disable-next-line no-multi-str
+    const data = 'INVITE sip:bob@biloxi.com SIP/2.0\r\n\
+Via: SIP/2.0/TCP useragent.cisco.com;branch=z9hG4bK-a111\r\n\
+To: <sip:bob@biloxi.com>\r\n\
+From: "Anonymous" <sip:anonymous@anonymous.invalid>;tag=9802748\r\n\
+Call-ID: 245780247857024504\r\n\
+CSeq: 1 INVITE\r\n\
+Max-Forwards: 70\r\n\
+Privacy: id\r\n\
+P-Preferred-Identity: "Cullen Jennings" <sip:fluffy@cisco.com>\r\n\r\n';
+
+    const config = testUA.UA_CONFIGURATION;
+    const wsSocket = new JsSIP.WebSocketInterface(testUA.SOCKET_DESCRIPTION.url);
+
+    config.sockets = wsSocket;
+
+    const ua = new JsSIP.UA(config);
+    const message = Parser.parseMessage(data, ua);
+
+    expect(message.hasHeader('P-Preferred-Identity')).toBe(true);
+
+    const pai = message.getHeader('P-Preferred-Identity');
+    const nameAddress = JsSIP.NameAddrHeader.parse(pai);
+
+    expect(nameAddress instanceof JsSIP.NameAddrHeader).toBeTruthy();
+    expect(nameAddress.uri.user).toBe('fluffy');
+    expect(nameAddress.uri.host).toBe('cisco.com');
+
+    expect(message.hasHeader('Privacy')).toBe(true);
+    expect(message.getHeader('Privacy')).toBe('id');
+  });
 });