Re: [Asterisk-java-users] How can i use this library to make a call and run an audio file on it
Brought to you by:
srt
From: adriano s. <sle...@bs...> - 2018-11-24 00:31:02
|
Hi! I'm trying to use the management interface to originate a call, but in the moment I can not do play an audio file. The code is something like this: @Slf4j public class OriginateCall { private static final int PORT = 5038; private static final String HOSTNAME = "*.*.*.*"; private static final String USERNAME = "*"; private static final String PASSWORD = "*"; private static final String CONTEXT = "context"; // Number to call, prefaced by 1+areacode (just like your home phone). public String call = "some_number"; private ManagerConnection managerConnection; public OriginateCall() { ManagerConnectionFactory factory = new ManagerConnectionFactory(HOSTNAME, PORT, USERNAME, PASSWORD); this.managerConnection = factory.createManagerConnection(); } public void call() throws IllegalStateException, IOException, AuthenticationFailedException, TimeoutException { OriginateAction originateAction; ManagerResponse originateResponse; originateAction = new OriginateAction(); /* * Format the call for dialing Channel example: Local/12065551234@outgoing-42 */ Integer timeoutCall = 50000; originateAction.setChannel("SIP/" + call + "@" + CONTEXT); originateAction.setContext("from-internal"); originateAction.setCallerId("55011100"); // what will be showed on the phone screen (in most cases your phone) originateAction.setExten(""/*[targetExten]*/); //where to call.. the target extension... internal extension or the outgoing number.. the 0[nomberToCall] originateAction.setPriority(1);// priority of the call originateAction.setTimeout(timeoutCall ); // the time that a pickup event will be waited for originateAction.setVariable("UUID", UUID.randomUUID().toString()); // asigning a unique ID in order to be able to hangup the call. managerConnection.login(); /* * send the originate action */ originateResponse = managerConnection.sendAction(originateAction, 50000); // print out whether the originate succeeded or not log.info("Call Response -> {}", originateResponse.getResponse()); // and finally log off and disconnect managerConnection.logoff(); } public static void main(String... args) throws IllegalStateException, IOException, AuthenticationFailedException, TimeoutException { OriginateCall originate = new OriginateCall(); originate.call(); } } I'll view the information you sent me. Again thank you for your time and knowledge. Regards, Adriano Santos Em sex, 23 de nov de 2018 às 19:45, Brandon Haugen <bh...@ta...> escreveu: > Hey Adriano, > > Yes, the code I shared is showing how to receive a call and respond with > audio. > > I have a scenario where we allow users to initiate a call to themselves > (by pressing a button in a Web App) and when they pick up the call, we > stream a couple of audio files (one after the other) to give them > instructions for the system they are using. In our scenario though, we are > just initiating the call through the use of Call Files ( > https://wiki.asterisk.org/wiki/display/AST/Asterisk+Call+Files). When the > user picks up, they just drop into the context specified in the Call File > which directs them to our Asterisk Java AgiScript. In this case, I still > use `getData` on the `AgiChannel` to stream the files when I need DTMF, > otherwise I just use the `exec` method on the AgiChannel to use the > Playback application within Asterisk. > > If you are going to originate the Call in some other way, I won't be of > much help at the moment as I have not worked with the Asterisk Manager > Interface, ( > https://wiki.asterisk.org/wiki/display/AST/The+Asterisk+Manager+TCP+IP+API) > yet. Asterisk Java does also support the Manager Interface so you might > find something that more closely resembles what you are looking to do at > http://asterisk-java.org . > > On Fri, Nov 23, 2018 at 3:21 PM adriano santos <sle...@bs...> > wrote: > >> Hi Brandon! Thank you for your response. >> >> Is the example you sent to receive a call and respond with correct audio? >> What I need to do is originate a call to cell phone and play audio. For >> now no need for DTMF. >> >> Regards, >> Adriano Santos >> >> Em sex, 23 de nov de 2018 às 18:34, Brandon Haugen <bh...@ta...> >> escreveu: >> >>> Hey Adriano, >>> >>> I have within the last few months started using Asterisk-Java for a >>> project and you can certainly playback an audio file. There are a couple of >>> things that you will have to think about to determine the best approach for >>> your situation, here is what I can tell you though >>> >>> - If you do *not* need to listen for DTMF input (keypresses) while >>> playing the audio file then you can play an audio file on an AgiChannel in >>> Java by using something like `agiChannel.exec("playback", "<path to audio >>> file>");` >>> - This example in the Asterisk Java GitHub repository shows >>> answering a call, playing a file back, and then hanging up (note that in >>> the example they rely on methods defined in the AgiOperations class so they >>> aren't operating directly on the AgiChannel like the line of code I am >>> sharing is doing) >>> https://github.com/asterisk-java/asterisk-java/blob/master/src/main/java/org/asteriskjava/examples/fastagi/ExampleCallIn.java >>> - If you *do* need to listen for DTMF input while playing the audio >>> file then you will want to use the `getData` or `getOption` methods defined >>> on AgiChannel. You will need to pick which method is appropriate depending >>> on the length of DTMF you need to listen for (`getOption` returns a single >>> char while `getData` will return a String) >>> >>> Thanks, >>> Brandon >>> >>> On Thu, Nov 22, 2018 at 12:09 PM adriano santos <sle...@bs...> >>> wrote: >>> >>>> Hello, guys! >>>> >>>> I would like to play an audio file on a initialized call via java. I >>>> haven't found an example for this. >>>> Is this possible? >>>> >>>> -- >>>> Adriano P. Santos >>>> >>>> "O homem erudito é um descobridor de fatos que já existem - mas o homem >>>> sábio é um criador de valores que não existem e que ele faz existir." >>>> Albert Einstein >>>> _______________________________________________ >>>> Asterisk-java-users mailing list >>>> Ast...@li... >>>> https://lists.sourceforge.net/lists/listinfo/asterisk-java-users >>>> >>> _______________________________________________ >>> Asterisk-java-users mailing list >>> Ast...@li... >>> https://lists.sourceforge.net/lists/listinfo/asterisk-java-users >>> >> >> >> -- >> Adriano P. Santos >> >> "O homem erudito é um descobridor de fatos que já existem - mas o homem >> sábio é um criador de valores que não existem e que ele faz existir." >> Albert Einstein >> _______________________________________________ >> Asterisk-java-users mailing list >> Ast...@li... >> https://lists.sourceforge.net/lists/listinfo/asterisk-java-users >> > _______________________________________________ > Asterisk-java-users mailing list > Ast...@li... > https://lists.sourceforge.net/lists/listinfo/asterisk-java-users > -- Adriano P. Santos "O homem erudito é um descobridor de fatos que já existem - mas o homem sábio é um criador de valores que não existem e que ele faz existir." Albert Einstein |