Share My Creation VoIP SIP (Voice Calls) System : Source Code

Hello everyone :)

First of all and as always we start by thanking the great @Erel for making this possible for us :)

We made a post asking the lovely B4X Family about what to create next, a VPN or VoIP and most of the votes went to VoIP, so here we are :)

Today we would like to announce that in exactly 4 weeks (28/03/2021) (dd-mm-yyyy) we are releasing a new amazing project :
VoIP (Voice over Internet Protocol) system, which will consist on the following :
1- Text messages
2- Real Time voice calls
3- Group Voice Calls


Real time voice calls will work locally or publicly (through the internet) by using the SIP technology
The Audio Codec will be : PCMA (G.711)
Supported Audio Codec : h.264 codec

The Project will be built using :
1- B4J System Admin + System Server :
- Managing Incoming Calls
- Managing Outgoing Calls
- Managing Users information
- Able to disconnect any active call
- Calls and text messages log
- Able to record any active call and save the call as a MP3 file
- Able to get any text messages sent/received as save the log as a .txt file

2-B4A Client
- Each client registers will get a unique ID (just like a phone number)
- Speed Dial (able to add anyone to the list by typing the ID)
- Call block (able to block any incoming call from a specific ID)
- Able to send text messages
- Phone book (able to add anyone to the list by typing the ID)
- Calls History

3- B4J SIP Client has been released! :)

3-IOS Client - Coming Soon...

- Each client registers will get a unique ID (just like a phone number)
- Speed Dial (able to add anyone to the list by typing the ID)
- Call block (able to block any incoming call from a specific ID)
- Able to send text messages
- Phone book (able to add anyone to the list by typing the ID)
- Calls History



More information will be posted once we finish developing feature by feature

The source code will be for sale : 150$
Project Price : 35$ Only
fs-payment1 (1).png

*Once you send the payment you will receive an email from our partner FastSpring which contains the source codes.

We have added to list "Features to be added" :
-Avaya integration
As many of you know that Avaya is leading in the field of VoIP so we will add a feature to integrate the features of Avaya in the project which is amazing because with this feature you can transform the call from Avaya phone device to your own server which will give you the ability to :
1- Control and manage the call from the server side (record , log , etc...) (B4J Server App)
2- You can answer the phone call from anywhere in the world (B4A + B4i Client App)

*This is an extra feature to the app meaning the app will not need any Avaya equipment and it does not need Avaya SDK to work, it's only an extra feature.



We will keep you updated :)

Thank you guys for your support :)
 
Last edited:

sfsameer

Well-Known Member
Licensed User
Hi Saif !

Any news?
Hello,

Not yet, it's still under development.

I do not think so. They are 24/48 working hours. consider that they work one hour a day

I have always respected your contribution to the B4X community and liked almost 100% of your posts on B4X but i never though you would make a disrespectful comment on our project.
Is this unnecessary and disrespectful remark really needed to be wrote here ?

Thank you,
Saif
 
Last edited:

Star-Dust

Expert
Licensed User
Hello,

Not yet, it's still under development.



I have always respected your contribution to the B4X community and liked almost 100% of your posts on B4X but i never though you would make a disrespectful comment on our project.
Is this unnecessary and disrespectful remark really needed to be wrote here ?

Thank you,
Saif
Hi dear friend,

I am glad that you have followed my projects and therefore my posts. So you know that I like to make some joke every now and then. It's part of my good character to make a smile and not just talk about technical things.

I am surprised and sorry that he took my joke as an offense to your work. I do not think I have commented on the project.
I am not often a judgment on its merit, even if I think I can do it. Because it is a free forum and i believe i have the skills to do it. Despite that, I didn't.

If you believe my comment is harmful, I am willing to delete it, I do not believe that a message must be the source of misunderstandings, especially with people I do not know and I have no reason to have conflicting relationships

Thank's
 
Last edited:

prbmjr

Member
Licensed User
Hello,

Not yet, it's still under development.
Hi Saif,

Thank for the update!

I'm very exciting to see the voip project with the encryption done, as you know, I really need this to complete a project that I have been developing.. that's the reason of my previous post... I know the the project is complex and you have all my support and trust to complete the project as always!!
 

