Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SIP Trunk with Asterisk #231

Open
KTarun003 opened this issue Nov 25, 2024 · 5 comments
Open

SIP Trunk with Asterisk #231

KTarun003 opened this issue Nov 25, 2024 · 5 comments
Assignees
Labels
question Further information is requested

Comments

@KTarun003
Copy link

Hi,

I would like my agent to accept inbound calls or make outbound calls through asterisk server. I have searched the entire documentation, but I could only find the steps Twilio or Telnyx. Any help will be much appreciated.

@dennwc dennwc added the question Further information is requested label Nov 25, 2024
@dennwc dennwc self-assigned this Nov 25, 2024
@dennwc
Copy link
Contributor

dennwc commented Nov 25, 2024

Hi @KTarun003!

The steps to accept inbound or make outbound calls for Asterisk is the same as with Twilio or Telnyx. We do not provide documentation for it, because Asterisk can be configured in many different ways and we obviously cannot cover them all.

Is there any specific step of the quickstart that doesn't work with your Asterisk setup? Also, please consider joining our Slack - we usually answer general support questions there.

@KTarun003
Copy link
Author

I am facing issue when I want to create a trunk, I dont know which URI to point the trunk. And I am using examples/voice-pipeline-agent/function_calling_weather.py example. Are there any changes to this code when using SIP. I am trying to self-host. if that helps.

@arthurblake
Copy link

I have a similar question. I just asked it on the #sip slack channel, and I referenced this issue too.

@rodrigoGA
Copy link

rodrigoGA commented Nov 26, 2024

I’m trying to connect it with an Asterisk system, but for now, I’m starting with a softphone like Zoiper to test the integration, and I haven’t been able to get it working correctly.
I’m using the LiveKit API to create rules similar to these:
SIP Trunk Creation: lk sip inbound create inbound-trunk.json

  "trunk": {
    "name": "Softphone inbound trunk",
    "numbers": ["+9999999999"], 
    "auth_username": "sip-user",
    "auth_password": "sip-pass",
    "allowed_addresses": ["0.0.0.0/0"]
  }
}

Dispatch Rule Creation: lk sip dispatch create dispatch-rule.json

{
  "name": "test-1 dispatch rule softphone",
  "trunk_ids": ["<id>"],
  "rule": {
    "dispatchRuleIndividual": {
      "roomPrefix": "call"
    }
  }
}

The issue is that I can’t register the softphone with LiveKit. I’ve followed the official documentation and successfully set up an example with Twilio by associating a phone number, but now I’d like to test it with Zoiper to eventually integrate the system with Asterisk.

I’m registering the softphone with the following details:

Username: sip-user
Password: sip-pass
Sip uri: 6o3m8e2088l.sip.livekit.cloud

Do you have any advice or additional steps to make this configuration work correctly?
Any help would be greatly appreciated!

@charly17
Copy link

Hi,
In my case, I successfully completed the integration with Asterisk with the help of fellow developers and by using LiveKit documentation. The process involves creating a dispatch rule and a room to obtain the SIP URI and registering the number within LiveKit.

You should not register the trunk outside of LiveKit for outgoing calls. For incoming calls, you only need to send the call to the SIP URI you get from LiveKit.

On the server where you have Asterisk and currently receive the DID from your provider to a standard Asterisk extension (this is to verify that everything is working fine on your provider's side and with your Asterisk server), once validated, you should route the call from your Dialplan like this:
same => n,Dial(SIP/${EXTEN}@dilivekitetcetc.sip.livekit.cloud)

As mentioned, the call must negotiate using the ulaw-alaw codecs, as I encountered issues when only G729 was being sent in my configuration.

For outgoing calls, you need to configure LiveKit so that when the server launches, it handles the call to the destination number (this is the "participant" according to LiveKit documentation). You will also need to create a trunk in Asterisk and register it in LiveKit since it will generate the call to your SIP provider connected to the PSTN. Therefore, you must configure Asterisk to manage this process (create the context where the call will land and send it to your SIP provider).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

5 participants