-
Notifications
You must be signed in to change notification settings - Fork 45
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
Comments
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. |
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. |
I have a similar question. I just asked it on the #sip slack channel, and I referenced this issue too. |
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.
Dispatch Rule Creation: lk sip dispatch create dispatch-rule.json
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 Do you have any advice or additional steps to make this configuration work correctly? |
Hi, 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: 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). |
Hi, Any help would be appreciated - especially @charly17 - do you maybe have an idea whats the problem on my side? |
I think one way to resolve the issues here would be if someone can provide an example of Asterisk configuration inside a Docker container. We can then combine it with our existing Docker compose example for self-hosting and properly document integration with Asterisk in our official docs. Unfortunately I don't have spare cycles right now to do it, and I'm not very familiar with Asterisk. Can someone help by making a repo/PR with an example config? That would be really helpful! |
I know it is not an answer, but I am having exactly the same problem using FreeSwitch. It sends the Invite, gets a My node application detects the call and logs the connecting to agent which suggests the dispatch and numbers all line up. We just never get the call answered My current line of thought is if the response is coming from a different IP address so is being blocked by the firewall... It is similar to : #208 Update: I added a pin to the dispatch rule. This stopped the agent from doing anything but the call did the same thing. This suggests LiveKit cloud thinks the call is being answered but the return SIP messaging is going to the wrong place. Update 2: It works where the SIP messaging is TCP but not when it is UDP. To set it up on FreeSwitch is really easy. Create a Destination setting the action as a bridge to the SIP endpoint like:
You don't need to do anything else. No need to create a trunk. |
If you get continuous 180 responses, this means LiveKit SIP is waiting for any media from an Agent. Due to the way SFU works currently, publishing tracks is not enough. You might need to send at least one media packet (could be empty/silence). This should unblock SIP and it will start bridging the call. Are you seeing |
Somehow I was able to solve it, now the call is transmitted to the room and I can hear myself speak. I used your docker-compose as a reference. If everything works for me, I will document the setup and can post it here if there is any interest. |
Hello @dydimos, I'm trying to achieve the same. I have a complete local setup with an ATA (Grandstream H802) to connect an analog phone, livekit, and livekit-sip locally running. The ATA modem is simply not registering/communicating with the local livekit-sip server. I confirmed that all my servers, ATA modem, livekit, livekit-sip, and Redis, are running and accessible on the local network. Any help would be appreciated. Thanks in advance. |
Alguma solução? |
Of course, I'm interested in seeing your setup. Do you use livekit.cloud, or are you running a local LiveKit server? |
Hi everyone, I'm attempting to integrate my Asterisk server with LiveKit SIP (Also mentioned this in slack community), and I'm running into an issue where calls to the SIP URI are failing with a 503 "Try again later" response. Below are the details of what I've done so far: Setup Overview:
Asterisk Dialplan:Here’s the relevant part of my dialplan: exten => 9999,1,Dial(SIP/2vbic7bb4fd.sip.livekit.cloud)
exten => 9999,n,GotoIf($["${DIALSTATUS}"="CONGESTION"]?retry:hangup)
exten => 9999,n(retry),Wait(5)
exten => 9999,n,Dial(SIP/2vbic7bb4fd.sip.livekit.cloud)
exten => 9999,n(hangup),Hangup() Issue:When I call the DID, Asterisk attempts to route the call to LiveKit, but I receive the following logs:
This results in a Steps Taken to Troubleshoot:
Logs from Asterisk:Here’s an excerpt from the logs:
Request for Help:
Any guidance or suggestions would be greatly appreciated. Thank you in advance for your time and help! Best regards. |
Hi @UmairShah7677, I don't see that Asterisk is sending the extension number when Dial. You can try this: Remember that you need configure two things in Livekit: an Inbound Trunk, and a Dispatch Rule. As documentation says: https://docs.livekit.io/sip/trunk-inbound/ |
Hi everyone! We are having a very similar issue. We are using the cloud sip server, and first we connected our agent using sip-trunk and dispatch rules to a Twilio Number and it works just fine. But we need to integrate with Kazoo our VoIP, so we created an extension on kazoo to LiveKit, created the SIP Trunk and dispatch rules. But in this case when we make the call, its received by LiveKit, the agent is actually dispatched to the room and we can see even the agents starts the speech
but on the user ends theres still ringing, and we just keep getting a 180 code and never de 200 status Any guidance is helpful |
Hi @ccameroVzy, I've read that Livekit Cloud, only works with TCP packets. Not UDP. Try with TCP communication. |
@MefhigosetH yes, that was the issue. Now is working properly thanks! |
Hey @MefhigosetH Thank you for help, it is connected but now it is keep ringing. Can you please tell me @ccameroVzy that how you fixed as after this In |
@UmairShah7677 , I think that your Asterisk needs to communicate with Livekit Cloud via TCP. To do so, follow this article: https://support.digium.com/s/article/How-to-use-SIP-over-TCP Note that Asterisk 1.8 and above support SIP over TCP. If upgrade is not possible, you can try a hosted Livekit instance using Docker Compose. This schema support standard SIP via UDP. I have been test with Asterisk 11 and everything works fine. |
Thank you @MefhigosetH working fine. |
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.
The text was updated successfully, but these errors were encountered: