first commit

This commit is contained in:
2026-05-22 11:46:43 +02:00
commit 2ebd8fb16b
29 changed files with 3356 additions and 0 deletions
+52
View File
@@ -0,0 +1,52 @@
import { test } from '@playwright/test';
import { markManual } from '../../helpers/manual';
// Codec-level tests require active SIP calls with specific codec configurations
// and packet capture / audio analysis tools. None can be driven by Playwright alone.
test.describe('pbx-codecs', () => {
test('pbx-codecs-check-codec_negotiation_g711_g729_opus_g722', async ({ page }, testInfo) => {
testInfo.annotations.push({ type: 'automationStatus', description: 'manual' });
testInfo.annotations.push({ type: 'testType', description: 'check' });
markManual('Requires SIP call traffic with codec-constrained endpoints and Wireshark packet capture to verify SDP offer/answer negotiation for each codec');
testInfo.annotations.push({ type: 'description', description: 'Verify successful codec negotiation for G.711 (alaw/ulaw), G.729, Opus, and G.722 between endpoints' });
// Manual steps:
// 1. In admin portal, configure a test extension to use only G.711 alaw. Make a call and capture SDP.
// Verify SDP answer contains only pcma/8000.
// 2. Repeat with G.729: verify annexb, SDP shows g729/8000.
// 3. Repeat with Opus: verify SDP shows opus/48000/2.
// 4. Repeat with G.722: verify SDP shows G722/8000.
// 5. Test codec fallback: configure preferred codec that remote doesn't support; verify negotiation falls back to next common codec.
// 6. Record Wireshark SDP captures for each scenario.
});
test('pbx-codecs-check-dtmf_transmission_rfc2833_inband_sip_info', async ({ page }, testInfo) => {
testInfo.annotations.push({ type: 'automationStatus', description: 'manual' });
testInfo.annotations.push({ type: 'testType', description: 'check' });
markManual('Requires active call sessions with DTMF generation (physical or software phone), packet capture for RFC2833, and IVR system to verify DTMF reception');
testInfo.annotations.push({ type: 'description', description: 'Verify DTMF digit transmission via RFC2833, in-band audio, and SIP INFO methods are handled correctly' });
// Manual steps:
// 1. Configure extension for RFC2833 DTMF. Call an IVR. Press digits 0-9,*,#.
// Wireshark: verify RTP telephone-event packets are sent for each digit.
// IVR: verify digits are recognised and routing occurs correctly.
// 2. Configure extension for in-band DTMF. Repeat dial-through IVR.
// Verify IVR recognises tones (confirm with IVR logs).
// 3. Configure extension for SIP INFO DTMF. Repeat.
// Wireshark: verify SIP INFO messages contain correct DTMF signal field.
// 4. Record: each method used, packets observed, IVR recognition accuracy.
});
test('pbx-codecs-check-t38_fax_passthrough_and_error_correction', async ({ page }, testInfo) => {
testInfo.annotations.push({ type: 'automationStatus', description: 'manual' });
testInfo.annotations.push({ type: 'testType', description: 'check' });
markManual('Requires fax hardware (physical fax machine or fax server, e.g., HylaFAX) and T.38 stack support; cannot be tested with a browser');
testInfo.annotations.push({ type: 'description', description: 'Verify T.38 fax passthrough and error correction (ECM) work correctly over the PBX' });
// Manual steps:
// 1. Configure a SIP trunk with T.38 support enabled.
// 2. Send a fax from a fax machine / software fax client to a DID number routed to a fax extension.
// 3. Verify the fax is received completely and without page corruption.
// 4. Check Wireshark: verify T.38 re-INVITE is sent when fax tone is detected (CNG → T.38 switchover).
// 5. Test T.38 ECM: induce packet loss (network emulator), verify re-transmission corrects errors.
// 6. Record: pages sent/received, error count, ECM effectiveness.
});
});