53 lines
3.7 KiB
TypeScript
53 lines
3.7 KiB
TypeScript
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.
|
|
});
|
|
});
|