Lakhtin_V

Member
Licensed User
Hi, I bought your distribution. I have no experience with Java, but have already programmed in B4A. It is not clear to me which folders I need to use to create an application using the SIP. The distribution has two variants of similar folders:
  1. VoIPSIPB4A-NewLibrary
  2. VoIPSIPB4A
which one should I choose from me 11V B4A do I need?
I run VoIPSIPB4A the message appears

1631598679017.png
 

Xfood

Well-Known Member
Licensed User
Hi, I bought your distribution. I have no experience with Java, but have already programmed in B4A. It is not clear to me which folders I need to use to create an application using the SIP. The distribution has two variants of similar folders:
  1. VoIPSIPB4A-NewLibrary
  2. VoIPSIPB4A
which one should I choose from me 11V B4A do I need?
I run VoIPSIPB4A the message appears

View attachment 119072
the new library also manages the password, you should use the new one
 

sfsameer

Well-Known Member
Licensed User
What does the maven artifact message mean? How to solve this problem?
Hello,

it's been mentioned here :

Thank you,
Saif
 
This is completely false
My request, since last April, is unique
Allow the communication of the Voip Sip System project with the public telephone network
On the great usefulness of this module you will surely have seen the approval of other users as well
If it is too difficult for you too, patience, we will wait for whoever knows how to do it
Feel free to work on beautifying the code
If you have about $100,000 USD to invest on the servers and APIs to route DID numbers to your SIP server, I'd be glad to tell you how it can be done absolutely free... We've worked on a number of telecom projects using SIP over the years - other programming languages though. Like IPs, you would need to purchase an entire DID phone number subset... And it comes with a yearly fee. You must be licensed to operate a telecom though, which will incur additional fees. :) In the US, you would need to get approval from the FCC first also. If you have the money, I'll point you in the right direction... $100,000 will get you setup and access about 25,000 phone numbers.
 

Magma

Well-Known Member
Licensed User
If you have about $100,000 USD to invest on the servers and APIs to route DID numbers to your SIP server, I'd be glad to tell you how it can be done absolutely free... We've worked on a number of telecom projects using SIP over the years - other programming languages though. Like IPs, you would need to purchase an entire DID phone number subset... And it comes with a yearly fee. You must be licensed to operate a telecom though, which will incur additional fees. :) In the US, you would need to get approval from the FCC first also. If you have the money, I'll point you in the right direction... $100,000 will get you setup and access about 25,000 phone numbers.

I don' think so...

amorosik not talking for numbers (DID) but only for APIs -talking about the connection at SIP Servers // Like a VOIP/SIP Router with FXs-phone-input/output, like PAP (linksys-cisco), like the simple one included library at b4a (but ofcourse with more options and for all b4x)...

is just code but ...sure is difficult...some of APIs need money - some of them are free but need to learn from "0" what they need.. need to use many codecs too.. some need to use and JTAPI too (for old pbx devices) and many many other...

ofcourse the cost having for this library - the developer sfsameer is very low-cheap and that he did already are too much/many... but not what amorosik need...

Hope all find the way and create a beautiful library... is not so simple...
 

Lakhtin_V

Member
Licensed User
I reinstalled SDK and Java. After that, the client VoIP started on the AVD, the Java server started on this PC. How can I check the performance of the entire project? I want to test a voice call from one smartphone to another via the Internet.
1. option - Install the application on two smartphones, and run the server on the PC, but I do not have a static IP address for the server.
2. option - run client application on the AVD in the local network on 2 different PCs. Next step, on the third PC, run the Java server. Try to talk through the Microphone.
 
Last edited:
I reinstalled SDK and Java. After that, the client VoIP started on the AVD, the Java server started on this PC. How can I check the performance of the entire project? I want to test a voice call from one smartphone to another via the Internet.
1. option - Install the application on two smartphones, and run the server on the PC, but I do not have a static IP address for the server.
2. option - run client application on the AVD in the local network on 2 different PCs. Next step, on the third PC, run the Java server. Try to talk through the Microphone.
You can purchase a cheap VPS system for development testing over at ionos.com. They're only about $2 / month and no long term contacts. That will provide you with a static IP as well as a remote server to test calls between any two points on Earth. Then you can test locally, and even ask a friend on the opposite side of the world to join in on the test by giving them a call. Performance should really be based on latency and systems performances though :)
 

