01 / 08
1. Understand what you are connecting
SIP carries the messages that start and end a phone call. PJSIP is the newer Asterisk driver that handles those messages. It is separate from the conference engine that joins an agent and a caller together. You can investigate a PJSIP connection without changing ConfBridge.
Think of a phone account as a named door. A transport says which network entrance to use; an endpoint holds call options; an address of record, usually called an AoR, points to the phone’s current contact address. A registration is the phone checking in. These pieces need to agree before a call can work.
The VICIdial document mixes generations: its introduction describes ViciBox 12 with Asterisk 18, but its activation recipe is still headed ViciBox 10 with Asterisk 16. It also predates the upstream removal of chan_sip in Asterisk 21. Establish your actual versions before following any migration example.
You should seeRegistration, reachability and an answered internal PJSIP call were observed separately.
02 / 08
2. Check the running driver before opening a configuration file
Run the following on the intended Asterisk server, not on an unrelated web or database host. These are information requests to the running process. A configuration file on disk can disagree with what the process has loaded.
- Before you use it
- Use your approved Asterisk CLI access. Keep the complete response in a private test record.
asterisk -rx 'core show version'asterisk -rx 'module show like chan_pjsip.so'asterisk -rx 'module show like res_pjsip_config_wizard.so'asterisk -rx 'pjsip show transports'This sample changes a system, contacts an outside service, needs a live call, or would print real data from a shared server, so it was not run on the demo. Run it only where you are authorized, and compare the result with the success and stop guidance.
- Success looks like
- A running PJSIP driver, the expected wizard module and an explicit transport give you a useful starting point. Read the transport protocol and bind address/port together.
- Stop if
- No such command or a missing module means the required runtime feature is unavailable. Stop and check the supported package/configuration with your administrator; do not unload a working driver.
03 / 08
3. Find the two VICIdial controls that matter
Use the native administration screens to inspect the current state first. Merely making PJSIP available does not convert existing phones or carriers.
- Open Administration → Admin → System Settings. Find Allowed SIP Stacks and record its existing value without saving. If PJSIP is unavailable, arrange an approved change before proceeding.
- Open Administration → Admin → Phones → Show Phones and select the approved synthetic phone. Record its current protocol, extension and assigned server privately. Confirm the account is on the same Asterisk server you inspected.
- If an approved test needs a new account, use Add a New Phone and the PJSIP protocol supported by your build. Use a unique extension and a strong private registration password; keep the existing working account unchanged.
- Enter the matching server, transport and listening port in the test softphone. The exact softphone fields differ; do not paste a SIP password into a screenshot or a support ticket.
- Save only the approved test record. Wait for the supported configuration-generation process, then inspect the running objects again. A saved web form alone does not prove registration.
04 / 08
4. Write down the connection instead of guessing ports
Complete this small worksheet before a change. It helps an administrator spot a wrong host, wrong driver or port collision without reading anyone’s password. A phone configured for UDP cannot use a transport that only accepts TLS.
VICIdial uses Asterisk’s PJSIP wizard format for PJSIP phone definitions. The wizard simplifies account objects; it does not replace the transport configuration in pjsip.conf. Avoid editing generated phone sections by hand.
- Before you use it
- This is a worksheet, not a shell command. Fill it from your own read-only checks.
Test phone name: YOUR_LAB_PHONEAssigned Asterisk server: record privatelyPhone driver: PJSIPTransport name: copy from the running transport listTransport protocol: UDP, TCP, TLS, WS or WSS as actually configuredListening address and port: copy from the same transportPhone contact: check after registrationPrevious phone protocol and settings: record before savingThis sample is a template or reading aid, not a terminal command. There is no output to show.
- Success looks like
- The server, account and transport agree before the test phone connects.
- Stop if
- If a field is unknown, investigate it before changing ports or converting a carrier.
05 / 08
5. Check the selected phone, then test audio separately
Replace YOUR_LAB_PHONE with the approved endpoint name from your own configuration. Read-only object checks can identify a missing contact; they do not send a test call. Keep complete outputs private because account names and contact addresses can identify your deployment.
- Confirm the selected phone registers to the expected server and transport. A carrier’s outbound registration is a different check; an IP-authenticated carrier may intentionally have no outbound registration.
- Arrange one authorized internal call using the synthetic phone. Check two-way sound and any required DTMF, hold or transfer behavior; mark each observation separately.
- End the internal test and verify its channels have cleared. Only then decide whether the same controlled procedure is suitable for another phone.
- Before you use it
- Replace the placeholder with the synthetic phone name. Do not use a real customer or provider account as the demonstration.
asterisk -rx 'pjsip show endpoint YOUR_LAB_PHONE'asterisk -rx 'pjsip show contacts'This sample changes a system, contacts an outside service, needs a live call, or would print real data from a shared server, so it was not run on the demo. Run it only where you are authorized, and compare the result with the success and stop guidance.
- Success looks like
- The intended endpoint exists and its expected contact appears with the state appropriate to your configuration. Compare its address with the test phone.
- Stop if
- No matching endpoint suggests a generation, server-assignment or naming problem. A missing contact suggests registration, transport, credentials or network reachability needs investigation.
You should seeRegistration is a connection check. A completed call with two-way sound is a separate acceptance result.
06 / 08
6. What we checked on the demo
On the pinned ViciBox 12 lab, Asterisk 18.26.4-vici was already running PJSIP and its wizard. We created only synthetic phones 8902 and 8903 through the native forms, with separate station-login and registration passwords. The new-phone form also required a Voicemail ID; an empty value was rejected rather than silently creating the phone.
Actual loopback registration received 401, the normal authentication challenge, then 200 OK. We separately required the phone client to answer OPTIONS and become Avail. The first test client registered but mishandled these reachability requests; correcting that client established readiness without changing the server transport.
A controlled internal call then used PJSIP 8902 for the agent and PJSIP 8903 for the customer. Native VICIdial reached LIVE, and the actual bridge contained the named agent and customer profiles. This verifies the local driver and call path; it is not a remote NAT, encrypted transport or carrier test.
The transport list showed UDP on 5061 and a WSS transport entry with 5060. Port 5061 on this host was UDP, not TLS. The WSS entry does not prove a browser listening port: that requires the separate Asterisk HTTP-server status check.
Native allowed SIP stacks setting
Open to enlargeCapture details
This enables configuration choices; it does not establish that a particular phone or carrier is registered or a call completed.You should seeRegistration, reachability and an answered internal PJSIP call were observed separately.
07 / 08
7. If the phone still does not work
Start with the smallest failed check. Repeatedly changing ports makes it harder to tell which setting caused the problem.
08 / 08
8. Finish with a result and a recovery path
Record exactly what passed: driver loaded, transport present, endpoint present, selected contact registered, internal call connected and two-way sound checked. Leave untested boxes empty.
If you changed only the synthetic phone, restore that exact record and softphone configuration from your baseline if the test fails. If the plan changes existing transport or SIP settings, keep the recorded previous configuration and independent access available before starting; restoring a file does not change the running transport automatically.
Asterisk transport reload behavior is version-sensitive and may disrupt calls. The upstream default does not allow transport reload. Let the administrator arrange the required maintenance action instead of copying the historical reboot instruction into an active call center.
- VICIdial revision and Asterisk version recorded.
- Running transport protocol and bind address/port recorded.
- Only the approved synthetic account was changed.
- Registration and audio outcomes recorded separately.
- Working accounts remain available, or the exact scoped changes were restored.
Checks and sources
What was checked
- November 7, 2026: native phone creation, authenticated loopback registration, OPTIONS/Avail and the answered internal call were observed. The failed test-client readiness check is preserved in the test record.
- The phone test uses loopback UDP. Remote NAT, encrypted SIP/media and carrier connectivity were not exercised.
Primary references
Sources
- VICIdial PJSIP supportVICIdial Group · accessed November 7, 2026
- PJSIP configuration sections and relationshipsAsterisk · accessed November 7, 2026
- PJSIP configuration wizardAsterisk · accessed November 7, 2026
- PJSIP transport configuration and reload behaviorAsterisk · accessed November 7, 2026
- chan_sip version historyAsterisk · accessed November 7, 2026
- PJSIP outbound registration checksAsterisk · accessed November 7, 2026
- Asterisk WebRTC clients: HTTP server and WSS transportAsterisk · accessed November 7, 2026
