Asterisk Broadcasting - asterisk

Goodmorning,
I need your help with something.
A quick question to learn more about Asterisk.
I love studying new things.
I would like to send a broadcasting message too let's say 100+ registered users with Asterisk from one user account.
Would this be possible with Asterisk?
Is there already a function inside
Asterisk available for this or not?
Thank you.
Wesley

No, there are no function like that in asterisk(it is PBX!!!)
Broadcasting require alot of checks be made and in most case your provider in contract disallow broadcast.
You can use vicidial.org software or write your own using call files(not recommended for person without experience).
https://www.voip-info.org/asterisk-auto-dial-out/

To give an update on this topic, as Arheops says it is impossible.
It is possible!
I have made it work with the Asterisk AMI.
You call an extension and from the dialplan you kick a PHP script that executes an Asterisk AMI action. This way you can get all the currently active user in a conversation. You can take the currently active users from a real-time database structure. With the dialplan you set autoanswer for these users, this way you can broadcast. Have tested this multiple times, and it works like a charm.

Related

Asterisk integration with custom ERP

One of our customers has an Asterisk phone center and want to integrate it with our ERP. The idea is that Asterisk calls an Oracle database procedure when a phone call is transferred to an extension. This Oracle procedure has 2 parameters, incoming phone number and destination extension.
Is it possible to do this with Asterisk API? Where can I find documentation or examples to do it?
I have read official Asterisk API documentation but don't understand how it works and where can I begin to search...
There are no documentation for "just integrate with ERP".
You can use ARI events or AMI events or CEL to make integrations. It will be highly depend of dialplan used
There are probably a dozen ways to do this using the various Asterisk subsystems, such as ARI and AMI, but one of the simplest might be to make a network call embedded in the dialplan.
There are several examples of how this might be done at https://www.voip-info.org/asterisk-call-notification/ ; for example, look at the description for YAC on that page, which shows how to make the call using netcat.
That method uses the System Application. Do be careful not to pass unfiltered text from e.g. the Caller ID information to the system, as someone might inject malicious code into the Caller ID.

Is there any function in confbridge application to mute audio between users?

I needed to make a solution in Asterisk using confbridge application. I made a bridge and assigned admin and users to connect to it. Its working absolutely fine. There is a thing which i am missing and cannot figure out how to get it working. I want to disable communication between users, and enable communication only with admin. Basically I want admin to broadcast audio which all users should be able to hear but when users speak, only admin should be able to hear.
I know there is a way to mute startmuted for user but its not working as this option is for muting users for everyone including admin.
My question is: Is it possible for users not to hear each other talking in conference? if yes (most likely) then please guide me how?
Thank you for reading this.
Confbridge allow mute any channel. It have no users, only channels.
If you need more advanced control like mute only for some groups, you have write your own app or hire developer who do that for you.
Simplest way seams have two conferences and chan_spy, but dialplan logic of such solution is much above average level.

call phone by clicking on number in web

Im newbie from asterisk but professional in PHP programming!, so
I want to call mobile number in my users panel in web. exactly when user click on a number, connect to asterisk and call selected mobile number via specified internal extension.
is there any solution? I don't know about using any softphone or not. I don't want to use any client softphone if possible.
edit:
I used some php code with AMI and shift8, but my problem is when user calling and how can user talk with another without softphone?
You can use various API's to place a phone call. As you already learned about the AMI you might find http://code.google.com/p/asterisk-php-api/ helpful.
Regarding your phone question: placing a phone call using the AMI Originate Action will first ring the extension's associated phone and when you take of the hook, asterisk will dial the target number. Therefore it's not importent which kind of phone (hard- or softphone, brand, ...) you're using. As long as the phone is registered in asterisk and bound to a certain extension it'll work.
If I understand correctly, the doddle web phone or webrtc may be an example of what your looking for.

List currently logged in users in BlazeDS

I really need some expert help here!. Does anybody knows of a way of getting the list of the users currently connected to a BlazeDS server? Is there any built-in mechanism of knowing this? or do I have to implement some kind of server side logic every time a user access my Flex application and store all logged in users details somewhere and retrieve them later?
The nearest thing I can think of, using BlazeDS, is to obtain a list of clients currently subscribed to a destination, but this won't solve the problem IMO.
First of all, you need to define a destination and make sure that all clients will actually subscribe to it (see BlazeDS documentation for this). Then, on the server, you can then get a reference to the message service
MessageService messageService;
messageService = (MessageService) messageBroker.getService("message-service");
and ask for all subscribers with the getSubscribersIds method on the MessageService instance, specifying the name of your destination. This will only returns a number of identifiers, internally generated by BlazeDS (they are also available on the client side of the connection).
To resolve the same problem, I used this approach in combination to a custom server-side logic to store logged-in users (explicitly invoked login/logout methods). Regularly looking at the subscribers can help to clean this store, because in my experience there's no way to be sure that a "logout" method will always successfully called, expecially from Flex client running in the browser, while BlazeDS will automatically take care of cleanup of the subscribers.
I don't like very much this approach, probably someone came up with a better solution..

How would you implement database updates via email?

I'm building a public website which has its own domain name with pop/smtp mail services. I'm considering giving users the option to update their data via email - something similar to the functionality found in Flickr or Blogger where you email posts to a special email address. The email data is then processed and stored in the underlying database for the website.
I'm using ASP.NET and SQL Server and using a shared hosting service. Any ideas how one would implement this, or if it's even possible using shared hosting?
Thanks
For starters you need to have hosting that allows you to create a catch-all mailbox.
Secondly you need a good POP3 or IMAP library, which is not included AFAIK in the .NET stack.
Then you would write a Command Line application or a Service that regularly checks the mailbox, pulls messages, inserts content in db based on the "To" address (which is unique for each user), and then deletes the email from the mailbox.
It's feasible and sounds like fun. Just make sure you have all you need before you start!
If the data is somewhat "critical", or at least moderately important, do NOT use their username as the "change-data-address". Example: You might be tempted to create an address like username#domain.com, but instead use username-randomnumer#domain.com where you give them the random number if the visit the web-page. That way people can not update other peoples data just by knowing their username.
E-mails can be trivially forged. I would only do this if you can process PGP / SMime certificates in your application.
Other than that, I see no reason why not!
use a dotnet popclient to read the incoming emails, parse them for whatever you are expecting and insert the data into the database.
see codeproject website for simple popclient implementation
you would have to decided on the email content yourself, eg data only, payload of sql statements, etc
You could also identify the user based on sender address. This is how Tripit (and probably others) does it. This only requires one e-mail address on your end.
I have done something similar, using Lumisoft's IMAP client and scheduling a task in my app that checks every x minutes the configured mail address for updates. For scheduling I recommend quartz.net. No launching external processes or anything.

Resources