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

About using SIPGO as a full SIP server like Asterisk #22

Closed
esbolice opened this issue May 23, 2023 · 2 comments
Closed

About using SIPGO as a full SIP server like Asterisk #22

esbolice opened this issue May 23, 2023 · 2 comments
Labels
question Further information is requested

Comments

@esbolice
Copy link

I'm interested in utilizing SIPGO as a comprehensive SIP server similar to Asterisk for my project. I have reviewed the README and examples provided in the repository, and I'm impressed with the performance and flexibility offered by SIPGO. However, I would like to understand the extent to which SIPGO can serve as a replacement for Asterisk in terms of its capabilities and features.

Specifically, I'm looking to achieve the following functionalities with SIPGO:

Handling and routing of SIP calls: I want to be able to receive incoming SIP calls, process them based on certain rules (such as authentication, call routing, etc.), and forward them to the appropriate destination.
Support for SIP extensions and features: It would be beneficial if SIPGO supports common SIP extensions and features like call transfers, call forwarding, conferencing, voicemail, IVR (Interactive Voice Response), and presence management.
Integration with external services: I would like to integrate SIPGO with external databases, caches, and other services to enhance its functionality. This would enable me to store and retrieve SIP-related information, perform authentication and authorization checks, and incorporate additional business logic.
Scalability and performance: As my application may experience high call volumes, it is crucial to have a SIP server that can handle a large number of concurrent connections and deliver reliable performance under heavy load.
I understand that SIPGO is still in development, and I appreciate any insights, recommendations, or limitations that you can provide regarding its suitability for building a production-ready SIP server.

Thank you!

p.s maybe in the future to create a similar to asterisk+freepbx

@emiago
Copy link
Owner

emiago commented May 27, 2023

Hi @e1real

I understand there will be probably more easier to use this lib with features like that but..
The full replacement of B2BUA services like asterisk freeswitch is huge challenge. It is not problem in SIP that much,
but media handling, bridging and transcoding is something that you need to consider.
But then problems of those services as you probably now is scaling them and this is more currently where I can see SIPGO good fit.
I would see having SIPGO lib to build some proxy, loadbalancing, registrar, presence solutions.
My say was, if Go can be great for handling HTTP, why we can not do that with SIP.

Of course this library currently does not provide you with

  • security (Which I would consider maybe extending in future)
  • authorization
  • clustering
  • caching

I believe this lib should stay in domain like go http module, to provide you correct way of handling SIP without being bottleneck like in parsing, encoding, concurency and also in extending. So you can be safe to use it in high loads and must be very well tested.

Now having GO in your hand (and not some weird custom language which those services provide) you can directly (with minimum latency) integrate with anything, which is one of my main goals. This is where I see are mostly bottlenecks with other systems, but now you are in power to optimize.

Anyway not to discourage you, there is nothing stopping you to build B2BUA with this lib for simple call bridging.
But for other stuff research is needed. pion/webrtc would be good start as has lot of projects which are written in GO to see for media handling.

@emiago emiago added the question Further information is requested label May 27, 2023
@emiago
Copy link
Owner

emiago commented Aug 9, 2023

#32 Will provide more helpers for this

@emiago emiago closed this as completed Aug 9, 2023
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

2 participants