amorosik

Well-Known Member
Licensed User
If you have about $100,000 USD to invest on the servers and APIs to route DID numbers to your SIP server, I'd be glad to tell you how it can be done absolutely free... We've worked on a number of telecom projects using SIP over the years - other programming languages though. Like IPs, you would need to purchase an entire DID phone number subset... And it comes with a yearly fee. You must be licensed to operate a telecom though, which will incur additional fees. :) In the US, you would need to get approval from the FCC first also. If you have the money, I'll point you in the right direction... $100,000 will get you setup and access about 25,000 phone numbers.

Where would you have seen that I asked how to create the structure to become a voip provider?
That's not what I asked for
What I asked for is the possibility of using the 'Voip Sip source code' project as a classic voip telephone switchboard such as Asterisk or 3Cx or similar
And to do this, one of the minimum required features is what is usually called 'external trunk'
A communication channel between the pbx (B4J server part of project Voip Sip sorce code) and a voip service provider
Which allows the pbx to reach the public telephone network and therefore send and receive calls from any telephone in the world
Clearly visibile on this post
 

amorosik

Well-Known Member
Licensed User
I don' think so...

amorosik not talking for numbers (DID) but only for APIs -talking about the connection at SIP Servers // Like a VOIP/SIP Router with FXs-phone-input/output, like PAP (linksys-cisco), like the simple one included library at b4a (but ofcourse with more options and for all b4x)...

is just code but ...sure is difficult...some of APIs need money - some of them are free but need to learn from "0" what they need.. need to use many codecs too.. some need to use and JTAPI too (for old pbx devices) and many many other...

ofcourse the cost having for this library - the developer sfsameer is very low-cheap and that he did already are too much/many... but not what amorosik need...

Hope all find the way and create a beautiful library... is not so simple...

If you try to use the B4A client and the latest B4J client, those with user and password, you will see that they can connect to classic sip pbx like Asterisk or 3Cx
Personally I have tried with FreePbx and they seem to work correctly, at least in the features currently present

Then, try to take the next step, try to register the B4a or B4J client directly on the sip server of the voip phone provider
And you will see that this works too
Well, if this second test works, then it means that the basic tools for communicating with a sip server, in the Voip Sip source code project, are present

So, could you tell me what are the technical difficulties in allowing the B4J server to communicate with a sip server, as well as the B4A and B4J client can do NOW?
 

Lakhtin_V

Member
Licensed User
You can purchase a cheap VPS system for development testing over at ionos.com. They're only about $2 / month and no long term contacts. That will provide you with a static IP as well as a remote server to test calls between any two points on Earth. Then you can test locally, and even ask a friend on the opposite side of the world to join in on the test by giving them a call. Performance should really be based on latency and systems performances though :)
I bought VoIP SIP sources to use in my application. I am planning to create an application for consulting my clients. Communication with a consultant, I wanted to do with the help of VoIP technology. Therefore, I hoped that the VoIP SIP distribution kit, from Saif Sameer, would solve all my problems with voice communication, without using additional servers. Now I need to make sure that the code is functional, how can I check the capabilities of the VoIP distribution kit. I think to use clients on smartphones, and run the server on a PC using a static IP address. I was sure that in this version I did not need to connect to other SIP servers.
 

amorosik

Well-Known Member
Licensed User
I bought VoIP SIP sources to use in my application. I am planning to create an application for consulting my clients. Communication with a consultant, I wanted to do with the help of VoIP technology. Therefore, I hoped that the VoIP SIP distribution kit, from Saif Sameer, would solve all my problems with voice communication, without using additional servers. Now I need to make sure that the code is functional, how can I check the capabilities of the VoIP distribution kit. I think to use clients on smartphones, and run the server on a PC using a static IP address. I was sure that in this version I did not need to connect to other SIP servers.

