VMware ESXi and vSphere Cluster Management
Install and Configure Ekiga Softphone on Ubuntu for Asterisk SIP Calling
Install Ekiga on Ubuntu, configure it as a SIP extension for Asterisk, verify registration, and troubleshoot audio, NAT, codecs, and calling.
What Ekiga Does in an Asterisk Lab
Ekiga is a graphical, free and open-source VoIP and video softphone. A softphone is software that provides telephone functions through a computer, microphone, speakers or headset, and a network connection.
Ekiga uses SIP, the Session Initiation Protocol, to establish, manage, and end voice or video sessions. In an Asterisk lab, Ekiga acts as a SIP client that registers an extension with Asterisk, the PBX platform that manages extensions, authentication, call routing, and telephony features.
A softphone is useful when a physical IP phone is unavailable. It also makes testing convenient because the same Ubuntu workstation can provide the user interface, microphone, and speakers. Normally, run Ekiga on a separate desktop system from the Asterisk server. This is especially important when the PBX host is a headless server without a graphical desktop.
Capabilities relevant to this lesson
- Voice calling is the primary use case.
- Depending on the account and PBX dial plan, you can use features such as call hold and call transfer.
- Video calling is optional. It requires a compatible camera, video device configuration, and compatible video codecs on the call path.
After SIP establishes a call, RTP, the Real-time Transport Protocol, commonly carries the audio and video media. This distinction matters: SIP registration can succeed while RTP audio is blocked by a firewall or misconfigured NAT.
Prerequisites
Prepare the following before installing and configuring Ekiga:
- An Ubuntu workstation with a working graphical desktop session.
- Network reachability between the workstation and the Asterisk server.
- An Asterisk SIP extension or endpoint that already has an extension number or username, authentication username if applicable, password or secret, server address, and dial-plan context.
- A working microphone and speakers, preferably a headset for a lab.
- Administrative privileges for installing packages.
- Basic familiarity with Ubuntu APT, IP addressing, the Asterisk CLI, endpoint configuration, and internal dial-plan extensions.
For the examples below, extension 1001 registers to an Asterisk server at 192.0.2.10. The address is documentation-only; replace it with the address or hostname of your PBX.
Check Whether Ekiga Is Available
Ekiga may not be packaged in the configured repositories for some modern Ubuntu releases. Check availability before relying on the installation command:
apt-cache policy ekigaIf the command shows a candidate version, refresh package metadata and install the package:
sudo apt-get update
sudo apt-get install ekigaIf no candidate is shown, the package may be absent from the selected release repositories, the package indexes may be stale, or Ekiga may no longer be maintained for that Ubuntu release. Refresh the indexes, check the configured and supported repository sources, and confirm package availability. If the package is still unavailable, use a maintained SIP softphone rather than installing an untrusted package.
Verify that installation completed by opening the desktop application menu and searching for Ekiga, or by launching it from a terminal inside the graphical session:
ekigaComplete the First-Run Setup Assistant
Open Ekiga from the desktop application launcher or run ekiga as the ordinary logged-in desktop user. The first-run assistant may present identity, public service, network, audio, and video pages.
| Wizard step | What to select | When to change the default | Effect on calling |
|---|---|---|---|
| Identity | Enter a display name and any requested identity fields. | Change the display name if several lab users share a system or if caller identification needs to be clear. | The display identity can be shown to other SIP users; it does not replace the Asterisk authentication secret. |
| Public directory or external service | Skip or leave optional public-directory and external-service prompts unused for this lab. | Configure them only when you intentionally use those services. | These services are separate from registering an extension with your private Asterisk PBX. |
| Network type | Select the option that matches the workstation's network, such as a local network or a connection behind NAT. | Change it when the workstation is behind a router, uses a restrictive firewall, or has a nonstandard network path. | Ekiga can choose more suitable network behavior and media handling, including codec choices appropriate to the connection. It does not replace correct Asterisk NAT, firewall, or codec configuration. |
| Audio playback | Select the active speakers or headset. Retain the default if it is correct. | Change it for a USB headset, HDMI audio, or another output device. | Determines where received call audio is played. |
| Audio recording | Select the active microphone or headset input. | Change it when the default microphone is muted, unavailable, or not the desired device. | Determines which input is sent to the remote endpoint. |
| Video capture | Select a camera only if video calling is intended. | Change it when using a USB camera or a different camera. | Enables video input when the camera, codecs, and call path support video; it is not required for voice calls. |
| Save or apply | Apply the assistant's settings and finish. | Revisit the settings if devices or network conditions change. | Stores the initial preferences before the Asterisk account is tested. |
Choose the default audio devices when they match the active hardware. For a typical lab, a USB headset is a good choice for both playback and recording. Select a video device only when video is part of the exercise.
Add the Asterisk SIP Account
After the assistant, open Ekiga's account or SIP-account settings. Add a new SIP account or edit the account created during setup. The exact labels can vary by Ekiga version, but the required values are the same:
| Ekiga field | Purpose | Corresponding Asterisk endpoint value | Example |
|---|---|---|---|
| Registrar, SIP server, or host | Identifies the server that receives registration requests. | Asterisk server hostname or IP address. | 192.0.2.10 |
| SIP username or extension | Identifies the SIP endpoint. | Endpoint identity and extension number. | 1001 |
| Authentication username | Identifies the account during digest authentication. | The configured authentication username; it may differ from the endpoint identity. | 1001 |
| Password or secret | Proves that the client is allowed to register. | The endpoint's matching secret or password. | use-a-strong-secret |
| SIP port | Specifies the signaling port. | Asterisk's configured SIP listening port and transport. | Default port when unchanged; use the configured nondefault port. |
| Account enabled or register | Controls whether Ekiga sends registration requests. | The endpoint must permit or expect a registering client. | Enabled for a normal extension. |
Use registration for a standard Asterisk extension. Registration is the process by which a SIP client authenticates with a SIP server and announces its reachable location. Direct dialing, sometimes called peer-to-peer dialing, does not provide the normal registered-extension behavior and is not the expected configuration for this lesson.
Save the account and wait for Ekiga to show a registered, connected, or otherwise successful account state. If the account remains offline or reports an authentication error, do not proceed to call testing until the account values and server reachability have been checked.
Match Ekiga with Asterisk Configuration
Every client value must agree with the endpoint configuration on Asterisk: identity, authentication secret, server address, SIP port and transport, allowed codecs, registration behavior, and dial-plan context.
Older Asterisk systems may use the chan_sip driver and traditionally maintain its SIP configuration in sip.conf. A representative legacy endpoint is:
[1001]
type=friend
host=dynamic
secret=replace-with-a-strong-secret
context=internal
disallow=all
allow=ulawMany current Asterisk deployments use PJSIP, the newer SIP stack and configuration framework, instead of chan_sip. PJSIP separates an endpoint, its authentication object, and its address-of-record (AOR). A representative arrangement is:
[1001]
type=endpoint
context=internal
disallow=all
allow=ulaw
auth=1001-auth
aors=1001-aor
[1001-auth]
type=auth
auth_type=userpass
username=1001
password=replace-with-a-strong-secret
[1001-aor]
type=aor
max_contacts=1The section names and relationships must match the Asterisk version and the rest of the loaded configuration. In particular, verify that the endpoint's auth value points to the authentication object and that aors points to the intended AOR. Do not assume that a chan_sip example can be pasted into a PJSIP configuration.
The allow setting controls codecs. A codec is an audio or video encoding format used for media transmission. Ekiga and Asterisk need at least one common allowed audio codec. The context determines which dial-plan rules the extension can use.
Verify Registration and Place a Call
- Confirm that Ekiga reports the SIP account as registered or connected.
- Open the Asterisk CLI:
sudo asterisk -rvvvOn a chan_sip system, inspect peers:
sip show peersOn a PJSIP system, inspect contacts:
pjsip show contactsLook for extension 1001 and a reachable contact or address. Then call another configured extension, such as 1002, or an Asterisk test destination in the internal dial plan.
- Confirm that the destination rings and can answer.
- Speak in both directions and verify two-way audio.
- If video is enabled, verify video only when both endpoints, codecs, cameras, and the call route support it.
- Test answering, ending a call, holding, and transferring when those features are implemented in the PBX dial plan.
Registration and Call Troubleshooting
| Symptom | Likely cause | How to verify | Corrective action |
|---|---|---|---|
| The Ekiga package cannot be installed. | Stale package indexes, missing release repositories, or no Ekiga package for the Ubuntu release. | Run sudo apt-get update and apt-cache policy ekiga. | Use supported repository sources. If the package remains unavailable, choose a maintained SIP softphone. |
| Ekiga does not start or shows display or permission errors. | It was launched outside a graphical session or with sudo. | Check how it was launched and inspect ownership of user configuration files. | Launch from the desktop menu or as the logged-in user. Correct accidentally root-owned files if necessary. |
| The SIP account fails to register. | Wrong server, extension, authentication username, password, port, transport, endpoint behavior, firewall, routing, or NAT settings. | Compare Ekiga with Asterisk configuration, inspect peer or contact status, test network reachability, and watch Asterisk CLI output during registration. | Correct credentials and server parameters, permit registration on the endpoint, and adjust firewall or NAT settings. |
| The endpoint registers but calls fail. | Missing dial-plan route, unavailable destination, or incorrect dialed extension format. | Verify both endpoints and watch the Asterisk CLI during the call. | Correct the relevant context, extension pattern, or destination endpoint. |
| The call connects but has no audio or one-way audio. | Wrong device, mute state, codec mismatch, blocked RTP ports, or incorrect NAT media address. | Test Ekiga devices, compare allowed codecs, check RTP firewall rules, and use RTP debugging only in an appropriate diagnostic environment. | Select the correct microphone and speakers, enable a common codec, and correct RTP and NAT configuration. |
| Video is unavailable. | No compatible camera, missing permissions or drivers, unavailable video codec, or audio-only call path. | Check camera detection, Ekiga's video input selection, codec negotiation, and the call configuration. | Configure a compatible camera and video path, or treat video as optional for this voice-registration exercise. |
Operational and Security Considerations
- Do not run Ekiga with
sudomerely to open the application. - Use strong, unique extension passwords instead of easily guessed values.
- Protect SIP secrets in configuration files, screenshots, terminal output, and backups.
- Do not expose SIP signaling or RTP services directly to untrusted networks without suitable firewall, NAT, transport, authentication, and monitoring controls.
- Remember that registration and media are separate concerns. NAT or firewall policy can allow SIP registration while blocking RTP, producing a successful registration with no audio or one-way audio.
Practical Lab Workflow
- Run Asterisk on a server system and create extension
1001using either chan_sip or PJSIP. - Run Ekiga on a separate Ubuntu workstation with a graphical desktop.
- Install Ekiga as the normal Ubuntu user after using APT with administrative privileges.
- Select the default or USB-headset audio devices and skip video unless required.
- Configure the Asterisk server address, extension, authentication username, secret, SIP port, and registration option.
- Confirm registration in Ekiga and with the appropriate Asterisk CLI command.
- Call extension
1002or another internal test destination. - Verify signaling, two-way audio, and any required hold or transfer behavior.
This workflow demonstrates the separate server and client roles: Asterisk provides PBX services, while Ekiga provides the graphical telephone endpoint.
Summary
Ekiga can serve as a desktop SIP endpoint for an Asterisk lab when the Ubuntu release provides an installable package. Install it with APT, complete the first-run device and network choices, add a registered SIP account that matches the Asterisk endpoint, and verify the account from both Ekiga and the Asterisk CLI. If registration works but calls or audio do not, investigate the dial plan, codecs, RTP ports, firewall policy, and NAT independently.