From the way you write, I think one thing is not clear to you
Of fundamental importance
The B4J server, currently, CANNOT call on the public telephone network or receive calls from the public telephone network
 

Lakhtin_V

Member
Licensed User
If you try to use the B4A client and the latest B4J client, those with user and password, you will see that they can connect to classic sip pbx like Asterisk or 3Cx
Personally I have tried with FreePbx and they seem to work correctly, at least in the features currently present

Then, try to take the next step, try to register the B4a or B4J client directly on the sip server of the voip phone provider
And you will see that this works too
Well, if this second test works, then it means that the basic tools for communicating with a sip server, in the Voip Sip source code project, are present

So, could you tell me what are the technical difficulties in allowing the B4J server to communicate with a sip server, as well as the B4A and B4J client can do NOW?
Registration procedure, the main problem is why I do not want to use public SIP servers. I was hoping to create an application in which my user makes a registration once, inside my application. After that, he will have the opportunity to talk with the consultant via the Internet. I do not want to force the user to pre-register on a public SIP server through a browser. I was hoping that the VoIP SIP Saif Sameer project would solve this problem.
 

Lakhtin_V

Member
Licensed User
I am successfully starting the server from the MAIN procedure.
1631960178057.png

When I click on the "Start server" button, the server crashes.
1631960407648.png

I have tested on different computers when using the "Start" button is always a problem. What is the problem?
 
I am successfully starting the server from the MAIN procedure.
View attachment 119243
When I click on the "Start server" button, the server crashes.
View attachment 119245
I have tested on different computers when using the "Start" button is always a problem. What is the problem?
Where is the B4J SIP server running (IP)? That is where you will need to point your management console. The bind error is indicating that Java was unable to 'bind' to 192.168.2.17 (is this really where the SIP server is installed?!?) Hmmm... That's an odd address (for general user setup)... Read on...

In order for clients or employees to use your system... You would need to install your SIP server on a remote host that is public to everyone in the world (or you can use a local server behind router DMZ to be able to be seen by the world (then you are also responsible solely for it's uptime, maintenance, and potential for someone to hack past the DMZ into your network)). Stick with the remote host.... Like a VPS server; they're cheap, fast, and you can quickly clone or setup new ones if needed. Under this setup, anyone you desire could register in the system (via web interface or someone could setup and provide the credentials to clients/employees), and talk from home, another country.... The office next door :)

**You would need DID numbers and PTSN /digital-switchboard systems to route the calls through actual land-line/cellular operators if using standard conventional phone numbers. Using only the "phone number"/login that the B4J SIP server and management tool provides, nothing additional but the client calling app and the B4J SIP server, are needed to achieve what you need. But the server must be accessible from public locations (IP) for the outside world to interact with your server.

When running the server locally:
Read the last line of the error message about "cannot assign requested address." You do not create your IP addresses (you can but that's another lesson)... Trust the DHCP built into your routers... It assigns IPs to systems automatically on your network, so you should not be "setting" custom IPs if you are. Make sure the server is running at 192.168.2.17.... open a console and try "ping 192.168.2.17" to see if the computer you're on sees the other computer on the network. If the packets are lost, then it cannot be seen. If it does connect, then check that the B4J server is running and that you can connect to it's port (can use "telnet" on the command line to connect to the port similar to the ping request -use Google) and verify it's running.

**192.168 dot anything will always be a local network connection, and won't be seen outside your network.**


With all the "gov.nist.*****" appearing in your error log... It makes me think the management tool is trying to connect to a 'time synchronization server' and not to a SIP server? ("National institute of standards and technology" = nist)... At least the proof is in the pudding (error log).
 

sfsameer

Well-Known Member
Licensed User
I am successfully starting the server from the MAIN procedure.
View attachment 119243
When I click on the "Start server" button, the server crashes.
View attachment 119245
I have tested on different computers when using the "Start" button is always a problem. What is the problem?
Hello,

The cannot bind means the port is being used by another process, choose another Port, also make sure to open the ports in Firewall (inbound and outbound)

Thank you,
Saif
 
Top